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
next 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.