[RFC PATCH 2/4] perf: Save cache instance ID when saving cache topology data

From: K Prateek Nayak
Date: Fri Mar 31 2023 - 00:53:14 EST


Bump up the version and save the cache instance ID when saving cache
topology information. When reading the topology information,
conditionally parse the instance ID for newer versions only.

Signed-off-by: K Prateek Nayak <kprateek.nayak@xxxxxxx>
---
tools/perf/util/header.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 5c3f5d260612..50d66092c82b 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -1262,7 +1262,7 @@ static int write_cache(struct feat_fd *ff,
{
u32 max_caches = cpu__max_cpu().cpu * MAX_CACHE_LVL;
struct cpu_cache_level caches[max_caches];
- u32 cnt = 0, i, version = 1;
+ u32 cnt = 0, i, version = 2;
int ret;

ret = build_caches(caches, &cnt);
@@ -1288,6 +1288,7 @@ static int write_cache(struct feat_fd *ff,
goto out;

_W(level)
+ _W(id)
_W(line_size)
_W(sets)
_W(ways)
@@ -2879,7 +2880,7 @@ static int process_cache(struct feat_fd *ff, void *data __maybe_unused)
if (do_read_u32(ff, &version))
return -1;

- if (version != 1)
+ if (version != 1 && version != 2)
return -1;

if (do_read_u32(ff, &cnt))
@@ -2897,6 +2898,8 @@ static int process_cache(struct feat_fd *ff, void *data __maybe_unused)
goto out_free_caches; \

_R(level)
+ if (version >= 2)
+ _R(id)
_R(line_size)
_R(sets)
_R(ways)
--
2.34.1