Re: [PATCH 2/3] perf tools: Add missing swap ops for namespace events

From: Arnaldo Carvalho de Melo
Date: Wed May 22 2019 - 09:26:58 EST


Em Wed, May 22, 2019 at 02:32:49PM +0900, Namhyung Kim escreveu:
> In case it's recorded from other arch.

Applied and added:

Fixes: f3b3614a284d ("perf tools: Add PERF_RECORD_NAMESPACES to include namespaces related info")

So that the stable guys can pick it.

- Arnaldo

> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
> tools/perf/util/session.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
> index 2310a1752983..54cf163347f7 100644
> --- a/tools/perf/util/session.c
> +++ b/tools/perf/util/session.c
> @@ -647,6 +647,26 @@ static void perf_event__throttle_swap(union perf_event *event,
> swap_sample_id_all(event, &event->throttle + 1);
> }
>
> +static void perf_event__namespaces_swap(union perf_event *event,
> + bool sample_id_all)
> +{
> + u64 i;
> +
> + event->namespaces.pid = bswap_32(event->namespaces.pid);
> + event->namespaces.tid = bswap_32(event->namespaces.tid);
> + event->namespaces.nr_namespaces = bswap_64(event->namespaces.nr_namespaces);
> +
> + for (i = 0; i < event->namespaces.nr_namespaces; i++) {
> + struct perf_ns_link_info *ns = &event->namespaces.link_info[i];
> +
> + ns->dev = bswap_64(ns->dev);
> + ns->ino = bswap_64(ns->ino);
> + }
> +
> + if (sample_id_all)
> + swap_sample_id_all(event, &event->namespaces.link_info[i]);
> +}
> +
> static u8 revbyte(u8 b)
> {
> int rev = (b >> 4) | ((b & 0xf) << 4);
> @@ -887,6 +907,7 @@ static perf_event__swap_op perf_event__swap_ops[] = {
> [PERF_RECORD_LOST_SAMPLES] = perf_event__all64_swap,
> [PERF_RECORD_SWITCH] = perf_event__switch_swap,
> [PERF_RECORD_SWITCH_CPU_WIDE] = perf_event__switch_swap,
> + [PERF_RECORD_NAMESPACES] = perf_event__namespaces_swap,
> [PERF_RECORD_HEADER_ATTR] = perf_event__hdr_attr_swap,
> [PERF_RECORD_HEADER_EVENT_TYPE] = perf_event__event_type_swap,
> [PERF_RECORD_HEADER_TRACING_DATA] = perf_event__tracing_data_swap,
> --
> 2.21.0.1020.gf2820cf01a-goog

--

- Arnaldo