On 21/12/2017 19:39, Jiri Olsa wrote:
Hi Jirka,
>
> When you say reasonable size for x86, I ran a string duplication finder on
> the x86 JSONs and the results show a huge amount of duplication. Please
> check this:
> 
https://gist.githubusercontent.com/johnpgarry/68bc87e823ae2ce0f7b475b4e55e5795/raw/f4cea138999d8b34151b9586d733592e01774d7a/x86%2520JSON%2520duplication
>
> Extract:
> "Found a 65 line (311 tokens) duplication in the following files:
> Starting at line 100 of
> /linux/tools/perf/pmu-events/arch/x86/ivybridge/ivb-metrics.json
> Starting at line 100 of
> /linux/tools/perf/pmu-events/arch/x86/ivytown/ivt-metrics.json
> Starting at line 100 of
> /linux/tools/perf/pmu-events/arch/x86/broadwell/bdw-metrics.json
> Starting at line 100 of
> /linux/tools/perf/pmu-events/arch/x86/skylakex/skx-metrics.json
> Starting at line 76 of
> /linux/tools/perf/pmu-events/arch/x86/jaketown/jkt-metrics.json
> Starting at line 100 of
> /linux/tools/perf/pmu-events/arch/x86/skylake/skl-metrics.json
> Starting at line 76 of
> /linux/tools/perf/pmu-events/arch/x86/sandybridge/snb-metrics.json
> Starting at line 100 of
> /linux/tools/perf/pmu-events/arch/x86/broadwellx/bdx-metrics.json"
>


Hi Jirka,

Sorry for the slow reply.

> Won't this all potentially have a big maintainence cost?
as Andi said it's mostly just the disk space,
which is not big deal

I'm not doing JSON file updates, but I think having
simple single dir for platform/cpu could save us some
confusion in future

Understood. But for ARM, which has very standardised architecture events, it is good to reduce this event duplication between platforms.


however I won't oppose if you want to add this logic,
but please:
  - use the list_head ;-)

Of course

  - leave the process_one_file function simple
    and separate the level0 processing

ok, this is how it should look already, albeit a couple of process_one_file() modifications. I'll re-check this.

  - you are using 'EventCode' as an unique ID to find
    the base, but it's not unique for x86, you'll need
    to add some other ID scheme that fits to all archs

Right, so you mentioned earlier using a new keyword token to identify whether we use the standard event, so we can go his way - ok?

I would also like to mention at this point why I did the event pre-processing in jevents, and not a separate script:
- current build does not transverse the arch tree
        - tree transversal for JSON processing is done in jevents
- a script would mean derived objects, which means:
        - makefile changes for derived objects
        - jevents would have to deal with derived objects
- jevents already has support for JSON processing

The advantage of using a script is that we keep the JSON processing in jevents simple.

All the best,
John


thanks,
jirka






Reply via email to