From: Sascha Hauer <sha@pengutronix.de>
To: "Paul E. McKenney" <paulmck@kernel.org>
Cc: rcu@vger.kernel.org, linux-kernel@vger.kernel.org,
kernel-team@fb.com, rostedt@goodmis.org,
Matthew Wilcox <willy@infradead.org>,
Zhouyi Zhou <zhouzhouyi@gmail.com>,
kernel@pengutronix.de
Subject: Re: [PATCH rcu 04/32] rcu-tasks: Drive synchronous grace periods from calling task
Date: Thu, 1 Sep 2022 12:36:25 +0200 [thread overview]
Message-ID: <20220901103625.GA1658@pengutronix.de> (raw)
In-Reply-To: <20220620225411.3842519-4-paulmck@kernel.org>
Hi Paul,
On Mon, Jun 20, 2022 at 03:53:43PM -0700, Paul E. McKenney wrote:
> This commit causes synchronous grace periods to be driven from the task
> invoking synchronize_rcu_*(), allowing these functions to be invoked from
> the mid-boot dead zone extending from when the scheduler was initialized
> to to point that the various RCU tasks grace-period kthreads are spawned.
> This change will allow the self-tests to run in a consistent manner.
>
> Reported-by: Matthew Wilcox <willy@infradead.org>
> Reported-by: Zhouyi Zhou <zhouzhouyi@gmail.com>
> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit (appeared in mainline as 4a8cc433b8bf) breaks booting my
ARMv7 based i.MX6ul board when CONFIG_PROVE_RCU is enabled. Reverting
this patch on v6.0-rc3 makes my board boot again. See below for a boot
log. The last message is "Running RCU-tasks wait API self tests", after
that the board hangs. Any idea what goes wrong here?
Sascha
----------------------------8<-----------------------------
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.19.0-rc3-00004-g4a8cc433b8bf (sha@dude02) (arm-v7a-linux-gnueabihf-gcc (OSELAS.Toolchain-2021.07.0 11-20210703) 11.1.1 20210703, GNU ld (GNU Binutils) 2.36.1) #229 SMP Thu Sep 1 12:00:07 CEST 2022
[ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: IDS CU33X
[ 0.000000] earlycon: ec_imx6q0 at MMIO 0x02020000 (options '')
[ 0.000000] printk: bootconsole [ec_imx6q0] enabled
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] cma: Reserved 64 MiB at 0x8c000000
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000080000000-0x000000008fffffff]
[ 0.000000] HighMem empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000080000000-0x000000008fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000008fffffff]
[ 0.000000] percpu: Embedded 17 pages/cpu s38068 r8192 d23372 u69632
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 65024
[ 0.000000] Kernel command line: console=ttymxc0,115200n8 earlycon ip=dhcp root=/dev/nfs nfsroot=192.168.8.12:/hom
e/sha/nfsroot/cu33x,v3,tcp
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 162600K/262144K available (15360K kernel code, 2146K rwdata, 5472K rodata, 1024K init, 6681K b
ss, 34008K reserved, 65536K cma-reserved, 0K highmem)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] trace event string verifier disabled
[ 0.000000] Running RCU self tests
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] rcu: RCU lockdep checking is enabled.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[ 0.000000] Tracing variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.000000] Switching to timer-based delay loop, resolution 41ns
[ 0.000003] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.007810] clocksource: mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.021748] Console: colour dummy device 80x30
[ 0.023488] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[ 0.032009] ... MAX_LOCKDEP_SUBCLASSES: 8
[ 0.035282] ... MAX_LOCK_DEPTH: 48
[ 0.039445] ... MAX_LOCKDEP_KEYS: 8192
[ 0.043886] ... CLASSHASH_SIZE: 4096
[ 0.048127] ... MAX_LOCKDEP_ENTRIES: 32768
[ 0.052552] ... MAX_LOCKDEP_CHAINS: 65536
[ 0.057069] ... CHAINHASH_SIZE: 32768
[ 0.061405] memory used by lock dependency info: 4061 kB
[ 0.066788] memory used for stack traces: 2112 kB
[ 0.071645] per task-struct memory footprint: 1536 bytes
[ 0.077138] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.087384] pid_max: default: 32768 minimum: 301
[ 0.093527] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.099327] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.116798] CPU: Testing write buffer coherency: ok
[ 0.122036] CPU0: update cpu_capacity 1024
[ 0.123381] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.137390] cblist_init_generic: Setting adjustable number of callback queues.
[ 0.142282] cblist_init_generic: Setting shift to 0 and lim to 1.
[ 0.149333] Running RCU-tasks wait API self tests
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2022-09-01 10:36 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-20 22:54 [PATCH rcu 0/32] RCU Tasks updates for v5.20 Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 01/32] rcu-tasks: Check for abandoned callbacks Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 02/32] rcu-tasks: Split rcu_tasks_one_gp() from rcu_tasks_kthread() Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 03/32] rcu-tasks: Move synchronize_rcu_tasks_generic() down Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 04/32] rcu-tasks: Drive synchronous grace periods from calling task Paul E. McKenney
2022-09-01 10:36 ` Sascha Hauer [this message]
2022-09-01 17:27 ` Paul E. McKenney
2022-09-01 17:33 ` Paul E. McKenney
2022-09-02 11:52 ` Sascha Hauer
2022-09-02 12:04 ` Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 05/32] rcu-tasks: Merge state into .b.need_qs and atomically update Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 06/32] rcu-tasks: Remove rcu_tasks_trace_postgp() wait for counter Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 07/32] rcu-tasks: Make trc_read_check_handler() fetch ->trc_reader_nesting only once Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 08/32] rcu-tasks: Idle tasks on offline CPUs are in quiescent states Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 09/32] rcu-tasks: Handle idle tasks for recently offlined CPUs Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 10/32] rcu-tasks: RCU Tasks Trace grace-period kthread has implicit QS Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 11/32] rcu-tasks: Make rcu_note_context_switch() unconditionally call rcu_tasks_qs() Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 12/32] rcu-tasks: Simplify trc_inspect_reader() QS logic Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 13/32] rcu-tasks: Add slow-IPI indicator to RCU Tasks Trace stall warnings Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 14/32] rcu-tasks: Flag offline CPUs in " Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 15/32] rcu-tasks: Make RCU Tasks Trace stall warnings print full .b.need_qs field Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 16/32] rcu-tasks: Make RCU Tasks Trace stall warning handle idle offline tasks Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 17/32] rcu-tasks: Add data structures for lightweight grace periods Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 18/32] rcu-tasks: Track blocked RCU Tasks Trace readers Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 19/32] rcu-tasks: Untrack blocked RCU Tasks Trace at reader end Paul E. McKenney
2022-06-20 22:53 ` [PATCH rcu 20/32] rcu-tasks: Add blocked-task indicator to RCU Tasks Trace stall warnings Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 21/32] rcu-tasks: Move rcu_tasks_trace_pertask() before rcu_tasks_trace_pregp_step() Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 22/32] rcu-tasks: Avoid rcu_tasks_trace_pertask() duplicate list additions Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 23/32] rcu-tasks: Scan running tasks for RCU Tasks Trace readers Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 24/32] rcu-tasks: Pull in tasks blocked within " Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 25/32] rcu-tasks: Stop RCU Tasks Trace from scanning idle tasks Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 26/32] rcu-tasks: Stop RCU Tasks Trace from scanning full tasks list Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 27/32] rcu-tasks: Maintain a count of tasks blocking RCU Tasks Trace grace period Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 28/32] rcu-tasks: Eliminate RCU Tasks Trace IPIs to online CPUs Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 29/32] rcu-tasks: Disable and enable CPU hotplug in same function Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 30/32] rcu-tasks: Update comments Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 31/32] rcu-tasks: Be more patient for RCU Tasks boot-time testing Paul E. McKenney
2022-06-20 22:54 ` [PATCH rcu 32/32] rcu-tasks: Use delayed_work to delay rcu_tasks_verify_self_tests() Paul E. McKenney
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=20220901103625.GA1658@pengutronix.de \
--to=sha@pengutronix.de \
--cc=kernel-team@fb.com \
--cc=kernel@pengutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@kernel.org \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=willy@infradead.org \
--cc=zhouzhouyi@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox