All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] locking/ww_mutex: Fix ww_mutex dummy lockdep map selftest warnings
@ 2024-11-27  8:54 Thomas Hellström
  2024-11-27  9:41 ` ✗ CI.Patch_applied: failure for " Patchwork
  2024-12-02 11:23 ` [tip: locking/core] " tip-bot2 for Thomas Hellström
  0 siblings, 2 replies; 3+ messages in thread
From: Thomas Hellström @ 2024-11-27  8:54 UTC (permalink / raw)
  To: intel-xe
  Cc: Thomas Hellström, Peter Zijlstra, Ingo Molnar, Will Deacon,
	Waiman Long, Boqun Feng, Maarten Lankhorst, Christian König,
	dri-devel, linux-kernel

The below commit introduces a dummy lockdep map, but didn't get
the initialization quite right (it should mimic the initialization
of the real ww_mutex lockdep maps). It also introduced a separate
locking api selftest failure. Fix these.

Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Will Deacon <will@kernel.org>
Cc: Waiman Long <longman@redhat.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Maarten Lankhorst <maarten@lankhorst.se>
Cc: Christian König <christian.koenig@amd.com>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Suggested-by: Boqun Feng <boqun.feng@gmail.com>
Reported-by: Boqun Feng <boqun.feng@gmail.com>
Closes: https://lore.kernel.org/lkml/Zw19sMtnKdyOVQoh@boqun-archlinux/
Fixes: 823a566221a5 ("locking/ww_mutex: Adjust to lockdep nest_lock requirements")
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 include/linux/ww_mutex.h | 4 ++--
 lib/locking-selftest.c   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/linux/ww_mutex.h b/include/linux/ww_mutex.h
index a401a2f31a77..45ff6f7a872b 100644
--- a/include/linux/ww_mutex.h
+++ b/include/linux/ww_mutex.h
@@ -156,8 +156,8 @@ static inline void ww_acquire_init(struct ww_acquire_ctx *ctx,
 	debug_check_no_locks_freed((void *)ctx, sizeof(*ctx));
 	lockdep_init_map(&ctx->dep_map, ww_class->acquire_name,
 			 &ww_class->acquire_key, 0);
-	lockdep_init_map(&ctx->first_lock_dep_map, ww_class->mutex_name,
-			 &ww_class->mutex_key, 0);
+	lockdep_init_map_wait(&ctx->first_lock_dep_map, ww_class->mutex_name,
+			      &ww_class->mutex_key, 0, LD_WAIT_SLEEP);
 	mutex_acquire(&ctx->dep_map, 0, 0, _RET_IP_);
 	mutex_acquire_nest(&ctx->first_lock_dep_map, 0, 0, &ctx->dep_map, _RET_IP_);
 #endif
diff --git a/lib/locking-selftest.c b/lib/locking-selftest.c
index 6e0c019f71b6..ed99344317f5 100644
--- a/lib/locking-selftest.c
+++ b/lib/locking-selftest.c
@@ -1720,8 +1720,6 @@ static void ww_test_normal(void)
 {
 	int ret;
 
-	WWAI(&t);
-
 	/*
 	 * None of the ww_mutex codepaths should be taken in the 'normal'
 	 * mutex calls. The easiest way to verify this is by using the
@@ -1770,6 +1768,8 @@ static void ww_test_normal(void)
 	ww_mutex_base_unlock(&o.base);
 	WARN_ON(o.ctx != (void *)~0UL);
 
+	WWAI(&t);
+
 	/* nest_lock */
 	o.ctx = (void *)~0UL;
 	ww_mutex_base_lock_nest_lock(&o.base, &t);
-- 
2.47.0


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

* ✗ CI.Patch_applied: failure for locking/ww_mutex: Fix ww_mutex dummy lockdep map selftest warnings
  2024-11-27  8:54 [PATCH] locking/ww_mutex: Fix ww_mutex dummy lockdep map selftest warnings Thomas Hellström
@ 2024-11-27  9:41 ` Patchwork
  2024-12-02 11:23 ` [tip: locking/core] " tip-bot2 for Thomas Hellström
  1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2024-11-27  9:41 UTC (permalink / raw)
  To: Thomas Hellström; +Cc: intel-xe

== Series Details ==

Series: locking/ww_mutex: Fix ww_mutex dummy lockdep map selftest warnings
URL   : https://patchwork.freedesktop.org/series/141827/
State : failure

== Summary ==

=== Applying kernel patches on branch 'drm-tip' with base: ===
Base commit: 441e225c838a drm-tip: 2024y-11m-27d-08h-24m-28s UTC integration manifest
=== git am output follows ===
error: patch failed: include/linux/ww_mutex.h:156
error: include/linux/ww_mutex.h: patch does not apply
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Applying: locking/ww_mutex: Fix ww_mutex dummy lockdep map selftest warnings
Patch failed at 0001 locking/ww_mutex: Fix ww_mutex dummy lockdep map selftest warnings
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".



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

* [tip: locking/core] locking/ww_mutex: Fix ww_mutex dummy lockdep map selftest warnings
  2024-11-27  8:54 [PATCH] locking/ww_mutex: Fix ww_mutex dummy lockdep map selftest warnings Thomas Hellström
  2024-11-27  9:41 ` ✗ CI.Patch_applied: failure for " Patchwork
@ 2024-12-02 11:23 ` tip-bot2 for Thomas Hellström
  1 sibling, 0 replies; 3+ messages in thread
From: tip-bot2 for Thomas Hellström @ 2024-12-02 11:23 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Boqun Feng, thomas.hellstrom, Peter Zijlstra (Intel), x86,
	linux-kernel

The following commit has been merged into the locking/core branch of tip:

Commit-ID:     0302d2fd6efb0c386e521df0134eb2679a9a138f
Gitweb:        https://git.kernel.org/tip/0302d2fd6efb0c386e521df0134eb2679a9a138f
Author:        Thomas Hellström <thomas.hellstrom@linux.intel.com>
AuthorDate:    Wed, 27 Nov 2024 09:54:30 +01:00
Committer:     Peter Zijlstra <peterz@infradead.org>
CommitterDate: Mon, 02 Dec 2024 12:16:57 +01:00

locking/ww_mutex: Fix ww_mutex dummy lockdep map selftest warnings

The below commit introduces a dummy lockdep map, but didn't get
the initialization quite right (it should mimic the initialization
of the real ww_mutex lockdep maps). It also introduced a separate
locking api selftest failure. Fix these.

Closes: https://lore.kernel.org/lkml/Zw19sMtnKdyOVQoh@boqun-archlinux/
Fixes: 823a566221a5 ("locking/ww_mutex: Adjust to lockdep nest_lock requirements")
Reported-by: Boqun Feng <boqun.feng@gmail.com>
Suggested-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20241127085430.3045-1-thomas.hellstrom@linux.intel.com
---
 include/linux/ww_mutex.h | 4 ++--
 lib/locking-selftest.c   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/linux/ww_mutex.h b/include/linux/ww_mutex.h
index a401a2f..45ff6f7 100644
--- a/include/linux/ww_mutex.h
+++ b/include/linux/ww_mutex.h
@@ -156,8 +156,8 @@ static inline void ww_acquire_init(struct ww_acquire_ctx *ctx,
 	debug_check_no_locks_freed((void *)ctx, sizeof(*ctx));
 	lockdep_init_map(&ctx->dep_map, ww_class->acquire_name,
 			 &ww_class->acquire_key, 0);
-	lockdep_init_map(&ctx->first_lock_dep_map, ww_class->mutex_name,
-			 &ww_class->mutex_key, 0);
+	lockdep_init_map_wait(&ctx->first_lock_dep_map, ww_class->mutex_name,
+			      &ww_class->mutex_key, 0, LD_WAIT_SLEEP);
 	mutex_acquire(&ctx->dep_map, 0, 0, _RET_IP_);
 	mutex_acquire_nest(&ctx->first_lock_dep_map, 0, 0, &ctx->dep_map, _RET_IP_);
 #endif
diff --git a/lib/locking-selftest.c b/lib/locking-selftest.c
index 6e0c019..ed99344 100644
--- a/lib/locking-selftest.c
+++ b/lib/locking-selftest.c
@@ -1720,8 +1720,6 @@ static void ww_test_normal(void)
 {
 	int ret;
 
-	WWAI(&t);
-
 	/*
 	 * None of the ww_mutex codepaths should be taken in the 'normal'
 	 * mutex calls. The easiest way to verify this is by using the
@@ -1770,6 +1768,8 @@ static void ww_test_normal(void)
 	ww_mutex_base_unlock(&o.base);
 	WARN_ON(o.ctx != (void *)~0UL);
 
+	WWAI(&t);
+
 	/* nest_lock */
 	o.ctx = (void *)~0UL;
 	ww_mutex_base_lock_nest_lock(&o.base, &t);

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

end of thread, other threads:[~2024-12-02 11:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-27  8:54 [PATCH] locking/ww_mutex: Fix ww_mutex dummy lockdep map selftest warnings Thomas Hellström
2024-11-27  9:41 ` ✗ CI.Patch_applied: failure for " Patchwork
2024-12-02 11:23 ` [tip: locking/core] " tip-bot2 for Thomas Hellström

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.