linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] perf/hw_breakpoint: Optimize __modify_bp_slot() handling
@ 2025-09-03  7:51 Jinchao Wang
  2025-09-03  7:51 ` [PATCH 2/3] perf/hw_breakpoint: Parse before reserving slots Jinchao Wang
  2025-09-03  7:51 ` [PATCH 3/3] perf/hw_breakpoint: Skip modify_bp_slot() if slot index unchanged Jinchao Wang
  0 siblings, 2 replies; 3+ messages in thread
From: Jinchao Wang @ 2025-09-03  7:51 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, Liang, Kan, linux-perf-users
  Cc: linux-kernel, Jinchao Wang

Reserve the new slot first, then release the old one to maintain
consistency and avoid transient failures.

Signed-off-by: Jinchao Wang <wangjinchao600@gmail.com>
---
This patch supersedes the previous version:
https://lore.kernel.org/all/20250902091759.590664-1-wangjinchao600@gmail.com/
---
 kernel/events/hw_breakpoint.c | 19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c
index 8ec2cb688903..6066aff38eec 100644
--- a/kernel/events/hw_breakpoint.c
+++ b/kernel/events/hw_breakpoint.c
@@ -626,22 +626,13 @@ static int __modify_bp_slot(struct perf_event *bp, u64 old_type, u64 new_type)
 {
 	int err;
 
-	__release_bp_slot(bp, old_type);
-
 	err = __reserve_bp_slot(bp, new_type);
-	if (err) {
-		/*
-		 * Reserve the old_type slot back in case
-		 * there's no space for the new type.
-		 *
-		 * This must succeed, because we just released
-		 * the old_type slot in the __release_bp_slot
-		 * call above. If not, something is broken.
-		 */
-		WARN_ON(__reserve_bp_slot(bp, old_type));
-	}
+	if (err)
+		return err;
 
-	return err;
+	__release_bp_slot(bp, old_type);
+
+	return 0;
 }
 
 static int modify_bp_slot(struct perf_event *bp, u64 old_type, u64 new_type)
-- 
2.43.0


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

end of thread, other threads:[~2025-09-03  7:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-03  7:51 [PATCH 1/3] perf/hw_breakpoint: Optimize __modify_bp_slot() handling Jinchao Wang
2025-09-03  7:51 ` [PATCH 2/3] perf/hw_breakpoint: Parse before reserving slots Jinchao Wang
2025-09-03  7:51 ` [PATCH 3/3] perf/hw_breakpoint: Skip modify_bp_slot() if slot index unchanged Jinchao Wang

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