perf: Add mem_hops field in perf_mem_data_src structure
authorKajol Jain <kjain@linux.ibm.com>
Wed, 6 Oct 2021 14:06:52 +0000 (19:36 +0530)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 19 Oct 2021 15:27:00 +0000 (17:27 +0200)
commitfec9cc6175d0ec1e13efe12be491d9bd4de62f80
tree9b8a67ded05627d043b97f879a78fa6ffd7e21c9
parentf4c6217f7f5936f7173d028559ff5d25cce10816
perf: Add mem_hops field in perf_mem_data_src structure

Going forward, future generation systems can have more hierarchy
within the node/package level but currently we don't have any data source
encoding field in perf, which can be used to represent this level of data.

Add a new field called 'mem_hops' in the perf_mem_data_src structure
which can be used to represent intra-node/package or inter-node/off-package
details. This field is of size 3 bits where PERF_MEM_HOPS_{NA, 0..6} value
can be used to present different hop levels data.

Also add corresponding macros to define mem_hop field values
and shift value.

Currently we define macro for HOPS_0 which corresponds
to data coming from another core but same node.

For ex: Encodings for mem_hops fields with L2 cache:

L2 - local L2
L2 | REMOTE | HOPS_0 - remote core, same node L2

Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20211006140654.298352-3-kjain@linux.ibm.com
include/uapi/linux/perf_event.h