Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1357267 - suspicious RCU usage when suspending laptop with nvme drive
Summary: suspicious RCU usage when suspending laptop with nvme drive
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-07-17 13:25 UTC by Mikko Tiihonen
Modified: 2018-04-06 18:12 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-04-06 18:12:50 UTC


Attachments (Terms of Use)

Description Mikko Tiihonen 2016-07-17 13:25:08 UTC
Also sleeping function called from invalid context from same location.

Kernel log:
---

PM: Suspending system (mem)
Suspending console(s) (use no_console_suspend to debug)
psmouse serio1: Failed to disable mouse on isa0060/serio1

===============================
[ INFO: suspicious RCU usage. ]
4.7.0-0.rc7.git3.1.fc25.x86_64 #1 Not tainted
-------------------------------
include/linux/rcupdate.h:554 Illegal context switch in RCU read-side critical section!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 0
5 locks held by kworker/u16:1/4481:
 #0:  ("events_unbound"){.+.+.+}, at: [<ffffffff810cc26a>] process_one_work+0x1ba/0x700
 #1:  ((&entry->work)){+.+.+.}, at: [<ffffffff810cc26a>] process_one_work+0x1ba/0x700
 #2:  (&dev->mutex){......}, at: [<ffffffff815d4664>] __device_suspend+0x104/0x380
 #3:  (&dev->shutdown_lock){+.+...}, at: [<ffffffffc00f2f4f>] nvme_dev_disable+0x4f/0x340 [nvme]
 #4:  (rcu_read_lock){......}, at: [<ffffffffc005a695>] nvme_stop_queues+0x5/0x190 [nvme_core]

stack backtrace:
CPU: 5 PID: 4481 Comm: kworker/u16:1 Not tainted 4.7.0-0.rc7.git3.1.fc25.x86_64 #1
Hardware name: Dell Inc. Precision 5510/08R8KJ, BIOS 01.02.00 04/07/2016
Workqueue: events_unbound async_run_entry_fn
 0000000000000286 00000000bc983f54 ffff8803d3a9b930 ffffffff81458dd5
 ffff8801e8e0b340 0000000000000001 ffff8803d3a9b960 ffffffff81109937
 0000000000000000 ffffffff81c61003 0000000000000ae2 ffff8804a1390d20
Call Trace:
 [<ffffffff81458dd5>] dump_stack+0x86/0xc1
 [<ffffffff81109937>] lockdep_rcu_suspicious+0xd7/0x110
 [<ffffffff810dc2e7>] ___might_sleep+0xa7/0x230
 [<ffffffff810dc4b9>] __might_sleep+0x49/0x80
 [<ffffffff810cae35>] flush_work+0x75/0x320
 [<ffffffff810cadc5>] ? flush_work+0x5/0x320
 [<ffffffff81108207>] ? add_lock_to_list.isra.29.constprop.45+0x77/0xb0
 [<ffffffff8110ca4d>] ? __lock_acquire+0xc4d/0x1210
 [<ffffffff8110b8c6>] ? mark_held_locks+0x76/0xa0
 [<ffffffff810cd406>] ? __cancel_work_timer+0x136/0x210
 [<ffffffff810cd419>] __cancel_work_timer+0x149/0x210
 [<ffffffff8110b8c6>] ? mark_held_locks+0x76/0xa0
 [<ffffffff818da6cc>] ? _raw_spin_unlock_irq+0x2c/0x40
 [<ffffffff810cd4f0>] cancel_work_sync+0x10/0x20
 [<ffffffff8142e535>] blk_mq_cancel_requeue_work+0x15/0x20
 [<ffffffffc005a720>] nvme_stop_queues+0x90/0x190 [nvme_core]
 [<ffffffffc005a695>] ? nvme_stop_queues+0x5/0x190 [nvme_core]
 [<ffffffffc00f2f76>] nvme_dev_disable+0x76/0x340 [nvme]
 [<ffffffff8110b8c6>] ? mark_held_locks+0x76/0xa0
 [<ffffffff8110b9e5>] ? trace_hardirqs_on_caller+0xf5/0x1b0
 [<ffffffff8110baad>] ? trace_hardirqs_on+0xd/0x10
 [<ffffffffc00f325a>] nvme_suspend+0x1a/0x20 [nvme]
 [<ffffffff814b3818>] pci_pm_suspend+0x78/0x150
 [<ffffffff814b37a0>] ? pci_pm_freeze+0xf0/0xf0
 [<ffffffff815d37b2>] dpm_run_callback+0xb2/0x2d0
 [<ffffffff815d469a>] __device_suspend+0x13a/0x380
 [<ffffffff815d48ff>] async_suspend+0x1f/0xa0
 [<ffffffff810d792a>] async_run_entry_fn+0x4a/0x140
 [<ffffffff810cc2f2>] process_one_work+0x242/0x700
 [<ffffffff810cc26a>] ? process_one_work+0x1ba/0x700
 [<ffffffff810cc7fe>] worker_thread+0x4e/0x490
 [<ffffffff810cc7b0>] ? process_one_work+0x700/0x700
 [<ffffffff810d3be1>] kthread+0x101/0x120
 [<ffffffff8110b9e5>] ? trace_hardirqs_on_caller+0xf5/0x1b0
 [<ffffffff818db1ef>] ret_from_fork+0x1f/0x40
 [<ffffffff810d3ae0>] ? kthread_create_on_node+0x250/0x250
BUG: sleeping function called from invalid context at kernel/workqueue.c:2786
in_atomic(): 1, irqs_disabled(): 0, pid: 4481, name: kworker/u16:1
INFO: lockdep is turned off.
CPU: 5 PID: 4481 Comm: kworker/u16:1 Not tainted 4.7.0-0.rc7.git3.1.fc25.x86_64 #1
Hardware name: Dell Inc. Precision 5510/08R8KJ, BIOS 01.02.00 04/07/2016
Workqueue: events_unbound async_run_entry_fn
 0000000000000286 00000000bc983f54 ffff8803d3a9b960 ffffffff81458dd5
 ffff8801e8e0b340 ffffffff81c61003 ffff8803d3a9b988 ffffffff810dc3b9
 ffffffff81c61003 0000000000000ae2 0000000000000000 ffff8803d3a9b9b0
Call Trace:
 [<ffffffff81458dd5>] dump_stack+0x86/0xc1
 [<ffffffff810dc3b9>] ___might_sleep+0x179/0x230
 [<ffffffff810dc4b9>] __might_sleep+0x49/0x80
 [<ffffffff810cae35>] flush_work+0x75/0x320
 [<ffffffff810cadc5>] ? flush_work+0x5/0x320
 [<ffffffff81108207>] ? add_lock_to_list.isra.29.constprop.45+0x77/0xb0
 [<ffffffff8110ca4d>] ? __lock_acquire+0xc4d/0x1210
 [<ffffffff8110b8c6>] ? mark_held_locks+0x76/0xa0
 [<ffffffff810cd406>] ? __cancel_work_timer+0x136/0x210
 [<ffffffff810cd419>] __cancel_work_timer+0x149/0x210
 [<ffffffff8110b8c6>] ? mark_held_locks+0x76/0xa0
 [<ffffffff818da6cc>] ? _raw_spin_unlock_irq+0x2c/0x40
 [<ffffffff810cd4f0>] cancel_work_sync+0x10/0x20
 [<ffffffff8142e535>] blk_mq_cancel_requeue_work+0x15/0x20
 [<ffffffffc005a720>] nvme_stop_queues+0x90/0x190 [nvme_core]
 [<ffffffffc005a695>] ? nvme_stop_queues+0x5/0x190 [nvme_core]
 [<ffffffffc00f2f76>] nvme_dev_disable+0x76/0x340 [nvme]
 [<ffffffff8110b8c6>] ? mark_held_locks+0x76/0xa0
 [<ffffffff8110b9e5>] ? trace_hardirqs_on_caller+0xf5/0x1b0
 [<ffffffff8110baad>] ? trace_hardirqs_on+0xd/0x10
 [<ffffffffc00f325a>] nvme_suspend+0x1a/0x20 [nvme]
 [<ffffffff814b3818>] pci_pm_suspend+0x78/0x150
 [<ffffffff814b37a0>] ? pci_pm_freeze+0xf0/0xf0
 [<ffffffff815d37b2>] dpm_run_callback+0xb2/0x2d0
 [<ffffffff815d469a>] __device_suspend+0x13a/0x380
 [<ffffffff815d48ff>] async_suspend+0x1f/0xa0
 [<ffffffff810d792a>] async_run_entry_fn+0x4a/0x140
 [<ffffffff810cc2f2>] process_one_work+0x242/0x700
 [<ffffffff810cc26a>] ? process_one_work+0x1ba/0x700
 [<ffffffff810cc7fe>] worker_thread+0x4e/0x490
 [<ffffffff810cc7b0>] ? process_one_work+0x700/0x700
 [<ffffffff810d3be1>] kthread+0x101/0x120
 [<ffffffff8110b9e5>] ? trace_hardirqs_on_caller+0xf5/0x1b0
 [<ffffffff818db1ef>] ret_from_fork+0x1f/0x40
 [<ffffffff810d3ae0>] ? kthread_create_on_node+0x250/0x250
PM: suspend of devices complete after 1309.200 msecs

Comment 1 Laura Abbott 2018-04-06 18:12:50 UTC
Doing some pruning, this bug looks to be years old. Please test on a newer kernel and reopen if the problem still exists.


Note You need to log in before you can comment on or make changes to this bug.