* [bug] unable to handle kernel paging request when running btrfs/011
@ 2016-02-19 13:41 Anand Jain
2016-02-21 1:36 ` Qu Wenruo
0 siblings, 1 reply; 5+ messages in thread
From: Anand Jain @ 2016-02-19 13:41 UTC (permalink / raw)
To: linux-btrfs
Saw below warn leading to bug when running btrfs/011, not
reproducible. Any idea ?
------
static void __queue_work(..)
{
::
/* if draining, only works from the same workqueue are allowed */
if (unlikely(wq->flags & __WQ_DRAINING) &&
WARN_ON_ONCE(!is_chained_work(wq))) <---
return;
and then btrfs reported..
BUG: unable to handle kernel paging request
(gdb) list *btrfs_destroy_workqueue+0x1f
0x6a43f is in btrfs_destroy_workqueue (fs/btrfs/async-thread.c:350).
345 }
346
347 static inline void
348 __btrfs_destroy_workqueue(struct __btrfs_workqueue *wq)
349 {
350 destroy_workqueue(wq->normal_wq); <---
351 trace_btrfs_workqueue_destroy(wq);
352 kfree(wq);
353 }
354
------
Thanks, Anand
[ 61.038867] ------------[ cut here ]------------
[ 61.038876] WARNING: CPU: 0 PID: 117 at kernel/workqueue.c:1381
__queue_work+0x37f/0x470()
[ 61.038878] Modules linked in: btrfs xor raid6_pq cfg80211 rfkill
ppdev pcspkr psmouse serio_raw evdev joydev mousedev mac_hid
acpi_cpufreq processor e1000 battery intel_agp intel_gtt video
parport_pc parport ac button sch_fq_codel nfs lockd grace sunrpc fscache
sr_mod cdrom sd_mod ata_generic pata_acpi hid_generic usbhid hid atkbd
libps2 ata_piix ahci libahci ohci_pci ohci_hcd usbcore usb_common libata
scsi_mod i8042 serio [last unloaded: xor]
[ 61.038908] CPU: 0 PID: 117 Comm: kworker/u2:5 Not tainted
4.5.0-rc3asj+ #10
[ 61.038909] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
VirtualBox 12/01/2006
[ 61.038931] Workqueue: btrfs-readahead btrfs_readahead_helper [btrfs]
[ 61.038933] 0000000000000086 00000000bc179d46 ffff88011f403c40
ffffffff813a2651
[ 61.038935] 0000000000000000 ffffffff817f7268 ffff88011f403c78
ffffffff81079892
[ 61.038937] 0000000000000246 0000000000000080 ffff8800da4fcb20
ffff88011a59db90
[ 61.038939] Call Trace:
[ 61.038941] <IRQ> [<ffffffff813a2651>] dump_stack+0x63/0x82
[ 61.038946] [<ffffffff81079892>] warn_slowpath_common+0x82/0xc0
[ 61.038948] [<ffffffff810799da>] warn_slowpath_null+0x1a/0x20
[ 61.038949] [<ffffffff810910ef>] __queue_work+0x37f/0x470
[ 61.038951] [<ffffffff81091207>] queue_work_on+0x27/0x40
[ 61.038964] [<ffffffffa00933a0>] btrfs_queue_work+0x90/0xe0 [btrfs]
[ 61.038974] [<ffffffffa0056785>] end_workqueue_bio+0x85/0xe0 [btrfs]
[ 61.038978] [<ffffffff8136c4af>] bio_endio+0x3f/0x60
[ 61.038990] [<ffffffffa008d075>] btrfs_end_bio+0x95/0x140 [btrfs]
[ 61.038992] [<ffffffff8136c4af>] bio_endio+0x3f/0x60
[ 61.038995] [<ffffffff8137390b>] blk_update_request+0x8b/0x310
[ 61.039002] [<ffffffffa016ab43>] scsi_end_request+0x33/0x1d0 [scsi_mod]
[ 61.039008] [<ffffffffa016d26a>] scsi_io_completion+0xba/0x5f0
[scsi_mod]
[ 61.039012] [<ffffffffa0164fae>] scsi_finish_command+0xbe/0xf0
[scsi_mod]
[ 61.039017] [<ffffffffa016cbc8>] scsi_softirq_done+0xf8/0x120 [scsi_mod]
[ 61.039019] [<ffffffff8137b36b>] blk_done_softirq+0x8b/0xb0
[ 61.039021] [<ffffffff8107dadf>] __do_softirq+0xcf/0x290
[ 61.039023] [<ffffffff8107de13>] irq_exit+0xa3/0xb0
[ 61.039026] [<ffffffff815f2bc4>] do_IRQ+0x54/0xd0
[ 61.039028] [<ffffffff815f0d42>] common_interrupt+0x82/0x82
[ 61.039028] <EOI> [<ffffffffa00c09d8>] ?
reada_extent_put+0x128/0x1a0 [btrfs]
[ 61.039043] [<ffffffff81387101>] ? set_task_ioprio+0x21/0xb0
[ 61.039054] [<ffffffffa00c1b18>]
reada_start_machine_worker+0x228/0x360 [btrfs]
[ 61.039065] [<ffffffffa0092df7>] btrfs_scrubparity_helper+0x77/0x2f0
[btrfs]
[ 61.039076] [<ffffffffa00930ce>] btrfs_readahead_helper+0xe/0x10 [btrfs]
[ 61.039078] [<ffffffff8109223e>] process_one_work+0x14e/0x440
[ 61.039080] [<ffffffff81092578>] worker_thread+0x48/0x4e0
[ 61.039081] [<ffffffff81092530>] ? process_one_work+0x440/0x440
[ 61.039083] [<ffffffff810980c8>] kthread+0xd8/0xf0
[ 61.039085] [<ffffffff81097ff0>] ? kthread_worker_fn+0x180/0x180
[ 61.039087] [<ffffffff815f060f>] ret_from_fork+0x3f/0x70
[ 61.039089] [<ffffffff81097ff0>] ? kthread_worker_fn+0x180/0x180
[ 61.039090] ---[ end trace 1531237816dde88b ]---
[ 61.039119] BUG: unable to handle kernel paging request at
0000000100000000
[ 61.039121] IP: [<ffffffffa009340f>]
btrfs_destroy_workqueue+0x1f/0xf0 [btrfs]
[ 61.039140] PGD 116827067 PUD 0
[ 61.039143] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
[ 61.039145] Modules linked in: btrfs xor raid6_pq cfg80211 rfkill
ppdev pcspkr psmouse serio_raw evdev joydev mousedev mac_hid
acpi_cpufreq processor e1000 battery intel_agp intel_gtt video
parport_pc parport ac button sch_fq_codel nfs lockd grace sunrpc fscache
sr_mod cdrom sd_mod ata_generic pata_acpi hid_generic usbhid hid atkbd
libps2 ata_piix ahci libahci ohci_pci ohci_hcd usbcore usb_common libata
scsi_mod i8042 serio [last unloaded: xor]
[ 61.039163] CPU: 0 PID: 11203 Comm: umount Tainted: G W
4.5.0-rc3asj+ #10
[ 61.039164] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
VirtualBox 12/01/2006
[ 61.039166] task: ffff8800d8d82ac0 ti: ffff8800be6a0000 task.ti:
ffff8800be6a0000
[ 61.039167] RIP: 0010:[<ffffffffa009340f>] [<ffffffffa009340f>]
btrfs_destroy_workqueue+0x1f/0xf0 [btrfs]
[ 61.039178] RSP: 0018:ffff8800be6a3d70 EFLAGS: 00010206
[ 61.039179] RAX: ffff8800da4fcf01 RBX: ffff8800d9372000 RCX:
000000000011b080
[ 61.039180] RDX: 000000000011b000 RSI: ffff88011f418a40 RDI:
ffff8800da4fcf90
[ 61.039181] RBP: ffff8800be6a3d88 R08: 0000000000018a40 R09:
ffffffffa0093447
[ 61.039182] R10: ffffea0003693f00 R11: ffff8800da31d700 R12:
ffff8800da4fcf90
[ 61.039183] R13: 0000000100000000 R14: 0000000000000000 R15:
ffff8800d8d82ac0
[ 61.039185] FS: 00007f28c0315780(0000) GS:ffff88011f400000(0000)
knlGS:0000000000000000
[ 61.039186] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 61.039187] CR2: 0000000100000000 CR3: 0000000119b0f000 CR4:
00000000000406f0
[ 61.039190] Stack:
[ 61.039191] ffff8800d9372000 ffff8800d9372b58 ffff8800daf04800
ffff8800be6a3da0
[ 61.039193] ffffffffa0057d6d ffff8800d9372000 ffff8800be6a3df8
ffffffffa005b8f2
[ 61.039194] ffff8800daf06800 ffff8800daf06e00 ffff8800be6a4000
ffff8800be6a3dc8
[ 61.039196] Call Trace:
[ 61.039207] [<ffffffffa0057d6d>] btrfs_stop_all_workers+0xcd/0xf0
[btrfs]
[ 61.039218] [<ffffffffa005b8f2>] close_ctree+0x182/0x360 [btrfs]
[ 61.039225] [<ffffffffa002ec69>] btrfs_put_super+0x19/0x20 [btrfs]
[ 61.039231] [<ffffffff811f695a>] generic_shutdown_super+0x6a/0xf0
[ 61.039233] [<ffffffff811f6c72>] kill_anon_super+0x12/0x20
[ 61.039241] [<ffffffffa002e908>] btrfs_kill_super+0x18/0x110 [btrfs]
[ 61.039243] [<ffffffff811f6e13>] deactivate_locked_super+0x43/0x70
[ 61.039244] [<ffffffff811f79fc>] deactivate_super+0x5c/0x60
[ 61.039247] [<ffffffff8121328f>] cleanup_mnt+0x3f/0x90
[ 61.039248] [<ffffffff81213322>] __cleanup_mnt+0x12/0x20
[ 61.039250] [<ffffffff810963a3>] task_work_run+0x73/0x90
[ 61.039252] [<ffffffff8100369e>] exit_to_usermode_loop+0xae/0xb0
[ 61.039254] [<ffffffff81003b9e>] syscall_return_slowpath+0x4e/0x60
[ 61.039256] [<ffffffff815f040c>] int_ret_from_sys_call+0x25/0x8f
[ 61.039257] Code: ff e8 2a fc f6 e0 eb a1 0f 1f 40 00 0f 1f 44 00 00
48 85 ff 74 53 55 48 89 e5 41 55 41 54 53 4c 8b 6f 08 49 89 fc 4d 85 ed
74 16 <49> 8b 7d 00 e8 d8 e4 ff e0 0f 1f 44 00 00 4c 89 ef e8 0b 06 14
[ 61.039276] RIP [<ffffffffa009340f>]
btrfs_destroy_workqueue+0x1f/0xf0 [btrfs]
[ 61.039287] RSP <ffff8800be6a3d70>
[ 61.039288] CR2: 0000000100000000
[ 61.039290] ---[ end trace 1531237816dde88c ]---
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [bug] unable to handle kernel paging request when running btrfs/011
2016-02-19 13:41 [bug] unable to handle kernel paging request when running btrfs/011 Anand Jain
@ 2016-02-21 1:36 ` Qu Wenruo
2016-02-23 14:40 ` David Sterba
2016-02-23 14:45 ` David Sterba
0 siblings, 2 replies; 5+ messages in thread
From: Qu Wenruo @ 2016-02-21 1:36 UTC (permalink / raw)
To: Anand Jain, linux-btrfs
On 02/19/2016 09:41 PM, Anand Jain wrote:
>
>
> Saw below warn leading to bug when running btrfs/011, not
> reproducible. Any idea ?
>
Seems like another wq_destroy race.
But it's hard to locate which wq is the cause from backtrace only.
What's the wq btrfs_stop_all_workers+0xcd is going to free?
And what's the wq end_workqueue_bio+0x85 is going to add?
Thanks,
Qu
> ------
> static void __queue_work(..)
> {
> ::
> /* if draining, only works from the same workqueue are allowed */
> if (unlikely(wq->flags & __WQ_DRAINING) &&
> WARN_ON_ONCE(!is_chained_work(wq))) <---
> return;
>
> and then btrfs reported..
> BUG: unable to handle kernel paging request
>
> (gdb) list *btrfs_destroy_workqueue+0x1f
> 0x6a43f is in btrfs_destroy_workqueue (fs/btrfs/async-thread.c:350).
> 345 }
> 346
> 347 static inline void
> 348 __btrfs_destroy_workqueue(struct __btrfs_workqueue *wq)
> 349 {
> 350 destroy_workqueue(wq->normal_wq); <---
> 351 trace_btrfs_workqueue_destroy(wq);
> 352 kfree(wq);
> 353 }
> 354
> ------
>
>
> Thanks, Anand
>
>
> [ 61.038867] ------------[ cut here ]------------
> [ 61.038876] WARNING: CPU: 0 PID: 117 at kernel/workqueue.c:1381
> __queue_work+0x37f/0x470()
> [ 61.038878] Modules linked in: btrfs xor raid6_pq cfg80211 rfkill
> ppdev pcspkr psmouse serio_raw evdev joydev mousedev mac_hid
> acpi_cpufreq processor e1000 battery intel_agp intel_gtt video
> parport_pc parport ac button sch_fq_codel nfs lockd grace sunrpc fscache
> sr_mod cdrom sd_mod ata_generic pata_acpi hid_generic usbhid hid atkbd
> libps2 ata_piix ahci libahci ohci_pci ohci_hcd usbcore usb_common libata
> scsi_mod i8042 serio [last unloaded: xor]
> [ 61.038908] CPU: 0 PID: 117 Comm: kworker/u2:5 Not tainted
> 4.5.0-rc3asj+ #10
> [ 61.038909] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
> VirtualBox 12/01/2006
> [ 61.038931] Workqueue: btrfs-readahead btrfs_readahead_helper [btrfs]
> [ 61.038933] 0000000000000086 00000000bc179d46 ffff88011f403c40
> ffffffff813a2651
> [ 61.038935] 0000000000000000 ffffffff817f7268 ffff88011f403c78
> ffffffff81079892
> [ 61.038937] 0000000000000246 0000000000000080 ffff8800da4fcb20
> ffff88011a59db90
> [ 61.038939] Call Trace:
> [ 61.038941] <IRQ> [<ffffffff813a2651>] dump_stack+0x63/0x82
> [ 61.038946] [<ffffffff81079892>] warn_slowpath_common+0x82/0xc0
> [ 61.038948] [<ffffffff810799da>] warn_slowpath_null+0x1a/0x20
> [ 61.038949] [<ffffffff810910ef>] __queue_work+0x37f/0x470
> [ 61.038951] [<ffffffff81091207>] queue_work_on+0x27/0x40
> [ 61.038964] [<ffffffffa00933a0>] btrfs_queue_work+0x90/0xe0 [btrfs]
> [ 61.038974] [<ffffffffa0056785>] end_workqueue_bio+0x85/0xe0 [btrfs]
> [ 61.038978] [<ffffffff8136c4af>] bio_endio+0x3f/0x60
> [ 61.038990] [<ffffffffa008d075>] btrfs_end_bio+0x95/0x140 [btrfs]
> [ 61.038992] [<ffffffff8136c4af>] bio_endio+0x3f/0x60
> [ 61.038995] [<ffffffff8137390b>] blk_update_request+0x8b/0x310
> [ 61.039002] [<ffffffffa016ab43>] scsi_end_request+0x33/0x1d0 [scsi_mod]
> [ 61.039008] [<ffffffffa016d26a>] scsi_io_completion+0xba/0x5f0
> [scsi_mod]
> [ 61.039012] [<ffffffffa0164fae>] scsi_finish_command+0xbe/0xf0
> [scsi_mod]
> [ 61.039017] [<ffffffffa016cbc8>] scsi_softirq_done+0xf8/0x120
> [scsi_mod]
> [ 61.039019] [<ffffffff8137b36b>] blk_done_softirq+0x8b/0xb0
> [ 61.039021] [<ffffffff8107dadf>] __do_softirq+0xcf/0x290
> [ 61.039023] [<ffffffff8107de13>] irq_exit+0xa3/0xb0
> [ 61.039026] [<ffffffff815f2bc4>] do_IRQ+0x54/0xd0
> [ 61.039028] [<ffffffff815f0d42>] common_interrupt+0x82/0x82
> [ 61.039028] <EOI> [<ffffffffa00c09d8>] ?
> reada_extent_put+0x128/0x1a0 [btrfs]
> [ 61.039043] [<ffffffff81387101>] ? set_task_ioprio+0x21/0xb0
> [ 61.039054] [<ffffffffa00c1b18>]
> reada_start_machine_worker+0x228/0x360 [btrfs]
> [ 61.039065] [<ffffffffa0092df7>] btrfs_scrubparity_helper+0x77/0x2f0
> [btrfs]
> [ 61.039076] [<ffffffffa00930ce>] btrfs_readahead_helper+0xe/0x10
> [btrfs]
> [ 61.039078] [<ffffffff8109223e>] process_one_work+0x14e/0x440
> [ 61.039080] [<ffffffff81092578>] worker_thread+0x48/0x4e0
> [ 61.039081] [<ffffffff81092530>] ? process_one_work+0x440/0x440
> [ 61.039083] [<ffffffff810980c8>] kthread+0xd8/0xf0
> [ 61.039085] [<ffffffff81097ff0>] ? kthread_worker_fn+0x180/0x180
> [ 61.039087] [<ffffffff815f060f>] ret_from_fork+0x3f/0x70
> [ 61.039089] [<ffffffff81097ff0>] ? kthread_worker_fn+0x180/0x180
> [ 61.039090] ---[ end trace 1531237816dde88b ]---
> [ 61.039119] BUG: unable to handle kernel paging request at
> 0000000100000000
> [ 61.039121] IP: [<ffffffffa009340f>]
> btrfs_destroy_workqueue+0x1f/0xf0 [btrfs]
> [ 61.039140] PGD 116827067 PUD 0
> [ 61.039143] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
> [ 61.039145] Modules linked in: btrfs xor raid6_pq cfg80211 rfkill
> ppdev pcspkr psmouse serio_raw evdev joydev mousedev mac_hid
> acpi_cpufreq processor e1000 battery intel_agp intel_gtt video
> parport_pc parport ac button sch_fq_codel nfs lockd grace sunrpc fscache
> sr_mod cdrom sd_mod ata_generic pata_acpi hid_generic usbhid hid atkbd
> libps2 ata_piix ahci libahci ohci_pci ohci_hcd usbcore usb_common libata
> scsi_mod i8042 serio [last unloaded: xor]
> [ 61.039163] CPU: 0 PID: 11203 Comm: umount Tainted: G W
> 4.5.0-rc3asj+ #10
> [ 61.039164] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
> VirtualBox 12/01/2006
> [ 61.039166] task: ffff8800d8d82ac0 ti: ffff8800be6a0000 task.ti:
> ffff8800be6a0000
> [ 61.039167] RIP: 0010:[<ffffffffa009340f>] [<ffffffffa009340f>]
> btrfs_destroy_workqueue+0x1f/0xf0 [btrfs]
> [ 61.039178] RSP: 0018:ffff8800be6a3d70 EFLAGS: 00010206
> [ 61.039179] RAX: ffff8800da4fcf01 RBX: ffff8800d9372000 RCX:
> 000000000011b080
> [ 61.039180] RDX: 000000000011b000 RSI: ffff88011f418a40 RDI:
> ffff8800da4fcf90
> [ 61.039181] RBP: ffff8800be6a3d88 R08: 0000000000018a40 R09:
> ffffffffa0093447
> [ 61.039182] R10: ffffea0003693f00 R11: ffff8800da31d700 R12:
> ffff8800da4fcf90
> [ 61.039183] R13: 0000000100000000 R14: 0000000000000000 R15:
> ffff8800d8d82ac0
> [ 61.039185] FS: 00007f28c0315780(0000) GS:ffff88011f400000(0000)
> knlGS:0000000000000000
> [ 61.039186] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 61.039187] CR2: 0000000100000000 CR3: 0000000119b0f000 CR4:
> 00000000000406f0
> [ 61.039190] Stack:
> [ 61.039191] ffff8800d9372000 ffff8800d9372b58 ffff8800daf04800
> ffff8800be6a3da0
> [ 61.039193] ffffffffa0057d6d ffff8800d9372000 ffff8800be6a3df8
> ffffffffa005b8f2
> [ 61.039194] ffff8800daf06800 ffff8800daf06e00 ffff8800be6a4000
> ffff8800be6a3dc8
> [ 61.039196] Call Trace:
> [ 61.039207] [<ffffffffa0057d6d>] btrfs_stop_all_workers+0xcd/0xf0
> [btrfs]
> [ 61.039218] [<ffffffffa005b8f2>] close_ctree+0x182/0x360 [btrfs]
> [ 61.039225] [<ffffffffa002ec69>] btrfs_put_super+0x19/0x20 [btrfs]
> [ 61.039231] [<ffffffff811f695a>] generic_shutdown_super+0x6a/0xf0
> [ 61.039233] [<ffffffff811f6c72>] kill_anon_super+0x12/0x20
> [ 61.039241] [<ffffffffa002e908>] btrfs_kill_super+0x18/0x110 [btrfs]
> [ 61.039243] [<ffffffff811f6e13>] deactivate_locked_super+0x43/0x70
> [ 61.039244] [<ffffffff811f79fc>] deactivate_super+0x5c/0x60
> [ 61.039247] [<ffffffff8121328f>] cleanup_mnt+0x3f/0x90
> [ 61.039248] [<ffffffff81213322>] __cleanup_mnt+0x12/0x20
> [ 61.039250] [<ffffffff810963a3>] task_work_run+0x73/0x90
> [ 61.039252] [<ffffffff8100369e>] exit_to_usermode_loop+0xae/0xb0
> [ 61.039254] [<ffffffff81003b9e>] syscall_return_slowpath+0x4e/0x60
> [ 61.039256] [<ffffffff815f040c>] int_ret_from_sys_call+0x25/0x8f
> [ 61.039257] Code: ff e8 2a fc f6 e0 eb a1 0f 1f 40 00 0f 1f 44 00 00
> 48 85 ff 74 53 55 48 89 e5 41 55 41 54 53 4c 8b 6f 08 49 89 fc 4d 85 ed
> 74 16 <49> 8b 7d 00 e8 d8 e4 ff e0 0f 1f 44 00 00 4c 89 ef e8 0b 06 14
> [ 61.039276] RIP [<ffffffffa009340f>]
> btrfs_destroy_workqueue+0x1f/0xf0 [btrfs]
> [ 61.039287] RSP <ffff8800be6a3d70>
> [ 61.039288] CR2: 0000000100000000
> [ 61.039290] ---[ end trace 1531237816dde88c ]---
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [bug] unable to handle kernel paging request when running btrfs/011
2016-02-21 1:36 ` Qu Wenruo
@ 2016-02-23 14:40 ` David Sterba
2016-02-23 14:45 ` David Sterba
1 sibling, 0 replies; 5+ messages in thread
From: David Sterba @ 2016-02-23 14:40 UTC (permalink / raw)
To: Qu Wenruo; +Cc: Anand Jain, linux-btrfs
On Sun, Feb 21, 2016 at 09:36:44AM +0800, Qu Wenruo wrote:
>
>
> On 02/19/2016 09:41 PM, Anand Jain wrote:
> >
> >
> > Saw below warn leading to bug when running btrfs/011, not
> > reproducible. Any idea ?
> >
> Seems like another wq_destroy race.
>
> But it's hard to locate which wq is the cause from backtrace only.
Name of the workqueue is in the first stacktrasce, it's readahead. The
crash happens in 'umount'.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [bug] unable to handle kernel paging request when running btrfs/011
2016-02-21 1:36 ` Qu Wenruo
2016-02-23 14:40 ` David Sterba
@ 2016-02-23 14:45 ` David Sterba
2016-02-24 1:24 ` Qu Wenruo
1 sibling, 1 reply; 5+ messages in thread
From: David Sterba @ 2016-02-23 14:45 UTC (permalink / raw)
To: Qu Wenruo; +Cc: Anand Jain, linux-btrfs
On Sun, Feb 21, 2016 at 09:36:44AM +0800, Qu Wenruo wrote:
>
>
> On 02/19/2016 09:41 PM, Anand Jain wrote:
> >
> >
> > Saw below warn leading to bug when running btrfs/011, not
> > reproducible. Any idea ?
> >
> Seems like another wq_destroy race.
>
> But it's hard to locate which wq is the cause from backtrace only.
>
> What's the wq btrfs_stop_all_workers+0xcd is going to free?
You can always try to guess on your locally built sources, provided the
configs do not enable "too much" debugging. What I get and looks
reasonable:
(gdb) l *(btrfs_stop_all_workers+0xcd)
0x2bc7d is in btrfs_stop_all_workers (fs/btrfs/disk-io.c:2154).
warning: Source file is more recent than executable.
2149 btrfs_destroy_workqueue(fs_info->delayed_workers);
2150 btrfs_destroy_workqueue(fs_info->caching_workers);
2151 btrfs_destroy_workqueue(fs_info->readahead_workers);
2152 btrfs_destroy_workqueue(fs_info->flush_workers);
2153 btrfs_destroy_workqueue(fs_info->qgroup_rescan_workers);
2154 btrfs_destroy_workqueue(fs_info->extent_workers);
2155 }
2156
2157 static void free_root_extent_buffers(struct btrfs_root *root)
2158 {
> And what's the wq end_workqueue_bio+0x85 is going to add?
(gdb) l *(end_workqueue_bio+0x85)
0x2ab55 is in end_workqueue_bio (fs/btrfs/disk-io.c:726).
721
722 if (bio->bi_rw & REQ_WRITE) {
723 if (end_io_wq->metadata == BTRFS_WQ_ENDIO_METADATA) {
724 wq = fs_info->endio_meta_write_workers;
725 func = btrfs_endio_meta_write_helper;
726 } else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_FREE_SPACE) {
727 wq = fs_info->endio_freespace_worker;
728 func = btrfs_freespace_write_helper;
729 } else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_RAID56) {
730 wq = fs_info->endio_raid56_workers;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [bug] unable to handle kernel paging request when running btrfs/011
2016-02-23 14:45 ` David Sterba
@ 2016-02-24 1:24 ` Qu Wenruo
0 siblings, 0 replies; 5+ messages in thread
From: Qu Wenruo @ 2016-02-24 1:24 UTC (permalink / raw)
To: dsterba, Qu Wenruo, Anand Jain, linux-btrfs
David Sterba wrote on 2016/02/23 15:45 +0100:
> On Sun, Feb 21, 2016 at 09:36:44AM +0800, Qu Wenruo wrote:
>>
>>
>> On 02/19/2016 09:41 PM, Anand Jain wrote:
>>>
>>>
>>> Saw below warn leading to bug when running btrfs/011, not
>>> reproducible. Any idea ?
>>>
>> Seems like another wq_destroy race.
>>
>> But it's hard to locate which wq is the cause from backtrace only.
>>
>> What's the wq btrfs_stop_all_workers+0xcd is going to free?
>
> You can always try to guess on your locally built sources, provided the
> configs do not enable "too much" debugging. What I get and looks
> reasonable:
Never though even on different system, the binary could be so identical.
This should provide good enough info to investigate further.
Great thanks for the advice.
Qu
>
> (gdb) l *(btrfs_stop_all_workers+0xcd)
> 0x2bc7d is in btrfs_stop_all_workers (fs/btrfs/disk-io.c:2154).
> warning: Source file is more recent than executable.
> 2149 btrfs_destroy_workqueue(fs_info->delayed_workers);
> 2150 btrfs_destroy_workqueue(fs_info->caching_workers);
> 2151 btrfs_destroy_workqueue(fs_info->readahead_workers);
> 2152 btrfs_destroy_workqueue(fs_info->flush_workers);
> 2153 btrfs_destroy_workqueue(fs_info->qgroup_rescan_workers);
> 2154 btrfs_destroy_workqueue(fs_info->extent_workers);
> 2155 }
> 2156
> 2157 static void free_root_extent_buffers(struct btrfs_root *root)
> 2158 {
>
>> And what's the wq end_workqueue_bio+0x85 is going to add?
>
> (gdb) l *(end_workqueue_bio+0x85)
> 0x2ab55 is in end_workqueue_bio (fs/btrfs/disk-io.c:726).
> 721
> 722 if (bio->bi_rw & REQ_WRITE) {
> 723 if (end_io_wq->metadata == BTRFS_WQ_ENDIO_METADATA) {
> 724 wq = fs_info->endio_meta_write_workers;
> 725 func = btrfs_endio_meta_write_helper;
> 726 } else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_FREE_SPACE) {
> 727 wq = fs_info->endio_freespace_worker;
> 728 func = btrfs_freespace_write_helper;
> 729 } else if (end_io_wq->metadata == BTRFS_WQ_ENDIO_RAID56) {
> 730 wq = fs_info->endio_raid56_workers;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-02-24 1:24 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-19 13:41 [bug] unable to handle kernel paging request when running btrfs/011 Anand Jain
2016-02-21 1:36 ` Qu Wenruo
2016-02-23 14:40 ` David Sterba
2016-02-23 14:45 ` David Sterba
2016-02-24 1:24 ` Qu Wenruo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).