[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250903075144.3722848-1-wangjinchao600@gmail.com>
Date: Wed, 3 Sep 2025 15:51:38 +0800
From: Jinchao Wang <wangjinchao600@...il.com>
To: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>,
Ian Rogers <irogers@...gle.com>,
Adrian Hunter <adrian.hunter@...el.com>,
"Liang, Kan" <kan.liang@...ux.intel.com>,
linux-perf-users@...r.kernel.org
Cc: linux-kernel@...r.kernel.org,
Jinchao Wang <wangjinchao600@...il.com>
Subject: [PATCH 1/3] perf/hw_breakpoint: Optimize __modify_bp_slot() handling
Reserve the new slot first, then release the old one to maintain
consistency and avoid transient failures.
Signed-off-by: Jinchao Wang <wangjinchao600@...il.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
Powered by blists - more mailing lists