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>] [day] [month] [year] [list]
Message-ID: <20170703071154.6ofcdrijj6bawu2b@gmail.com>
Date:   Mon, 3 Jul 2017 09:11:54 +0200
From:   Ingo Molnar <mingo@...nel.org>
To:     Linus Torvalds <torvalds@...ux-foundation.org>
Cc:     linux-kernel@...r.kernel.org,
        "Paul E. McKenney" <paulmck@...ibm.com>,
        Thomas Gleixner <tglx@...utronix.de>,
        Peter Zijlstra <a.p.zijlstra@...llo.nl>,
        Andrew Morton <akpm@...ux-foundation.org>
Subject: [GIT PULL] RCU changes for v4.13

Linus,

Please pull the latest core-rcu-for-linus git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core-rcu-for-linus

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

The sole purpose of these changes is to shrink and simplify the RCU code base, 
which has suffered from creeping bloat over the past couple of years. The end 
result is a net removal of ~2700 lines of code:

   79 files changed, 1496 insertions(+), 4211 deletions(-)

Plus there's a marked reduction in the Kconfig space complexity as well, here's 
the number of matches on 'grep RCU' in the .config:

                           before       after

   x86-defconfig                 17          15
   x86-allmodconfig              33          20

 Thanks,

	Ingo

------------------>
Arnd Bergmann (1):
      bcm47xx: Fix build regression

Paul E. McKenney (83):
      rcutorture: Add lockdep to one of the SRCU scenarios
      rcutorture: Add three-level tree test for Tree SRCU
      rcutorture: Fix bug in reporting Kconfig mis-settings
      rcutorture: Add a scenario for Tiny SRCU
      rcutorture: Add a scenario for Classic SRCU
      rcu: Prevent rcu_barrier() from starting needless grace periods
      rcutorture: Correctly handle CONFIG_RCU_TORTURE_TEST_* options
      rcutorture: Update test scenarios based on new Kconfig dependencies
      srcu: Eliminate possibility of destructive counter overflow
      rcu: Complain if blocking in preemptible RCU read-side critical section
      rcuperf: Defer expedited/normal check to end of test
      rcuperf: Remove conflicting Kconfig options
      rcu: Remove obsolete reference to synchronize_kernel()
      rcuperf: Add ability to performance-test call_rcu() and friends
      rcuperf: Add a Kconfig-fragment file for Classic SRCU
      rcu: Make sync_rcu_preempt_exp_done() return bool
      checkpatch: Remove checks for expedited grace periods
      rcuperf: Add test for dynamically initialized srcu_struct
      doc/atomic_ops: Clarify smp_mb__{before,after}_atomic()
      atomics: Add header comment so spin_unlock_wait()
      rcuperf: Add the ability to test tiny RCU flavors
      srcu: Make Classic and Tree SRCU announce themselves at bootup
      rcutorture: Reduce CPUs dedicated to testing Classic SRCU
      srcu: Shrink Tiny SRCU a bit more
      rcuperf: Set more user-friendly defaults
      rcuperf: Add writer_holdoff boot parameter
      rcutorture: Add "git diff" output to testid.txt file
      srcu: Document auto-expediting requirement
      doc: Take tail recursion into account in RCU requirements
      rcu: Add preemptibility checks in rcu_sched_qs() and rcu_bh_qs()
      rcu: Print out rcupdate.c non-default boot-time settings
      rcu: Update rcu_bootup_announce_oddness()
      srcu: Make exp_holdoff module parameter be static
      srcu: Print non-default exp_holdoff values at boot time
      rcu: Add lockdep_assert_held() teeth to tree.c
      rcu: Add lockdep_assert_held() teeth to tree_plugin.h
      srcu: Make SRCU be once again optional
      srcu: Shrink Tiny SRCU a bit
      srcu: Add DEBUG_OBJECTS_RCU_HEAD functionality
      rcu: Make synchronize_rcu_mult() check for duplicates
      sched: Rely on synchronize_rcu_mult() de-duplication
      rcu: Use RCU_NOCB_WAKE rather than RCU_NOGP_WAKE
      rcu: Add memory barriers for NOCB leader wakeup
      rcu: Flag need for rcu_node_tree.h and rcu_segcblist.h visibility
      rcu: Move docbook comments out of rcupdate.h
      rcu: Move rcu_expedited and rcu_normal externs from rcupdate.h
      rcu: Move expediting-related access/control out of rcupdate.h
      rcu: Move torture-related definitions from rcupdate.h to rcu.h
      rcu: Remove UINT_CMP_GE() and UINT_CMP_LT()
      rcu: Move rcupdate.h to new empty-function style
      rcu: Eliminate the unused __rcu_is_watching() function
      rcu: Move the RCU_SCHEDULER_ definitions from rcupdate.h
      rcu: Remove linux/debugobjects.h from rcupdate.h
      rcu: Improve __call_rcu() debug-objects error message
      rcu: Move rcu_is_nocb_cpu() from rcupdate.h to rcu.h
      rcu: Move rcu_ftrace_dump() from rcupdate.h to rcu.h
      rcu: move rcupdate.h to the new true/false-function style
      rcu: Move torture-related functions out of rcutiny.h and rcutree.h
      rcu: Move rcu_request_urgent_qs_task() out of rcutiny.h and rcutree.h
      rcu: Move rcutiny.h to new empty/true/false-function style
      srcu: Prevent sdp->srcu_gp_seq_needed counter wrap
      srcu: Shrink srcu.h by moving docbook and private function
      srcu: Apply trivial callback lists to shrink Tiny SRCU
      lockdep: Use consistent printing primitives
      rcu: Refactor #includes from include/linux/rcupdate.h
      rcu: Convert rnp->lock wrappers to macros for SRCU use
      rcu: Move rnp->lock wrappers for SRCU use
      srcu: Use rnp->lock wrappers to replace explicit memory barriers
      rcu: Remove *_SLOW_* Kconfig options
      rcu: Remove the RCU_KTHREAD_PRIO Kconfig option
      rcu: Remove nohz_full full-system-idle state machine
      rcu: Remove #ifdef moving rcu_end_inkernel_boot from rcupdate.h
      rcu: Remove typecheck() from RCU locking wrapper functions
      rcu: Remove the now-obsolete PROVE_RCU_REPEATEDLY Kconfig option
      rcu: Remove SPARSE_RCU_POINTER Kconfig option
      srcu: Fix rcutorture-statistics typo
      srcu: Remove Classic SRCU
      rcu: Remove debugfs tracing
      rcu: Eliminate NOCBs CPU-state Kconfig options
      rcu: Move RCU non-debug Kconfig options to kernel/rcu
      rcu: Move RCU debug Kconfig options to kernel/rcu
      rcu: Remove event tracing from Tiny RCU
      rcu: Remove RCU CPU stall warnings from Tiny RCU

Priyalee Kushwaha (1):
      srcu-cbmc: Use /usr/bin/awk instead of /bin/awk

Stan Drozd (1):
      docs: Fix typo in Documentation/memory-barriers.txt


 Documentation/RCU/00-INDEX                         |   2 -
 .../RCU/Design/Requirements/Requirements.html      |  34 +-
 Documentation/RCU/checklist.txt                    |   8 +-
 Documentation/RCU/trace.txt                        | 535 -----------------
 Documentation/admin-guide/kernel-parameters.txt    |  41 +-
 Documentation/core-api/atomic_ops.rst              |   5 +
 Documentation/dev-tools/sparse.rst                 |   6 -
 Documentation/kernel-per-CPU-kthreads.txt          |  31 +-
 Documentation/memory-barriers.txt                  |   2 +-
 Documentation/timers/NO_HZ.txt                     |  29 +-
 include/linux/bcm47xx_nvram.h                      |   1 +
 include/linux/compiler.h                           |   4 -
 include/linux/rcu_node_tree.h                      |   4 +
 include/linux/rcu_segcblist.h                      |   4 +
 include/linux/rcupdate.h                           | 318 +---------
 include/linux/rcutiny.h                            | 167 +-----
 include/linux/rcutree.h                            |  21 +-
 include/linux/spinlock.h                           |  20 +
 include/linux/srcu.h                               |  25 +-
 include/linux/srcuclassic.h                        | 115 ----
 include/linux/srcutiny.h                           |  47 +-
 include/linux/srcutree.h                           |  13 +-
 include/trace/events/rcu.h                         |   1 +
 init/Kconfig                                       | 349 +----------
 kernel/locking/lockdep.c                           | 176 +++---
 kernel/rcu/Kconfig                                 | 242 ++++++++
 kernel/rcu/Kconfig.debug                           |  82 +++
 kernel/rcu/Makefile                                |   2 -
 kernel/rcu/rcu.h                                   | 277 +++++++++
 kernel/rcu/rcuperf.c                               | 129 +++-
 kernel/rcu/rcutorture.c                            |  21 +-
 kernel/rcu/srcu.c                                  | 661 ---------------------
 kernel/rcu/srcutiny.c                              |  86 +--
 kernel/rcu/srcutree.c                              | 187 ++++--
 kernel/rcu/tiny.c                                  |  54 +-
 kernel/rcu/tiny_plugin.h                           | 123 ----
 kernel/rcu/tree.c                                  | 195 +++---
 kernel/rcu/tree.h                                  | 109 +---
 kernel/rcu/tree_exp.h                              |   2 +-
 kernel/rcu/tree_plugin.h                           | 573 +++---------------
 kernel/rcu/tree_trace.c                            | 494 ---------------
 kernel/rcu/update.c                                |  77 ++-
 kernel/sched/core.c                                |   8 +-
 kernel/time/Kconfig                                |  50 --
 lib/Kconfig.debug                                  | 184 +-----
 lib/Makefile                                       |   3 -
 scripts/checkpatch.pl                              |  17 -
 .../selftests/rcutorture/bin/configcheck.sh        |   2 +-
 .../testing/selftests/rcutorture/bin/kvm-build.sh  |   2 +-
 tools/testing/selftests/rcutorture/bin/kvm.sh      |   5 +-
 .../selftests/rcutorture/configs/rcu/CFLIST        |   2 +
 .../selftests/rcutorture/configs/rcu/SRCU-C.boot   |   1 +
 .../selftests/rcutorture/configs/rcu/SRCU-N        |   2 +-
 .../selftests/rcutorture/configs/rcu/SRCU-P        |   6 +-
 .../selftests/rcutorture/configs/rcu/SRCU-t        |  10 +
 .../selftests/rcutorture/configs/rcu/SRCU-t.boot   |   1 +
 .../selftests/rcutorture/configs/rcu/SRCU-u        |   9 +
 .../selftests/rcutorture/configs/rcu/SRCU-u.boot   |   1 +
 .../selftests/rcutorture/configs/rcu/TINY02        |   5 +-
 .../selftests/rcutorture/configs/rcu/TREE01        |   5 +-
 .../selftests/rcutorture/configs/rcu/TREE01.boot   |   4 +
 .../selftests/rcutorture/configs/rcu/TREE02        |   5 +-
 .../selftests/rcutorture/configs/rcu/TREE03        |   4 -
 .../selftests/rcutorture/configs/rcu/TREE03.boot   |   4 +
 .../selftests/rcutorture/configs/rcu/TREE04        |   4 -
 .../selftests/rcutorture/configs/rcu/TREE05        |   4 -
 .../selftests/rcutorture/configs/rcu/TREE05.boot   |   3 +
 .../selftests/rcutorture/configs/rcu/TREE06        |   4 +-
 .../selftests/rcutorture/configs/rcu/TREE06.boot   |   3 +
 .../selftests/rcutorture/configs/rcu/TREE07        |   6 -
 .../selftests/rcutorture/configs/rcu/TREE08        |   1 -
 .../selftests/rcutorture/configs/rcu/TREE08-T      |  21 -
 .../selftests/rcutorture/configs/rcu/TREE08.boot   |   1 +
 .../configs/{rcu/TREE02-T => rcuperf/TINY}         |  19 +-
 .../selftests/rcutorture/configs/rcuperf/TREE      |   1 -
 .../selftests/rcutorture/configs/rcuperf/TREE54    |   1 -
 .../testing/selftests/rcutorture/doc/TINY_RCU.txt  |   1 -
 .../selftests/rcutorture/doc/TREE_RCU-kconfig.txt  |  34 +-
 .../rcutorture/formal/srcu-cbmc/modify_srcu.awk    |   2 +-
 79 files changed, 1496 insertions(+), 4211 deletions(-)
 delete mode 100644 Documentation/RCU/trace.txt
 delete mode 100644 include/linux/srcuclassic.h
 create mode 100644 kernel/rcu/Kconfig
 create mode 100644 kernel/rcu/Kconfig.debug
 delete mode 100644 kernel/rcu/srcu.c
 delete mode 100644 kernel/rcu/tree_trace.c
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/SRCU-C.boot
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/SRCU-t
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/SRCU-t.boot
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/SRCU-u
 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/SRCU-u.boot
 delete mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TREE08-T
 rename tools/testing/selftests/rcutorture/configs/{rcu/TREE02-T => rcuperf/TINY} (50%)

[ ... diff omitted due to size ... ]

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ