> Il giorno 06 mar 2017, alle ore 08:43, Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx> ha scritto: > > On 2017.03.04 at 17:01 +0100, Paolo Valente wrote: >> Hi, >> at last, here is my first patch series meant for merging. It adds BFQ >> to blk-mq. Don't worry, in this message I won't bore you again with >> the wonderful properties of BFQ :) > > I gave BFQ a quick try. Unfortunately it hangs when I try to delete > btrfs snapshots: > > root 124 0.0 0.0 0 0 ? D 07:19 0:03 [btrfs-cleaner] > root 125 0.0 0.0 0 0 ? D 07:19 0:00 [btrfs-transacti] > > [ 4372.880116] sysrq: SysRq : Show Blocked State > [ 4372.880125] task PC stack pid father > [ 4372.880148] btrfs-cleaner D 0 124 2 0x00000000 > [ 4372.880156] Call Trace: > [ 4372.880166] ? __schedule+0x160/0x7c0 > [ 4372.880174] ? io_schedule+0x64/0xe0 > [ 4372.880179] ? wait_on_page_bit+0x7a/0x100 > [ 4372.880183] ? devm_memunmap+0x40/0x40 > [ 4372.880189] ? read_extent_buffer_pages+0x25c/0x2c0 > [ 4372.880195] ? run_one_async_done+0xc0/0xc0 > [ 4372.880200] ? btree_read_extent_buffer_pages+0x60/0x2e0 > [ 4372.880206] ? read_tree_block+0x2c/0x60 > [ 4372.880211] ? read_block_for_search.isra.38+0xec/0x3a0 > [ 4372.880217] ? btrfs_search_slot+0x214/0xbc0 > [ 4372.880221] ? lookup_inline_extent_backref+0xfb/0x8c0 > [ 4372.880225] ? __btrfs_free_extent.isra.74+0xe9/0xdc0 > [ 4372.880231] ? btrfs_merge_delayed_refs+0x57/0x6e0 > [ 4372.880235] ? __btrfs_run_delayed_refs+0x60d/0x1340 > [ 4372.880239] ? btrfs_run_delayed_refs+0x64/0x280 > [ 4372.880243] ? btrfs_should_end_transaction+0x3b/0xa0 > [ 4372.880247] ? btrfs_drop_snapshot+0x3b2/0x800 > [ 4372.880251] ? __schedule+0x168/0x7c0 > [ 4372.880254] ? btrfs_clean_one_deleted_snapshot+0xa4/0xe0 > [ 4372.880259] ? cleaner_kthread+0x13a/0x180 > [ 4372.880264] ? btree_invalidatepage+0xc0/0xc0 > [ 4372.880268] ? kthread+0x144/0x180 > [ 4372.880272] ? kthread_flush_work_fn+0x20/0x20 > [ 4372.880277] ? ret_from_fork+0x23/0x30 > [ 4372.880280] btrfs-transacti D 0 125 2 0x00000000 > [ 4372.880285] Call Trace: > [ 4372.880290] ? __schedule+0x160/0x7c0 > [ 4372.880295] ? io_schedule+0x64/0xe0 > [ 4372.880300] ? wait_on_page_bit_common.constprop.57+0x160/0x180 > [ 4372.880303] ? devm_memunmap+0x40/0x40 > [ 4372.880307] ? __filemap_fdatawait_range+0xd3/0x140 > [ 4372.880311] ? clear_state_bit.constprop.82+0xf7/0x180 > [ 4372.880315] ? __clear_extent_bit.constprop.79+0x138/0x3c0 > [ 4372.880319] ? filemap_fdatawait_range+0x9/0x60 > [ 4372.880323] ? __btrfs_wait_marked_extents.isra.18+0xc1/0x100 > [ 4372.880327] ? btrfs_write_and_wait_marked_extents.constprop.23+0x49/0x80 > [ 4372.880331] ? btrfs_commit_transaction+0x8e1/0xb00 > [ 4372.880334] ? join_transaction.constprop.24+0x10/0xa0 > [ 4372.880340] ? wake_bit_function+0x60/0x60 > [ 4372.880345] ? transaction_kthread+0x185/0x1a0 > [ 4372.880350] ? btrfs_cleanup_transaction+0x500/0x500 > [ 4372.880354] ? kthread+0x144/0x180 > [ 4372.880358] ? kthread_flush_work_fn+0x20/0x20 > [ 4372.880362] ? ret_from_fork+0x23/0x30 > [ 4372.880367] ntpd D 0 175 1 0x00000004 > [ 4372.880372] Call Trace: > [ 4372.880375] ? __schedule+0x160/0x7c0 > [ 4372.880379] ? schedule_preempt_disabled+0x2d/0x80 > [ 4372.880383] ? __mutex_lock.isra.5+0x17b/0x4c0 > [ 4372.880386] ? wait_current_trans+0x15/0xc0 > [ 4372.880391] ? btrfs_free_path+0xe/0x20 > [ 4372.880395] ? btrfs_pin_log_trans+0x14/0x40 > [ 4372.880400] ? btrfs_rename2+0x28e/0x19c0 > [ 4372.880404] ? path_init+0x187/0x3e0 > [ 4372.880407] ? unlazy_walk+0x4b/0x100 > [ 4372.880410] ? terminate_walk+0x8d/0x100 > [ 4372.880414] ? filename_parentat+0x1e9/0x2c0 > [ 4372.880420] ? __kmalloc_track_caller+0xc4/0x100 > [ 4372.880424] ? vfs_rename+0x33f/0x7e0 > [ 4372.880428] ? SYSC_renameat2+0x53c/0x680 > [ 4372.880433] ? entry_SYSCALL_64_fastpath+0x13/0x94 > [ 4372.880437] fcron D 0 178 1 0x00000000 > [ 4372.880441] Call Trace: > [ 4372.880445] ? __schedule+0x160/0x7c0 > [ 4372.880448] ? schedule_preempt_disabled+0x2d/0x80 > [ 4372.880452] ? __mutex_lock.isra.5+0x17b/0x4c0 > [ 4372.880458] ? pagevec_lookup_tag+0x18/0x20 > [ 4372.880462] ? btrfs_log_dentry_safe+0x4cd/0xac0 > [ 4372.880466] ? btrfs_start_transaction+0x249/0x460 > [ 4372.880470] ? btrfs_sync_file+0x288/0x3c0 > [ 4372.880475] ? btrfs_file_write_iter+0x3a9/0x4e0 > [ 4372.880479] ? vfs_write+0x26c/0x2c0 > [ 4372.880483] ? SyS_write+0x3d/0xa0 > [ 4372.880486] ? SyS_fchown+0x7b/0xa0 > [ 4372.880491] ? entry_SYSCALL_64_fastpath+0x13/0x94 > [ 4372.880508] kworker/u8:8 D 0 759 2 0x00000000 > [ 4372.880518] Workqueue: btrfs-submit btrfs_submit_helper > [ 4372.880520] Call Trace: > [ 4372.880524] ? __schedule+0x160/0x7c0 > [ 4372.880529] ? io_schedule+0x64/0xe0 > [ 4372.880534] ? blk_mq_get_tag+0x212/0x320 > [ 4372.880538] ? wake_bit_function+0x60/0x60 > [ 4372.880544] ? __blk_mq_alloc_request+0x11/0x1c0 > [ 4372.880548] ? blk_mq_sched_get_request+0x17e/0x220 > [ 4372.880553] ? blk_sq_make_request+0xd3/0x4c0 > [ 4372.880557] ? blk_mq_sched_dispatch_requests+0x104/0x160 > [ 4372.880561] ? generic_make_request+0xc3/0x2e0 > [ 4372.880564] ? submit_bio+0x58/0x100 > [ 4372.880569] ? run_scheduled_bios+0x1a6/0x500 > [ 4372.880574] ? btrfs_worker_helper+0x129/0x1c0 > [ 4372.880580] ? process_one_work+0x1bc/0x400 > [ 4372.880585] ? worker_thread+0x42/0x540 > [ 4372.880588] ? __schedule+0x168/0x7c0 > [ 4372.880592] ? process_one_work+0x400/0x400 > [ 4372.880596] ? kthread+0x144/0x180 > [ 4372.880600] ? kthread_flush_work_fn+0x20/0x20 > [ 4372.880605] ? ret_from_fork+0x23/0x30 > > I could get it going again by running: > echo "mq-deadline" > /sys/block/sdb/queue/scheduler > Hi Markus, thanks for testing BFQ. And sorry for replying only now. Before replying I have tried to reproduce the failure, or to understand somehow the link between the failure and BFQ (unfortunately, no BFQ function is preset in your stack trace). Unfortunately at no avail. I hope that your failure was caused by one of the bugs that I have fixed from the previous submission. So, if you could try the new patch series [1] when you have time to, I would really appreciate that. Thanks, Paolo [1] https://lkml.org/lkml/2017/3/31/393 > -- > Markus