Searched hist:a9a2c44ff0a1350f8bfe3a162ecf71b1c9ce5cc2 (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/drivers/char/ipmi/ |
H A D | ipmi_si_intf.c | diff a9a2c44ff0a1350f8bfe3a162ecf71b1c9ce5cc2 Mon Nov 07 03:00:03 CST 2005 Corey Minyard <minyard@acm.org> [PATCH] ipmi: add timer thread
We must poll for responses to commands when interrupts aren't in use. The default poll interval is based on using a kernel timer, which varies with HZ. For character-based interfaces like KCS and SMIC though, that can be way too slow (>15 minutes to flash a new firmware with KCS, >20 seconds to retrieve the sensor list).
This creates a low-priority kernel thread to poll more often. If the state machine is idle, so is the kernel thread. But if there's an active command, it polls quite rapidly. This decrease a firmware flash time from 15 minutes to 1.5 minutes, and the sensor list time to 4.5 seconds, on a Dell PowerEdge x8x system.
The timer-based polling remains, to ensure some amount of responsiveness even under high user process CPU load.
Checking for a stopped timer at rmmod now uses atomics and del_timer_sync() to ensure safe stoppage.
Signed-off-by: Matt Domsch <Matt_Domsch@dell.com> Signed-off-by: Corey Minyard <minyard@acm.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|