All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL tip/core/rcu] RCU, LKMM, and KCSAN commits for v5.12
@ 2021-01-28  1:04 Paul E. McKenney
  2021-02-12 12:31 ` Ingo Molnar
  0 siblings, 1 reply; 5+ messages in thread
From: Paul E. McKenney @ 2021-01-28  1:04 UTC (permalink / raw)
  To: mingo
  Cc: akiyks, bigeasy, elver, frederic, joel, julia, mchehab+huawei,
	neeraju, paul.gortmaker, peterz, qiang.zhang, swood, urezki, w,
	wangqing, linux-kernel, rcu, kernel-team, tglx

Hello, Ingo!

This pull request contains changes for RCU, KCSAN, LKMM, and nolibc.
You can pull the entire group using branch for-mingo.  Or, if you prefer,
you can pull them separately, using for-mingo-rcu to pull the RCU changes,
for-mingo-kcsan to pull the KCSAN changes, for-mingo-lkmm to pull the
LKMM changes, and for-mingo-nolibc to pull the noclib changes.

The changes are as follows:

1.	RCU updates (for-mingo-rcu):

	a.	Documentation updates.
		https://lore.kernel.org/lkml/20210106005334.GA12159@paulmck-ThinkPad-P72/

	b.	Miscellaneous fixes.
		https://lore.kernel.org/lkml/20210106005713.GA12492@paulmck-ThinkPad-P72/

	c.	kfree_rcu() updates from Uladzislau Rezki.
		https://lore.kernel.org/lkml/20210106010102.GA12737@paulmck-ThinkPad-P72/

	d.	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.  I am
		including it here because Andrew Morton pulled them in,
		but then removed them stating that they were already in
		a maintainer tree, namely -rcu.
		https://lore.kernel.org/lkml/20210106011603.GA13180@paulmck-ThinkPad-P72/

	e.	Per-callback-batch tracking of numbers of callbacks,
		which enables better debugging information and smarter
		reactions to large numbers of callbacks.
		https://lore.kernel.org/lkml/20210106012541.GA13972@paulmck-ThinkPad-P72/

	f.	The first round of Frederic Weisbecker's changes to allow
		CPUs to be runtime switched from and to callback-offloaded
		state.
		https://lore.kernel.org/lkml/20210106013950.GA14663@paulmck-ThinkPad-P72/

	g.	CONFIG_PREEMPT_RT-related changes.
		https://lore.kernel.org/lkml/20210106164746.GA19969@paulmck-ThinkPad-P72/

	h.	RCU CPU stall warning updates.
		https://lore.kernel.org/lkml/20210106165210.GA20296@paulmck-ThinkPad-P72/

	i.	Addition of polling grace-period APIs for SRCU, requested
		by Kent Overstreet.
		https://lore.kernel.org/lkml/20210106165511.GA20555@paulmck-ThinkPad-P72/

	j.	Torture-test and torture-test scripting updates, including
		a "torture everything" script that runs rcutorture,
		locktorture, scftorture, rcuscale, and refscale.
		Plus does a allmodconfig built.
		https://lore.kernel.org/lkml/20210106171532.GA20769@paulmck-ThinkPad-P72/
		https://lore.kernel.org/lkml/20210106172547.GA22404@paulmck-ThinkPad-P72/
		https://lore.kernel.org/lkml/20210106173056.GA23035@paulmck-ThinkPad-P72/

2.	Kernel concurrency sanitizer (KCSAN) updates from Marco Elver.
	https://lore.kernel.org/lkml/20210106173323.GA23292@paulmck-ThinkPad-P72/

3.	Linux-kernel memory model (LKMM) updates.
	https://lore.kernel.org/lkml/20210106173548.GA23664@paulmck-ThinkPad-P72/

4.	Fixes to nolibc that allows it to run once again on ARMv8.
	https://lore.kernel.org/lkml/20210121072031.23777-1-w@1wt.eu/

All of the commits in this pull request have been subjected to subjected
to the kbuild test robot and -next testing, and are available in the
git repository based on v5.11-rc1 and v5.11-rc3 at:

  git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git for-mingo

for you to fetch changes up to c8c430f4a2fb91b9804ed2f749364fc0dcd663fe:

  Merge branch 'nolibc.2021.01.21a' into HEAD (2021-01-22 15:28:38 -0800)

----------------------------------------------------------------
Akira Yokosawa (2):
      tools/memory-model: Remove redundant initialization in litmus tests
      tools/memory-model: Fix typo in klitmus7 compatibility table

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

Marco Elver (2):
      kcsan: Rewrite kcsan_prandom_u32_max() without prandom_u32_state()
      random32: Re-enable KCSAN instrumentation

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 (88):
      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
      tools/memory-model: Tie acquire loads to reads-from
      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
      Merge branches 'doc.2021.01.06a', 'fixes.2021.01.04b', 'kfree_rcu.2021.01.04a', 'mmdumpobj.2021.01.22a', 'nocb.2021.01.06a', 'rt.2021.01.04a', 'stall.2021.01.06a', 'torture.2021.01.12a' and 'tortureall.2021.01.06a' into HEAD
      Merge branch 'kcsan.2021.01.04a' into HEAD
      Merge branch 'lkmm.2021.01.04a' into HEAD
      Merge branch 'nolibc.2021.01.21a' into HEAD

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/kcsan/core.c                                |  26 +-
 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/Makefile                                       |   3 -
 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 +++--
 tools/memory-model/Documentation/glossary.txt      |  12 +-
 tools/memory-model/README                          |   2 +-
 .../litmus-tests/CoRR+poonceonce+Once.litmus       |   4 +-
 .../litmus-tests/CoRW+poonceonce+Once.litmus       |   4 +-
 .../litmus-tests/CoWR+poonceonce+Once.litmus       |   4 +-
 .../litmus-tests/CoWW+poonceonce.litmus            |   4 +-
 .../IRIW+fencembonceonces+OnceOnce.litmus          |   5 +-
 .../litmus-tests/IRIW+poonceonces+OnceOnce.litmus  |   5 +-
 .../ISA2+pooncelock+pooncelock+pombonce.litmus     |   7 +-
 .../litmus-tests/ISA2+poonceonces.litmus           |   6 +-
 ...cerelease+poacquirerelease+poacquireonce.litmus |   6 +-
 .../LB+fencembonceonce+ctrlonceonce.litmus         |   5 +-
 .../LB+poacquireonce+pooncerelease.litmus          |   5 +-
 .../litmus-tests/LB+poonceonces.litmus             |   5 +-
 .../MP+fencewmbonceonce+fencermbonceonce.litmus    |   5 +-
 .../litmus-tests/MP+onceassign+derefonce.litmus    |   4 +-
 .../MP+polockmbonce+poacquiresilsil.litmus         |   5 +-
 .../MP+polockonce+poacquiresilsil.litmus           |   5 +-
 tools/memory-model/litmus-tests/MP+polocks.litmus  |   6 +-
 .../litmus-tests/MP+poonceonces.litmus             |   5 +-
 .../MP+pooncerelease+poacquireonce.litmus          |   5 +-
 .../memory-model/litmus-tests/MP+porevlocks.litmus |   6 +-
 .../litmus-tests/R+fencembonceonces.litmus         |   5 +-
 .../memory-model/litmus-tests/R+poonceonces.litmus |   5 +-
 .../S+fencewmbonceonce+poacquireonce.litmus        |   5 +-
 .../memory-model/litmus-tests/S+poonceonces.litmus |   5 +-
 .../litmus-tests/SB+fencembonceonces.litmus        |   5 +-
 .../litmus-tests/SB+poonceonces.litmus             |   5 +-
 .../litmus-tests/SB+rfionceonce-poonceonces.litmus |   5 +-
 .../litmus-tests/WRC+poonceonces+Once.litmus       |   5 +-
 .../WRC+pooncerelease+fencermbonceonce+Once.litmus |   5 +-
 .../Z6.0+pooncelock+poonceLock+pombonce.litmus     |   7 +-
 .../Z6.0+pooncelock+pooncelock+pombonce.litmus     |   7 +-
 ...release+poacquirerelease+fencembonceonce.litmus |   6 +-
 .../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 +-
 99 files changed, 3163 insertions(+), 917 deletions(-)
 create mode 100755 tools/testing/selftests/rcutorture/bin/config2csv.sh
 create mode 100755 tools/testing/selftests/rcutorture/bin/torture.sh

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [GIT PULL tip/core/rcu] RCU, LKMM, and KCSAN commits for v5.12
  2021-01-28  1:04 [GIT PULL tip/core/rcu] RCU, LKMM, and KCSAN commits for v5.12 Paul E. McKenney
@ 2021-02-12 12:31 ` Ingo Molnar
  2021-02-12 15:07   ` Paul E. McKenney
  0 siblings, 1 reply; 5+ messages in thread
From: Ingo Molnar @ 2021-02-12 12:31 UTC (permalink / raw)
  To: Paul E. McKenney
  Cc: akiyks, bigeasy, elver, frederic, joel, julia, mchehab+huawei,
	neeraju, paul.gortmaker, peterz, qiang.zhang, swood, urezki, w,
	wangqing, linux-kernel, rcu, kernel-team, tglx


* Paul E. McKenney <paulmck@kernel.org> wrote:

> Hello, Ingo!
> 
> This pull request contains changes for RCU, KCSAN, LKMM, and nolibc.
> You can pull the entire group using branch for-mingo.  Or, if you prefer,
> you can pull them separately, using for-mingo-rcu to pull the RCU changes,
> for-mingo-kcsan to pull the KCSAN changes, for-mingo-lkmm to pull the
> LKMM changes, and for-mingo-nolibc to pull the noclib changes.
> 
> The changes are as follows:
> 
> 1.	RCU updates (for-mingo-rcu):

> 4.	Fixes to nolibc that allows it to run once again on ARMv8.
>	https://lore.kernel.org/lkml/20210121072031.23777-1-w@1wt.eu/

Pulled these two into tip:core/rcu - as nolibc's main (only?) usecase 
within the kernel is torture-testing.

> 2.	Kernel concurrency sanitizer (KCSAN) updates from Marco Elver.
> 	https://lore.kernel.org/lkml/20210106173323.GA23292@paulmck-ThinkPad-P72/

> 3.	Linux-kernel memory model (LKMM) updates.
> 	https://lore.kernel.org/lkml/20210106173548.GA23664@paulmck-ThinkPad-P72/

Pulled these two into tip:locking/core.

Thanks Paul!

	Ingo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [GIT PULL tip/core/rcu] RCU, LKMM, and KCSAN commits for v5.12
  2021-02-12 12:31 ` Ingo Molnar
@ 2021-02-12 15:07   ` Paul E. McKenney
  2021-02-13 12:36     ` Willy Tarreau
  0 siblings, 1 reply; 5+ messages in thread
From: Paul E. McKenney @ 2021-02-12 15:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: akiyks, bigeasy, elver, frederic, joel, julia, mchehab+huawei,
	neeraju, paul.gortmaker, peterz, qiang.zhang, swood, urezki, w,
	wangqing, linux-kernel, rcu, kernel-team, tglx

On Fri, Feb 12, 2021 at 01:31:09PM +0100, Ingo Molnar wrote:
> 
> * Paul E. McKenney <paulmck@kernel.org> wrote:
> 
> > Hello, Ingo!
> > 
> > This pull request contains changes for RCU, KCSAN, LKMM, and nolibc.
> > You can pull the entire group using branch for-mingo.  Or, if you prefer,
> > you can pull them separately, using for-mingo-rcu to pull the RCU changes,
> > for-mingo-kcsan to pull the KCSAN changes, for-mingo-lkmm to pull the
> > LKMM changes, and for-mingo-nolibc to pull the noclib changes.
> > 
> > The changes are as follows:
> > 
> > 1.	RCU updates (for-mingo-rcu):
> 
> > 4.	Fixes to nolibc that allows it to run once again on ARMv8.
> >	https://lore.kernel.org/lkml/20210121072031.23777-1-w@1wt.eu/
> 
> Pulled these two into tip:core/rcu - as nolibc's main (only?) usecase 
> within the kernel is torture-testing.
> 
> > 2.	Kernel concurrency sanitizer (KCSAN) updates from Marco Elver.
> > 	https://lore.kernel.org/lkml/20210106173323.GA23292@paulmck-ThinkPad-P72/
> 
> > 3.	Linux-kernel memory model (LKMM) updates.
> > 	https://lore.kernel.org/lkml/20210106173548.GA23664@paulmck-ThinkPad-P72/
> 
> Pulled these two into tip:locking/core.

Thank you, Ingo!  In the future, I will group nolibc with RCU.  But there
has to be something other than RCU that needs it.  I will take a look. ;-)

							Thanx, Paul

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [GIT PULL tip/core/rcu] RCU, LKMM, and KCSAN commits for v5.12
  2021-02-12 15:07   ` Paul E. McKenney
@ 2021-02-13 12:36     ` Willy Tarreau
  2021-02-13 16:44       ` "Single user mode" initrd [ Was: [GIT PULL tip/core/rcu] RCU, LKMM, and KCSAN commits for v5.12 ] Paul E. McKenney
  0 siblings, 1 reply; 5+ messages in thread
From: Willy Tarreau @ 2021-02-13 12:36 UTC (permalink / raw)
  To: Paul E. McKenney
  Cc: Ingo Molnar, akiyks, bigeasy, elver, frederic, joel, julia,
	mchehab+huawei, neeraju, paul.gortmaker, peterz, qiang.zhang,
	swood, urezki, wangqing, linux-kernel, rcu, kernel-team, tglx

Hi Paul,

On Fri, Feb 12, 2021 at 07:07:05AM -0800, Paul E. McKenney wrote:
> Thank you, Ingo!  In the future, I will group nolibc with RCU.  But there
> has to be something other than RCU that needs it.  I will take a look. ;-)

All my kernels boot using a "preinit" that is built with nolibc and
integrated into the initramfs. Historically it used to just create /dev
entries and mount the rootfs, nowadays it's used to untar modules and
finish the boot so that I can have a clean separation between a kernel
image and a rootfs. It even allows to perform some minimal debugging as
it includes a minimalistic shell. Do you think something like this could
be of any use in your development sessions ? If so I can discuss this
with you in a separate thread so as not to annoy everyone. Just let me
know :-)

Cheers,
Willy

^ permalink raw reply	[flat|nested] 5+ messages in thread

* "Single user mode" initrd [ Was: [GIT PULL tip/core/rcu] RCU, LKMM, and KCSAN commits for v5.12 ]
  2021-02-13 12:36     ` Willy Tarreau
@ 2021-02-13 16:44       ` Paul E. McKenney
  0 siblings, 0 replies; 5+ messages in thread
From: Paul E. McKenney @ 2021-02-13 16:44 UTC (permalink / raw)
  To: Willy Tarreau; +Cc: linux-kernel, rcu, kernel-team

[ Dropping non-list CCs. ]

On Sat, Feb 13, 2021 at 01:36:58PM +0100, Willy Tarreau wrote:
> Hi Paul,
> 
> On Fri, Feb 12, 2021 at 07:07:05AM -0800, Paul E. McKenney wrote:
> > Thank you, Ingo!  In the future, I will group nolibc with RCU.  But there
> > has to be something other than RCU that needs it.  I will take a look. ;-)
> 
> All my kernels boot using a "preinit" that is built with nolibc and
> integrated into the initramfs. Historically it used to just create /dev
> entries and mount the rootfs, nowadays it's used to untar modules and
> finish the boot so that I can have a clean separation between a kernel
> image and a rootfs. It even allows to perform some minimal debugging as
> it includes a minimalistic shell. Do you think something like this could
> be of any use in your development sessions ? If so I can discuss this
> with you in a separate thread so as not to annoy everyone. Just let me
> know :-)

I currently use virtme when I need to poke around in userspace, which
has been working well so far.

I suspect that your preinit could be used to make a boot-loader that
automatically knows the needed Linux-kernel filesystems, thus avoiding
the long series of bugs due to filesystem mismatches between the Linux
kernel and the boot loader.  In the old days, the larger size of the
Linux kernel would have been a problem, but given the size of firmware
these days, this should no longer be a problem.

But my guess is that this has already been tried.  Plus there would have
to be someone quite excited about doing a large body of boot-loader work.

Thoughts?

							Thanx, Paul

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-02-13 16:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-28  1:04 [GIT PULL tip/core/rcu] RCU, LKMM, and KCSAN commits for v5.12 Paul E. McKenney
2021-02-12 12:31 ` Ingo Molnar
2021-02-12 15:07   ` Paul E. McKenney
2021-02-13 12:36     ` Willy Tarreau
2021-02-13 16:44       ` "Single user mode" initrd [ Was: [GIT PULL tip/core/rcu] RCU, LKMM, and KCSAN commits for v5.12 ] Paul E. McKenney

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.