All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mm/damon/tests: use scoped_guard() for damon_test_ops_registration
@ 2026-08-15 14:30 Jaeyeon Lee
  2026-08-15 14:39 ` sashiko-bot
  2026-08-15 15:30 ` SJ Park
  0 siblings, 2 replies; 3+ messages in thread
From: Jaeyeon Lee @ 2026-08-15 14:30 UTC (permalink / raw)
  To: sj, akpm
  Cc: shu17az, jiayuan.chen, jaeyeon.lee.dev, damon, linux-mm,
	linux-kernel

Replace manual mutex_lock() and mutex_unlock() calls with the
scoped_guard() macro. This simplifies the code, improves readability,
and ensures that the lock is automatically released when the scope
ends, preventing potential lock leaks in the future.

Signed-off-by: Jaeyeon Lee <jaeyeon.lee.dev@gmail.com>
---
 mm/damon/tests/core-kunit.h | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h
index 4a536d41cdb2..770927a30021 100644
--- a/mm/damon/tests/core-kunit.h
+++ b/mm/damon/tests/core-kunit.h
@@ -434,17 +434,17 @@ static void damon_test_ops_registration(struct kunit *test)
 	KUNIT_EXPECT_EQ(test, damon_select_ops(c, NR_DAMON_OPS), -EINVAL);
 
 	/* Registration should success after unregistration */
-	mutex_lock(&damon_ops_lock);
-	bak = damon_registered_ops[DAMON_OPS_VADDR];
-	damon_registered_ops[DAMON_OPS_VADDR] = (struct damon_operations){};
-	mutex_unlock(&damon_ops_lock);
+	scoped_guard(mutex, &damon_ops_lock) {
+		bak = damon_registered_ops[DAMON_OPS_VADDR];
+		damon_registered_ops[DAMON_OPS_VADDR] =
+			(struct damon_operations){};
+	}
 
 	ops.id = DAMON_OPS_VADDR;
 	KUNIT_EXPECT_EQ(test, damon_register_ops(&ops), 0);
 
-	mutex_lock(&damon_ops_lock);
-	damon_registered_ops[DAMON_OPS_VADDR] = bak;
-	mutex_unlock(&damon_ops_lock);
+	scoped_guard(mutex, &damon_ops_lock)
+		damon_registered_ops[DAMON_OPS_VADDR] = bak;
 
 	/* Check double-registration failure again */
 	KUNIT_EXPECT_EQ(test, damon_register_ops(&ops), -EINVAL);
@@ -452,10 +452,9 @@ static void damon_test_ops_registration(struct kunit *test)
 	damon_destroy_ctx(c);
 
 	if (need_cleanup) {
-		mutex_lock(&damon_ops_lock);
-		damon_registered_ops[DAMON_OPS_VADDR] =
-			(struct damon_operations){};
-		mutex_unlock(&damon_ops_lock);
+		scoped_guard(mutex, &damon_ops_lock)
+			damon_registered_ops[DAMON_OPS_VADDR] =
+				(struct damon_operations){};
 	}
 }
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] mm/damon/tests: use scoped_guard() for damon_test_ops_registration
  2026-08-15 14:30 [PATCH] mm/damon/tests: use scoped_guard() for damon_test_ops_registration Jaeyeon Lee
@ 2026-08-15 14:39 ` sashiko-bot
  2026-08-15 15:30 ` SJ Park
  1 sibling, 0 replies; 3+ messages in thread
From: sashiko-bot @ 2026-08-15 14:39 UTC (permalink / raw)
  To: Jaeyeon Lee; +Cc: damon

> Replace manual mutex_lock() and mutex_unlock() calls with the
> scoped_guard() macro. This simplifies the code, improves readability,
> and ensures that the lock is automatically released when the scope
> ends, preventing potential lock leaks in the future.
> 
> Signed-off-by: Jaeyeon Lee <jaeyeon.lee.dev@gmail.com>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260815143039.17291-1-jaeyeon.lee.dev@gmail.com?part=1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] mm/damon/tests: use scoped_guard() for damon_test_ops_registration
  2026-08-15 14:30 [PATCH] mm/damon/tests: use scoped_guard() for damon_test_ops_registration Jaeyeon Lee
  2026-08-15 14:39 ` sashiko-bot
@ 2026-08-15 15:30 ` SJ Park
  1 sibling, 0 replies; 3+ messages in thread
From: SJ Park @ 2026-08-15 15:30 UTC (permalink / raw)
  To: Jaeyeon Lee
  Cc: SJ Park, akpm, shu17az, jiayuan.chen, damon, linux-mm,
	linux-kernel

Hi Jaeyeon,


Thank you for sending this patch!

On Sat, 15 Aug 2026 16:30:39 +0200 Jaeyeon Lee <jaeyeon.lee.dev@gmail.com> wrote:

> Replace manual mutex_lock() and mutex_unlock() calls with the
> scoped_guard() macro. This simplifies the code, improves readability,
> and ensures that the lock is automatically released when the scope
> ends, preventing potential lock leaks in the future.

I'm concerned if DAMON community is not familiar enough with scoped_guard()
macro to handle it well.  At least I'm not yet familiar with it.  That said, it
seems using it for one function in the unit test could be a safe and good
start.

So I want to have this change.  It is not because I want all DAMON code to use
scoped guard, though.  I want to take this change because I want to see if it
is really safe and easy to maintain.  In other words, let's not adopt scoped
guard to more parts of DAMON code, for now.

Thank you for introducing scoped guard to DAMON!

> 
> Signed-off-by: Jaeyeon Lee <jaeyeon.lee.dev@gmail.com>

Reviewed-by: SJ Park <sj@kernel.org>

I applied  this patch to damon/next [1] tree.  We are now quite close to next
merge window.  We (mm community) want to focus on making mm.git more stabilized
and therefore ready for the next merge window, rather than adding more changes
that are not really urgent.  I understand this series is not really urgent.
Hence, Andrew might not add this patch until next -rc1 release.  In the case, I
will request adding this to mm.git after next -rc1 release.  So, no action from
your side is needed for now.  Let me know if you think this is really  urgent.

[1] https://origin.kernel.org/doc/html/latest/mm/damon/maintainer-profile.html#scm-trees


Thanks,
SJ

[...]


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-08-15 15:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-15 14:30 [PATCH] mm/damon/tests: use scoped_guard() for damon_test_ops_registration Jaeyeon Lee
2026-08-15 14:39 ` sashiko-bot
2026-08-15 15:30 ` SJ Park

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.