Skip to content
  • Stephen Boyd's avatar
    ARM: 7872/1: Support arch_irq_work_raise() via self IPIs · bf18525f
    Stephen Boyd authored
    
    
    By default, IRQ work is run from the tick interrupt (see
    irq_work_run() in update_process_times()). When we're in full
    NOHZ mode, restarting the tick requires the use of IRQ work and
    if the only place we run IRQ work is in the tick interrupt we
    have an unbreakable cycle. Implement arch_irq_work_raise() via
    self IPIs to break this cycle and get the tick started again.
    Note that we implement this via IPIs which are only available on
    SMP builds. This shouldn't be a problem because full NOHZ is only
    supported on SMP builds anyway.
    
    Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
    Reviewed-by: default avatarKevin Hilman <khilman@linaro.org>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    bf18525f