Re: [PATCH v1 2/2] perf header: Support hybrid CPU_PMU_CAPS

From: Jiri Olsa
Date: Tue May 04 2021 - 11:08:05 EST


On Fri, Apr 30, 2021 at 03:46:02PM +0800, Jin Yao wrote:
> On hybrid platform, it may have several cpu pmus, such as,
> "cpu_core" and "cpu_atom". The CPU_PMU_CAPS feature in perf
> header needs to be improved to support multiple cpu pmus.
>
> The new layout in header is defined as:
>
> <nr_caps>
> <caps string>
> <caps string>
> <pmu name>
> <nr of rest pmus>

not sure why is the 'nr of rest pmus' needed

the current format is:

u32 nr_cpu_pmu_caps;
{
char name[];
char value[];
} [nr_cpu_pmu_caps]


I guess we could extend it to:

u32 nr_cpu_pmu_caps;
{
char name[];
char value[];
} [nr_cpu_pmu_caps]
char pmu_name[]

u32 nr_cpu_pmu_caps;
{
char name[];
char value[];
} [nr_cpu_pmu_caps]
char pmu_name[]

...

and we could detect the old format by checking that there's no
pmu name.. but maybe I'm missing something, I did not check deeply,
please let me know

also would be great to move the format change and storing hybrid
pmus in separate patches

thanks,
jirka