Skip to content
  • Corey Minyard's avatar
    ipmi: Turn off all activity on an idle ipmi interface · 89986496
    Corey Minyard authored
    
    
    The IPMI driver would wake up periodically looking for events and
    watchdog pretimeouts.  If there is nothing waiting for these events,
    it's really kind of pointless to be checking for them.  So modify the
    driver so the message handler can pass down if it needs the lower layer
    to be waiting for these.  Modify the system interface lower layer to
    turn off all timer and thread activity if the upper layer doesn't need
    anything and it is not currently handling messages.  And modify the
    message handler to not restart the timer if its timer is not needed.
    
    The timers and kthread will still be enabled if:
     - the SI interface is handling a message.
     - a user has enabled watching for events.
     - the IPMI watchdog timer is in use (since it uses pretimeouts).
     - the message handler is waiting on a remote response.
     - a user has registered to receive commands.
    
    This mostly affects interfaces without interrupts.  Interfaces with
    interrupts already don't use CPU in the system interface when the
    interface is idle.
    
    Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    89986496