Commit d9e0970f authored by Namhyung Kim's avatar Namhyung Kim
Browse files

perf tools: Simplify evsel__add_modifier()



Since it doesn't set the exclude_guest, no need to special handle the
bit and simply show only if one of host or guest bit is set.  Now the
default event name might not have :H prefix anymore so change the
dlfilter test not to compare the ":" at the end.

Reviewed-by: default avatarIan Rogers <irogers@google.com>
Reviewed-by: default avatarJames Clark <james.clark@linaro.org>
Reviewed-by: default avatarRavi Bangoria <ravi.bangoria@amd.com>
Acked-by: default avatarKan Liang <kan.liang@linux.intel.com>
Cc: James Clark <james.clark@arm.com>
Cc: Atish Patra <atishp@atishpatra.org>
Cc: Mingwei Zhang <mizhang@google.com>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Thomas Richter <tmricht@linux.ibm.com>
Cc: Palmer Dabbelt <palmer@rivosinc.com>
Link: https://lore.kernel.org/r/20241016062359.264929-4-namhyung@kernel.org


Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
parent 35c8d213
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -220,7 +220,7 @@ static int check_sample(struct filter_data *d, const struct perf_dlfilter_sample
	CHECK_SAMPLE(raw_callchain_nr);
	CHECK(!sample->raw_callchain);

#define EVENT_NAME "branches:"
#define EVENT_NAME "branches"
	CHECK(!strncmp(sample->event, EVENT_NAME, strlen(EVENT_NAME)));

	return 0;
+1 −1
Original line number Diff line number Diff line
@@ -235,7 +235,7 @@ static int check_sample(struct filter_data *d, const struct perf_dlfilter_sample
	CHECK_SAMPLE(raw_callchain_nr);
	CHECK(!sample->raw_callchain);

#define EVENT_NAME "branches:"
#define EVENT_NAME "branches"
	CHECK(!strncmp(sample->event, EVENT_NAME, strlen(EVENT_NAME)));

	return 0;
+1 −4
Original line number Diff line number Diff line
@@ -638,7 +638,6 @@ static int evsel__add_modifiers(struct evsel *evsel, char *bf, size_t size)
{
	int colon = 0, r = 0;
	struct perf_event_attr *attr = &evsel->core.attr;
	bool exclude_guest_default = false;

#define MOD_PRINT(context, mod)	do {					\
		if (!attr->exclude_##context) {				\
@@ -650,17 +649,15 @@ static int evsel__add_modifiers(struct evsel *evsel, char *bf, size_t size)
		MOD_PRINT(kernel, 'k');
		MOD_PRINT(user, 'u');
		MOD_PRINT(hv, 'h');
		exclude_guest_default = true;
	}

	if (attr->precise_ip) {
		if (!colon)
			colon = ++r;
		r += scnprintf(bf + r, size - r, "%.*s", attr->precise_ip, "ppp");
		exclude_guest_default = true;
	}

	if (attr->exclude_host || attr->exclude_guest == exclude_guest_default) {
	if (attr->exclude_host || attr->exclude_guest) {
		MOD_PRINT(host, 'H');
		MOD_PRINT(guest, 'G');
	}