Re: [patch] Real-Time Preemption, -RT-2.6.12-V0.7.49-00

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Wed, 22 Jun 2005, Esben Nielsen wrote:

> 
> On Tue, 21 Jun 2005, Ingo Molnar wrote:
> 
> > 
> > * Esben Nielsen <[email protected]> wrote:
> > 
> > > I am seeing very high latencies on 2.6.12-RT-V0.7.50-04 with a 
> > > modified realfeel2: maximum is 246 us. Shouldn't it be in the order of 
> > > 50 us?
> > 
> > i never got reliable results from realfeel - it should do the kind of 
> > careful things rtc_wakeup does to avoid false positives.
> > 
> I tried with rtc_wakeup while I was at work (which is on my disk at home) 
> - but it crashed my machine (one have to be _very_ carefull about what you
> do when you run in a task with RT priority!). I have fixed it now (see
> below patch) and it is running for the night. Let us see if I get similar
> results. 
> 

Yep, just as I pressed sent before I saw the following:

./rtc_wakeup -n 1000000 
rtc_wakeup - press ctrl-c to stop - use -h to get help
freq:             1024
max # of irqs:    1000000
jitter threshold: 5% (48 usec)
output filename:  /dev/null
rt priority:      80(90)
aquiring rt privs
getting cpu speed
696948901.455 Hz (696.949 MHz)
# of cycles for "perfect" period: 680614 (976 usec)
setting up ringbuffer
setting up consumer thread
setting up /dev/rtc
locking memory
turning irq on
new max. jitter: 0.2% (1 usec)
new max. jitter: 0.5% (4 usec)
new max. jitter: 0.6% (5 usec)
new max. jitter: 0.7% (6 usec)
new max. jitter: 1.0% (9 usec)
new max. jitter: 1.7% (16 usec)
new max. jitter: 1.8% (17 usec)
new max. jitter: 1.9% (18 usec)
new max. jitter: 3.9% (37 usec)
threshold violated: 6.3% (61usec)
new max. jitter: 6.3% (61 usec)
threshold violated: 28.0% (273usec)
new max. jitter: 28.0% (273 usec)
threshold violated: 25.0% (243usec)

Esben

> Esben
> 
> diff -Naur wakeup.cc~ wakeup.cc
> --- wakeup.cc~  2004-12-10 13:41:59.000000000 +0100
> +++ wakeup.cc   2005-06-21 22:28:53.000000000 +0200
> @@ -359,8 +359,7 @@
>    cycles_t last_cycles_count;
>    double max_jitter = 0;
>  
> -  struct timespec pause;
> -  pause.tv_nsec = 10000;
> +  struct timespec pause = { 0, 10000};
>    
>    std::cout.flags(std::ios::fixed);
>    std::cout << std::setprecision(1);
> @@ -428,7 +427,11 @@
>        if (max_number_of_irqs > 0 && total_num_of_irqs >= max_number_of_irqs)
>         stopit = true;
>      }
> -    nanosleep(&pause,0);
> +    if(nanosleep(&pause,0))
> +      {
> +       perror("nanosleep:");
> +       exit(1);
> +      }
>    }
>    std::cout << "done." << std::endl;
>    std::cout << "total # of irqs:      " << total_num_of_irqs << std::endl;
> 
> 
> 

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux