/* Return starting number of a counter set */ staticint get_counterset_start(int setnr)
{ switch (setnr) { case CPUMF_CTR_SET_BASIC: /* Basic counter set */ return0; case CPUMF_CTR_SET_USER: /* Problem state counter set */ return32; case CPUMF_CTR_SET_CRYPTO: /* Crypto counter set */ return64; case CPUMF_CTR_SET_EXT: /* Extended counter set */ return128; case CPUMF_CTR_SET_MT_DIAG: /* Diagnostic counter set */ return448; case PERF_EVENT_PAI_NNPA_ALL: /* PAI NNPA counter set */ case PERF_EVENT_PAI_CRYPTO_ALL: /* PAI CRYPTO counter set */ return setnr; default: return -1;
}
}
struct get_counter_name_data { int wanted; char *result;
};
/* Scan the PMU and extract the logical name of a counter from the event. Input *isthecountersetandcounternumberwithintheset.Constructtheevent *numberandusethisaskey.Iftheymatchreturnthenameofthiscounter. *IfnomatchisfoundaNULLpointerisreturned.
*/ staticchar *get_counter_name(int set, int nr, struct perf_pmu *pmu)
{ struct get_counter_name_data data = {
.wanted = get_counterset_start(set) + nr,
.result = NULL,
};
if (event->header.type != PERF_RECORD_SAMPLE) return;
evsel = evlist__event2evsel(evlist, event); if (!evsel) return;
/* Check for raw data in sample */ if (!sample->raw_size || !sample->raw_data) return;
/* Display raw data on screen */ if (evsel->core.attr.config == PERF_EVENT_CPUM_CF_DIAG) { if (!evsel->pmu)
evsel->pmu = perf_pmus__find("cpum_cf"); if (!s390_cpumcfdg_testctr(sample))
pr_err("Invalid counter set data encountered\n"); else
s390_cpumcfdg_dump(evsel->pmu, sample); return;
}
switch (evsel->core.attr.config) { case PERF_EVENT_PAI_NNPA_ALL:
pai_name = "NNPA_ALL"; break; case PERF_EVENT_PAI_CRYPTO_ALL:
pai_name = "CRYPTO_ALL"; break; default: return;
}
if (!s390_pai_all_test(sample)) {
pr_err("Invalid %s raw data encountered\n", pai_name);
} else { if (!evsel->pmu)
evsel->pmu = perf_pmus__find_by_type(evsel->core.attr.type);
s390_pai_all_dump(evsel, sample);
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-10-11)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.