ARM Cortex A9: LL counters
javier.picorel at epfl.ch
javier.picorel at epfl.ch
Wed Jul 3 16:32:55 EDT 2013
Dear all,
It seems that there is no mapping between any ARM Cortex A9 counter to
the L2 (Last Level) access or misses event.
arch/arm/kernel/perf_event_v7.c
[C(LL)] = {
293 [C(OP_READ)] = {
294 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
295 [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
296 },
297 [C(OP_WRITE)] = {
298 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
299 [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
300 },
301 [C(OP_PREFETCH)] = {
302 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
303 [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,
304 },
305 },
Looking at ARM's reference manual and OProfile's event list on A9, I
see the following two counters:
CO_LF_MISS: (counter: 1, 2, 3, 4, 5, 6)
Number of coherent linefill requests which miss in all other
CPUs, meaning that the request
is sent to external memory (min count: 500)
CO_LF_HIT: (counter: 1, 2, 3, 4, 5, 6)
Number of coherent linefill requests which hit in another
CPU, meaning that the linefill
data is fetched directly from the relevant cache (min count: 500)
It seems that the first counter refers to the L2 Misses and the second
one to the L2 Hits (Last Level Cache in this architecture). I'm not sure
whether we should do something about this or nor. Thanks!
Best Regards,
Javier
More information about the linux-arm-kernel
mailing list