On Tue, Aug 21, 2018 at 08:35:30PM +0200, Holger Hoffstätte wrote: > On 08/21/18 20:15, Liu Bo wrote: > > I just realize that patch 2 can result in softlockup as > > btrfs_search_slot() may return a path with all nodes being in spinning > > lock, and if the callers want to sleep, we're in trouble. I've > > removed patch 2 and am re-running the test (xfstests, fsmark and > > dbench). > > You mean like this, when trying to balance? :) > Got it only once so far, subsequent attempts worked. Otherwise everything > seems fine.
Exactly, it didn't occur every time though, but thanks a lot for testing it through. thanks, -liubo > > -h > > kernel: BTRFS info (device sdc1): relocating block group 4128424067072 flags > data > kernel: BTRFS info (device sdc1): found 1706 extents > kernel: INFO: rcu_sched self-detected stall on CPU > kernel: ^I3-....: (17999 ticks this GP) idle=f5e/1/4611686018427387906 > softirq=269430/269430 fqs=5999 > kernel: ^I (t=18000 jiffies g=232869 c=232868 q=4365) > kernel: NMI backtrace for cpu 3 > kernel: CPU: 3 PID: 4287 Comm: kworker/u8:0 Not tainted 4.18.3 #1 > kernel: Hardware name: System manufacturer System Product Name/P8Z68-V LX, > BIOS 4105 07/01/2013 > kernel: Workqueue: btrfs-endio-write btrfs_endio_write_helper [btrfs] > kernel: Call Trace: > kernel: <IRQ> > kernel: dump_stack+0x46/0x60 > kernel: nmi_cpu_backtrace.cold.0+0x13/0x57 > kernel: ? lapic_can_unplug_cpu.cold.5+0x34/0x34 > kernel: nmi_trigger_cpumask_backtrace+0x8f/0x91 > kernel: rcu_dump_cpu_stacks+0x87/0xb2 > kernel: rcu_check_callbacks.cold.59+0x2ac/0x430 > kernel: ? tick_sched_handle.isra.6+0x40/0x40 > kernel: update_process_times+0x28/0x60 > kernel: tick_sched_handle.isra.6+0x35/0x40 > kernel: tick_sched_timer+0x3b/0x80 > kernel: __hrtimer_run_queues+0xfe/0x270 > kernel: hrtimer_interrupt+0xf4/0x210 > kernel: smp_apic_timer_interrupt+0x56/0x110 > kernel: apic_timer_interrupt+0xf/0x20 > kernel: </IRQ> > kernel: RIP: 0010:queued_write_lock_slowpath+0x4a/0x80 > kernel: Code: ff 00 00 00 f0 0f b1 13 85 c0 74 32 f0 81 03 00 01 00 00 ba ff > 00 00 00 b9 00 01 00 00 8b 03 3d 00 01 00 00 74 0b f3 90 8b 03 <3d> 00 01 00 > 00 75 f5 89 c8 f0 0f b1 13 3d 00 01 00 00 75 df c6 43 > kernel: RSP: 0018:ffffc9000040fc40 EFLAGS: 00000206 ORIG_RAX: ffffffffffffff13 > kernel: RAX: 0000000000000300 RBX: ffff88071abf86f0 RCX: 0000000000000100 > kernel: RDX: 00000000000000ff RSI: ffff880000000000 RDI: ffff88071abf86f0 > kernel: RBP: 0000000000000000 R08: ffff88071abf8690 R09: ffff880724ebeb58 > kernel: R10: ffff880724ebeb80 R11: 0000000000000000 R12: 0000000000000001 > kernel: R13: ffff8803d0db5f54 R14: 0000160000000000 R15: 0000000000000006 > kernel: btrfs_try_tree_write_lock+0x23/0x60 [btrfs] > kernel: btrfs_search_slot+0x2df/0x970 [btrfs] > kernel: btrfs_mark_extent_written+0xb0/0xac0 [btrfs] > kernel: ? kmem_cache_alloc+0x1a5/0x1b0 > kernel: btrfs_finish_ordered_io+0x2e2/0x7a0 [btrfs] > kernel: normal_work_helper+0xad/0x2c0 [btrfs] > kernel: process_one_work+0x1e3/0x390 > kernel: worker_thread+0x2d/0x3c0 > kernel: ? process_one_work+0x390/0x390 > kernel: kthread+0x111/0x130 > kernel: ? kthread_flush_work_fn+0x10/0x10 > kernel: ret_from_fork+0x1f/0x30