• Linus Torvalds's avatar
    Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b7133a9a
    Linus Torvalds authored
    Pull irq core changes from Ingo Molnar:
     "The biggest changes are the IRQ-work and printk changes from Frederic
      Weisbecker, which prepare the code for 'full dynticks' (the ability to
      stop or slow down the periodic tick arbitrarily, not just in idle time
      as today):
    
       - Don't stop tick with irq works pending.  This fix is generally
         useful and concerns archs that can't raise self IPIs.
    
       - Flush irq works before CPU offlining.
    
       - Introduce "lazy" irq works that can wait for the next tick to be
         executed, unless it's stopped.
    
       - Implement klogd wake up using irq work.  This removes the ad-hoc
         printk_tick()/printk_needs_cpu() hooks and make it working even in
         dynticks mode.
    
       - Cleanups and fixes."
    
    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      genirq: Export enable/disable_percpu_irq()
      arch Kconfig: Remove references to IRQ_PER_CPU
      irq_work: Remove return value from the irq_work_queue() function
      genirq: Avoid deadlock in spurious handling
      printk: Wake up klogd using irq_work
      irq_work: Make self-IPIs optable
      irq_work: Warn if there's still work on cpu_down
      irq_work: Flush work on CPU_DYING
      irq_work: Don't stop the tick with pending works
      nohz: Add API to check tick state
      irq_work: Remove CONFIG_HAVE_IRQ_WORK
      irq_work: Fix racy check on work pending flag
      irq_work: Fix racy IRQ_WORK_BUSY flag setting
    b7133a9a
printk.c 70.1 KB