syzbot


INFO: rcu detected stall in write_comp_data

Status: closed as invalid on 2019/08/23 00:21
Subsystems: fs
[Documentation on labels]
Reported-by: syzbot+de50612027760b3a87aa@syzkaller.appspotmail.com
First crash: 1937d, last: 1937d
Cause bisection: the cause commit could be any of (bisect log):
  2253efc850c4 blk-mq: Move more code into blk_mq_direct_issue_request()
  52d7f1b5c2f3 blk-mq: Avoid that requeueing starts stopped queues
  fd00144301d6 blk-mq: Introduce blk_mq_queue_stopped()
  5d1b25c1ecab blk-mq: Introduce blk_mq_hctx_stopped()
  9b7dd572cc43 blk-mq: Remove blk_mq_cancel_requeue_work()
  6a83e74d214a blk-mq: Introduce blk_mq_quiesce_queue()
  bc27c01b5c46 blk-mq: Do not invoke .queue_rq() for a stopped queue
  2b053aca76b4 blk-mq: Add a kick_requeue_list argument to blk_mq_requeue_request()
  2cefe4dbaadf block: add bio_iov_iter_get_pages()
  13edd5e7315a writeback: mark background writeback as such
  f0d33ab76cfc dm: Use BLK_MQ_S_STOPPED instead of QUEUE_FLAG_STOPPED in blk-mq code
  7637241e651e writeback: add wbc_to_write_flags()
  7b17c2f7292b dm: Fix a race condition related to stopping and starting queues
  1d796d6a9641 block: add REQ_BACKGROUND
  3174dd33fa83 nvme: Fix a race condition related to stopping queues
  7281b4526cef block: remove the CONFIG_BLOCK ifdef in blk_types.h
  a6eaa8849f92 nvme: Use BLK_MQ_S_STOPPED instead of QUEUE_FLAG_STOPPED in blk-mq code
  46f3cc176210 block: drop q argument from bsg_validate_sgv4_hdr
  be297968da22 mm: only include blk_types in swap.h if CONFIG_SWAP is enabled
  50d24c34403c block: immediately dispatch big size request
  9f0821712056 ceph: don't include blk_types.h in messenger.h
  600271d90000 blk-mq: immediately dispatch big size request
  fe8ecc86fa83 arm, arm64: don't include blk_types.h in <asm/io.h>
  2f8b544477e6 block,fs: untangle fs.h and blk_types.h
  d278d4a8892f block: add code to track actual device queue depth
  1e3914d4cf4e block, fs: move submit_bio to bio.h
  c02ebfdddbaf blk-mq: Always schedule hctx->next_cpu
  d38499530e5f fs: decouple READ and WRITE from the block layer ops
  feebd5687257 pktcdvd: don't scribble over the bvec array
  180b0ae77d49 skd: use pci_alloc_irq_vectors
  70fd76140a6c block,fs: use REQ_* flags directly
  8e1de26cd5db skd_main: use %*ph to dump small buffers
  a2b809672ee6 block: replace REQ_NOIDLE with REQ_IDLE
  b57d74aff9ab writeback: track if we're sleeping on progress in balance_dirty_pages()
  b685d3d65ac7 block: treat REQ_FUA and REQ_PREFLUSH as synchronous
  ae5b2ec8ad5e block: set REQ_SYNC if we clear REQ_FUA|REQ_PREFLUSH
  
Discussions (1)
Title Replies (including bot) Last reply
INFO: rcu detected stall in write_comp_data 0 (1) 2019/06/24 07:27
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-4.19 INFO: rcu detected stall in write_comp_data 1 1627d 1627d 0/1 auto-closed as invalid on 2020/08/25 07:05

Sample crash report:
rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
	(detected by 1, t=10502 jiffies, g=7925, q=38)
rcu: All QSes seen, last rcu_preempt kthread activity 10503 (4295059525-4295049022), jiffies_till_next_fqs=1, root ->qsmask 0x0
syz-executor151 R  running task    26832  8885   8881 0x00004000
Call Trace:
 <IRQ>
 sched_show_task kernel/sched/core.c:5286 [inline]
 sched_show_task.cold+0x291/0x2fc kernel/sched/core.c:5261
 print_other_cpu_stall kernel/rcu/tree_stall.h:410 [inline]
 check_cpu_stall kernel/rcu/tree_stall.h:536 [inline]
 rcu_pending kernel/rcu/tree.c:2625 [inline]
 rcu_sched_clock_irq.cold+0xaaf/0xbfd kernel/rcu/tree.c:2161
 update_process_times+0x32/0x80 kernel/time/timer.c:1639
 tick_sched_handle+0xa2/0x190 kernel/time/tick-sched.c:167
 tick_sched_timer+0x47/0x130 kernel/time/tick-sched.c:1298
 __run_hrtimer kernel/time/hrtimer.c:1389 [inline]
 __hrtimer_run_queues+0x33b/0xdd0 kernel/time/hrtimer.c:1451
 hrtimer_interrupt+0x314/0x770 kernel/time/hrtimer.c:1509
 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1041 [inline]
 smp_apic_timer_interrupt+0x111/0x550 arch/x86/kernel/apic/apic.c:1066
 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:806
 </IRQ>
RIP: 0010:preempt_count arch/x86/include/asm/preempt.h:26 [inline]
RIP: 0010:check_kcov_mode kernel/kcov.c:68 [inline]
RIP: 0010:write_comp_data+0x9/0x70 kernel/kcov.c:123
Code: 12 00 00 8b 80 e4 12 00 00 48 8b 11 48 83 c2 01 48 39 d0 76 07 48 89 34 d1 48 89 11 5d c3 0f 1f 00 65 4c 8b 04 25 c0 fd 01 00 <65> 8b 05 f8 3b 91 7e a9 00 01 1f 00 75 51 41 8b 80 e0 12 00 00 83
RSP: 0018:ffff88808d9ef760 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
RAX: dffffc0000000000 RBX: ffff88808d9ef848 RCX: ffffffff81b1c7ca
RDX: 0000000000000001 RSI: 0000000000000000 RDI: 0000000000000005
RBP: ffff88808d9ef768 R08: ffff88808421e080 R09: 0000000000000002
R10: ffffed1015d26c6f R11: ffff8880ae93637b R12: ffffffff877b6360
R13: 0000000003826ffc R14: 0000000000000001 R15: 0000000000000000
 do_iter_readv_writev+0x5ba/0x8f0 fs/read_write.c:690
 do_iter_write fs/read_write.c:970 [inline]
 do_iter_write+0x184/0x610 fs/read_write.c:951
 vfs_iter_write+0x77/0xb0 fs/read_write.c:983
 iter_file_splice_write+0x65c/0xbd0 fs/splice.c:746
 do_splice_from fs/splice.c:848 [inline]
 direct_splice_actor+0x123/0x190 fs/splice.c:1020
 splice_direct_to_actor+0x366/0x970 fs/splice.c:975
 do_splice_direct+0x1da/0x2a0 fs/splice.c:1063
 do_sendfile+0x597/0xd00 fs/read_write.c:1464
 __do_sys_sendfile64 fs/read_write.c:1519 [inline]
 __se_sys_sendfile64 fs/read_write.c:1511 [inline]
 __x64_sys_sendfile64+0x15a/0x220 fs/read_write.c:1511
 do_syscall_64+0xfd/0x680 arch/x86/entry/common.c:301
 entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x4417c9
Code: e8 7c e7 ff ff 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 bb 07 fc ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007ffee86956c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00007ffee8695870 RCX: 00000000004417c9
RDX: 0000000020000000 RSI: 0000000000000003 RDI: 0000000000000003
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 00008080fffffffe R11: 0000000000000246 R12: 0000000000000000
R13: 00000000004024a0 R14: 0000000000000000 R15: 0000000000000000
rcu: rcu_preempt kthread starved for 10548 jiffies! g7925 f0x2 RCU_GP_WAIT_FQS(5) ->state=0x0 ->cpu=1
rcu: RCU grace-period kthread stack dump:
rcu_preempt     R  running task    29056    10      2 0x80004000
Call Trace:
 context_switch kernel/sched/core.c:2818 [inline]
 __schedule+0x7cb/0x1560 kernel/sched/core.c:3445
 schedule+0xa8/0x260 kernel/sched/core.c:3509
 schedule_timeout+0x486/0xc50 kernel/time/timer.c:1807
 rcu_gp_fqs_loop kernel/rcu/tree.c:1589 [inline]
 rcu_gp_kthread+0x9b2/0x18b0 kernel/rcu/tree.c:1746
 kthread+0x354/0x420 kernel/kthread.c:255
 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/06/22 12:59 upstream abf02e2964b3 34bf9440 .config console log report syz C ci-upstream-kasan-gce-root
* Struck through repros no longer work on HEAD.