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-de...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
.

Reply via email to