Re: [PATCH v2 00/14] btrfs-progs: image: Enhance and bug fixes

Anand Jain
2019-07-04T02:13:22Z

On 2/7/19 6:07 PM, WenRuo Qu wrote:
> This patchset is based on v5.1.1 tag.
>
> With this update, the patchset has the following features:
> - various small fixes and enhancements for btrfs-image
> * Fix an indent misalign
> * Fix an access-beyond-boundary bug
> * Fix a confusing error message due to unpopulated errno
> * Output error message for chunk tree build error
> * Use SZ_* to replace intermediate number
> * Verify superblock before restore
>
> - btrfs-image dump support
> This introduce a new option -d to dump data.
> Due to item size limit, we have to enlarge the existing limit from
> 256K (enough for tree blocks, but not enough for free space cache) to
> 256M.
> This change will cause incompatibility, thus we have to introduce a
> new magic as version. While keeping all other on-disk format the same.
>
> - Reduce memory usage for both compressed and uncompressed images
> Originally for compressed extents, we will use 4 * max_pending_size as
> output buffer, which can be 1G for 256M newer limit.
>
> Change it to use at most 512K for compressed extent output buf, and
> also use 512K fixed buffer size for uncompressed extent.
>
> - btrfs-image restore optimization
> This will speed up chunk item search during restore.
>
> Changelog:
> v2:
> - New small fixes:
> * Fix a confusing error message due to unpopulated errno
> * Output error message for chunk tree build error
>
> - Fix a regression of previous version
> Patch "btrfs-progs: image: Rework how we search chunk tree blocks"
> deleted a "ret = 0" line which could cause false early exit.
>
> - Reduce memory usage for data dump

> Qu Wenruo (14):
> btrfs-progs: image: Use SZ_* to replace intermediate size
> btrfs-progs: image: Fix an indent misalign
> btrfs-progs: image: Fix an access-beyond-boundary bug when there are
> 32 online CPUs
> btrfs-progs: image: Verify the superblock before restore
> btrfs-progs: image: Introduce framework for more dump versions
> btrfs-progs: image: Introduce -d option to dump data
> btrfs-progs: image: Allow restore to record system chunk ranges for
> later usage
> btrfs-progs: image: Introduce helper to determine if a tree block is
> in the range of system chunks
> btrfs-progs: image: Rework how we search chunk tree blocks
> btrfs-progs: image: Reduce memory requirement for decompression
> btrfs-progs: image: Don't waste memory when we're just extracting
> super block
> btrfs-progs: image: Reduce memory usage for chunk tree search
> btrfs-progs: image: Output error message for chunk tree build error
> btrfs-progs: image: Fix error output to show correct return value
>

How about separating the -d option enhancement patch from rest of
the patches? Looks like -d option patch is only one, and the rest
can go independently?.

> disk-io.c | 6 +-
> disk-io.h | 1 +
> image/main.c | 874 +++++++++++++++++++++++++++++++++++------------
> image/metadump.h | 15 +-
> 4 files changed, 666 insertions(+), 230 deletions(-)
>