Re: [PATCH v5 00/15] jevents/pmu-events improvements
From: Ian Rogers <irogers@google.com>
Date: 2023-01-27 20:06:44
On Fri, Jan 27, 2023, 5:20 AM John Garry [off-list ref] wrote:
On 26/01/2023 23:36, Ian Rogers wrote: Hi Ian, At a glance, none of this series has your Signed-off-by tag.. Thanks, John
Thanks John, will fix. Is there anything else? Ian
Add an optimization to jevents using the metric code, rewrite metricsquoted
in terms of each other in order to minimize size and improve readability. For example, on Power8 other_stall_cpi is rewritten from: "PM_CMPLU_STALL / PM_RUN_INST_CMPL - PM_CMPLU_STALL_BRU_CRU /PM_RUN_INST_CMPL - PM_CMPLU_STALL_FXU / PM_RUN_INST_CMPL - PM_CMPLU_STALL_VSU / PM_RUN_INST_CMPL - PM_CMPLU_STALL_LSU / PM_RUN_INST_CMPL - PM_CMPLU_STALL_NTCG_FLUSH / PM_RUN_INST_CMPL - PM_CMPLU_STALL_NO_NTF / PM_RUN_INST_CMPL"quoted
to: "stall_cpi - bru_cru_stall_cpi - fxu_stall_cpi - vsu_stall_cpi -lsu_stall_cpi - ntcg_flush_cpi - no_ntf_stall_cpi"quoted
Which more closely matches the definition on Power9. A limitation of the substitutions are that they depend on strict equality and the shape of the tree. This means that for "a + b + c" then a substitution of "a + b" will succeed while "b + c" will fail (the LHS for "+ c" is "a + b" not just "b"). Separate out the events and metrics in the pmu-events tables saving 14.8% in the table size while making it that metrics no longer need to iterate over all events and vice versa. These changes remove evsel's direct metric support as the pmu_event no longer has a metric to populate it. This is a minor issue as the code wasn't working properly, metrics for this are rare and can still be properly ran using '-M'. Add an ability to just build certain models into the jevents generated pmu-metrics.c code. This functionality is appropriate for operating systems like ChromeOS, that aim to minimize binary size and know all the target CPU models.