2022-10-28 15:08:00

by 李扬韬

[permalink] [raw]
Subject: [PATCH v2] f2fs: stop discard thread if has fsck tag

Under the current logic, after the fsck flag is set,
the discard thread will still run periodically.

So stop the discard thread from running to avoid
energy consumption after the fsck flag is set.

Fixes: d618477473eb ("f2fs: stop issue discard if something wrong with f2fs")
Signed-off-by: Yangtao Li <[email protected]>
---
v2:
- commit msg changes.
fs/f2fs/segment.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 7786351de429..b3600bcadfc7 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -1716,8 +1716,8 @@ static int issue_discard_thread(void *data)
if (kthread_should_stop())
return 0;
if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) {
- wait_ms = dpolicy.max_interval;
- continue;
+ dcc->f2fs_issue_discard = NULL;
+ return 0;
}
if (!atomic_read(&dcc->discard_cmd_cnt))
continue;
--
2.25.1



2022-11-01 15:45:14

by Chao Yu

[permalink] [raw]
Subject: Re: [PATCH v2] f2fs: stop discard thread if has fsck tag

On 2022/10/28 22:37, Yangtao Li wrote:
> Under the current logic, after the fsck flag is set,
> the discard thread will still run periodically.
>
> So stop the discard thread from running to avoid
> energy consumption after the fsck flag is set.
>
> Fixes: d618477473eb ("f2fs: stop issue discard if something wrong with f2fs")
> Signed-off-by: Yangtao Li <[email protected]>
> ---
> v2:
> - commit msg changes.
> fs/f2fs/segment.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> index 7786351de429..b3600bcadfc7 100644
> --- a/fs/f2fs/segment.c
> +++ b/fs/f2fs/segment.c
> @@ -1716,8 +1716,8 @@ static int issue_discard_thread(void *data)
> if (kthread_should_stop())
> return 0;
> if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) {
> - wait_ms = dpolicy.max_interval;
> - continue;
> + dcc->f2fs_issue_discard = NULL;
> + return 0;

I don't think there will be much energy consumption, I guess
we can keep as it is.

> }
> if (!atomic_read(&dcc->discard_cmd_cnt))
> continue;