Skip to content
  • Peter Zijlstra's avatar
    smp/hotplug: Callback vs state-machine consistency · 724a8688
    Peter Zijlstra authored
    
    
    While the generic callback functions have an 'int' return and thus
    appear to be allowed to return error, this is not true for all states.
    
    Specifically, what used to be STARTING/DYING are ran with IRQs
    disabled from critical parts of CPU bringup/teardown and are not
    allowed to fail. Add WARNs to enforce this rule.
    
    But since some callbacks are indeed allowed to fail, we have the
    situation where a state-machine rollback encounters a failure, in this
    case we're stuck, we can't go forward and we can't go back. Also add a
    WARN for that case.
    
    AFAICT this is a fundamental 'problem' with no real obvious solution.
    We want the 'prepare' callbacks to allow failure on either up or down.
    Typically on prepare-up this would be things like -ENOMEM from
    resource allocations, and the typical usage in prepare-down would be
    something like -EBUSY to avoid CPUs being taken away.
    
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: bigeasy@linutronix.de
    Cc: efault@gmx.de
    Cc: rostedt@goodmis.org
    Cc: max.byungchul.park@gmail.com
    Link: https://lkml.kernel.org/r/20170920170546.819539119@infradead.org
    
    724a8688