mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
perf sched: Fix thread reference leak in idle hist processing
timehist_sched_change_event() sets itr->last_thread to NULL at the end
of idle hist processing without calling thread__put() first. The
thread reference was acquired via thread__get() in timehist_get_thread()
(line 2581), so every idle context switch leaks a thread reference when
--idle-hist is active.
Use thread__zput() to properly release the reference before clearing
the pointer.
Fixes: 5d8f17fb5822 ("perf sched timehist: Add -I/--idle-hist option")
Reported-by: sashiko-bot <sashiko-bot@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
c9b3054c99
commit
662d56d48e
|
|
@ -2940,7 +2940,7 @@ static int timehist_sched_change_event(const struct perf_tool *tool,
|
|||
if (itr->cursor.nr)
|
||||
callchain_append(&itr->callchain, &itr->cursor, t - tprev);
|
||||
|
||||
itr->last_thread = NULL;
|
||||
thread__zput(itr->last_thread);
|
||||
}
|
||||
|
||||
if (!sched->summary_only)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user