FYI, we noticed the following commit (built with gcc-7): commit: 3398b55446fb602245007d5955b6778fb6ff326a ("rcutorture: Handle extended "rcu" read-side critical sections") https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git dev in testcase: boot on test machine: qemu-system-x86_64 -enable-kvm -smp 2 -m 512M caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace): +---------------------------------------------+------------+------------+ | | 6fb6dfca01 | 3398b55446 | +---------------------------------------------+------------+------------+ | boot_successes | 28 | 4 | | boot_failures | 0 | 26 | | WARNING:possible_recursive_locking_detected | 0 | 26 | +---------------------------------------------+------------+------------+ [ 15.516826] WARNING: possible recursive locking detected [ 15.518058] 4.18.0-rc5-00173-g3398b55 #1 Not tainted [ 15.519215] -------------------------------------------- [ 15.520008] rcu_torture_rea/78 is trying to acquire lock: [ 15.520008] (____ptrval____) (&p->pi_lock){-.-.}, at: try_to_wake_up+0x30/0x317 [ 15.520008] [ 15.520008] but task is already holding lock: [ 15.520008] (____ptrval____) (&p->pi_lock){-.-.}, at: try_to_wake_up+0x30/0x317 [ 15.520008] [ 15.520008] other info that might help us debug this: [ 15.520008] Possible unsafe locking scenario: [ 15.520008] [ 15.520008] CPU0 [ 15.520008] ---- [ 15.520008] lock(&p->pi_lock); [ 15.520008] lock(&p->pi_lock); [ 15.520008] [ 15.520008] *** DEADLOCK *** [ 15.520008] [ 15.520008] May be due to missing lock nesting notation [ 15.520008] [ 15.520008] 2 locks held by rcu_torture_rea/78: [ 15.520008] #0: (____ptrval____) (&p->pi_lock){-.-.}, at: try_to_wake_up+0x30/0x317 [ 15.520008] #1: (____ptrval____) (rcu_read_lock){....}, at: select_task_rq_rt+0x1a/0x152 [ 15.520008] [ 15.520008] stack backtrace: [ 15.520008] CPU: 1 PID: 78 Comm: rcu_torture_rea Not tainted 4.18.0-rc5-00173-g3398b55 #1 [ 15.520008] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 [ 15.520008] Call Trace: [ 15.520008] dump_stack+0xc4/0x117 [ 15.520008] __lock_acquire+0x806/0xf26 [ 15.520008] ? kvm_clock_read+0x23/0x33 [ 15.520008] lock_acquire+0x70/0x9f [ 15.520008] ? try_to_wake_up+0x30/0x317 [ 15.520008] _raw_spin_lock_irqsave+0x62/0x9d [ 15.520008] ? try_to_wake_up+0x30/0x317 [ 15.520008] try_to_wake_up+0x30/0x317 [ 15.520008] ? __lock_acquire+0x2d7/0xf26 [ 15.520008] wake_up_process+0x10/0x12 [ 15.520008] wakeup_softirqd+0x2b/0x2d [ 15.520008] raise_softirq_irqoff+0x1c/0x1e [ 15.520008] rcu_read_unlock_special+0x7b/0xca [ 15.520008] __rcu_read_unlock+0x3f/0x5b [ 15.520008] select_task_rq_rt+0x127/0x152 [ 15.520008] try_to_wake_up+0x16c/0x317 [ 15.520008] wake_up_process+0x10/0x12 [ 15.520008] rcu_initiate_boost+0xa3/0xb5 [ 15.520008] __rcu_report_exp_rnp+0x3f/0xc3 [ 15.520008] rcu_report_exp_cpu_mult+0x59/0x62 [ 15.520008] rcu_report_exp_rdp+0x1a/0x1c [ 15.520008] rcu_preempt_deferred_qs_irqrestore+0xec/0x382 [ 15.520008] rcu_preempt_deferred_qs+0x4c/0x51 [ 15.520008] rcu_note_context_switch+0x360/0x3d0 [ 15.520008] __schedule+0x186/0x7ad [ 15.520008] ? preempt_schedule+0x30/0x32 [ 15.520008] ? rcutorture_one_extend+0xce/0x178 [ 15.520008] preempt_schedule_common+0x65/0x7f [ 15.520008] preempt_schedule+0x30/0x32 [ 15.520008] ___preempt_schedule+0x16/0x18 [ 15.520008] __local_bh_enable_ip+0xf5/0xfa [ 15.520008] rcutorture_one_extend+0xdf/0x178 [ 15.520008] rcu_torture_one_read+0x26e/0x287 [ 15.520008] ? rcu_torture_one_read+0x287/0x287 [ 15.520008] rcu_torture_reader+0xd2/0x131 [ 15.520008] ? rcu_busted_torture_deferred_free+0xb/0xb [ 15.520008] ? __kthread_parkme+0x47/0x7c [ 15.520008] kthread+0x125/0x12d [ 15.520008] ? rcu_torture_one_read+0x287/0x287 [ 15.520008] ? kthread+0x125/0x12d [ 15.520008] ? kthread_flush_work_fn+0xf/0xf [ 15.520008] ret_from_fork+0x3a/0x50 [ 51.562859] [drm] Initialized vgem 1.0.0 20120112 for virtual device on minor 0 [ 51.566668] Silicon Labs C2 port support v. 0.51.0 - (C) 2007 Rodolfo Giometti [ 51.569287] usbcore: registered new interface driver viperboard [ 51.571011] usbcore: registered new interface driver dln2 [ 51.572479] Uniform Multi-Platform E-IDE driver [ 51.574488] ide-gd driver 1.18 [ 51.600600] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI [ 51.601993] e1000: Copyright (c) 1999-2006 Intel Corporation. [ 51.785059] PCI Interrupt Link [LNKC] enabled at IRQ 11 [ 52.234347] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 52:54:00:12:34:56 [ 52.255507] e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection [ 52.256896] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k [ 52.258046] e1000e: Copyright(c) 1999 - 2015 Intel Corporation. [ 52.259434] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.4.0-k [ 52.260805] igb: Copyright (c) 2007-2014 Intel Corporation. [ 52.261961] ixgbe: Intel(R) 10 Gigabit PCI Express Network Driver - version 5.1.0-k [ 52.263751] ixgbe: Copyright (c) 1999-2016 Intel Corporation. [ 52.287160] usbcore: registered new interface driver hwa-rc [ 52.288320] usbcore: registered new interface driver i1480-dfu-usb [ 52.289967] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 52.291304] ehci-pci: EHCI PCI platform driver [ 52.292268] ehci-platform: EHCI generic platform driver [ 52.293463] usbcore: registered new interface driver hwa-hc [ 52.294591] fotg210_hcd: FOTG210 Host Controller (EHCI) Driver [ 52.308853] usbcore: registered new interface driver wusb-cbaf [ 52.310075] usbcore: registered new interface driver cdc_acm [ 52.311213] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters [ 52.312838] usbcore: registered new interface driver usblp [ 52.314096] usbcore: registered new interface driver usbtmc [ 52.315287] usbcore: registered new interface driver mdc800 To reproduce: git clone https://github.com/intel/lkp-tests.git cd lkp-tests bin/lkp qemu -k job-script # job-script is attached in this email Thanks, Rong, Chen