All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org,
	"Paul E. McKenney" <paulmck@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Andrew Morton <akpm@linux-foundation.org>,
	Josh Triplett <josh@joshtriplett.org>
Subject: [GIT PULL] RCU updates for v5.12
Date: Wed, 17 Feb 2021 12:02:29 +0100	[thread overview]
Message-ID: <20210217110229.GA21245@gmail.com> (raw)

Linus,

Please pull the latest core/rcu git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core-rcu-2021-02-17

   # HEAD: 2b392cb11c0db645ba81a08b6a2e96c56ec1fc64 Merge branch 'for-mingo-nolibc' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu

These are the latest RCU updates for v5.12:

 - Documentation updates.

 - Miscellaneous fixes.

 - kfree_rcu() updates: Addition of mem_dump_obj() to provide allocator return
   addresses to more easily locate bugs.  This has a couple of RCU-related commits,
   but is mostly MM.  Was pulled in with akpm's agreement.

 - Per-callback-batch tracking of numbers of callbacks,
   which enables better debugging information and smarter
   reactions to large numbers of callbacks.

 - The first round of changes to allow CPUs to be runtime switched from and to
   callback-offloaded state.

 - CONFIG_PREEMPT_RT-related changes.

 - RCU CPU stall warning updates.

 - Addition of polling grace-period APIs for SRCU.

 - Torture-test and torture-test scripting updates, including a "torture everything"
   script that runs rcutorture, locktorture, scftorture, rcuscale, and refscale.
   Plus does an allmodconfig build.

 - nolibc fixes for the torture tests

 Thanks,

	Ingo

------------------>
Frederic Weisbecker (17):
      tools/rcutorture: Make identify_qemu_vcpus() independent of local language
      rcu/nocb: Turn enabled/offload states into a common flag
      rcu/nocb: Provide basic callback offloading state machine bits
      rcu/nocb: Always init segcblist on CPU up
      rcu/nocb: De-offloading CB kthread
      rcu/nocb: Don't deoffload an offline CPU with pending work
      rcu/nocb: De-offloading GP kthread
      rcu/nocb: Re-offload support
      rcu/nocb: Shutdown nocb timer on de-offloading
      rcu/nocb: Flush bypass before setting SEGCBLIST_SOFTIRQ_ONLY
      rcu/nocb: Set SEGCBLIST_SOFTIRQ_ONLY at the very last stage of de-offloading
      rcu/nocb: Only cond_resched() from actual offloaded batch processing
      rcu/nocb: Process batch locally as long as offloading isn't complete
      rcu/nocb: Locally accelerate callbacks as long as offloading isn't complete
      cpu/hotplug: Add lockdep_is_cpus_held()
      timer: Add timer_curr_running()
      tools/rcutorture: Support nocb toggle in TREE01

Joel Fernandes (Google) (6):
      rcu/tree: Make rcu_do_batch count how many callbacks were executed
      rcu/segcblist: Add additional comments to explain smp_mb()
      rcu/segcblist: Add counters to segcblist datastructure
      rcu/tree: segcblist: Remove redundant smp_mb()s
      rcu/trace: Add tracing for how segcb list changes
      rcu/segcblist: Add debug checks for segment lengths

Julia Cartwright (1):
      rcu: Enable rcu_normal_after_boot unconditionally for RT

Mauro Carvalho Chehab (1):
      list: Fix a typo at the kernel-doc markup

Neeraj Upadhyay (1):
      rcu: Check and report missed fqs timer wakeup on RCU stall

Paul E. McKenney (83):
      docs: Remove redundant "``" from Requirements.rst
      doc: Remove obsolete RCU-bh and RCU-sched update-side API members
      doc: Update RCU requirements RCU_INIT_POINTER() description
      doc: Remove obsolete rcutree.rcu_idle_lazy_gp_delay boot parameter
      srcu: Make Tiny SRCU use multi-bit grace-period counter
      srcu: Provide internal interface to start a Tiny SRCU grace period
      srcu: Provide internal interface to start a Tree SRCU grace period
      srcu: Provide polling interfaces for Tiny SRCU grace periods
      srcu: Provide polling interfaces for Tree SRCU grace periods
      srcu: Document polling interfaces for Tree SRCU grace periods
      srcu: Add comment explaining cookie overflow/wrap
      rcutorture: Prepare for ->start_gp_poll and ->poll_gp_state
      rcutorture: Add writer-side tests of polling grace-period API
      rcutorture: Add reader-side tests of polling grace-period API
      rcutorture: Add testing for RCU's global memory ordering
      scftorture: Add debug output for wrong-CPU warning
      rcu: Mark obtuse portion of stall warning as internal debug
      rcu: For RCU grace-period kthread starvation, dump last CPU it ran on
      rcu: Do not NMI offline CPUs
      torture: Make --kcsan specify lockdep
      torture: Make kvm.sh "--dryrun sched" summarize number of batches
      torture: Make kvm.sh "--dryrun sched" summarize number of builds
      torture: Allow kvm.sh --datestamp to specify subdirectories
      torture: Prepare for splitting qemu execution from kvm-test-1-run.sh
      torture: Add config2csv.sh script to compare torture scenarios
      torture: Make kvm.sh "Test Summary" date be end of test
      torture: Make kvm.sh arguments accumulate
      torture: Print run duration at end of kvm.sh execution
      torture: Make kvm.sh return failure upon build failure
      torture: Make kvm.sh include --kconfig arguments in CPU calculation
      torture: Add kvm.sh test summary to end of log file
      torture: Stop hanging on panic
      torture: Add --dryrun batches to help schedule a distributed run
      torture: s/STOP/STOP.1/ to avoid scenario collision
      torture: Simplify exit-code plumbing for kvm-recheck.sh and kvm-find-errors.sh
      torture: Remove "Failed to add ttynull console" false positive
      torture: Allow standalone kvm-recheck.sh run detect --trust-make
      rcu: Add lockdep_assert_irqs_disabled() to rcu_sched_clock_irq() and callees
      rcu: Add lockdep_assert_irqs_disabled() to raw_spin_unlock_rcu_node() macros
      rcu: Make TASKS_TRACE_RCU select IRQ_WORK
      torture: Do Kconfig analysis only once per scenario
      rcutorture: Test runtime toggling of CPUs' callback offloading
      rcu/nocb: Add grace period and task state to show_rcu_nocb_state() output
      rcu/nocb: Add nocb CB kthread list to show_rcu_nocb_state() output
      rcu/nocb: Code-style nits in callback-offloading toggling
      rcu: Do any deferred nocb wakeups at CPU offline time
      torture: Add torture.sh torture-everything script
      torture: Make torture.sh use common time-duration bash functions
      torture: Remove use of "eval" in torture.sh
      torture: Add "make allmodconfig" to torture.sh
      torture: Auto-size SCF and scaling runs based on number of CPUs
      torture: Enable torture.sh argument checking
      torture: Make torture.sh rcuscale and refscale deal with allmodconfig
      torture: Make torture.sh refscale runs use verbose_batched module parameter
      torture: Create doyesno helper function for torture.sh
      torture: Make torture.sh allmodconfig retain and label output
      torture: Make torture.sh throttle VERBOSE_TOROUT_*() for refscale
      torture: Make torture.sh refuse to do zero-length runs
      torture: Drop log.long generation from torture.sh
      torture: Allow scenarios to be specified to torture.sh
      torture: Add command and results directory to torture.sh log
      torture: Add --kcsan-kmake-arg to torture.sh for KCSAN
      torture: Compress KASAN vmlinux files
      refscale: Allow summarization of verbose output
      rcutorture: Require entire stutter period be post-boot
      rcutorture: Make synctype[] and nsynctype be static global
      rcutorture: Make rcu_torture_fakewriter() use blocking wait primitives
      torture: Add fuzzed hrtimer-based sleep functions
      rcutorture: Use torture_hrtimeout_jiffies() to avoid busy-waits
      torture: Make stutter use torture_hrtimeout_*() functions
      rcutorture: Use hrtimers for reader and writer delays
      torture: Make refscale throttle high-rate printk()s
      torture: Throttle VERBOSE_TOROUT_*() output
      rcutorture: Make object_debug also double call_rcu() heap object
      torture: Clean up after torture-test CPU hotplugging
      torture: Maintain torture-specific set of CPUs-online books
      rcutorture: Add rcutree.use_softirq=0 to RUDE01 and TASKS01
      mm: Add mem_dump_obj() to print source of memory block
      mm: Make mem_dump_obj() handle NULL and zero-sized pointers
      mm: Make mem_dump_obj() handle vmalloc() memory
      mm: Make mem_obj_dump() vmalloc() dumps include start and length
      rcu: Make call_rcu() print mem_dump_obj() info for double-freed callback
      percpu_ref: Dump mem_dump_obj() info upon reference-count underflow

Paul Gortmaker (1):
      docs: Fix typos and drop/fix dead links in RCU documentation

Peter Zijlstra (1):
      sched/core: Allow try_invoke_on_locked_down_task() with irqs disabled

Scott Wood (1):
      rcu: Unconditionally use rcuc threads on PREEMPT_RT

Sebastian Andrzej Siewior (3):
      rcu: Make RCU_BOOST default on CONFIG_PREEMPT_RT
      doc: Update RCU's requirements page about the PREEMPT_RT wiki
      doc: Use CONFIG_PREEMPTION

Uladzislau Rezki (Sony) (3):
      rcu: Introduce kfree_rcu() single-argument macro
      rcu: Eliminate the __kvfree_rcu() macro
      rcu-tasks: Add RCU-tasks self tests

Wang Qing (1):
      locking: Remove duplicate include of percpu-rwsem.h

Willy Tarreau (10):
      tools/nolibc: Add the definition for dup()
      tools/nolibc: Make dup2() rely on dup3() when available
      tools/nolibc: Make getpgrp() fall back to getpgid(0)
      tools/nolibc: Implement fork() based on clone()
      tools/nolibc: Implement poll() based on ppoll()
      tools/nolibc: Get timeval, timespec and timezone from linux/time.h
      tools/nolibc: Remove incorrect definitions of __ARCH_WANT_*
      tools/nolibc: Emit detailed error for missing alternate syscall number definitions
      tools/nolibc: Fix position of -lgcc in the documented example
      tools/rcutorture: Fix position of -lgcc in mkinitrd.sh

Zqiang (1):
      rcu: Record kvfree_call_rcu() call stack for KASAN


 .../Expedited-Grace-Periods.rst                    |   4 +-
 .../RCU/Design/Requirements/Requirements.rst       | 732 +++++++++++----------
 Documentation/RCU/checklist.rst                    |  10 +-
 Documentation/RCU/rcubarrier.rst                   |   6 +-
 Documentation/RCU/stallwarn.rst                    |  27 +-
 Documentation/RCU/whatisRCU.rst                    |  10 +-
 Documentation/admin-guide/kernel-parameters.txt    |  39 +-
 include/linux/cpu.h                                |   2 +
 include/linux/list.h                               |   2 +-
 include/linux/mm.h                                 |   2 +
 include/linux/rcu_segcblist.h                      | 120 +++-
 include/linux/rcupdate.h                           |  42 +-
 include/linux/slab.h                               |   2 +
 include/linux/srcu.h                               |   3 +
 include/linux/srcutiny.h                           |   7 +-
 include/linux/timer.h                              |   2 +
 include/linux/torture.h                            |  27 +-
 include/linux/vmalloc.h                            |   6 +
 include/trace/events/rcu.h                         |  26 +
 kernel/cpu.c                                       |   7 +
 kernel/locking/locktorture.c                       |   1 -
 kernel/rcu/Kconfig                                 |   5 +-
 kernel/rcu/rcu.h                                   |  16 +-
 kernel/rcu/rcu_segcblist.c                         | 216 ++++--
 kernel/rcu/rcu_segcblist.h                         |  57 +-
 kernel/rcu/rcutorture.c                            | 395 +++++++++--
 kernel/rcu/refscale.c                              |  23 +-
 kernel/rcu/srcutiny.c                              |  77 ++-
 kernel/rcu/srcutree.c                              | 147 ++++-
 kernel/rcu/tasks.h                                 |  79 +++
 kernel/rcu/tree.c                                  | 101 ++-
 kernel/rcu/tree.h                                  |   2 +
 kernel/rcu/tree_exp.h                              |   2 +-
 kernel/rcu/tree_plugin.h                           | 367 ++++++++++-
 kernel/rcu/tree_stall.h                            |  60 +-
 kernel/rcu/update.c                                |   4 +-
 kernel/scftorture.c                                |   6 +-
 kernel/sched/core.c                                |   9 +-
 kernel/time/timer.c                                |  14 +
 kernel/torture.c                                   | 167 ++++-
 lib/percpu-refcount.c                              |  12 +-
 mm/slab.c                                          |  20 +
 mm/slab.h                                          |  12 +
 mm/slab_common.c                                   |  75 +++
 mm/slob.c                                          |   6 +
 mm/slub.c                                          |  40 ++
 mm/util.c                                          |  31 +
 mm/vmalloc.c                                       |  13 +
 tools/include/nolibc/nolibc.h                      | 153 +++--
 .../testing/selftests/rcutorture/bin/config2csv.sh |  67 ++
 .../selftests/rcutorture/bin/console-badness.sh    |   1 +
 .../testing/selftests/rcutorture/bin/functions.sh  |  36 +-
 .../selftests/rcutorture/bin/kvm-find-errors.sh    |   9 +-
 .../selftests/rcutorture/bin/kvm-recheck.sh        |   3 +-
 .../selftests/rcutorture/bin/kvm-test-1-run.sh     |  12 +-
 tools/testing/selftests/rcutorture/bin/kvm.sh      | 103 ++-
 tools/testing/selftests/rcutorture/bin/mkinitrd.sh |   2 +-
 .../selftests/rcutorture/bin/parse-build.sh        |   2 +-
 .../selftests/rcutorture/bin/parse-console.sh      |   2 +-
 tools/testing/selftests/rcutorture/bin/torture.sh  | 442 +++++++++++++
 .../selftests/rcutorture/configs/rcu/RUDE01.boot   |   1 +
 .../selftests/rcutorture/configs/rcu/TASKS01.boot  |   1 +
 .../selftests/rcutorture/configs/rcu/TREE01.boot   |   4 +-
 63 files changed, 3108 insertions(+), 763 deletions(-)
 create mode 100755 tools/testing/selftests/rcutorture/bin/config2csv.sh
 create mode 100755 tools/testing/selftests/rcutorture/bin/torture.sh

             reply	other threads:[~2021-02-17 11:04 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-17 11:02 Ingo Molnar [this message]
2021-02-21 20:53 ` [GIT PULL] RCU updates for v5.12 pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210217110229.GA21245@gmail.com \
    --to=mingo@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulmck@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.