On 13/03/2018 19:17, Sukadev Bhattiprolu wrote:



Building perf on Powerpc seems broken when using Arnaldo's perf/core branch
with HEAD as:

    1b442ed ("perf test: Fix exit code for record+probe_libc_inet_pton.sh")

It maybe related to this commit:

        commit d596299
        Author: John Garry <john.ga...@huawei.com>
        Date:   Thu Mar 8 18:58:29 2018 +0800

            perf vendor events: Add support for pmu events vendor subdirectory

Reverting this hunk from tools/perf/pmu-events/jevents.c, seems to fix the
problem for me.

@@ -957,8 +963,12 @@ static int process_one_file(const char *fpath, const struct


        /* model directory, reset topic */
+#if 0
        if ((level == 1 && is_dir && is_leaf_dir(fpath)) ||
            (level == 2 && is_dir)) {
+#else
+       if (level == 1 && is_dir) {
+#endif


The problem is that the tools/perf/pmu-events/pmu-events.c file generated by
the jevents program is missing the "prefix" lines like:

        struct pmu_event pme_power8[] = {
and
        struct pmu_event pme_power9[] = {


i.e the pmu-events.c begins like:
---

#include "../../pmu-events/pmu-events.h"
{
        .name = "pm_data_from_dl2l3_mod",
        .event = "event=0x4c048",
        .desc = "The processor's data cache was reloaded with Modified (M) data from 
another chip's L2 or L3 on a different Node or Group (Distant), as this chip due to a 
demand load",
        .topic = "cache",
        .long_desc = "The processor's data cache was reloaded with Modified (M) data 
from another chip's L2 or L3 on a different Node or Group (Distant), as this chip due to 
either only demand loads or demand loads plus prefetches if MMCR1[16] is 1",
},

---


I will check this, thanks and sorry for the hassle.

John

Below is the debug and info messages at the time of failure:

---

  HOSTCC   /home/suka/linux-acme.git/tools/perf/perf-obj/pmu-events/jevents.o
  HOSTLD   /home/suka/linux-acme.git/tools/perf/perf-obj/pmu-events/jevents-in.o
  LINK     /home/suka/linux-acme.git/tools/perf/perf-obj/pmu-events/jevents
  GEN      /home/suka/linux-acme.git/tools/perf/perf-obj/pmu-events/pmu-events.c
d 0      50 powerpc              pmu-events/arch/powerpc
d 1    4096 power8               pmu-events/arch/powerpc/power8
f 2   10275 cache.json           pmu-events/arch/powerpc/power8/cache.json
f 2     302 floating-point.json  
pmu-events/arch/powerpc/power8/floating-point.json
f 2   29283 marked.json          pmu-events/arch/powerpc/power8/marked.json
f 2   12028 memory.json          pmu-events/arch/powerpc/power8/memory.json
f 2  159271 other.json           pmu-events/arch/powerpc/power8/other.json
f 2   10777 pipeline.json        pmu-events/arch/powerpc/power8/pipeline.json
f 2    3781 pmc.json             pmu-events/arch/powerpc/power8/pmc.json
f 2    6664 translation.json     pmu-events/arch/powerpc/power8/translation.json
f 2   25104 frontend.json        pmu-events/arch/powerpc/power8/frontend.json
d 1    4096 power9               pmu-events/arch/powerpc/power9
f 2    1096 floating-point.json  
pmu-events/arch/powerpc/power9/floating-point.json
f 2    5503 cache.json           pmu-events/arch/powerpc/power9/cache.json
f 2   14885 frontend.json        pmu-events/arch/powerpc/power9/frontend.json
f 2   27807 marked.json          pmu-events/arch/powerpc/power9/marked.json
f 2    4820 memory.json          pmu-events/arch/powerpc/power9/memory.json
f 2   85387 other.json           pmu-events/arch/powerpc/power9/other.json
f 2   23839 pipeline.json        pmu-events/arch/powerpc/power9/pipeline.json
f 2    5138 pmc.json             pmu-events/arch/powerpc/power9/pmc.json
f 2    9897 translation.json     pmu-events/arch/powerpc/power9/translation.json
f 1     440 mapfile.csv          pmu-events/arch/powerpc/mapfile.csv
jevents: Processing mapfile pmu-events/arch/powerpc/mapfile.csv
  CC       /home/suka/linux-acme.git/tools/perf/perf-obj/pmu-events/pmu-events.o
/home/suka/linux-acme.git/tools/perf/perf-obj/pmu-events/pmu-events.c:2:1: 
error: expected identifier or ‘(’ before ‘{’ token
 {
 ^
/home/suka/linux-acme.git/tools/perf/perf-obj/pmu-events/pmu-events.c:8:2: 
error: expected identifier or ‘(’ before ‘,’ token
 },
  ^
/home/suka/linux-acme.git/tools/perf/perf-obj/pmu-events/pmu-events.c:15:2: 
error: expected identifier or ‘(’ before ‘,’ token
 },
  ^
/home/suka/linux-acme.git/tools/perf/perf-obj/pmu-events/pmu-events.c:22:2: 
error: expected identifier or ‘(’ before ‘,’ token
 },

----


.



Reply via email to