Commit a44e4f3a authored by James Clark's avatar James Clark Committed by Arnaldo Carvalho de Melo
Browse files

perf vendor events arm64: Fix commas so PMU event files are valid JSON



No functional change.

Add and remove extra commas in the arm64 JSON files so that the files
can be parsed and validated by other utilities such as Python that fail
to parse invalid JSON.

Committer testing:

Before:

  $ diffstat -l -p1 /wb/1.patch | while read filename ; do echo $filename ; cat $filename | json_verify ; done
  tools/perf/pmu-events/arch/arm64/ampere/emag/branch.json
  parse error: invalid object key (must be a string)
                                          [     {         "ArchStdEvent"
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/ampere/emag/bus.json
  parse error: invalid object key (must be a string)
                                          [     {         "ArchStdEvent"
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/ampere/emag/cache.json
  parse error: invalid object key (must be a string)
                                          [     {         "ArchStdEvent"
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/ampere/emag/clock.json
  parse error: unallowed token at this point in JSON text
                                          [     {         "PublicDescrip
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/ampere/emag/exception.json
  parse error: invalid object key (must be a string)
                                          [     {         "ArchStdEvent"
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/ampere/emag/instruction.json
  parse error: invalid object key (must be a string)
                                          [     {         "ArchStdEvent"
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/ampere/emag/intrinsic.json
  parse error: invalid object key (must be a string)
                                          [     {         "ArchStdEvent"
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/ampere/emag/memory.json
  parse error: invalid object key (must be a string)
                                          [     {         "ArchStdEvent"
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/ampere/emag/pipeline.json
  parse error: unallowed token at this point in JSON text
                                          [     {         "PublicDescrip
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/arm/cortex-a53/branch.json
  parse error: invalid object key (must be a string)
                                          [   {     "ArchStdEvent":  "BR
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/arm/cortex-a53/bus.json
  parse error: invalid object key (must be a string)
                                          [   {         "ArchStdEvent":
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/arm/cortex-a53/other.json
  parse error: invalid object key (must be a string)
                                          [   {         "ArchStdEvent":
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/core-imp-def.json
  parse error: invalid object key (must be a string)
                                          [     {         "ArchStdEvent"
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/armv8-recommended.json
  parse error: after array element, I expect ',' or ']'
                                          [     {         "PublicDescrip
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
  parse error: invalid object key (must be a string)
                                          [     {         "ArchStdEvent"
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json
  parse error: invalid object key (must be a string)
                                          [     {         "ArchStdEvent"
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-ddrc.json
  parse error: invalid object key (must be a string)
                                          [    { 	    "EventCode": "0x00
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-hha.json
  parse error: invalid object key (must be a string)
                                          [    { 	    "EventCode": "0x00
                       (right here) ------^
  JSON is invalid
  tools/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-l3c.json
  parse error: invalid object key (must be a string)
                                          [    { 	    "EventCode": "0x00
                       (right here) ------^
  JSON is invalid
  $

After:

  $ diffstat -l -p1 /wb/1.patch | while read filename ; do echo $filename ; cat $filename | json_verify ; done
  tools/perf/pmu-events/arch/arm64/ampere/emag/branch.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/ampere/emag/bus.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/ampere/emag/cache.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/ampere/emag/clock.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/ampere/emag/exception.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/ampere/emag/instruction.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/ampere/emag/intrinsic.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/ampere/emag/memory.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/ampere/emag/pipeline.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/arm/cortex-a53/branch.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/arm/cortex-a53/bus.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/arm/cortex-a53/other.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/arm/cortex-a57-a72/core-imp-def.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/armv8-recommended.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-ddrc.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-hha.json
  JSON is valid
  tools/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-l3c.json
  JSON is valid
  $

Signed-off-by: default avatarJames Clark <james.clark@arm.com>
Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: John Garry <john.garry@huawei.com>
Cc: Kevin Mooney <kevin.mooney@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: nd@arm.com
Link: http://lore.kernel.org/lkml/20191112160342.26470-1-james.clark@arm.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent e1e9b78d
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
[
    {
        "ArchStdEvent": "BR_IMMED_SPEC",
        "ArchStdEvent": "BR_IMMED_SPEC"
    },
    {
        "ArchStdEvent": "BR_RETURN_SPEC",
        "ArchStdEvent": "BR_RETURN_SPEC"
    },
    {
        "ArchStdEvent": "BR_INDIRECT_SPEC",
        "ArchStdEvent": "BR_INDIRECT_SPEC"
    },
    {
        "PublicDescription": "Mispredicted or not predicted branch speculatively executed",
@@ -19,5 +19,5 @@
        "EventCode": "0x12",
        "EventName": "BR_PRED",
        "BriefDescription": "Predictable branch"
    },
    }
]
+7 −7
Original line number Diff line number Diff line
[
    {
        "ArchStdEvent": "BUS_ACCESS_RD",
        "ArchStdEvent": "BUS_ACCESS_RD"
    },
    {
        "ArchStdEvent": "BUS_ACCESS_WR",
        "ArchStdEvent": "BUS_ACCESS_WR"
    },
    {
        "ArchStdEvent": "BUS_ACCESS_SHARED",
        "ArchStdEvent": "BUS_ACCESS_SHARED"
    },
    {
        "ArchStdEvent": "BUS_ACCESS_NOT_SHARED",
        "ArchStdEvent": "BUS_ACCESS_NOT_SHARED"
    },
    {
        "ArchStdEvent": "BUS_ACCESS_NORMAL",
        "ArchStdEvent": "BUS_ACCESS_NORMAL"
    },
    {
        "ArchStdEvent": "BUS_ACCESS_PERIPH",
        "ArchStdEvent": "BUS_ACCESS_PERIPH"
    },
    {
        "PublicDescription": "Bus access",
        "EventCode": "0x19",
        "EventName": "BUS_ACCESS",
        "BriefDescription": "Bus access"
    },
    }
]
+14 −14
Original line number Diff line number Diff line
[
    {
        "ArchStdEvent": "L1D_CACHE_RD",
        "ArchStdEvent": "L1D_CACHE_RD"
    },
    {
        "ArchStdEvent": "L1D_CACHE_WR",
        "ArchStdEvent": "L1D_CACHE_WR"
    },
    {
        "ArchStdEvent": "L1D_CACHE_REFILL_RD",
        "ArchStdEvent": "L1D_CACHE_REFILL_RD"
    },
    {
        "ArchStdEvent": "L1D_CACHE_INVAL",
        "ArchStdEvent": "L1D_CACHE_INVAL"
    },
    {
        "ArchStdEvent": "L1D_TLB_REFILL_RD",
        "ArchStdEvent": "L1D_TLB_REFILL_RD"
    },
    {
        "ArchStdEvent": "L1D_TLB_REFILL_WR",
        "ArchStdEvent": "L1D_TLB_REFILL_WR"
    },
    {
        "ArchStdEvent": "L2D_CACHE_RD",
        "ArchStdEvent": "L2D_CACHE_RD"
    },
    {
        "ArchStdEvent": "L2D_CACHE_WR",
        "ArchStdEvent": "L2D_CACHE_WR"
    },
    {
        "ArchStdEvent": "L2D_CACHE_REFILL_RD",
        "ArchStdEvent": "L2D_CACHE_REFILL_RD"
    },
    {
        "ArchStdEvent": "L2D_CACHE_REFILL_WR",
        "ArchStdEvent": "L2D_CACHE_REFILL_WR"
    },
    {
        "ArchStdEvent": "L2D_CACHE_WB_VICTIM",
        "ArchStdEvent": "L2D_CACHE_WB_VICTIM"
    },
    {
        "ArchStdEvent": "L2D_CACHE_WB_CLEAN",
        "ArchStdEvent": "L2D_CACHE_WB_CLEAN"
    },
    {
        "ArchStdEvent": "L2D_CACHE_INVAL",
        "ArchStdEvent": "L2D_CACHE_INVAL"
    },
    {
        "PublicDescription": "Level 1 instruction cache refill",
@@ -187,5 +187,5 @@
        "EventCode": "0x116",
        "EventName": "PAGE_WALK_L2_STAGE2_HIT",
        "BriefDescription": "Page walk, L2 stage-2 hit"
    },
    }
]
+1 −1
Original line number Diff line number Diff line
@@ -16,5 +16,5 @@
        "EventCode": "0x110",
        "EventName": "Wait_CYCLES",
        "BriefDescription": "Wait state cycle"
    },
    }
]
+13 −13
Original line number Diff line number Diff line
[
    {
        "ArchStdEvent": "EXC_UNDEF",
        "ArchStdEvent": "EXC_UNDEF"
    },
    {
        "ArchStdEvent": "EXC_SVC",
        "ArchStdEvent": "EXC_SVC"
    },
    {
        "ArchStdEvent": "EXC_PABORT",
        "ArchStdEvent": "EXC_PABORT"
    },
    {
        "ArchStdEvent": "EXC_DABORT",
        "ArchStdEvent": "EXC_DABORT"
    },
    {
        "ArchStdEvent": "EXC_IRQ",
        "ArchStdEvent": "EXC_IRQ"
    },
    {
        "ArchStdEvent": "EXC_FIQ",
        "ArchStdEvent": "EXC_FIQ"
    },
    {
        "ArchStdEvent": "EXC_HVC",
        "ArchStdEvent": "EXC_HVC"
    },
    {
        "ArchStdEvent": "EXC_TRAP_PABORT",
        "ArchStdEvent": "EXC_TRAP_PABORT"
    },
    {
        "ArchStdEvent": "EXC_TRAP_DABORT",
        "ArchStdEvent": "EXC_TRAP_DABORT"
    },
    {
        "ArchStdEvent": "EXC_TRAP_OTHER",
        "ArchStdEvent": "EXC_TRAP_OTHER"
    },
    {
        "ArchStdEvent": "EXC_TRAP_IRQ",
        "ArchStdEvent": "EXC_TRAP_IRQ"
    },
    {
        "ArchStdEvent": "EXC_TRAP_FIQ",
        "ArchStdEvent": "EXC_TRAP_FIQ"
    },
    {
        "PublicDescription": "Exception taken",
@@ -46,5 +46,5 @@
        "EventCode": "0x0a",
        "EventName": "EXC_RETURN",
        "BriefDescription": "Exception return"
    },
    }
]
Loading