Re: ipmi: use round_jiffies on timers to reduce timer overhead/wakeups

From: Corey Minyard
Date: Thu Oct 22 2009 - 12:46:16 EST


Matt Domsch wrote:
On Thu, Oct 22, 2009 at 05:57:06AM +0900, Arjan van de Ven wrote:
Corey Minyard wrote:
Certainly. Yes, some (probably most) IPMI hardware does not use
interrupts, and unfortunately, it's not just older machines. The driver
used to poll more slowly, but in many cases the performance was
unacceptable.
... but now it burns quite a bit of power (I'd not be surprised if it is 10 Watts extra on a 70W server)

is there any way to poll slowly until there is active ipmi traffic, during which we can then poll a bit faster.
... and then go back to slow polling when there is an ipmi idle period ?

I believe that's what the thread does already. Depending on what
userspace apps are generating IPMI requests though, there may not be a
whole lot of time between requests. Dell OpenManage software does a
poll of the IPMI sensors, SEL logs, etc. at regular intervals, on the
order of minutes between runs, but during each run there's almost
always an outstanding IPMI command.
In addition to userland work, the upper layer of the driver polls for events once a second. This is another unfortunate IPMI design flaw. There is a flag (that will thus cause an interrupt) that tells you if the event queue is full, but it doesn't tell you if there is an event in the queue, only if its full. So you have to poll for events.

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