Messages in this thread | | | Subject | Re: [f2fs-dev] Question about STEP_DECOMPRESS_NOWQ | From | Chao Yu <> | Date | Wed, 9 Sep 2020 15:13:45 +0800 |
| |
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@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel > . >
| |