[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 9 Sep 2020 15:13:45 +0800
From: Chao Yu <yuchao0@...wei.com>
To: Daeho Jeong <daeho43@...il.com>, <linux-kernel@...r.kernel.org>,
<linux-f2fs-devel@...ts.sourceforge.net>, <kernel-team@...roid.com>
Subject: Re: [f2fs-dev] Question about STEP_DECOMPRESS_NOWQ
Hi Daeho,
On 2020/9/9 12:43, Daeho Jeong wrote:
> Hi Chao,
>
> I have a question about the below flag for decompression.
>
> STEP_DECOMPRESS_NOWQ, /* handle normal cluster data inplace */
>
> According to the comment, you added this for using inplace
I added this for the condition that: in compressed inode, partial clusters are
written as normal (non-compressed) one due to bad compress ratio, during reading
data in normal cluster, we don't need to queue them in workqueue, instead, we
can just handle them in IRQ context (end_io()).
That says, if all pages in bio are non-compressed, we tag step w/ STEP_DECOMPRESS_NOWQ,
once there is at least one page is compressed, we change step to
STEP_DECOMPRESS.
> decompression but inplace decompression mode is not being activated
'inplace decompression' means decompress in
a. reader thread or
b. IRQ context ?
Thanks
> now, since we are setting STEP_DECOMPRESS right after bio_add_page().
>
> if (bio_add_page(bio, page, blocksize, 0) < blocksize)
> goto submit_and_realloc;
>
> /* tag STEP_DECOMPRESS to handle IO in wq */
> ctx = bio->bi_private;
> if (!(ctx->enabled_steps & (1 << STEP_DECOMPRESS)))
> ctx->enabled_steps |= 1 << STEP_DECOMPRESS;
>
> Did you mean to deactivate inplace decompression mode on purpose,
> since it had an issue? I am a little bit confused about this.
>
>
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@...ts.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
> .
>
Powered by blists - more mailing lists