lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210217110229.GA21245@gmail.com>
Date:   Wed, 17 Feb 2021 12:02:29 +0100
From:   Ingo Molnar <mingo@...nel.org>
To:     Linus Torvalds <torvalds@...ux-foundation.org>
Cc:     linux-kernel@...r.kernel.org,
        "Paul E. McKenney" <paulmck@...nel.org>,
        Thomas Gleixner <tglx@...utronix.de>,
        Peter Zijlstra <a.p.zijlstra@...llo.nl>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Josh Triplett <josh@...htriplett.org>
Subject: [GIT PULL] RCU updates for v5.12

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ