1. 12 Nov, 2018 8 commits
    • Paul E. McKenney's avatar
      rcu: Speed up expedited GPs when interrupting RCU reader · 05f41571
      Paul E. McKenney authored
      In PREEMPT kernels, an expedited grace period might send an IPI to a
      CPU that is executing an RCU read-side critical section.  In that case,
      it would be nice if the rcu_read_unlock() directly interacted with the
      RCU core code to immediately report the quiescent state.  And this does
      happen in the case where the reader has been preempted.  But it would
      also be a nice performance optimization if immediate reporting also
      happened in the preemption-free case.
      
      This commit therefore adds an ->exp_hint field to the task_struct structure's
      ->rcu_read_unlock_special field.  The IPI handler sets this hint when
      it has interrupted an RCU read-side critical section, and this causes
      the outermost rcu_read_unlock() call to invoke rcu_read_unlock_special(),
      which, if preemption is enabled, reports the quiescent state immediately.
      If preemption is disabled, then the report is required to be deferred
      until preemption (or bottom halves or interrupts or whatever) is re-enabled.
      
      Because this is a hint, it does nothing for more complicated cases.  For
      example, if the IPI interrupts an RCU reader, but interrupts are disabled
      across the rcu_read_unlock(), but another rcu_read_lock() is executed
      before interrupts are re-enabled, the hint will already have been cleared.
      If you do crazy things like this, reporting will be deferred until some
      later RCU_SOFTIRQ handler, context switch, cond_resched(), or similar.
      Reported-by: default avatarJoel Fernandes <joel@joelfernandes.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      Acked-by: default avatarJoel Fernandes (Google) <joel@joelfernandes.org>
      05f41571
    • Paul E. McKenney's avatar
      rcu: Trace end of grace period before end of grace period · 0a89e5a4
      Paul E. McKenney authored
      Currently, rcu_gp_cleanup() traces the end of the old grace period after
      the old grace period has officially ended.  This might make intuitive
      sense, but it also makes for confusing event-trace output because the
      "end" trace displays not the old but instead the new grace-period number.
      This commit therefore traces the end of an old grace period just before
      that grace period officially ends.
      Reported-by: default avatarAravinda Prasad <aravinda@linux.vnet.ibm.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      0a89e5a4
    • Zhouyi Zhou's avatar
      rcu: Adjust the comment of function rcu_is_watching · 2320bda2
      Zhouyi Zhou authored
      Because RCU avoids interrupting idle CPUs, rcu_is_watching() is used to
      test whether or not it is currently legal to run RCU read-side critical
      sections on this CPU.  However, the first sentence and last sentences
      of current comment for rcu_is_watching have opposite meaning of what
      is expected.  This commit therefore fixes this header comment.
      Signed-off-by: default avatarZhouyi Zhou <zhouzhouyi@gmail.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      2320bda2
    • Paul E. McKenney's avatar
      rcu: Add jiffies-since-GP-activity to show_rcu_gp_kthreads() · c669c014
      Paul E. McKenney authored
      This commit adds a printout of the number of jiffies since the last time
      that the RCU grace-period kthread did any processing.  This can be useful
      when tracking down forward-progress issues.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      c669c014
    • Paul E. McKenney's avatar
      rcu: Add state name to show_rcu_gp_kthreads() output · 69196019
      Paul E. McKenney authored
      This commit adds the name of the RCU grace-period state to
      the show_rcu_gp_kthreads() output in order to ease debugging.
      This commit also moves gp_state_getname() up in the code so that
      show_rcu_gp_kthreads() can use it.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      69196019
    • Paul E. McKenney's avatar
      rcu: Parameterize rcu_check_gp_start_stall() · 791416c4
      Paul E. McKenney authored
      In order to debug forward-progress stalls, it is necessary to check
      for excessively delayed grace-period starts.  This is currently done
      for RCU CPU stall warnings by rcu_check_gp_start_stall(), which checks
      to see if the start of a requested grace period has been delayed by an
      RCU CPU stall warning period.  Because rcutorture will need to check
      for the time consumed by an RCU forward-progress delay, this commit
      promotes gpssdelay from a local variable to a formal parameter.  It is
      not necessary to export rcu_check_gp_start_stall() because rcutorture
      will access it via a wrapper function.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      791416c4
    • Paul E. McKenney's avatar
      rcu: Avoid double multiply by HZ · b3c1d9ec
      Paul E. McKenney authored
      The rcu_check_gp_start_stall() function multiplies the return value
      from rcu_jiffies_till_stall_check() by HZ, but the units are already
      in jiffies.  This commit therefore avoids the need for introduction of
      a jiffies-squared unit by removing the extraneous multiplication.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      b3c1d9ec
    • Paul E. McKenney's avatar
      MAINTAINERS: Update from @linux.vnet.ibm.com to @linux.ibm.com · 1dfddcdb
      Paul E. McKenney authored
      IBM's patch-friendly email infrastructure is changing domains from
      @linux.vnet.ibm.com to @linux.ibm.com, which if nothing else might
      save a bit of typing.  This commit therefore updates us stragglers'
      email addresses in the MAINTAINERS file.  The old addresses are
      expected to continue to work for a few more months.
      
      While in the neighborhood, remove some obsolete entries, which results
      in an orphaned subsystem: "JSM Neo PCI based serial card".
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Douglas Miller <dougmill@linux.ibm.com>
      Cc: Eddie James <eajames@linux.ibm.com>
      Cc: Frank Haverkamp <haver@linux.ibm.com>
      Cc: Frederic Barrat <fbarrat@linux.ibm.com>
      Cc: John Allen <jallen@linux.ibm.com>
      Cc: Manoj N. Kumar <manoj@linux.ibm.com>
      Cc: Matthew R. Ochs <mrochs@linux.ibm.com>
      Cc: Michael Cyr <mikecyr@linux.ibm.com>
      Cc: Naveen N. Rao <naveen.n.rao@linux.ibm.com>
      Cc: Paulo Flabiano Smorigo <pfsmorigo@linux.ibm.com>
      Cc: Philip Kelleher <pjk1939@linux.ibm.com>
      Cc: Steven Royer <seroyer@linux.ibm.com>
      Cc: Thomas Falcon <tlfalcon@linux.ibm.com>
      Cc: Tyrel Datwyler <tyreld@linux.ibm.com>
      Cc: Uma Krishnan <ukrishn@linux.ibm.com>
      Acked-by: default avatarJames Bottomley <jejb@linux.ibm.com>
      Acked-by: default avatarMimi Zohar <zohar@linux.ibm.com>
      1dfddcdb
  2. 11 Nov, 2018 1 commit
    • Paul E. McKenney's avatar
      rcu: Stop expedited grace periods from relying on stop-machine · 9cac83a5
      Paul E. McKenney authored
      The CPU-selection code in sync_rcu_exp_select_cpus() disables preemption
      to prevent the cpu_online_mask from changing.  However, this relies on
      the stop-machine mechanism in the CPU-hotplug offline code, which is not
      desirable (it would be good to someday remove the stop-machine mechanism).
      
      This commit therefore instead uses the relevant leaf rcu_node structure's
      ->ffmask, which has a bit set for all CPUs that are fully functional.
      A given CPU's bit is cleared very early during offline processing by
      rcutree_offline_cpu() and set very late during online processing by
      rcutree_online_cpu().  Therefore, if a CPU's bit is set in this mask, and
      preemption is disabled, we have to be before the synchronize_sched() in
      the CPU-hotplug offline code, which means that the CPU is guaranteed to be
      workqueue-ready throughout the duration of the enclosing preempt_disable()
      region of code.
      
      This also has the side-effect of using WORK_CPU_UNBOUND if all the CPUs for
      this leaf rcu_node structure are offline, which is an acceptable difference
      in behavior.
      Reported-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      9cac83a5
  3. 04 Nov, 2018 9 commits
    • Linus Torvalds's avatar
      Linux 4.20-rc1 · 65102238
      Linus Torvalds authored
      65102238
    • Linus Torvalds's avatar
      Merge tag 'tags/upstream-4.20-rc1' of git://git.infradead.org/linux-ubifs · 42bd06e9
      Linus Torvalds authored
      Pull UBIFS updates from Richard Weinberger:
      
       - Full filesystem authentication feature, UBIFS is now able to have the
         whole filesystem structure authenticated plus user data encrypted and
         authenticated.
      
       - Minor cleanups
      
      * tag 'tags/upstream-4.20-rc1' of git://git.infradead.org/linux-ubifs: (26 commits)
        ubifs: Remove unneeded semicolon
        Documentation: ubifs: Add authentication whitepaper
        ubifs: Enable authentication support
        ubifs: Do not update inode size in-place in authenticated mode
        ubifs: Add hashes and HMACs to default filesystem
        ubifs: authentication: Authenticate super block node
        ubifs: Create hash for default LPT
        ubfis: authentication: Authenticate master node
        ubifs: authentication: Authenticate LPT
        ubifs: Authenticate replayed journal
        ubifs: Add auth nodes to garbage collector journal head
        ubifs: Add authentication nodes to journal
        ubifs: authentication: Add hashes to index nodes
        ubifs: Add hashes to the tree node cache
        ubifs: Create functions to embed a HMAC in a node
        ubifs: Add helper functions for authentication support
        ubifs: Add separate functions to init/crc a node
        ubifs: Format changes for authentication support
        ubifs: Store read superblock node
        ubifs: Drop write_node
        ...
      42bd06e9
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.20-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 4710e789
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       "Highlights include:
      
        Bugfix:
         - Fix build issues on architectures that don't provide 64-bit cmpxchg
      
        Cleanups:
         - Fix a spelling mistake"
      
      * tag 'nfs-for-4.20-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFS: fix spelling mistake, EACCESS -> EACCES
        SUNRPC: Use atomic(64)_t for seq_send(64)
      4710e789
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 35e74524
      Linus Torvalds authored
      Pull more timer updates from Thomas Gleixner:
       "A set of commits for the new C-SKY architecture timers"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        dt-bindings: timer: gx6605s SOC timer
        clocksource/drivers/c-sky: Add gx6605s SOC system timer
        dt-bindings: timer: C-SKY Multi-processor timer
        clocksource/drivers/c-sky: Add C-SKY SMP timer
      35e74524
    • Linus Torvalds's avatar
      Merge tag 'ntb-4.20' of git://github.com/jonmason/ntb · 04578e84
      Linus Torvalds authored
      Pull NTB updates from Jon Mason:
       "Fairly minor changes and bug fixes:
      
        NTB IDT thermal changes and hook into hwmon, ntb_netdev clean-up of
        private struct, and a few bug fixes"
      
      * tag 'ntb-4.20' of git://github.com/jonmason/ntb:
        ntb: idt: Alter the driver info comments
        ntb: idt: Discard temperature sensor IRQ handler
        ntb: idt: Add basic hwmon sysfs interface
        ntb: idt: Alter temperature read method
        ntb_netdev: Simplify remove with client device drvdata
        NTB: transport: Try harder to alloc an aligned MW buffer
        ntb: ntb_transport: Mark expected switch fall-throughs
        ntb: idt: Set PCIe bus address to BARLIMITx
        NTB: ntb_hw_idt: replace IS_ERR_OR_NULL with regular NULL checks
        ntb: intel: fix return value for ndev_vec_mask()
        ntb_netdev: fix sleep time mismatch
      04578e84
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 71e56028
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "A memory (under-)allocation fix and a comment fix"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/topology: Fix off by one bug
        sched/rt: Update comment in pick_next_task_rt()
      71e56028
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 601a8807
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "A number of fixes and some late updates:
      
         - make in_compat_syscall() behavior on x86-32 similar to other
           platforms, this touches a number of generic files but is not
           intended to impact non-x86 platforms.
      
         - objtool fixes
      
         - PAT preemption fix
      
         - paravirt fixes/cleanups
      
         - cpufeatures updates for new instructions
      
         - earlyprintk quirk
      
         - make microcode version in sysfs world-readable (it is already
           world-readable in procfs)
      
         - minor cleanups and fixes"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        compat: Cleanup in_compat_syscall() callers
        x86/compat: Adjust in_compat_syscall() to generic code under !COMPAT
        objtool: Support GCC 9 cold subfunction naming scheme
        x86/numa_emulation: Fix uniform-split numa emulation
        x86/paravirt: Remove unused _paravirt_ident_32
        x86/mm/pat: Disable preemption around __flush_tlb_all()
        x86/paravirt: Remove GPL from pv_ops export
        x86/traps: Use format string with panic() call
        x86: Clean up 'sizeof x' => 'sizeof(x)'
        x86/cpufeatures: Enumerate MOVDIR64B instruction
        x86/cpufeatures: Enumerate MOVDIRI instruction
        x86/earlyprintk: Add a force option for pciserial device
        objtool: Support per-function rodata sections
        x86/microcode: Make revision and processor flags world-readable
      601a8807
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 01897f3e
      Linus Torvalds authored
      Pull perf updates and fixes from Ingo Molnar:
       "These are almost all tooling updates: 'perf top', 'perf trace' and
        'perf script' fixes and updates, an UAPI header sync with the merge
        window versions, license marker updates, much improved Sparc support
        from David Miller, and a number of fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (66 commits)
        perf intel-pt/bts: Calculate cpumode for synthesized samples
        perf intel-pt: Insert callchain context into synthesized callchains
        perf tools: Don't clone maps from parent when synthesizing forks
        perf top: Start display thread earlier
        tools headers uapi: Update linux/if_link.h header copy
        tools headers uapi: Update linux/netlink.h header copy
        tools headers: Sync the various kvm.h header copies
        tools include uapi: Update linux/mmap.h copy
        perf trace beauty: Use the mmap flags table generated from headers
        perf beauty: Wire up the mmap flags table generator to the Makefile
        perf beauty: Add a generator for MAP_ mmap's flag constants
        tools include uapi: Update asound.h copy
        tools arch uapi: Update asm-generic/unistd.h and arm64 unistd.h copies
        tools include uapi: Update linux/fs.h copy
        perf callchain: Honour the ordering of PERF_CONTEXT_{USER,KERNEL,etc}
        perf cs-etm: Correct CPU mode for samples
        perf unwind: Take pgoff into account when reporting elf to libdwfl
        perf top: Do not use overwrite mode by default
        perf top: Allow disabling the overwrite mode
        perf trace: Beautify mount's first pathname arg
        ...
      01897f3e
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e9ebc215
      Linus Torvalds authored
      Pull irq fixes from Ingo Molnar:
       "An irqchip driver fix and a memory (over-)allocation fix"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/irq-mvebu-sei: Fix a NULL vs IS_ERR() bug in probe function
        irq/matrix: Fix memory overallocation
      e9ebc215
  4. 03 Nov, 2018 22 commits