diff mbox series

mm/khugepaged: Remove unnecessary try_to_freeze()

Message ID 20231216114341.2281852-1-haokexin@gmail.com (mailing list archive)
State New
Headers show
Series mm/khugepaged: Remove unnecessary try_to_freeze() | expand

Commit Message

Kevin Hao Dec. 16, 2023, 11:43 a.m. UTC
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(-)

Comments

Andrew Morton Dec. 18, 2023, 6:34 p.m. UTC | #1
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.
Kevin Hao Dec. 19, 2023, 12:44 a.m. UTC | #2
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 mbox series

Patch

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);