* inconsistent lock state in fs_reclaim_acquire (2)
@ 2018-05-10 5:57 syzbot
2018-05-10 6:30 ` Dmitry Vyukov
0 siblings, 1 reply; 3+ messages in thread
From: syzbot @ 2018-05-10 5:57 UTC (permalink / raw)
To: adobriyan, akpm, jpoimboe, lauraa, linux-kernel, linux, mingo,
peterz, rostedt, syzkaller-bugs, tglx, thomas.lendacky
Hello,
syzbot found the following crash on:
HEAD commit: 036db8bd9637 Merge branch 'for-4.17-fixes' of git://git.ke..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=146dab5b800000
kernel config: https://syzkaller.appspot.com/x/.config?x=31f4b3733894ef79
dashboard link: https://syzkaller.appspot.com/bug?extid=63833431f68be871fb95
compiler: gcc (GCC) 8.0.1 20180413 (experimental)
Unfortunately, I don't have any reproducer for this crash yet.
IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+63833431f68be871fb95@syzkaller.appspotmail.com
================================
WARNING: inconsistent lock state
4.17.0-rc4+ #39 Not tainted
--------------------------------
inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
syz-executor3/10560 [HC0[0]:SC1[1]:HE1:SE0] takes:
EXT4-fs (sda1): re-mounted. Opts: minixdf,
000000001180cb72 (fs_reclaim){+.?.}, at:
fs_reclaim_acquire.part.82+0x0/0x30 mm/page_alloc.c:463
{SOFTIRQ-ON-W} state was registered at:
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
fs_reclaim_acquire.part.82+0x24/0x30 mm/page_alloc.c:3739
fs_reclaim_acquire+0x14/0x20 mm/page_alloc.c:3740
slab_pre_alloc_hook mm/slab.h:418 [inline]
slab_alloc_node mm/slab.c:3299 [inline]
kmem_cache_alloc_node_trace+0x39/0x770 mm/slab.c:3661
kmalloc_node include/linux/slab.h:550 [inline]
kzalloc_node include/linux/slab.h:712 [inline]
alloc_worker+0xbd/0x2e0 kernel/workqueue.c:1704
init_rescuer.part.25+0x1f/0x190 kernel/workqueue.c:4000
init_rescuer kernel/workqueue.c:3997 [inline]
workqueue_init+0x51f/0x7d0 kernel/workqueue.c:5732
kernel_init_freeable+0x2ad/0x58e init/main.c:1115
kernel_init+0x11/0x1b3 init/main.c:1053
ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412
irq event stamp: 8616
hardirqs last enabled at (8616): [<ffffffff876ef414>]
__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline]
hardirqs last enabled at (8616): [<ffffffff876ef414>]
_raw_spin_unlock_irqrestore+0x74/0xc0 kernel/locking/spinlock.c:184
hardirqs last disabled at (8615): [<ffffffff876ef4d4>]
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:108 [inline]
hardirqs last disabled at (8615): [<ffffffff876ef4d4>]
_raw_spin_lock_irqsave+0x74/0xc0 kernel/locking/spinlock.c:152
softirqs last enabled at (7446): [<ffffffff87a00778>]
__do_softirq+0x778/0xaf5 kernel/softirq.c:311
softirqs last disabled at (8601): [<ffffffff81476281>] invoke_softirq
kernel/softirq.c:365 [inline]
softirqs last disabled at (8601): [<ffffffff81476281>] irq_exit+0x1d1/0x200
kernel/softirq.c:405
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(fs_reclaim);
<Interrupt>
lock(fs_reclaim);
*** DEADLOCK ***
2 locks held by syz-executor3/10560:
#0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at: spin_lock
include/linux/spinlock.h:310 [inline]
#0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at:
zap_pte_range mm/memory.c:1298 [inline]
#0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at:
zap_pmd_range mm/memory.c:1441 [inline]
#0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at:
zap_pud_range mm/memory.c:1470 [inline]
#0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at:
zap_p4d_range mm/memory.c:1491 [inline]
#0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at:
unmap_page_range+0x99b/0x2200 mm/memory.c:1512
#1: 00000000bbb25b9d (rcu_callback){....}, at: __rcu_reclaim
kernel/rcu/rcu.h:168 [inline]
#1: 00000000bbb25b9d (rcu_callback){....}, at: rcu_do_batch
kernel/rcu/tree.c:2675 [inline]
#1: 00000000bbb25b9d (rcu_callback){....}, at: invoke_rcu_callbacks
kernel/rcu/tree.c:2930 [inline]
#1: 00000000bbb25b9d (rcu_callback){....}, at: __rcu_process_callbacks
kernel/rcu/tree.c:2897 [inline]
#1: 00000000bbb25b9d (rcu_callback){....}, at:
rcu_process_callbacks+0xa2c/0x15f0 kernel/rcu/tree.c:2914
stack backtrace:
CPU: 0 PID: 10560 Comm: syz-executor3 Not tainted 4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
<IRQ>
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
print_usage_bug.cold.59+0x320/0x41a kernel/locking/lockdep.c:2542
valid_state kernel/locking/lockdep.c:2555 [inline]
mark_lock_irq kernel/locking/lockdep.c:2749 [inline]
mark_lock+0x1034/0x19e0 kernel/locking/lockdep.c:3147
mark_irqflags kernel/locking/lockdep.c:3025 [inline]
__lock_acquire+0x1622/0x5140 kernel/locking/lockdep.c:3388
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
fs_reclaim_acquire.part.82+0x24/0x30 mm/page_alloc.c:3739
fs_reclaim_acquire+0x14/0x20 mm/page_alloc.c:3740
slab_pre_alloc_hook mm/slab.h:418 [inline]
slab_alloc mm/slab.c:3378 [inline]
kmem_cache_alloc_trace+0x2d/0x780 mm/slab.c:3618
kmalloc include/linux/slab.h:512 [inline]
kzalloc include/linux/slab.h:701 [inline]
kobject_uevent_env+0x20f/0xea0 lib/kobject_uevent.c:446
kobject_uevent+0x1f/0x30 lib/kobject_uevent.c:568
kobject_cleanup lib/kobject.c:630 [inline]
kobject_release lib/kobject.c:672 [inline]
kref_put include/linux/kref.h:70 [inline]
kobject_put+0x1fb/0x280 lib/kobject.c:689
put_device+0x20/0x30 drivers/base/core.c:1940
delete_partition_rcu_cb+0x147/0x1b0 block/partition-generic.c:255
__rcu_reclaim kernel/rcu/rcu.h:178 [inline]
rcu_do_batch kernel/rcu/tree.c:2675 [inline]
invoke_rcu_callbacks kernel/rcu/tree.c:2930 [inline]
__rcu_process_callbacks kernel/rcu/tree.c:2897 [inline]
rcu_process_callbacks+0x941/0x15f0 kernel/rcu/tree.c:2914
__do_softirq+0x2e0/0xaf5 kernel/softirq.c:285
invoke_softirq kernel/softirq.c:365 [inline]
irq_exit+0x1d1/0x200 kernel/softirq.c:405
exiting_irq arch/x86/include/asm/apic.h:525 [inline]
smp_apic_timer_interrupt+0x17e/0x710 arch/x86/kernel/apic/apic.c:1052
apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:863
</IRQ>
RIP: 0010:constant_test_bit arch/x86/include/asm/bitops.h:328 [inline]
RIP: 0010:PageCompound include/linux/page-flags.h:156 [inline]
RIP: 0010:page_mapcount include/linux/mm.h:599 [inline]
RIP: 0010:zap_pte_range mm/memory.c:1338 [inline]
RIP: 0010:zap_pmd_range mm/memory.c:1441 [inline]
RIP: 0010:zap_pud_range mm/memory.c:1470 [inline]
RIP: 0010:zap_p4d_range mm/memory.c:1491 [inline]
RIP: 0010:unmap_page_range+0xf81/0x2200 mm/memory.c:1512
RSP: 0018:ffff8801b1b37020 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
RAX: 1ffffd4000c689b0 RBX: ffff8801c00f83b0 RCX: ffffffff81a70cc7
RDX: 0000000000000000 RSI: ffffffff81a70cd5 RDI: 0000000000000007
RBP: ffff8801b1b374b8 R08: ffff8801c7d8a0c0 R09: ffffed003b5c46c2
R10: 0000000000000003 R11: 0000000000000001 R12: ffffea0006344d80
R13: 00007fdf01277000 R14: dffffc0000000000 R15: 0000000000000000
unmap_single_vma+0x1a0/0x310 mm/memory.c:1557
unmap_vmas+0x120/0x1f0 mm/memory.c:1587
exit_mmap+0x265/0x570 mm/mmap.c:3047
__mmput kernel/fork.c:961 [inline]
mmput+0x251/0x610 kernel/fork.c:982
exit_mm kernel/exit.c:544 [inline]
do_exit+0xe98/0x2730 kernel/exit.c:852
do_group_exit+0x16f/0x430 kernel/exit.c:968
__do_sys_exit_group kernel/exit.c:979 [inline]
__se_sys_exit_group kernel/exit.c:977 [inline]
__x64_sys_exit_group+0x3e/0x50 kernel/exit.c:977
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007ffd9fd2e388 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
RAX: ffffffffffffffda RBX: 0000000000000079 RCX: 0000000000455979
RDX: 0000000000000000 RSI: 0000000000730a80 RDI: 0000000000000000
RBP: 0000000000000013 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000013
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000001380
BUG: sleeping function called from invalid context at mm/slab.h:421
in_atomic(): 1, irqs_disabled(): 0, pid: 10560, name: syz-executor3
INFO: lockdep is turned off.
CPU: 0 PID: 10560 Comm: syz-executor3 Not tainted 4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
<IRQ>
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
FAULT_INJECTION: forcing a failure.
name fail_page_alloc, interval 1, probability 0, space 0, times 0
___might_sleep.cold.87+0x11f/0x13a kernel/sched/core.c:6188
__might_sleep+0x95/0x190 kernel/sched/core.c:6141
slab_pre_alloc_hook mm/slab.h:421 [inline]
slab_alloc mm/slab.c:3378 [inline]
kmem_cache_alloc_trace+0x2bc/0x780 mm/slab.c:3618
kmalloc include/linux/slab.h:512 [inline]
kzalloc include/linux/slab.h:701 [inline]
kobject_uevent_env+0x20f/0xea0 lib/kobject_uevent.c:446
kobject_uevent+0x1f/0x30 lib/kobject_uevent.c:568
kobject_cleanup lib/kobject.c:630 [inline]
kobject_release lib/kobject.c:672 [inline]
kref_put include/linux/kref.h:70 [inline]
kobject_put+0x1fb/0x280 lib/kobject.c:689
put_device+0x20/0x30 drivers/base/core.c:1940
delete_partition_rcu_cb+0x147/0x1b0 block/partition-generic.c:255
__rcu_reclaim kernel/rcu/rcu.h:178 [inline]
rcu_do_batch kernel/rcu/tree.c:2675 [inline]
invoke_rcu_callbacks kernel/rcu/tree.c:2930 [inline]
__rcu_process_callbacks kernel/rcu/tree.c:2897 [inline]
rcu_process_callbacks+0x941/0x15f0 kernel/rcu/tree.c:2914
__do_softirq+0x2e0/0xaf5 kernel/softirq.c:285
invoke_softirq kernel/softirq.c:365 [inline]
irq_exit+0x1d1/0x200 kernel/softirq.c:405
exiting_irq arch/x86/include/asm/apic.h:525 [inline]
smp_apic_timer_interrupt+0x17e/0x710 arch/x86/kernel/apic/apic.c:1052
apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:863
</IRQ>
RIP: 0010:constant_test_bit arch/x86/include/asm/bitops.h:328 [inline]
RIP: 0010:PageCompound include/linux/page-flags.h:156 [inline]
RIP: 0010:page_mapcount include/linux/mm.h:599 [inline]
RIP: 0010:zap_pte_range mm/memory.c:1338 [inline]
RIP: 0010:zap_pmd_range mm/memory.c:1441 [inline]
RIP: 0010:zap_pud_range mm/memory.c:1470 [inline]
RIP: 0010:zap_p4d_range mm/memory.c:1491 [inline]
RIP: 0010:unmap_page_range+0xf81/0x2200 mm/memory.c:1512
RSP: 0018:ffff8801b1b37020 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
RAX: 1ffffd4000c689b0 RBX: ffff8801c00f83b0 RCX: ffffffff81a70cc7
RDX: 0000000000000000 RSI: ffffffff81a70cd5 RDI: 0000000000000007
RBP: ffff8801b1b374b8 R08: ffff8801c7d8a0c0 R09: ffffed003b5c46c2
R10: 0000000000000003 R11: 0000000000000001 R12: ffffea0006344d80
R13: 00007fdf01277000 R14: dffffc0000000000 R15: 0000000000000000
unmap_single_vma+0x1a0/0x310 mm/memory.c:1557
unmap_vmas+0x120/0x1f0 mm/memory.c:1587
exit_mmap+0x265/0x570 mm/mmap.c:3047
__mmput kernel/fork.c:961 [inline]
mmput+0x251/0x610 kernel/fork.c:982
exit_mm kernel/exit.c:544 [inline]
do_exit+0xe98/0x2730 kernel/exit.c:852
do_group_exit+0x16f/0x430 kernel/exit.c:968
__do_sys_exit_group kernel/exit.c:979 [inline]
__se_sys_exit_group kernel/exit.c:977 [inline]
__x64_sys_exit_group+0x3e/0x50 kernel/exit.c:977
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007ffd9fd2e388 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
RAX: ffffffffffffffda RBX: 0000000000000079 RCX: 0000000000455979
RDX: 0000000000000000 RSI: 0000000000730a80 RDI: 0000000000000000
RBP: 0000000000000013 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000013
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000001380
CPU: 1 PID: 10615 Comm: syz-executor6 Not tainted 4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
fail_dump lib/fault-inject.c:51 [inline]
should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
should_fail_alloc_page mm/page_alloc.c:3082 [inline]
prepare_alloc_pages mm/page_alloc.c:4322 [inline]
__alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
__alloc_pages include/linux/gfp.h:456 [inline]
__alloc_pages_node include/linux/gfp.h:469 [inline]
kmem_getpages mm/slab.c:1411 [inline]
cache_grow_begin+0x72/0x6c0 mm/slab.c:2678
cache_alloc_refill mm/slab.c:3045 [inline]
____cache_alloc mm/slab.c:3127 [inline]
__do_cache_alloc mm/slab.c:3349 [inline]
slab_alloc mm/slab.c:3384 [inline]
kmem_cache_alloc+0x689/0x760 mm/slab.c:3552
bdev_alloc_inode+0x1b/0x40 fs/block_dev.c:727
alloc_inode+0x63/0x190 fs/inode.c:209
iget5_locked+0x20e/0x570 fs/inode.c:1045
bdget+0xb1/0x5c0 fs/block_dev.c:868
blkpg_ioctl+0x31d/0xc40 block/ioctl.c:77
blkdev_ioctl+0x1753/0x2020 block/ioctl.c:573
block_ioctl+0xee/0x130 fs/block_dev.c:1877
vfs_ioctl fs/ioctl.c:46 [inline]
file_ioctl fs/ioctl.c:500 [inline]
do_vfs_ioctl+0x1cf/0x16a0 fs/ioctl.c:684
ksys_ioctl+0xa9/0xd0 fs/ioctl.c:701
__do_sys_ioctl fs/ioctl.c:708 [inline]
__se_sys_ioctl fs/ioctl.c:706 [inline]
__x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:706
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007f35a9be2c68 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f35a9be36d4 RCX: 0000000000455979
RDX: 0000000020000180 RSI: 0000000000001269 RDI: 0000000000000013
RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000014
R13: 00000000000001a8 R14: 00000000006f6860 R15: 0000000000000001
FAULT_INJECTION: forcing a failure.
name fail_page_alloc, interval 1, probability 0, space 0, times 0
CPU: 1 PID: 10662 Comm: syz-executor6 Tainted: G W
4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
fail_dump lib/fault-inject.c:51 [inline]
should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
should_fail_alloc_page mm/page_alloc.c:3082 [inline]
prepare_alloc_pages mm/page_alloc.c:4322 [inline]
__alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
__alloc_pages include/linux/gfp.h:456 [inline]
__alloc_pages_node include/linux/gfp.h:469 [inline]
kmem_getpages mm/slab.c:1411 [inline]
cache_grow_begin+0x72/0x6c0 mm/slab.c:2678
cache_alloc_refill mm/slab.c:3045 [inline]
____cache_alloc mm/slab.c:3127 [inline]
__do_cache_alloc mm/slab.c:3349 [inline]
slab_alloc mm/slab.c:3384 [inline]
kmem_cache_alloc_trace+0x6a5/0x780 mm/slab.c:3618
kmalloc include/linux/slab.h:512 [inline]
kzalloc include/linux/slab.h:701 [inline]
kobject_uevent_env+0x20f/0xea0 lib/kobject_uevent.c:446
kobject_uevent+0x1f/0x30 lib/kobject_uevent.c:568
device_del+0x6c9/0xb70 drivers/base/core.c:2007
delete_partition+0x21d/0x2a0 block/partition-generic.c:284
blkpg_ioctl+0x3c5/0xc40 block/ioctl.c:93
blkdev_ioctl+0x1753/0x2020 block/ioctl.c:573
block_ioctl+0xee/0x130 fs/block_dev.c:1877
vfs_ioctl fs/ioctl.c:46 [inline]
file_ioctl fs/ioctl.c:500 [inline]
do_vfs_ioctl+0x1cf/0x16a0 fs/ioctl.c:684
ksys_ioctl+0xa9/0xd0 fs/ioctl.c:701
__do_sys_ioctl fs/ioctl.c:708 [inline]
__se_sys_ioctl fs/ioctl.c:706 [inline]
__x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:706
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007f35a9be2c68 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f35a9be36d4 RCX: 0000000000455979
RDX: 0000000020000180 RSI: 0000000000001269 RDI: 0000000000000013
RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000014
R13: 00000000000001a8 R14: 00000000006f6860 R15: 0000000000000002
FAULT_INJECTION: forcing a failure.
name failslab, interval 1, probability 0, space 0, times 0
CPU: 0 PID: 11012 Comm: syz-executor2 Tainted: G W
4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
fail_dump lib/fault-inject.c:51 [inline]
should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
__should_failslab+0x124/0x180 mm/failslab.c:32
should_failslab+0x9/0x14 mm/slab_common.c:1522
slab_pre_alloc_hook mm/slab.h:423 [inline]
slab_alloc mm/slab.c:3378 [inline]
kmem_cache_alloc_trace+0x2cb/0x780 mm/slab.c:3618
kmalloc include/linux/slab.h:512 [inline]
kzalloc include/linux/slab.h:701 [inline]
alloc_pipe_info+0x16d/0x580 fs/pipe.c:633
splice_direct_to_actor+0x6e7/0x8d0 fs/splice.c:920
do_splice_direct+0x2cc/0x400 fs/splice.c:1061
do_sendfile+0x60f/0xe00 fs/read_write.c:1440
__do_sys_sendfile64 fs/read_write.c:1495 [inline]
__se_sys_sendfile64 fs/read_write.c:1487 [inline]
__x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000000
FAULT_INJECTION: forcing a failure.
name fail_page_alloc, interval 1, probability 0, space 0, times 0
CPU: 0 PID: 11055 Comm: syz-executor2 Tainted: G W
4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
fail_dump lib/fault-inject.c:51 [inline]
should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
should_fail_alloc_page mm/page_alloc.c:3082 [inline]
prepare_alloc_pages mm/page_alloc.c:4322 [inline]
__alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
__alloc_pages include/linux/gfp.h:456 [inline]
__alloc_pages_node include/linux/gfp.h:469 [inline]
kmem_getpages mm/slab.c:1411 [inline]
cache_grow_begin+0x72/0x6c0 mm/slab.c:2678
cache_alloc_refill mm/slab.c:3045 [inline]
____cache_alloc mm/slab.c:3127 [inline]
__do_cache_alloc mm/slab.c:3349 [inline]
slab_alloc mm/slab.c:3384 [inline]
kmem_cache_alloc_trace+0x6a5/0x780 mm/slab.c:3618
kmalloc include/linux/slab.h:512 [inline]
kzalloc include/linux/slab.h:701 [inline]
alloc_pipe_info+0x16d/0x580 fs/pipe.c:633
splice_direct_to_actor+0x6e7/0x8d0 fs/splice.c:920
do_splice_direct+0x2cc/0x400 fs/splice.c:1061
do_sendfile+0x60f/0xe00 fs/read_write.c:1440
__do_sys_sendfile64 fs/read_write.c:1495 [inline]
__se_sys_sendfile64 fs/read_write.c:1487 [inline]
__x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000001
FAULT_INJECTION: forcing a failure.
name failslab, interval 1, probability 0, space 0, times 0
CPU: 0 PID: 11101 Comm: syz-executor2 Tainted: G W
4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
fail_dump lib/fault-inject.c:51 [inline]
should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
__should_failslab+0x124/0x180 mm/failslab.c:32
should_failslab+0x9/0x14 mm/slab_common.c:1522
slab_pre_alloc_hook mm/slab.h:423 [inline]
slab_alloc_node mm/slab.c:3299 [inline]
kmem_cache_alloc_node_trace+0x26f/0x770 mm/slab.c:3661
__do_kmalloc_node mm/slab.c:3681 [inline]
__kmalloc_node+0x33/0x70 mm/slab.c:3689
kmalloc_node include/linux/slab.h:554 [inline]
kvmalloc_node+0x6b/0x100 mm/util.c:421
kvmalloc include/linux/mm.h:550 [inline]
kvmalloc_array include/linux/mm.h:566 [inline]
get_pages_array lib/iov_iter.c:1097 [inline]
pipe_get_pages_alloc lib/iov_iter.c:1123 [inline]
iov_iter_get_pages_alloc+0x7be/0x14e0 lib/iov_iter.c:1144
default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
do_splice_to+0x12e/0x190 fs/splice.c:880
splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
do_splice_direct+0x2cc/0x400 fs/splice.c:1061
do_sendfile+0x60f/0xe00 fs/read_write.c:1440
__do_sys_sendfile64 fs/read_write.c:1495 [inline]
__se_sys_sendfile64 fs/read_write.c:1487 [inline]
__x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000002
FAULT_INJECTION: forcing a failure.
name fail_page_alloc, interval 1, probability 0, space 0, times 0
CPU: 0 PID: 11156 Comm: syz-executor2 Tainted: G W
4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
fail_dump lib/fault-inject.c:51 [inline]
should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
should_fail_alloc_page mm/page_alloc.c:3082 [inline]
prepare_alloc_pages mm/page_alloc.c:4322 [inline]
__alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
alloc_pages include/linux/gfp.h:492 [inline]
push_pipe+0x400/0x7a0 lib/iov_iter.c:515
__pipe_get_pages lib/iov_iter.c:1022 [inline]
pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
do_splice_to+0x12e/0x190 fs/splice.c:880
splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
do_splice_direct+0x2cc/0x400 fs/splice.c:1061
do_sendfile+0x60f/0xe00 fs/read_write.c:1440
__do_sys_sendfile64 fs/read_write.c:1495 [inline]
__se_sys_sendfile64 fs/read_write.c:1487 [inline]
__x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000003
FAULT_INJECTION: forcing a failure.
name fail_page_alloc, interval 1, probability 0, space 0, times 0
CPU: 0 PID: 11181 Comm: syz-executor2 Tainted: G W
4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
fail_dump lib/fault-inject.c:51 [inline]
should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
should_fail_alloc_page mm/page_alloc.c:3082 [inline]
prepare_alloc_pages mm/page_alloc.c:4322 [inline]
__alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
alloc_pages include/linux/gfp.h:492 [inline]
push_pipe+0x400/0x7a0 lib/iov_iter.c:515
__pipe_get_pages lib/iov_iter.c:1022 [inline]
pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
do_splice_to+0x12e/0x190 fs/splice.c:880
splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
do_splice_direct+0x2cc/0x400 fs/splice.c:1061
do_sendfile+0x60f/0xe00 fs/read_write.c:1440
__do_sys_sendfile64 fs/read_write.c:1495 [inline]
__se_sys_sendfile64 fs/read_write.c:1487 [inline]
__x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000004
FAULT_INJECTION: forcing a failure.
name fail_page_alloc, interval 1, probability 0, space 0, times 0
CPU: 0 PID: 11208 Comm: syz-executor2 Tainted: G W
4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
fail_dump lib/fault-inject.c:51 [inline]
should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
should_fail_alloc_page mm/page_alloc.c:3082 [inline]
prepare_alloc_pages mm/page_alloc.c:4322 [inline]
__alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
alloc_pages include/linux/gfp.h:492 [inline]
push_pipe+0x400/0x7a0 lib/iov_iter.c:515
__pipe_get_pages lib/iov_iter.c:1022 [inline]
pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
do_splice_to+0x12e/0x190 fs/splice.c:880
splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
do_splice_direct+0x2cc/0x400 fs/splice.c:1061
do_sendfile+0x60f/0xe00 fs/read_write.c:1440
__do_sys_sendfile64 fs/read_write.c:1495 [inline]
__se_sys_sendfile64 fs/read_write.c:1487 [inline]
__x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000005
FAULT_INJECTION: forcing a failure.
name fail_page_alloc, interval 1, probability 0, space 0, times 0
CPU: 0 PID: 11251 Comm: syz-executor2 Tainted: G W
4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
fail_dump lib/fault-inject.c:51 [inline]
should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
should_fail_alloc_page mm/page_alloc.c:3082 [inline]
prepare_alloc_pages mm/page_alloc.c:4322 [inline]
__alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
alloc_pages include/linux/gfp.h:492 [inline]
push_pipe+0x400/0x7a0 lib/iov_iter.c:515
__pipe_get_pages lib/iov_iter.c:1022 [inline]
pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
do_splice_to+0x12e/0x190 fs/splice.c:880
splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
do_splice_direct+0x2cc/0x400 fs/splice.c:1061
do_sendfile+0x60f/0xe00 fs/read_write.c:1440
__do_sys_sendfile64 fs/read_write.c:1495 [inline]
__se_sys_sendfile64 fs/read_write.c:1487 [inline]
__x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000006
FAULT_INJECTION: forcing a failure.
name fail_page_alloc, interval 1, probability 0, space 0, times 0
CPU: 1 PID: 11321 Comm: syz-executor2 Tainted: G W
4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
fail_dump lib/fault-inject.c:51 [inline]
should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
should_fail_alloc_page mm/page_alloc.c:3082 [inline]
prepare_alloc_pages mm/page_alloc.c:4322 [inline]
__alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
alloc_pages include/linux/gfp.h:492 [inline]
push_pipe+0x400/0x7a0 lib/iov_iter.c:515
__pipe_get_pages lib/iov_iter.c:1022 [inline]
pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
do_splice_to+0x12e/0x190 fs/splice.c:880
splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
do_splice_direct+0x2cc/0x400 fs/splice.c:1061
do_sendfile+0x60f/0xe00 fs/read_write.c:1440
__do_sys_sendfile64 fs/read_write.c:1495 [inline]
__se_sys_sendfile64 fs/read_write.c:1487 [inline]
__x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000007
FAULT_INJECTION: forcing a failure.
name fail_page_alloc, interval 1, probability 0, space 0, times 0
CPU: 1 PID: 11367 Comm: syz-executor2 Tainted: G W
4.17.0-rc4+ #39
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
fail_dump lib/fault-inject.c:51 [inline]
should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
should_fail_alloc_page mm/page_alloc.c:3082 [inline]
prepare_alloc_pages mm/page_alloc.c:4322 [inline]
__alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
alloc_pages include/linux/gfp.h:492 [inline]
push_pipe+0x400/0x7a0 lib/iov_iter.c:515
__pipe_get_pages lib/iov_iter.c:1022 [inline]
pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
do_splice_to+0x12e/0x190 fs/splice.c:880
splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
do_splice_direct+0x2cc/0x400 fs/splice.c:1061
do_sendfile+0x60f/0xe00 fs/read_write.c:1440
__do_sys_sendfile64 fs/read_write.c:1495 [inline]
__se_sys_sendfile64 fs/read_write.c:1487 [inline]
__x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x455979
RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000008
---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.
syzbot will keep track of this bug report.
If you forgot to add the Reported-by tag, once the fix for this bug is
merged
into any tree, please reply to this email with:
#syz fix: exact-commit-title
To mark this as a duplicate of another syzbot report, please reply with:
#syz dup: exact-subject-of-another-report
If it's a one-off invalid bug report, please reply with:
#syz invalid
Note: if the crash happens again, it will cause creation of a new bug
report.
Note: all commands must start from beginning of the line in the email body.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: inconsistent lock state in fs_reclaim_acquire (2)
2018-05-10 5:57 inconsistent lock state in fs_reclaim_acquire (2) syzbot
@ 2018-05-10 6:30 ` Dmitry Vyukov
2018-05-10 6:37 ` Tetsuo Handa
0 siblings, 1 reply; 3+ messages in thread
From: Dmitry Vyukov @ 2018-05-10 6:30 UTC (permalink / raw)
To: syzbot, Tetsuo Handa, Jens Axboe, linux-block
Cc: Alexey Dobriyan, Andrew Morton, Josh Poimboeuf, Laura Abbott,
LKML, linux, Ingo Molnar, Peter Zijlstra, Steven Rostedt,
syzkaller-bugs, Thomas Gleixner, thomas.lendacky
On Thu, May 10, 2018 at 7:57 AM, syzbot
<syzbot+63833431f68be871fb95@syzkaller.appspotmail.com> wrote:
> Hello,
>
> syzbot found the following crash on:
>
> HEAD commit: 036db8bd9637 Merge branch 'for-4.17-fixes' of git://git.ke..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=146dab5b800000
> kernel config: https://syzkaller.appspot.com/x/.config?x=31f4b3733894ef79
> dashboard link: https://syzkaller.appspot.com/bug?extid=63833431f68be871fb95
> compiler: gcc (GCC) 8.0.1 20180413 (experimental)
>
> Unfortunately, I don't have any reproducer for this crash yet.
>
> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+63833431f68be871fb95@syzkaller.appspotmail.com
Tetsuo thinks this is block layer problem.
+block maintainers
> ================================
> WARNING: inconsistent lock state
> 4.17.0-rc4+ #39 Not tainted
> --------------------------------
> inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
> syz-executor3/10560 [HC0[0]:SC1[1]:HE1:SE0] takes:
> EXT4-fs (sda1): re-mounted. Opts: minixdf,
> 000000001180cb72 (fs_reclaim){+.?.}, at: fs_reclaim_acquire.part.82+0x0/0x30
> mm/page_alloc.c:463
> {SOFTIRQ-ON-W} state was registered at:
> lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
> fs_reclaim_acquire.part.82+0x24/0x30 mm/page_alloc.c:3739
> fs_reclaim_acquire+0x14/0x20 mm/page_alloc.c:3740
> slab_pre_alloc_hook mm/slab.h:418 [inline]
> slab_alloc_node mm/slab.c:3299 [inline]
> kmem_cache_alloc_node_trace+0x39/0x770 mm/slab.c:3661
> kmalloc_node include/linux/slab.h:550 [inline]
> kzalloc_node include/linux/slab.h:712 [inline]
> alloc_worker+0xbd/0x2e0 kernel/workqueue.c:1704
> init_rescuer.part.25+0x1f/0x190 kernel/workqueue.c:4000
> init_rescuer kernel/workqueue.c:3997 [inline]
> workqueue_init+0x51f/0x7d0 kernel/workqueue.c:5732
> kernel_init_freeable+0x2ad/0x58e init/main.c:1115
> kernel_init+0x11/0x1b3 init/main.c:1053
> ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412
> irq event stamp: 8616
> hardirqs last enabled at (8616): [<ffffffff876ef414>]
> __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline]
> hardirqs last enabled at (8616): [<ffffffff876ef414>]
> _raw_spin_unlock_irqrestore+0x74/0xc0 kernel/locking/spinlock.c:184
> hardirqs last disabled at (8615): [<ffffffff876ef4d4>]
> __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:108 [inline]
> hardirqs last disabled at (8615): [<ffffffff876ef4d4>]
> _raw_spin_lock_irqsave+0x74/0xc0 kernel/locking/spinlock.c:152
> softirqs last enabled at (7446): [<ffffffff87a00778>]
> __do_softirq+0x778/0xaf5 kernel/softirq.c:311
> softirqs last disabled at (8601): [<ffffffff81476281>] invoke_softirq
> kernel/softirq.c:365 [inline]
> softirqs last disabled at (8601): [<ffffffff81476281>] irq_exit+0x1d1/0x200
> kernel/softirq.c:405
>
> other info that might help us debug this:
> Possible unsafe locking scenario:
>
> CPU0
> ----
> lock(fs_reclaim);
> <Interrupt>
> lock(fs_reclaim);
>
> *** DEADLOCK ***
>
> 2 locks held by syz-executor3/10560:
> #0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at: spin_lock
> include/linux/spinlock.h:310 [inline]
> #0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at:
> zap_pte_range mm/memory.c:1298 [inline]
> #0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at:
> zap_pmd_range mm/memory.c:1441 [inline]
> #0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at:
> zap_pud_range mm/memory.c:1470 [inline]
> #0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at:
> zap_p4d_range mm/memory.c:1491 [inline]
> #0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at:
> unmap_page_range+0x99b/0x2200 mm/memory.c:1512
> #1: 00000000bbb25b9d (rcu_callback){....}, at: __rcu_reclaim
> kernel/rcu/rcu.h:168 [inline]
> #1: 00000000bbb25b9d (rcu_callback){....}, at: rcu_do_batch
> kernel/rcu/tree.c:2675 [inline]
> #1: 00000000bbb25b9d (rcu_callback){....}, at: invoke_rcu_callbacks
> kernel/rcu/tree.c:2930 [inline]
> #1: 00000000bbb25b9d (rcu_callback){....}, at: __rcu_process_callbacks
> kernel/rcu/tree.c:2897 [inline]
> #1: 00000000bbb25b9d (rcu_callback){....}, at:
> rcu_process_callbacks+0xa2c/0x15f0 kernel/rcu/tree.c:2914
>
> stack backtrace:
> CPU: 0 PID: 10560 Comm: syz-executor3 Not tainted 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> <IRQ>
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> print_usage_bug.cold.59+0x320/0x41a kernel/locking/lockdep.c:2542
> valid_state kernel/locking/lockdep.c:2555 [inline]
> mark_lock_irq kernel/locking/lockdep.c:2749 [inline]
> mark_lock+0x1034/0x19e0 kernel/locking/lockdep.c:3147
> mark_irqflags kernel/locking/lockdep.c:3025 [inline]
> __lock_acquire+0x1622/0x5140 kernel/locking/lockdep.c:3388
> lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
> fs_reclaim_acquire.part.82+0x24/0x30 mm/page_alloc.c:3739
> fs_reclaim_acquire+0x14/0x20 mm/page_alloc.c:3740
> slab_pre_alloc_hook mm/slab.h:418 [inline]
> slab_alloc mm/slab.c:3378 [inline]
> kmem_cache_alloc_trace+0x2d/0x780 mm/slab.c:3618
> kmalloc include/linux/slab.h:512 [inline]
> kzalloc include/linux/slab.h:701 [inline]
> kobject_uevent_env+0x20f/0xea0 lib/kobject_uevent.c:446
> kobject_uevent+0x1f/0x30 lib/kobject_uevent.c:568
> kobject_cleanup lib/kobject.c:630 [inline]
> kobject_release lib/kobject.c:672 [inline]
> kref_put include/linux/kref.h:70 [inline]
> kobject_put+0x1fb/0x280 lib/kobject.c:689
> put_device+0x20/0x30 drivers/base/core.c:1940
> delete_partition_rcu_cb+0x147/0x1b0 block/partition-generic.c:255
> __rcu_reclaim kernel/rcu/rcu.h:178 [inline]
> rcu_do_batch kernel/rcu/tree.c:2675 [inline]
> invoke_rcu_callbacks kernel/rcu/tree.c:2930 [inline]
> __rcu_process_callbacks kernel/rcu/tree.c:2897 [inline]
> rcu_process_callbacks+0x941/0x15f0 kernel/rcu/tree.c:2914
> __do_softirq+0x2e0/0xaf5 kernel/softirq.c:285
> invoke_softirq kernel/softirq.c:365 [inline]
> irq_exit+0x1d1/0x200 kernel/softirq.c:405
> exiting_irq arch/x86/include/asm/apic.h:525 [inline]
> smp_apic_timer_interrupt+0x17e/0x710 arch/x86/kernel/apic/apic.c:1052
> apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:863
> </IRQ>
> RIP: 0010:constant_test_bit arch/x86/include/asm/bitops.h:328 [inline]
> RIP: 0010:PageCompound include/linux/page-flags.h:156 [inline]
> RIP: 0010:page_mapcount include/linux/mm.h:599 [inline]
> RIP: 0010:zap_pte_range mm/memory.c:1338 [inline]
> RIP: 0010:zap_pmd_range mm/memory.c:1441 [inline]
> RIP: 0010:zap_pud_range mm/memory.c:1470 [inline]
> RIP: 0010:zap_p4d_range mm/memory.c:1491 [inline]
> RIP: 0010:unmap_page_range+0xf81/0x2200 mm/memory.c:1512
> RSP: 0018:ffff8801b1b37020 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
> RAX: 1ffffd4000c689b0 RBX: ffff8801c00f83b0 RCX: ffffffff81a70cc7
> RDX: 0000000000000000 RSI: ffffffff81a70cd5 RDI: 0000000000000007
> RBP: ffff8801b1b374b8 R08: ffff8801c7d8a0c0 R09: ffffed003b5c46c2
> R10: 0000000000000003 R11: 0000000000000001 R12: ffffea0006344d80
> R13: 00007fdf01277000 R14: dffffc0000000000 R15: 0000000000000000
> unmap_single_vma+0x1a0/0x310 mm/memory.c:1557
> unmap_vmas+0x120/0x1f0 mm/memory.c:1587
> exit_mmap+0x265/0x570 mm/mmap.c:3047
> __mmput kernel/fork.c:961 [inline]
> mmput+0x251/0x610 kernel/fork.c:982
> exit_mm kernel/exit.c:544 [inline]
> do_exit+0xe98/0x2730 kernel/exit.c:852
> do_group_exit+0x16f/0x430 kernel/exit.c:968
> __do_sys_exit_group kernel/exit.c:979 [inline]
> __se_sys_exit_group kernel/exit.c:977 [inline]
> __x64_sys_exit_group+0x3e/0x50 kernel/exit.c:977
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007ffd9fd2e388 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
> RAX: ffffffffffffffda RBX: 0000000000000079 RCX: 0000000000455979
> RDX: 0000000000000000 RSI: 0000000000730a80 RDI: 0000000000000000
> RBP: 0000000000000013 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000013
> R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000001380
> BUG: sleeping function called from invalid context at mm/slab.h:421
> in_atomic(): 1, irqs_disabled(): 0, pid: 10560, name: syz-executor3
> INFO: lockdep is turned off.
> CPU: 0 PID: 10560 Comm: syz-executor3 Not tainted 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> <IRQ>
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> FAULT_INJECTION: forcing a failure.
> name fail_page_alloc, interval 1, probability 0, space 0, times 0
> ___might_sleep.cold.87+0x11f/0x13a kernel/sched/core.c:6188
> __might_sleep+0x95/0x190 kernel/sched/core.c:6141
> slab_pre_alloc_hook mm/slab.h:421 [inline]
> slab_alloc mm/slab.c:3378 [inline]
> kmem_cache_alloc_trace+0x2bc/0x780 mm/slab.c:3618
> kmalloc include/linux/slab.h:512 [inline]
> kzalloc include/linux/slab.h:701 [inline]
> kobject_uevent_env+0x20f/0xea0 lib/kobject_uevent.c:446
> kobject_uevent+0x1f/0x30 lib/kobject_uevent.c:568
> kobject_cleanup lib/kobject.c:630 [inline]
> kobject_release lib/kobject.c:672 [inline]
> kref_put include/linux/kref.h:70 [inline]
> kobject_put+0x1fb/0x280 lib/kobject.c:689
> put_device+0x20/0x30 drivers/base/core.c:1940
> delete_partition_rcu_cb+0x147/0x1b0 block/partition-generic.c:255
> __rcu_reclaim kernel/rcu/rcu.h:178 [inline]
> rcu_do_batch kernel/rcu/tree.c:2675 [inline]
> invoke_rcu_callbacks kernel/rcu/tree.c:2930 [inline]
> __rcu_process_callbacks kernel/rcu/tree.c:2897 [inline]
> rcu_process_callbacks+0x941/0x15f0 kernel/rcu/tree.c:2914
> __do_softirq+0x2e0/0xaf5 kernel/softirq.c:285
> invoke_softirq kernel/softirq.c:365 [inline]
> irq_exit+0x1d1/0x200 kernel/softirq.c:405
> exiting_irq arch/x86/include/asm/apic.h:525 [inline]
> smp_apic_timer_interrupt+0x17e/0x710 arch/x86/kernel/apic/apic.c:1052
> apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:863
> </IRQ>
> RIP: 0010:constant_test_bit arch/x86/include/asm/bitops.h:328 [inline]
> RIP: 0010:PageCompound include/linux/page-flags.h:156 [inline]
> RIP: 0010:page_mapcount include/linux/mm.h:599 [inline]
> RIP: 0010:zap_pte_range mm/memory.c:1338 [inline]
> RIP: 0010:zap_pmd_range mm/memory.c:1441 [inline]
> RIP: 0010:zap_pud_range mm/memory.c:1470 [inline]
> RIP: 0010:zap_p4d_range mm/memory.c:1491 [inline]
> RIP: 0010:unmap_page_range+0xf81/0x2200 mm/memory.c:1512
> RSP: 0018:ffff8801b1b37020 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
> RAX: 1ffffd4000c689b0 RBX: ffff8801c00f83b0 RCX: ffffffff81a70cc7
> RDX: 0000000000000000 RSI: ffffffff81a70cd5 RDI: 0000000000000007
> RBP: ffff8801b1b374b8 R08: ffff8801c7d8a0c0 R09: ffffed003b5c46c2
> R10: 0000000000000003 R11: 0000000000000001 R12: ffffea0006344d80
> R13: 00007fdf01277000 R14: dffffc0000000000 R15: 0000000000000000
> unmap_single_vma+0x1a0/0x310 mm/memory.c:1557
> unmap_vmas+0x120/0x1f0 mm/memory.c:1587
> exit_mmap+0x265/0x570 mm/mmap.c:3047
> __mmput kernel/fork.c:961 [inline]
> mmput+0x251/0x610 kernel/fork.c:982
> exit_mm kernel/exit.c:544 [inline]
> do_exit+0xe98/0x2730 kernel/exit.c:852
> do_group_exit+0x16f/0x430 kernel/exit.c:968
> __do_sys_exit_group kernel/exit.c:979 [inline]
> __se_sys_exit_group kernel/exit.c:977 [inline]
> __x64_sys_exit_group+0x3e/0x50 kernel/exit.c:977
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007ffd9fd2e388 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
> RAX: ffffffffffffffda RBX: 0000000000000079 RCX: 0000000000455979
> RDX: 0000000000000000 RSI: 0000000000730a80 RDI: 0000000000000000
> RBP: 0000000000000013 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000013
> R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000001380
> CPU: 1 PID: 10615 Comm: syz-executor6 Not tainted 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> fail_dump lib/fault-inject.c:51 [inline]
> should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
> should_fail_alloc_page mm/page_alloc.c:3082 [inline]
> prepare_alloc_pages mm/page_alloc.c:4322 [inline]
> __alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
> __alloc_pages include/linux/gfp.h:456 [inline]
> __alloc_pages_node include/linux/gfp.h:469 [inline]
> kmem_getpages mm/slab.c:1411 [inline]
> cache_grow_begin+0x72/0x6c0 mm/slab.c:2678
> cache_alloc_refill mm/slab.c:3045 [inline]
> ____cache_alloc mm/slab.c:3127 [inline]
> __do_cache_alloc mm/slab.c:3349 [inline]
> slab_alloc mm/slab.c:3384 [inline]
> kmem_cache_alloc+0x689/0x760 mm/slab.c:3552
> bdev_alloc_inode+0x1b/0x40 fs/block_dev.c:727
> alloc_inode+0x63/0x190 fs/inode.c:209
> iget5_locked+0x20e/0x570 fs/inode.c:1045
> bdget+0xb1/0x5c0 fs/block_dev.c:868
> blkpg_ioctl+0x31d/0xc40 block/ioctl.c:77
> blkdev_ioctl+0x1753/0x2020 block/ioctl.c:573
> block_ioctl+0xee/0x130 fs/block_dev.c:1877
> vfs_ioctl fs/ioctl.c:46 [inline]
> file_ioctl fs/ioctl.c:500 [inline]
> do_vfs_ioctl+0x1cf/0x16a0 fs/ioctl.c:684
> ksys_ioctl+0xa9/0xd0 fs/ioctl.c:701
> __do_sys_ioctl fs/ioctl.c:708 [inline]
> __se_sys_ioctl fs/ioctl.c:706 [inline]
> __x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:706
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007f35a9be2c68 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> RAX: ffffffffffffffda RBX: 00007f35a9be36d4 RCX: 0000000000455979
> RDX: 0000000020000180 RSI: 0000000000001269 RDI: 0000000000000013
> RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000014
> R13: 00000000000001a8 R14: 00000000006f6860 R15: 0000000000000001
> FAULT_INJECTION: forcing a failure.
> name fail_page_alloc, interval 1, probability 0, space 0, times 0
> CPU: 1 PID: 10662 Comm: syz-executor6 Tainted: G W
> 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> fail_dump lib/fault-inject.c:51 [inline]
> should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
> should_fail_alloc_page mm/page_alloc.c:3082 [inline]
> prepare_alloc_pages mm/page_alloc.c:4322 [inline]
> __alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
> __alloc_pages include/linux/gfp.h:456 [inline]
> __alloc_pages_node include/linux/gfp.h:469 [inline]
> kmem_getpages mm/slab.c:1411 [inline]
> cache_grow_begin+0x72/0x6c0 mm/slab.c:2678
> cache_alloc_refill mm/slab.c:3045 [inline]
> ____cache_alloc mm/slab.c:3127 [inline]
> __do_cache_alloc mm/slab.c:3349 [inline]
> slab_alloc mm/slab.c:3384 [inline]
> kmem_cache_alloc_trace+0x6a5/0x780 mm/slab.c:3618
> kmalloc include/linux/slab.h:512 [inline]
> kzalloc include/linux/slab.h:701 [inline]
> kobject_uevent_env+0x20f/0xea0 lib/kobject_uevent.c:446
> kobject_uevent+0x1f/0x30 lib/kobject_uevent.c:568
> device_del+0x6c9/0xb70 drivers/base/core.c:2007
> delete_partition+0x21d/0x2a0 block/partition-generic.c:284
> blkpg_ioctl+0x3c5/0xc40 block/ioctl.c:93
> blkdev_ioctl+0x1753/0x2020 block/ioctl.c:573
> block_ioctl+0xee/0x130 fs/block_dev.c:1877
> vfs_ioctl fs/ioctl.c:46 [inline]
> file_ioctl fs/ioctl.c:500 [inline]
> do_vfs_ioctl+0x1cf/0x16a0 fs/ioctl.c:684
> ksys_ioctl+0xa9/0xd0 fs/ioctl.c:701
> __do_sys_ioctl fs/ioctl.c:708 [inline]
> __se_sys_ioctl fs/ioctl.c:706 [inline]
> __x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:706
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007f35a9be2c68 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> RAX: ffffffffffffffda RBX: 00007f35a9be36d4 RCX: 0000000000455979
> RDX: 0000000020000180 RSI: 0000000000001269 RDI: 0000000000000013
> RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000014
> R13: 00000000000001a8 R14: 00000000006f6860 R15: 0000000000000002
> FAULT_INJECTION: forcing a failure.
> name failslab, interval 1, probability 0, space 0, times 0
> CPU: 0 PID: 11012 Comm: syz-executor2 Tainted: G W
> 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> fail_dump lib/fault-inject.c:51 [inline]
> should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
> __should_failslab+0x124/0x180 mm/failslab.c:32
> should_failslab+0x9/0x14 mm/slab_common.c:1522
> slab_pre_alloc_hook mm/slab.h:423 [inline]
> slab_alloc mm/slab.c:3378 [inline]
> kmem_cache_alloc_trace+0x2cb/0x780 mm/slab.c:3618
> kmalloc include/linux/slab.h:512 [inline]
> kzalloc include/linux/slab.h:701 [inline]
> alloc_pipe_info+0x16d/0x580 fs/pipe.c:633
> splice_direct_to_actor+0x6e7/0x8d0 fs/splice.c:920
> do_splice_direct+0x2cc/0x400 fs/splice.c:1061
> do_sendfile+0x60f/0xe00 fs/read_write.c:1440
> __do_sys_sendfile64 fs/read_write.c:1495 [inline]
> __se_sys_sendfile64 fs/read_write.c:1487 [inline]
> __x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
> RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
> RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
> RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
> R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000000
> FAULT_INJECTION: forcing a failure.
> name fail_page_alloc, interval 1, probability 0, space 0, times 0
> CPU: 0 PID: 11055 Comm: syz-executor2 Tainted: G W
> 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> fail_dump lib/fault-inject.c:51 [inline]
> should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
> should_fail_alloc_page mm/page_alloc.c:3082 [inline]
> prepare_alloc_pages mm/page_alloc.c:4322 [inline]
> __alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
> __alloc_pages include/linux/gfp.h:456 [inline]
> __alloc_pages_node include/linux/gfp.h:469 [inline]
> kmem_getpages mm/slab.c:1411 [inline]
> cache_grow_begin+0x72/0x6c0 mm/slab.c:2678
> cache_alloc_refill mm/slab.c:3045 [inline]
> ____cache_alloc mm/slab.c:3127 [inline]
> __do_cache_alloc mm/slab.c:3349 [inline]
> slab_alloc mm/slab.c:3384 [inline]
> kmem_cache_alloc_trace+0x6a5/0x780 mm/slab.c:3618
> kmalloc include/linux/slab.h:512 [inline]
> kzalloc include/linux/slab.h:701 [inline]
> alloc_pipe_info+0x16d/0x580 fs/pipe.c:633
> splice_direct_to_actor+0x6e7/0x8d0 fs/splice.c:920
> do_splice_direct+0x2cc/0x400 fs/splice.c:1061
> do_sendfile+0x60f/0xe00 fs/read_write.c:1440
> __do_sys_sendfile64 fs/read_write.c:1495 [inline]
> __se_sys_sendfile64 fs/read_write.c:1487 [inline]
> __x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
> RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
> RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
> RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
> R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000001
> FAULT_INJECTION: forcing a failure.
> name failslab, interval 1, probability 0, space 0, times 0
> CPU: 0 PID: 11101 Comm: syz-executor2 Tainted: G W
> 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> fail_dump lib/fault-inject.c:51 [inline]
> should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
> __should_failslab+0x124/0x180 mm/failslab.c:32
> should_failslab+0x9/0x14 mm/slab_common.c:1522
> slab_pre_alloc_hook mm/slab.h:423 [inline]
> slab_alloc_node mm/slab.c:3299 [inline]
> kmem_cache_alloc_node_trace+0x26f/0x770 mm/slab.c:3661
> __do_kmalloc_node mm/slab.c:3681 [inline]
> __kmalloc_node+0x33/0x70 mm/slab.c:3689
> kmalloc_node include/linux/slab.h:554 [inline]
> kvmalloc_node+0x6b/0x100 mm/util.c:421
> kvmalloc include/linux/mm.h:550 [inline]
> kvmalloc_array include/linux/mm.h:566 [inline]
> get_pages_array lib/iov_iter.c:1097 [inline]
> pipe_get_pages_alloc lib/iov_iter.c:1123 [inline]
> iov_iter_get_pages_alloc+0x7be/0x14e0 lib/iov_iter.c:1144
> default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
> do_splice_to+0x12e/0x190 fs/splice.c:880
> splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
> do_splice_direct+0x2cc/0x400 fs/splice.c:1061
> do_sendfile+0x60f/0xe00 fs/read_write.c:1440
> __do_sys_sendfile64 fs/read_write.c:1495 [inline]
> __se_sys_sendfile64 fs/read_write.c:1487 [inline]
> __x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
> RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
> RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
> RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
> R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000002
> FAULT_INJECTION: forcing a failure.
> name fail_page_alloc, interval 1, probability 0, space 0, times 0
> CPU: 0 PID: 11156 Comm: syz-executor2 Tainted: G W
> 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> fail_dump lib/fault-inject.c:51 [inline]
> should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
> should_fail_alloc_page mm/page_alloc.c:3082 [inline]
> prepare_alloc_pages mm/page_alloc.c:4322 [inline]
> __alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
> alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
> alloc_pages include/linux/gfp.h:492 [inline]
> push_pipe+0x400/0x7a0 lib/iov_iter.c:515
> __pipe_get_pages lib/iov_iter.c:1022 [inline]
> pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
> iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
> default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
> do_splice_to+0x12e/0x190 fs/splice.c:880
> splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
> do_splice_direct+0x2cc/0x400 fs/splice.c:1061
> do_sendfile+0x60f/0xe00 fs/read_write.c:1440
> __do_sys_sendfile64 fs/read_write.c:1495 [inline]
> __se_sys_sendfile64 fs/read_write.c:1487 [inline]
> __x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
> RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
> RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
> RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
> R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000003
> FAULT_INJECTION: forcing a failure.
> name fail_page_alloc, interval 1, probability 0, space 0, times 0
> CPU: 0 PID: 11181 Comm: syz-executor2 Tainted: G W
> 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> fail_dump lib/fault-inject.c:51 [inline]
> should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
> should_fail_alloc_page mm/page_alloc.c:3082 [inline]
> prepare_alloc_pages mm/page_alloc.c:4322 [inline]
> __alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
> alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
> alloc_pages include/linux/gfp.h:492 [inline]
> push_pipe+0x400/0x7a0 lib/iov_iter.c:515
> __pipe_get_pages lib/iov_iter.c:1022 [inline]
> pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
> iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
> default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
> do_splice_to+0x12e/0x190 fs/splice.c:880
> splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
> do_splice_direct+0x2cc/0x400 fs/splice.c:1061
> do_sendfile+0x60f/0xe00 fs/read_write.c:1440
> __do_sys_sendfile64 fs/read_write.c:1495 [inline]
> __se_sys_sendfile64 fs/read_write.c:1487 [inline]
> __x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
> RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
> RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
> RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
> R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000004
> FAULT_INJECTION: forcing a failure.
> name fail_page_alloc, interval 1, probability 0, space 0, times 0
> CPU: 0 PID: 11208 Comm: syz-executor2 Tainted: G W
> 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> fail_dump lib/fault-inject.c:51 [inline]
> should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
> should_fail_alloc_page mm/page_alloc.c:3082 [inline]
> prepare_alloc_pages mm/page_alloc.c:4322 [inline]
> __alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
> alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
> alloc_pages include/linux/gfp.h:492 [inline]
> push_pipe+0x400/0x7a0 lib/iov_iter.c:515
> __pipe_get_pages lib/iov_iter.c:1022 [inline]
> pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
> iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
> default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
> do_splice_to+0x12e/0x190 fs/splice.c:880
> splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
> do_splice_direct+0x2cc/0x400 fs/splice.c:1061
> do_sendfile+0x60f/0xe00 fs/read_write.c:1440
> __do_sys_sendfile64 fs/read_write.c:1495 [inline]
> __se_sys_sendfile64 fs/read_write.c:1487 [inline]
> __x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
> RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
> RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
> RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
> R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000005
> FAULT_INJECTION: forcing a failure.
> name fail_page_alloc, interval 1, probability 0, space 0, times 0
> CPU: 0 PID: 11251 Comm: syz-executor2 Tainted: G W
> 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> fail_dump lib/fault-inject.c:51 [inline]
> should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
> should_fail_alloc_page mm/page_alloc.c:3082 [inline]
> prepare_alloc_pages mm/page_alloc.c:4322 [inline]
> __alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
> alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
> alloc_pages include/linux/gfp.h:492 [inline]
> push_pipe+0x400/0x7a0 lib/iov_iter.c:515
> __pipe_get_pages lib/iov_iter.c:1022 [inline]
> pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
> iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
> default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
> do_splice_to+0x12e/0x190 fs/splice.c:880
> splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
> do_splice_direct+0x2cc/0x400 fs/splice.c:1061
> do_sendfile+0x60f/0xe00 fs/read_write.c:1440
> __do_sys_sendfile64 fs/read_write.c:1495 [inline]
> __se_sys_sendfile64 fs/read_write.c:1487 [inline]
> __x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
> RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
> RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
> RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
> R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000006
> FAULT_INJECTION: forcing a failure.
> name fail_page_alloc, interval 1, probability 0, space 0, times 0
> CPU: 1 PID: 11321 Comm: syz-executor2 Tainted: G W
> 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> fail_dump lib/fault-inject.c:51 [inline]
> should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
> should_fail_alloc_page mm/page_alloc.c:3082 [inline]
> prepare_alloc_pages mm/page_alloc.c:4322 [inline]
> __alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
> alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
> alloc_pages include/linux/gfp.h:492 [inline]
> push_pipe+0x400/0x7a0 lib/iov_iter.c:515
> __pipe_get_pages lib/iov_iter.c:1022 [inline]
> pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
> iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
> default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
> do_splice_to+0x12e/0x190 fs/splice.c:880
> splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
> do_splice_direct+0x2cc/0x400 fs/splice.c:1061
> do_sendfile+0x60f/0xe00 fs/read_write.c:1440
> __do_sys_sendfile64 fs/read_write.c:1495 [inline]
> __se_sys_sendfile64 fs/read_write.c:1487 [inline]
> __x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
> RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
> RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
> RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
> R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000007
> FAULT_INJECTION: forcing a failure.
> name fail_page_alloc, interval 1, probability 0, space 0, times 0
> CPU: 1 PID: 11367 Comm: syz-executor2 Tainted: G W
> 4.17.0-rc4+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0x1b9/0x294 lib/dump_stack.c:113
> fail_dump lib/fault-inject.c:51 [inline]
> should_fail.cold.4+0xa/0x1a lib/fault-inject.c:149
> should_fail_alloc_page mm/page_alloc.c:3082 [inline]
> prepare_alloc_pages mm/page_alloc.c:4322 [inline]
> __alloc_pages_nodemask+0x34e/0xd70 mm/page_alloc.c:4358
> alloc_pages_current+0x10c/0x210 mm/mempolicy.c:2093
> alloc_pages include/linux/gfp.h:492 [inline]
> push_pipe+0x400/0x7a0 lib/iov_iter.c:515
> __pipe_get_pages lib/iov_iter.c:1022 [inline]
> pipe_get_pages_alloc lib/iov_iter.c:1126 [inline]
> iov_iter_get_pages_alloc+0x84a/0x14e0 lib/iov_iter.c:1144
> default_file_splice_read+0x1c7/0xad0 fs/splice.c:390
> do_splice_to+0x12e/0x190 fs/splice.c:880
> splice_direct_to_actor+0x268/0x8d0 fs/splice.c:952
> do_splice_direct+0x2cc/0x400 fs/splice.c:1061
> do_sendfile+0x60f/0xe00 fs/read_write.c:1440
> __do_sys_sendfile64 fs/read_write.c:1495 [inline]
> __se_sys_sendfile64 fs/read_write.c:1487 [inline]
> __x64_sys_sendfile64+0x155/0x240 fs/read_write.c:1487
> do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
> entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x455979
> RSP: 002b:00007fb8be39dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
> RAX: ffffffffffffffda RBX: 00007fb8be39e6d4 RCX: 0000000000455979
> RDX: 0000000020000080 RSI: 0000000000000014 RDI: 0000000000000014
> RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000008000000 R11: 0000000000000246 R12: 0000000000000015
> R13: 0000000000000514 R14: 00000000006fba80 R15: 0000000000000008
>
>
> ---
> This bug is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at syzkaller@googlegroups.com.
>
> syzbot will keep track of this bug report.
> If you forgot to add the Reported-by tag, once the fix for this bug is
> merged
> into any tree, please reply to this email with:
> #syz fix: exact-commit-title
> To mark this as a duplicate of another syzbot report, please reply with:
> #syz dup: exact-subject-of-another-report
> If it's a one-off invalid bug report, please reply with:
> #syz invalid
> Note: if the crash happens again, it will cause creation of a new bug
> report.
> Note: all commands must start from beginning of the line in the email body.
>
> --
> You received this message because you are subscribed to the Google Groups
> "syzkaller-bugs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to syzkaller-bugs+unsubscribe@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/syzkaller-bugs/0000000000003b8d3a056bd3b073%40google.com.
> For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: inconsistent lock state in fs_reclaim_acquire (2)
2018-05-10 6:30 ` Dmitry Vyukov
@ 2018-05-10 6:37 ` Tetsuo Handa
0 siblings, 0 replies; 3+ messages in thread
From: Tetsuo Handa @ 2018-05-10 6:37 UTC (permalink / raw)
To: Jens Axboe, linux-block
Cc: syzbot, Alexey Dobriyan, Andrew Morton, Josh Poimboeuf,
Laura Abbott, LKML, linux, Ingo Molnar, Peter Zijlstra,
Steven Rostedt, syzkaller-bugs, Thomas Gleixner, thomas.lendacky,
Dmitry Vyukov
Dmitry Vyukov wrote:
> On Thu, May 10, 2018 at 7:57 AM, syzbot
> <syzbot+63833431f68be871fb95@syzkaller.appspotmail.com> wrote:
> > Hello,
> >
> > syzbot found the following crash on:
> >
> > HEAD commit: 036db8bd9637 Merge branch 'for-4.17-fixes' of git://git.ke..
> > git tree: upstream
> > console output: https://syzkaller.appspot.com/x/log.txt?x=146dab5b800000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=31f4b3733894ef79
> > dashboard link: https://syzkaller.appspot.com/bug?extid=63833431f68be871fb95
> > compiler: gcc (GCC) 8.0.1 20180413 (experimental)
> >
> > Unfortunately, I don't have any reproducer for this crash yet.
> >
> > IMPORTANT: if you fix the bug, please add the following tag to the commit:
> > Reported-by: syzbot+63833431f68be871fb95@syzkaller.appspotmail.com
>
>
> Tetsuo thinks this is block layer problem.
> +block maintainers
>
Thanks for CC'ing me.
First kobject_uevent(&dev->kobj, KOBJ_REMOVE) trigger from process context
failed because memory allocation was failed by fault injection.
ioctl(BLKPG, { .op = BLKPG_DEL_PARTITION } ) {
blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd, unsigned long arg) {
blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg __user *arg) {
delete_partition(disk, partno) {
device_del(part_to_dev(part)) {
kobject_uevent(&dev->kobj, KOBJ_REMOVE) {
kobject_uevent_env(kobj, action, NULL) {
/* "kobj->state_remove_uevent_sent = 1;" was not done. */
}
}
}
}
}
}
}
----------------------------------------
[ 138.052996] FAULT_INJECTION: forcing a failure.
[ 138.052996] name failslab, interval 1, probability 0, space 0, times 0
[ 138.064786] CPU: 0 PID: 10555 Comm: syz-executor6 Not tainted 4.17.0-rc4+ #39
[ 138.072083] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
[ 138.081450] Call Trace:
[ 138.084060] dump_stack+0x1b9/0x294
[ 138.097798] should_fail.cold.4+0xa/0x1a
[ 138.140503] __should_failslab+0x124/0x180
[ 138.144759] should_failslab+0x9/0x14
[ 138.148578] kmem_cache_alloc_trace+0x2cb/0x780
[ 138.168726] kobject_uevent_env+0x20f/0xea0
[ 138.177573] kobject_uevent+0x1f/0x30
[ 138.181397] device_del+0x6c9/0xb70
[ 138.201979] delete_partition+0x21d/0x2a0
[ 138.223857] blkpg_ioctl+0x3c5/0xc40
[ 138.248487] blkdev_ioctl+0x1753/0x2020
[ 138.295797] block_ioctl+0xee/0x130
[ 138.303785] do_vfs_ioctl+0x1cf/0x16a0
[ 138.336915] ksys_ioctl+0xa9/0xd0
[ 138.340387] __x64_sys_ioctl+0x73/0xb0
[ 138.344289] do_syscall_64+0x1b1/0x800
[ 138.368357] entry_SYSCALL_64_after_hwframe+0x49/0xbe
[ 138.373566] RIP: 0033:0x455979
[ 138.376768] RSP: 002b:00007f35a9be2c68 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[ 138.384500] RAX: ffffffffffffffda RBX: 00007f35a9be36d4 RCX: 0000000000455979
[ 138.391791] RDX: 0000000020000180 RSI: 0000000000001269 RDI: 0000000000000013
[ 138.399084] RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
[ 138.406374] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000014
[ 138.413660] R13: 00000000000001a8 R14: 00000000006f6860 R15: 0000000000000000
----------------------------------------
Therefore, kobject_uevent(&dev->kobj, KOBJ_REMOVE) is later triggered from
RCU callback context.
rcu_process_callbacks(struct softirq_action *unused) {
__rcu_process_callbacks(rsp) {
invoke_rcu_callbacks(struct rcu_state *rsp, struct rcu_data *rdp) {
rcu_do_batch(rsp, rdp) {
delete_partition_rcu_cb(struct rcu_head *head) {
put_device(part_to_dev(part)) {
kobject_put(&dev->kobj) {
kref_put(&kobj->kref, kobject_release) {
kobject_cleanup(kobj) {
/* send "remove" if the caller did not do it but sent "add" */
if (kobj->state_add_uevent_sent && !kobj->state_remove_uevent_sent) {
pr_debug("kobject: '%s' (%p): auto cleanup 'remove' event\n",
kobject_name(kobj), kobj);
kobject_uevent(kobj, KOBJ_REMOVE) {
kobject_uevent_env(kobj, action, NULL) {
/* GFP_KERNEL memory allocation and mutex_lock() */
}
}
}
}
}
}
}
}
}
}
}
}
----------------------------------------
[ 138.454065]
[ 138.455760] ================================
[ 138.460158] WARNING: inconsistent lock state
[ 138.464656] 4.17.0-rc4+ #39 Not tainted
[ 138.468617] --------------------------------
[ 138.473019] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
[ 138.479167] syz-executor3/10560 [HC0[0]:SC1[1]:HE1:SE0] takes:
[ 138.479683] EXT4-fs (sda1): re-mounted. Opts: minixdf,
[ 138.485141] 000000001180cb72 (fs_reclaim){+.?.}, at: fs_reclaim_acquire.part.82+0x0/0x30
[ 138.485169] {SOFTIRQ-ON-W} state was registered at:
[ 138.485181] lock_acquire+0x1dc/0x520
[ 138.485189] fs_reclaim_acquire.part.82+0x24/0x30
[ 138.485197] fs_reclaim_acquire+0x14/0x20
[ 138.485207] kmem_cache_alloc_node_trace+0x39/0x770
[ 138.485226] alloc_worker+0xbd/0x2e0
[ 138.525645] init_rescuer.part.25+0x1f/0x190
[ 138.530161] workqueue_init+0x51f/0x7d0
[ 138.534232] kernel_init_freeable+0x2ad/0x58e
[ 138.538829] kernel_init+0x11/0x1b3
[ 138.542590] ret_from_fork+0x3a/0x50
[ 138.546384] irq event stamp: 8616
[ 138.549857] hardirqs last enabled at (8616): [<ffffffff876ef414>] _raw_spin_unlock_irqrestore+0x74/0xc0
[ 138.559582] hardirqs last disabled at (8615): [<ffffffff876ef4d4>] _raw_spin_lock_irqsave+0x74/0xc0
[ 138.568774] softirqs last enabled at (7446): [<ffffffff87a00778>] __do_softirq+0x778/0xaf5
[ 138.577287] softirqs last disabled at (8601): [<ffffffff81476281>] irq_exit+0x1d1/0x200
[ 138.585418]
[ 138.585418] other info that might help us debug this:
[ 138.592075] Possible unsafe locking scenario:
[ 138.592075]
[ 138.598129] CPU0
[ 138.600689] ----
[ 138.603248] lock(fs_reclaim);
[ 138.606519] <Interrupt>
[ 138.609264] lock(fs_reclaim);
[ 138.612711]
[ 138.612711] *** DEADLOCK ***
[ 138.612711]
[ 138.618759] 2 locks held by syz-executor3/10560:
[ 138.623492] #0: 0000000099a775e3 (&(ptlock_ptr(page))->rlock#2){+.+.}, at: unmap_page_range+0x99b/0x2200
[ 138.633221] #1: 00000000bbb25b9d (rcu_callback){....}, at: rcu_process_callbacks+0xa2c/0x15f0
[ 138.642079]
[ 138.642079] stack backtrace:
[ 138.646573] CPU: 0 PID: 10560 Comm: syz-executor3 Not tainted 4.17.0-rc4+ #39
[ 138.654016] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
[ 138.663353] Call Trace:
[ 138.665925] <IRQ>
[ 138.668069] dump_stack+0x1b9/0x294
[ 138.684269] print_usage_bug.cold.59+0x320/0x41a
[ 138.693146] mark_lock+0x1034/0x19e0
[ 138.721057] __lock_acquire+0x1622/0x5140
[ 138.778250] lock_acquire+0x1dc/0x520
[ 138.802815] fs_reclaim_acquire.part.82+0x24/0x30
[ 138.811440] fs_reclaim_acquire+0x14/0x20
[ 138.815570] kmem_cache_alloc_trace+0x2d/0x780
[ 138.834889] kobject_uevent_env+0x20f/0xea0
[ 138.839204] kobject_uevent+0x1f/0x30
[ 138.842999] kobject_put+0x1fb/0x280
[ 138.846698] put_device+0x20/0x30
[ 138.850251] delete_partition_rcu_cb+0x147/0x1b0
[ 138.859241] rcu_process_callbacks+0x941/0x15f0
[ 138.889242] __do_softirq+0x2e0/0xaf5
[ 138.934031] irq_exit+0x1d1/0x200
[ 138.937500] smp_apic_timer_interrupt+0x17e/0x710
[ 138.968983] apic_timer_interrupt+0xf/0x20
[ 138.973204] </IRQ>
----------------------------------------
Since put_device() might sleep, it is not safe to invoke via call_rcu().
----------------------------------------
void put_device(struct device *dev)
{
/* might_sleep(); */
if (dev)
kobject_put(&dev->kobj);
}
static void delete_partition_rcu_cb(struct rcu_head *head)
{
struct hd_struct *part = container_of(head, struct hd_struct, rcu_head);
part->start_sect = 0;
part->nr_sects = 0;
part_stat_set_all(part, 0);
put_device(part_to_dev(part));
}
void __delete_partition(struct percpu_ref *ref)
{
struct hd_struct *part = container_of(ref, struct hd_struct, ref);
call_rcu(&part->rcu_head, delete_partition_rcu_cb);
}
----------------------------------------
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-05-10 6:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-10 5:57 inconsistent lock state in fs_reclaim_acquire (2) syzbot
2018-05-10 6:30 ` Dmitry Vyukov
2018-05-10 6:37 ` Tetsuo Handa
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.