Hello, cp --reflink=always takes sometimes very long. (i.e. 25-35 minutes)
An example: source file: # ls -la vm-279-disk-1.img -rw-r--r-- 1 root root 204010946560 Oct 14 12:15 vm-279-disk-1.img target file after around 10 minutes: # ls -la vm-279-disk-1.img.tmp -rw-r--r-- 1 root root 65022328832 Oct 15 22:13 vm-279-disk-1.img.tmp I/O Waits are at around 6% but disk usage is at around 100%. The process using most of the disk I/O is a kworker process. A function trace of this kworker for 30s is already 44MB - no idea where to upload. This volume uses space_cache=v2. While digging through it i see a lot of this calls: kworker/u65:4-20679 [007] .... 46021.641882: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641882: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641882: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641882: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641882: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641882: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641882: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641882: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641883: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641883: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641883: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641883: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641883: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641883: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641883: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641883: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641883: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641883: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641883: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641884: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641884: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641884: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641884: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641884: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641884: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641884: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641884: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641884: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641884: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641884: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641885: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641885: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641885: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641885: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641885: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641885: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641886: btrfs_set_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641886: btrfs_get_token_32 <-btrfs_del_items kworker/u65:4-20679 [007] .... 46021.641886: btrfs_set_token_32 <-btrfs_del_items Sorting the calls shows: 4892 _raw_spin_lock <-free_extent_buffer 4894 release_extent_buffer <-free_extent_buffer 6803 map_private_extent_buffer <-generic_bin_search.constprop.36 6839 __set_page_dirty_nobuffers <-btree_set_page_dirty 6840 btree_set_page_dirty <-set_page_dirty 6840 mem_cgroup_begin_page_stat <-__set_page_dirty_nobuffers 6840 page_mapping <-set_page_dirty 6840 set_page_dirty <-set_extent_buffer_dirty 6841 mem_cgroup_end_page_stat <-__set_page_dirty_nobuffers 7521 btrfs_clear_lock_blocking_rw <-btrfs_clear_path_blocking 7967 btrfs_get_token_64 <-read_block_for_search.isra.33 8018 btrfs_set_token_32 <-btrfs_del_items 8235 btrfs_get_token_32 <-btrfs_del_items 8813 btrfs_set_lock_blocking_rw <-btrfs_set_path_blocking 9235 map_private_extent_buffer <-btrfs_get_token_32 11824 btrfs_set_token_32 <-btrfs_extend_item 12090 map_private_extent_buffer <-btrfs_get_token_64 12367 mark_page_accessed <-mark_extent_buffer_accessed 12621 btrfs_get_token_32 <-btrfs_extend_item 16267 btrfs_set_token_32 <-setup_items_for_insert 16423 btrfs_get_token_32 <-setup_items_for_insert 28542 btrfs_comp_cpu_keys <-generic_bin_search.constprop.36 CPU usage is at around 10%. perf top looks like this: 7,55% [kernel] [k] __find_stripe 2,47% [kernel] [k] read_extent_buffer 2,46% [kernel] [k] analyse_stripe 1,96% [kernel] [k] _raw_spin_lock 1,79% [kernel] [k] btrfs_get_token_32 1,65% [kernel] [k] __radix_tree_lookup 1,61% [kernel] [k] btrfs_set_lock_blocking_rw 1,53% [kernel] [k] map_private_extent_buffer 1,36% [kernel] [k] generic_bin_search.constprop.36 1,33% [kernel] [k] ops_run_io 1,26% [kernel] [k] move_freepages 1,22% [kernel] [k] memcpy_erms 1,20% [kernel] [k] rb_next 1,12% [kernel] [k] bio_init 1,07% [kernel] [k] btrfs_clear_lock_blocking_rw 1,05% [kernel] [k] __memmove 1,00% [kernel] [k] _raw_spin_lock_irqsave 0,94% [kernel] [k] btrfs_set_token_32 0,89% [kernel] [k] menu_select 0,83% [kernel] [k] btrfs_get_token_64 0,82% [kernel] [k] __lookup_extent_mapping 0,77% [kernel] [k] handle_stripe 0,77% [kernel] [k] native_queued_spin_lock_slowpath 0,75% [kernel] [k] raid5_compute_blocknr 0,64% [kernel] [k] btrfs_search_slot 0,63% [kernel] [k] btrfs_comp_cpu_keys Greets, Stefan -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html