Re: [PATCH] perf session: print all machines in session dump
From: Arnaldo Carvalho de Melo
Date: Mon Jan 26 2026 - 16:17:32 EST
On Sun, Jan 25, 2026 at 09:06:52PM +0100, Hrishikesh Suresh wrote:
> +++ b/tools/perf/util/session.c
> @@ -2674,11 +2674,15 @@ size_t perf_session__fprintf_nr_events(struct perf_session *session, FILE *fp)
>
> size_t perf_session__fprintf(struct perf_session *session, FILE *fp)
> {
> - /*
> - * FIXME: Here we have to actually print all the machines in this
> - * session, not just the host...
> - */
> - return machine__fprintf(&session->machines.host, fp);
> + struct rb_node *nd;
> + struct machine *pos;
> + size_t ret = machine__fprintf(&session->machines.host, fp);
> +
> + for (nd = rb_first_cached(&session->machines.guests); nd; nd = rb_next(nd)) {
> + pos = rb_entry(nd, struct machine, rb_node);
> + ret += machine__fprintf(pos, fp);
> + }
> + return ret;
> }
>
> void perf_session__dump_kmaps(struct perf_session *session)
Simple enough, applying after the further simplifications below, to make
it more compact.
Thanks!
- Arnaldo
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index dcbe10d6a996970d..ae62d5c9889fe2f3 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -2730,12 +2730,11 @@ size_t perf_session__fprintf_nr_events(struct perf_session *session, FILE *fp)
size_t perf_session__fprintf(struct perf_session *session, FILE *fp)
{
- struct rb_node *nd;
- struct machine *pos;
size_t ret = machine__fprintf(&session->machines.host, fp);
- for (nd = rb_first_cached(&session->machines.guests); nd; nd = rb_next(nd)) {
- pos = rb_entry(nd, struct machine, rb_node);
+ for (struct rb_node *nd = rb_first_cached(&session->machines.guests); nd; nd = rb_next(nd)) {
+ struct machine *pos = rb_entry(nd, struct machine, rb_node);
+
ret += machine__fprintf(pos, fp);
}
return ret;