[PATCH] erofs-utils: add clusterofs zero check to write_uncompressed_extent()
hsiangkao at linux.alibaba.com
Wed Aug 18 00:38:04 AEST 2021
On Tue, Aug 17, 2021 at 10:10:46PM +0800, Yue Hu wrote:
> Hi Xiang,
> On Tue, 17 Aug 2021 21:13:14 +0800
> Gao Xiang <hsiangkao at linux.alibaba.com> wrote:
> > Hi Yue,
> > On Tue, Aug 17, 2021 at 12:06:04PM +0800, Yue Hu wrote:
> > > From: Yue Hu <huyue2 at yulong.com>
> > >
> > > No need to reset clusterofs to 0 if it's already 0. Acturally, we also
> > > observed that case frequently. Let's avoid it.
> > >
> > > Signed-off-by: Yue Hu <huyue2 at yulong.com>
> > > ---
> > > lib/compress.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/lib/compress.c b/lib/compress.c
> > > index 40723a1..a8ebbc1 100644
> > > --- a/lib/compress.c
> > > +++ b/lib/compress.c
> > > @@ -130,7 +130,7 @@ static int write_uncompressed_extent(struct z_erofs_vle_compress_ctx *ctx,
> > > unsigned int count;
> > >
> > > /* reset clusterofs to 0 if permitted */
> > > - if (!erofs_sb_has_lz4_0padding() &&
> > > + if (!erofs_sb_has_lz4_0padding() && ctx->clusterofs &&
> > Also out of curiosity, which means erofs is used without lz4 0padding?
> Yes. We are using legacy compression layout now.
Ok, I think sometime I will seperate it into (non)compact compress
indexes, and (non)0padding. It was once named as legacy just before
Linux < 5.3 didn't support them.
By default, the preferred option now I think is compact and 0padding.
0padding will enable in-place decompression (and LZMA will always
compact will reduce metadata even further as long as the compressed
data is consecutive (e.g. 2 bytes each lcluster for compact indexes
rather than 8 bytes each lcluster for noncompact indexes, but anyway,
either (non)compact metadata can support effective data random access.)
Ok, if it's somewhat kernel 4.19 based code, I'd suggest to upgrade
the codebase at least to 5.4, not because 4.19 doesn't work, but
really for some performance concern....
More information about the Linux-erofs