Commit 5b11409b authored by Ian Rogers's avatar Ian Rogers Committed by Namhyung Kim
Browse files

perf jitdump: Directly mark the jitdump DSO



The DSO being generated was being accessed through a thread's maps,
this is unnecessary as the dso can just be directly found. This avoids
problems with passing a NULL evsel which may be inspected to determine
properties of a callchain when using the buildid DSO marking code.

Signed-off-by: default avatarIan Rogers <irogers@google.com>
Link: https://lore.kernel.org/r/20250724163302.596743-8-irogers@google.com


Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
parent d9f2ecbc
Loading
Loading
Loading
Loading
+17 −4
Original line number Diff line number Diff line
@@ -14,9 +14,9 @@
#include <sys/mman.h>
#include <linux/stringify.h>

#include "build-id.h"
#include "event.h"
#include "debug.h"
#include "dso.h"
#include "evlist.h"
#include "namespaces.h"
#include "symbol.h"
@@ -531,9 +531,22 @@ static int jit_repipe_code_load(struct jit_buf_desc *jd, union jr_entry *jr)
	/*
	 * mark dso as use to generate buildid in the header
	 */
	if (!ret)
		build_id__mark_dso_hit(tool, event, &sample, NULL, jd->machine);
	if (!ret) {
		struct dso_id dso_id = {
			{
				.maj = event->mmap2.maj,
				.min = event->mmap2.min,
				.ino = event->mmap2.ino,
				.ino_generation = event->mmap2.ino_generation,
			},
			.mmap2_valid = true,
			.mmap2_ino_generation_valid = true,
		};
		struct dso *dso = machine__findnew_dso_id(jd->machine, filename, &dso_id);

		if (dso)
			dso__set_hit(dso);
	}
out:
	perf_sample__exit(&sample);
	free(event);