]> code.ossystems Code Review - openembedded-core.git/commitdiff
perf: sort-pmuevents: don't drop elements
authorMax Krummenacher <max.oss.09@gmail.com>
Mon, 22 Nov 2021 16:34:58 +0000 (17:34 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 26 Nov 2021 16:58:55 +0000 (16:58 +0000)
If a struct element neither has an element cpuid or name it gets silenty
dropped.
Kernel 5.15 for some ARCHs have at least one array of structs matching
this.
e.g. for arm pmu-events.c:

|#include "pmu-events/pmu-events.h"
struct pmu_events_map pmu_events_map[] = {
{
.cpuid = 0,
.version = 0,
.type = 0,
.table = 0,
},
};

struct pmu_sys_events pmu_sys_event_tables[] = {
{
.table = 0
},
};

Before this patch the second struct is translated to an empty array::

struct pmu_sys_events pmu_sys_event_tables[] = {
};

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
meta/recipes-kernel/perf/perf/sort-pmuevents.py

index 5ddf0f144fe39c524d5763f8c4083edc56acf4e2..4f841eb822616d394b4cee499d85f7415ce677b3 100755 (executable)
@@ -61,6 +61,8 @@ for struct in re.findall( struct_block_regex, data ):
             #print( "    name found: %s" % name.group(1) )
             entry_dict[struct[1]]['fields'][name.group(1)] = entry
         
+        if not entry_dict[struct[1]]['fields']:
+            entry_dict[struct[1]]['fields']['0'] = entry
 
 # created ordered dictionaries from the captured values. These are ordered by
 # a sorted() iteration of the keys. We don't care about the order we read