1. 31 Oct, 2019 1 commit
  2. 30 Oct, 2019 26 commits
  3. 29 Oct, 2019 10 commits
  4. 28 Oct, 2019 3 commits
    • Linus Torvalds's avatar
      Merge tag 'arc-5.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 8005803a
      Linus Torvalds authored
      Pull ARC fixes from Vineet Gupta:
       "Small fixes for ARC:
      
         - perf fix for Big Endian build [Alexey]
      
         - hadk platform enable soem peripherals [Eugeniy]"
      
      * tag 'arc-5.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: perf: Accommodate big-endian CPU
        ARC: [plat-hsdk]: Enable on-boardi SPI ADC IC
        ARC: [plat-hsdk]: Enable on-board SPI NOR flash IC
      8005803a
    • Paul E. McKenney's avatar
      rcu: Make kernel-mode nohz_full CPUs invoke the RCU core processing · dd7dafd1
      Paul E. McKenney authored
      If a nohz_full CPU is idle or executing in userspace, it makes good sense
      to keep it out of RCU core processing.  After all, the RCU grace-period
      kthread can see its quiescent states and all of its callbacks are
      offloaded, so there is nothing for RCU core processing to do.
      
      However, if a nohz_full CPU is executing in kernel space, the RCU
      grace-period kthread cannot do anything for it, so such a CPU must report
      its own quiescent states.  This commit therefore makes nohz_full CPUs
      skip RCU core processing only if the scheduler-clock interrupt caught
      them in idle or in userspace.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      dd7dafd1
    • Paul E. McKenney's avatar
      rcu: Confine ->core_needs_qs accesses to the corresponding CPU · ed93dfc6
      Paul E. McKenney authored
      Commit 671a6351 ("rcu: Avoid unnecessary softirq when system
      is idle") fixed a bug that could result in an indefinite number of
      unnecessary invocations of the RCU_SOFTIRQ handler at the trailing edge
      of a scheduler-clock interrupt.  However, the fix introduced off-CPU
      stores to ->core_needs_qs.  These writes did not conflict with the
      on-CPU stores because the CPU's leaf rcu_node structure's ->lock was
      held across all such stores.  However, the loads from ->core_needs_qs
      were not promoted to READ_ONCE() and, worse yet, the code loading from
      ->core_needs_qs was written assuming that it was only ever updated by
      the corresponding CPU.  So operation has been robust, but only by luck.
      This situation is therefore an accident waiting to happen.
      
      This commit therefore takes a different approach.  Instead of clearing
      ->core_needs_qs from the grace-period kthread's force-quiescent-state
      processing, it modifies the rcu_pending() function to suppress the
      rcu_sched_clock_irq() function's call to invoke_rcu_core() if there is no
      grace period in progress.  This avoids the infinite needless RCU_SOFTIRQ
      handlers while still keeping all accesses to ->core_needs_qs local to
      the corresponding CPU.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      ed93dfc6