diff options
author | Corey Minyard <minyard@acm.org> | 2005-11-07 01:00:03 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-07 07:53:44 -0800 |
commit | a9a2c44ff0a1350f8bfe3a162ecf71b1c9ce5cc2 (patch) | |
tree | ac5ffc65084b48895239e9044893ae7e0b2d91b1 /drivers/char/watchdog/i6300esb.c | |
parent | c3e7e7916ec61cf58c88af12f4db17f28cffd83a (diff) |
[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>
Diffstat (limited to 'drivers/char/watchdog/i6300esb.c')
0 files changed, 0 insertions, 0 deletions