On Thu, Feb 13, 2020 at 03:03:55PM -0500, Josef Bacik wrote:
> On 2/11/20 12:37 AM, Qu Wenruo wrote:
> > When relocating a data extents with large large data extents, we spend
> > most of our time in relocate_file_extent_cluster() at stage "moving data
> > extents":
> > 1) | btrfs_relocate_block_group [btrfs]() {
> > 1) | relocate_file_extent_cluster [btrfs]() {
> > 1) $ 6586769 us | }
> > 1) + 18.260 us | relocate_file_extent_cluster [btrfs]();
> > 1) + 15.770 us | relocate_file_extent_cluster [btrfs]();
> > 1) $ 8916340 us | }
> > 1) | btrfs_relocate_block_group [btrfs]() {
> > 1) | relocate_file_extent_cluster [btrfs]() {
> > 1) $ 11611586 us | }
> > 1) + 16.930 us | relocate_file_extent_cluster [btrfs]();
> > 1) + 15.870 us | relocate_file_extent_cluster [btrfs]();
> > 1) $ 14986130 us | }
> >
> > So to make data relocation cancelling quicker, here add extra balance
> > cancelling check after each page read in relocate_file_extent_cluster().
> >
> > Signed-off-by: Qu Wenruo <wqu@xxxxxxxx>
>
> If you respin, can you note that with this cancellation we'll break out and
> merge the reloc roots, its not like everything will just be left over to be
> completed at the next mount.
Yes that's what I miss here too and asked about it in v1 thread. No
resend is needed, I can update changelog if the new text is sent to me.