[BUG] perf parser: does not support arbitrary new sysfs events

From: Stephane Eranian
Date: Fri Oct 26 2012 - 16:23:01 EST


Hi,

The latest round of perf parser changes broke my PEBS-LL patch series
(at the last minute). For PEBS-LL, I need to add to generic events but I want
to keep them PMU specific. As such, they need to live in the sysfs events
subdir: /sys/devices/cpu/events/mem-loads, sys/devices/cpu/events/mem-stores.

Given your latest rounds of sysfs event changes, I had to modify my kernel
patches to fit those two new events within your perf_pmu_events_attr tables.

But now, when I try to do:

$ perf record -e cpu/mem-loads/ ....

I get unsupported event. Looks at the syscall trace, it seems perf does not even
look into the sysfs subdir to find a possible match. I don't
understand that. What's
the point of sysfs event list if it is not used or cannot be extended?

Note that when I explicitly pass the content of the sysfs file to perf
record, it
works:

$ perf record -e cpu/event=0xcd,umask=0x1,ldlat=3/ ......

So this is clearly a problem with the lookup in sysfs.

Also if you have the mappings exposed now in sysfs, why keep the hardcoded
generic events as well? Or why have those events hardcoded in the parser as
well.

I don't understand all this parser code. I get the feeling it is
getting a bit out of
hands already. But now, I am stuck. So could you fix my parser problem ASAP?

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/