On Fri, 23 Jul 2021 13:02:14 +0800 Gao Xiang <[email protected]> wrote:
> Hi Yue, > > On Fri, Jul 23, 2021 at 11:49:45AM +0800, Yue Hu wrote: > > From: Yue Hu <[email protected]> > > > > Note that count value will be always greater than EROFS_BLKSIZ when > > calling erofs_compress_destsize() in vle_compress_one(). So, the d1 > > always >= 1 for compressed block in vle_write_indexes(). That is to > > say tail-end block can't be compressed. > > > > Signed-off-by: Yue Hu <[email protected]> > > I once thought tail end block can be compressed with < EROFS_BLKSIZ as > well (as long as it has some benefit) and also tail-packing inline > like uncompressed cases together after compress extents, so that when we > reading the last compress extent meta block, the tail-packing compressed > data can be loaded together. Understood. > > Currently, I think we could do that, but could you add some DBG_BUGON > like DBG_BUGON(!raw) right above > "type = Z_EROFS_VLE_CLUSTER_TYPE_PLAIN;" and a TODO comment to mention > tail-packing inline compressed cases is under TODO list? That would be Will do it in v2. Thanks. > much better. > > Thanks, > Gao Xiang > > > --- > > lib/compress.c | 5 ++--- > > 1 file changed, 2 insertions(+), 3 deletions(-) > > > > diff --git a/lib/compress.c b/lib/compress.c > > index af0c720..93fc543 100644 > > --- a/lib/compress.c > > +++ b/lib/compress.c > > @@ -73,10 +73,9 @@ static void vle_write_indexes(struct > > z_erofs_vle_compress_ctx *ctx, > > > > di.di_clusterofs = cpu_to_le16(ctx->clusterofs); > > > > - /* whether the tail-end (un)compressed block or not */ > > + /* whether the tail-end uncompressed block or not */ > > if (!d1) { > > - type = raw ? Z_EROFS_VLE_CLUSTER_TYPE_PLAIN : > > - Z_EROFS_VLE_CLUSTER_TYPE_HEAD; > > + type = Z_EROFS_VLE_CLUSTER_TYPE_PLAIN; > > advise = cpu_to_le16(type << Z_EROFS_VLE_DI_CLUSTER_TYPE_BIT); > > > > di.di_advise = advise; > > -- > > 1.9.1
