Message ID | 20231216114341.2281852-1-haokexin@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/khugepaged: Remove unnecessary try_to_freeze() | expand |
On Sat, 16 Dec 2023 19:43:41 +0800 Kevin Hao <haokexin@gmail.com> 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. However, there is no need to use both methods simultaneously. > The freezable wait variants have been used in khugepaged_wait_work() > and khugepaged_alloc_sleep(), so remove this unnecessary > try_to_freeze(). > Looks OK to me, but this will increase freezing latencies. How significant is this? Also, we already have a patch from you with this same title. Please try to use different titles for different patches.
On Mon, Dec 18, 2023 at 10:34:51AM -0800, Andrew Morton wrote: > On Sat, 16 Dec 2023 19:43:41 +0800 Kevin Hao <haokexin@gmail.com> 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. However, there is no need to use both methods simultaneously. > > The freezable wait variants have been used in khugepaged_wait_work() > > and khugepaged_alloc_sleep(), so remove this unnecessary > > try_to_freeze(). > > > > Looks OK to me, but this will increase freezing latencies. How > significant is this? I don't think this would cause observable freezing latencies, and most of time, we won't enter the freezing state, it is worthwhile to reduce the overhead of a function call. On my Intel Alder Lake board (24 CPUs, 32G memory) with transparent hugepage enabled. Before this patch: Freezing user space processes Freezing user space processes completed (elapsed 0.000 seconds) OOM killer disabled. Freezing remaining freezable tasks Freezing remaining freezable tasks completed (elapsed 0.001 seconds) After this patch: Freezing user space processes Freezing user space processes completed (elapsed 0.000 seconds) OOM killer disabled. Freezing remaining freezable tasks Freezing remaining freezable tasks completed (elapsed 0.001 seconds) > > Also, we already have a patch from you with this same title. Please > try to use different titles for different patches. Sure, I will tweak it in v2. Thanks, Kevin
diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 1002e9156388..9cdea59fb4c0 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -2499,7 +2499,7 @@ static void khugepaged_do_scan(struct collapse_control *cc) while (true) { cond_resched(); - if (unlikely(kthread_should_stop() || try_to_freeze())) + if (unlikely(kthread_should_stop())) break; spin_lock(&khugepaged_mm_lock);
A freezable kernel thread can enter frozen state during freezing by either calling try_to_freeze() or using wait_event_freezable() and its variants. However, there is no need to use both methods simultaneously. The freezable wait variants have been used in khugepaged_wait_work() and khugepaged_alloc_sleep(), so remove this unnecessary try_to_freeze(). Signed-off-by: Kevin Hao <haokexin@gmail.com> --- mm/khugepaged.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)