On Mon, 05 Oct 2009 14:15:45 -0700 Arjan van de Ven wrote:

> Randy Dunlap wrote:
> > On Mon, 05 Oct 2009 10:54:44 -0700 Arjan van de Ven wrote:
> > 
> >> Randy Dunlap wrote:
> >>>>> Any comments or suggestions?
> >>>> from the numbers you posted, I don't think you have a statistical 
> >>>> significant
> >>>> difference either way...
> >>> Yes.
> >>>
> >>>> but, more importantly, I wonder if the N numbers you are trying to delay 
> >>>> timers
> >>>> are not too short in order for the system to actually draw much less 
> >>>> power. IOW
> >>>> given your random load, C-state tables you might not expect to see that 
> >>>> much at all.
> >>> OK, more testing with larger values of N:
> >>>
> >>> kernel 2.6.31 + patch(N=499):     160 Watts, 284.7 wakeups/second
> >>> kernel 2.6.31 + patch(N=999):     147 Watts, 61.8 wakeups/second
> >>> BUT test run takes 132 minutes instead of the usual 22 minutes!!!
> >> I would rather go to a "slack value" that is per caller...
> >> so people who only need 1 second granularity accuracy will basically always
> >> borrow some other wakeup...
> > 
> > So you are saying have a new kernel API that specifically includes the
> > slack value, right?
> 
> yes
> 
> > 
> > 
> >> (btw I'm surprised you get so many wakeups from traditional timers... 
> >> might be worth checking
> >> if they can be rounded etc)
> > 
> > Rounded how?  can you be a bit more specific, please?
> 
> round_jiffies() API

Yes, I see.  Lots of network drivers use that (or some form of it).
Very few storage drivers seem to use it.
Specifically, my test systems use cciss and lpfc drivers for storage
and they don't use any form of round_jiffies().

I don't really see places in cciss or lpfc where I could use
round_jiffies().  Could you take a look at them and comment, please?

Sample powertop output:

PowerTOP 1.12   (C) 2007, 2008 Intel Corporation 
   
Collecting data for 600 seconds 
   
   
< Detailed C-state information is not available.>
P-states (frequencies)
Wakeups-from-idle per second : 296.2    interval: 600.0s
no ACPI power usage estimate available
Top causes for wakeups:
  48.5% (573.2)      <kernel IPI> : TLB shootdowns 
  25.7% (304.0)     <kernel core> : hrtimer_start_range_ns (tick_sched_timer)
   9.7% (114.0)       <interrupt> : cciss0 
   9.0% (105.9)      <kernel IPI> : Rescheduling interrupts 
   1.3% ( 15.5)            oracle : hrtimer_start_range_ns (hrtimer_wakeup)
   1.0% ( 12.1)     <kernel core> : hrtimer_start (tick_sched_timer) 
   0.9% ( 10.5)       <interrupt> : lpfc 
   0.8% ( 10.0)      yum-updatesd : hrtimer_start_range_ns (hrtimer_wakeup)
   0.7% (  7.9)              java : hrtimer_start_range_ns (hrtimer_wakeup)
   0.5% (  5.6)       <interrupt> : eth0
...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Maybe the hrtimer_start* functions are related to
http://bugzilla.kernel.org/show_bug.cgi?id=14424 ?

---
~Randy
_______________________________________________
Discuss mailing list
[email protected]
http://lists.lesswatts.org/listinfo/discuss

Reply via email to