* [f2fs-dev] [PATCH v2] f2fs: Use wait_event_freezable_timeout() for freezable kthread
@ 2023-12-21 6:49 Kevin Hao
2023-12-24 13:44 ` Chao Yu
2023-12-29 19:10 ` patchwork-bot+f2fs
0 siblings, 2 replies; 3+ messages in thread
From: Kevin Hao @ 2023-12-21 6:49 UTC (permalink / raw)
To: Jaegeuk Kim, Chao Yu; +Cc: Rafael J. Wysocki, Pavel Machek, linux-f2fs-devel
A freezable kernel thread can enter frozen state during freezing by
either calling try_to_freeze() or using wait_event_freezable() and its
variants. So for the following snippet of code in a kernel thread loop:
wait_event_interruptible_timeout();
try_to_freeze();
We can change it to a simple wait_event_freezable_timeout() and then
eliminate the function calls to try_to_freeze() and freezing().
Signed-off-by: Kevin Hao <haokexin@gmail.com>
---
v2: Drop the invocation of freezing().
fs/f2fs/gc.c | 6 +++---
fs/f2fs/segment.c | 7 ++-----
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index 405a6077bd83..e99f58b5f15c 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -46,8 +46,8 @@ static int gc_thread_func(void *data)
do {
bool sync_mode, foreground = false;
- wait_event_interruptible_timeout(*wq,
- kthread_should_stop() || freezing(current) ||
+ wait_event_freezable_timeout(*wq,
+ kthread_should_stop() ||
waitqueue_active(fggc_wq) ||
gc_th->gc_wake,
msecs_to_jiffies(wait_ms));
@@ -59,7 +59,7 @@ static int gc_thread_func(void *data)
if (gc_th->gc_wake)
gc_th->gc_wake = false;
- if (try_to_freeze() || f2fs_readonly(sbi->sb)) {
+ if (f2fs_readonly(sbi->sb)) {
stat_other_skip_bggc_count(sbi);
continue;
}
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 61da26eb61cc..4c8836ded90f 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -1887,9 +1887,8 @@ static int issue_discard_thread(void *data)
set_freezable();
do {
- wait_event_interruptible_timeout(*q,
- kthread_should_stop() || freezing(current) ||
- dcc->discard_wake,
+ wait_event_freezable_timeout(*q,
+ kthread_should_stop() || dcc->discard_wake,
msecs_to_jiffies(wait_ms));
if (sbi->gc_mode == GC_URGENT_HIGH ||
@@ -1907,8 +1906,6 @@ static int issue_discard_thread(void *data)
if (atomic_read(&dcc->queued_discard))
__wait_all_discard_cmd(sbi, NULL);
- if (try_to_freeze())
- continue;
if (f2fs_readonly(sbi->sb))
continue;
if (kthread_should_stop())
--
2.39.2
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [f2fs-dev] [PATCH v2] f2fs: Use wait_event_freezable_timeout() for freezable kthread
2023-12-21 6:49 [f2fs-dev] [PATCH v2] f2fs: Use wait_event_freezable_timeout() for freezable kthread Kevin Hao
@ 2023-12-24 13:44 ` Chao Yu
2023-12-29 19:10 ` patchwork-bot+f2fs
1 sibling, 0 replies; 3+ messages in thread
From: Chao Yu @ 2023-12-24 13:44 UTC (permalink / raw)
To: Kevin Hao, Jaegeuk Kim; +Cc: Rafael J. Wysocki, Pavel Machek, linux-f2fs-devel
On 2023/12/21 14:49, Kevin Hao wrote:
> A freezable kernel thread can enter frozen state during freezing by
> either calling try_to_freeze() or using wait_event_freezable() and its
> variants. So for the following snippet of code in a kernel thread loop:
> wait_event_interruptible_timeout();
> try_to_freeze();
>
> We can change it to a simple wait_event_freezable_timeout() and then
> eliminate the function calls to try_to_freeze() and freezing().
>
> Signed-off-by: Kevin Hao <haokexin@gmail.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Thanks,
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [f2fs-dev] [PATCH v2] f2fs: Use wait_event_freezable_timeout() for freezable kthread
2023-12-21 6:49 [f2fs-dev] [PATCH v2] f2fs: Use wait_event_freezable_timeout() for freezable kthread Kevin Hao
2023-12-24 13:44 ` Chao Yu
@ 2023-12-29 19:10 ` patchwork-bot+f2fs
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+f2fs @ 2023-12-29 19:10 UTC (permalink / raw)
To: Kevin Hao; +Cc: jaegeuk, linux-f2fs-devel, pavel, rafael
Hello:
This patch was applied to jaegeuk/f2fs.git (dev)
by Jaegeuk Kim <jaegeuk@kernel.org>:
On Thu, 21 Dec 2023 14:49:16 +0800 you wrote:
> A freezable kernel thread can enter frozen state during freezing by
> either calling try_to_freeze() or using wait_event_freezable() and its
> variants. So for the following snippet of code in a kernel thread loop:
> wait_event_interruptible_timeout();
> try_to_freeze();
>
> We can change it to a simple wait_event_freezable_timeout() and then
> eliminate the function calls to try_to_freeze() and freezing().
>
> [...]
Here is the summary with links:
- [f2fs-dev,v2] f2fs: Use wait_event_freezable_timeout() for freezable kthread
https://git.kernel.org/jaegeuk/f2fs/c/94e7eb42414b
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-12-29 19:10 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-21 6:49 [f2fs-dev] [PATCH v2] f2fs: Use wait_event_freezable_timeout() for freezable kthread Kevin Hao
2023-12-24 13:44 ` Chao Yu
2023-12-29 19:10 ` patchwork-bot+f2fs
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).