• Liu Bo's avatar
    Btrfs: add readahead for send_write · 2131bcd3
    Liu Bo authored
    Btrfs send reads data from disk and then writes to a stream via pipe or
    a file via flush.
    
    Currently we're going to read each page a time, so every page results
    in a disk read, which is not friendly to disks, esp. HDD.  Given that,
    the performance can be gained by adding readahead for those pages.
    
    Here is a quick test:
    $ btrfs subvolume create send
    $ xfs_io -f -c "pwrite 0 1G" send/foobar
    $ btrfs subvolume snap -r send ro
    $ time "btrfs send ro -f /dev/null"
    
               w/o             w
    real    1m37.527s       0m9.097s
    user    0m0.122s        0m0.086s
    sys     0m53.191s       0m12.857s
    Signed-off-by: default avatarLiu Bo <bo.li.liu@oracle.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.cz>
    Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
    2131bcd3
send.c 132 KB