On 23.10.23 22:50, David Woodhouse wrote:
Since commit 87797fad6cce ("xen/events: replace evtchn_rwlock with RCU"), I can no longer hotplug CPUs under Xen with lockdep enabled.(This is real Xen 4.17.1; annoyingly I have different failure modes with Xen guests under qemu/kvm and I'll deal with those next.) Offlining complains thus: [root@localhost cpu1]# echo 0 > online [ 52.936265] [ 52.936271] ============================= [ 52.936274] WARNING: suspicious RCU usage [ 52.936277] 6.6.0-rc5+ #1357 Not tainted [ 52.936280] ----------------------------- [ 52.936282] lib/maple_tree.c:856 suspicious rcu_dereference_check() usage! [ 52.936287] [ 52.936287] other info that might help us debug this: [ 52.936287] [ 52.936289] [ 52.936289] RCU used illegally from offline CPU! [ 52.936289] rcu_scheduler_active = 2, debug_locks = 1 [ 52.936293] 1 lock held by swapper/1/0: [ 52.936296] #0: ffffffff89c03820 (rcu_read_lock){....}-{1:3}, at: mtree_load+0x90/0x590 [ 52.936321] [ 52.936321] stack backtrace: [ 52.936324] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.6.0-rc5+ #1357 [ 52.936329] Hardware name: Xen HVM domU, BIOS 4.17.1 09/26/2023 [ 52.936332] Call Trace: [ 52.936335] <TASK> [ 52.936340] dump_stack_lvl+0x5b/0x90 [ 52.936350] lockdep_rcu_suspicious+0x15a/0x1c0 [ 52.936366] mtree_load+0x49e/0x590 [ 52.936385] irq_get_irq_data+0xe/0x20 [ 52.936394] xen_send_IPI_one+0xa4/0x100 [ 52.936404] __xen_send_IPI_mask+0x1b/0x50 [ 52.936414] generic_exec_single+0x35/0x1c0 [ 52.936423] smp_call_function_single+0xc2/0x140 [ 52.936436] ? cpuhp_report_idle_dead+0x42/0x60 [ 52.936444] do_idle+0xda/0xe0 [ 52.936451] cpu_startup_entry+0x2a/0x30 [ 52.936456] start_secondary+0x123/0x140 [ 52.936465] secondary_startup_64_no_verify+0x178/0x17b [ 52.936490] </TASK>
I'm puzzled. This path doesn't contain any of the RCU usage I've added in commit 87797fad6cce. Are you sure that with just reverting commit 87797fad6cce the issue doesn't manifest anymore? I'd rather expect commit 721255b9826b having caused this behavior, just telling from the messages above. Juergen
OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature