Re: [PATCH] simplify update_times (avoid jiffies/jiffies_64 aliasing problem)

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

 



On Mon, 2006-08-07 at 12:58 -0700, Andrew Morton wrote:
> > [PATCH] cleanup do_timer and update_times
> > 
> > Pass ticks to do_timer() and update_times().
> > 
> > This also make a barrier added by
> > 5aee405c662ca644980c184774277fc6d0769a84 needless.
> > 
> > Also adjust x86_64 and s390 timer interrupt handler with this change.
> > 
> 
> This is a rather terse description for a change of this nature..
> 
> Why was this patch created?  What problem is it solving?  etcetera.

The problem is that we are wasting time calling do_timer in a loop. This
is especially true on system that switch off the timer interrupt while
the cpu is idle. You can easily have thousands of lost ticks.

> > ...
> >
> > --- a/kernel/timer.c
> > +++ b/kernel/timer.c
> > @@ -1218,7 +1218,7 @@ static inline void calc_load(unsigned lo
> >  	static int count = LOAD_FREQ;
> >  
> >  	count -= ticks;
> > -	if (count < 0) {
> > +	while (count < 0) {
> >  		count += LOAD_FREQ;
> >  		active_tasks = count_active_tasks();
> >  		CALC_LOAD(avenrun[0], EXP_1, active_tasks);
> 
> OK, we do need the loop here to get the arithmetic in CALC_LOAD to work
> correctly.
> 
> But I don't think the expensive count_active_tasks() needs to be evaluated
> each time around.

This is what I hoped would happen. The loops gets pushed through the
layers to the place where it is actually needed. The next step could be
to get rid of the loop altogether by changing CALC_LOAD.

-- 
blue skies,
  Martin.

Martin Schwidefsky
Linux for zSeries Development & Services
IBM Deutschland Entwicklung GmbH

"Reality continues to ruin my life." - Calvin.


-
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