2019-08-01 18:47:18

by Vince Weaver

[permalink] [raw]
Subject: [patch] perf.data documentation clarify HEADER_SAMPLE_TOPOLOGY format


The perf.data file format documentation for HEADER_SAMPLE_TOPOLOGY
specifies the layout in a confusing manner that doesn't match the rest of
the document. This patch attempts to describe things consistent with the
rest of the file.

Signed-off-by: Vince Weaver <[email protected]>

diff --git a/tools/perf/Documentation/perf.data-file-format.txt b/tools/perf/Documentation/perf.data-file-format.txt
index 5f54feb19977..6a7dceaae709 100644
--- a/tools/perf/Documentation/perf.data-file-format.txt
+++ b/tools/perf/Documentation/perf.data-file-format.txt
@@ -298,16 +298,21 @@ Physical memory map and its node assignments.

The format of data in MEM_TOPOLOGY is as follows:

- 0 - version | for future changes
- 8 - block_size_bytes | /sys/devices/system/memory/block_size_bytes
- 16 - count | number of nodes
-
-For each node we store map of physical indexes:
-
- 32 - node id | node index
- 40 - size | size of bitmap
- 48 - bitmap | bitmap of memory indexes that belongs to node
- | /sys/devices/system/node/node<NODE>/memory<INDEX>
+ u64 version; // Currently 1
+ u64 block_size_bytes; // /sys/devices/system/memory/block_size_bytes
+ u64 count; // number of nodes
+
+struct memory_node {
+ u64 node_id; // node index
+ u64 size; // size of bitmap
+ struct bitmap {
+ /* size of bitmap again */
+ u64 bitmapsize;
+ /* bitmap of memory indexes that belongs to node */
+ /* /sys/devices/system/node/node<NODE>/memory<INDEX> */
+ u64 entries[(bitmapsize/64)+1];
+ }
+}[count];

The MEM_TOPOLOGY can be displayed with following command:


2019-08-03 00:03:00

by Jiri Olsa

[permalink] [raw]
Subject: Re: [patch] perf.data documentation clarify HEADER_SAMPLE_TOPOLOGY format

On Thu, Aug 01, 2019 at 02:30:43PM -0400, Vince Weaver wrote:
>
> The perf.data file format documentation for HEADER_SAMPLE_TOPOLOGY
> specifies the layout in a confusing manner that doesn't match the rest of
> the document. This patch attempts to describe things consistent with the
> rest of the file.
>
> Signed-off-by: Vince Weaver <[email protected]>
>
> diff --git a/tools/perf/Documentation/perf.data-file-format.txt b/tools/perf/Documentation/perf.data-file-format.txt
> index 5f54feb19977..6a7dceaae709 100644
> --- a/tools/perf/Documentation/perf.data-file-format.txt
> +++ b/tools/perf/Documentation/perf.data-file-format.txt
> @@ -298,16 +298,21 @@ Physical memory map and its node assignments.
>
> The format of data in MEM_TOPOLOGY is as follows:
>
> - 0 - version | for future changes
> - 8 - block_size_bytes | /sys/devices/system/memory/block_size_bytes
> - 16 - count | number of nodes
> -
> -For each node we store map of physical indexes:
> -
> - 32 - node id | node index
> - 40 - size | size of bitmap
> - 48 - bitmap | bitmap of memory indexes that belongs to node
> - | /sys/devices/system/node/node<NODE>/memory<INDEX>
> + u64 version; // Currently 1
> + u64 block_size_bytes; // /sys/devices/system/memory/block_size_bytes
> + u64 count; // number of nodes
> +
> +struct memory_node {
> + u64 node_id; // node index
> + u64 size; // size of bitmap
> + struct bitmap {
> + /* size of bitmap again */
> + u64 bitmapsize;
> + /* bitmap of memory indexes that belongs to node */
> + /* /sys/devices/system/node/node<NODE>/memory<INDEX> */
> + u64 entries[(bitmapsize/64)+1];
> + }
> +}[count];

Acked-by: Jiri Olsa <[email protected]>

thanks for doing this,
jirka

>
> The MEM_TOPOLOGY can be displayed with following command:
>

2019-08-13 14:21:53

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [patch] perf.data documentation clarify HEADER_SAMPLE_TOPOLOGY format

Em Fri, Aug 02, 2019 at 03:14:40PM +0200, Jiri Olsa escreveu:
> On Thu, Aug 01, 2019 at 02:30:43PM -0400, Vince Weaver wrote:
> > + }
> > +}[count];
>
> Acked-by: Jiri Olsa <[email protected]>
>
> thanks for doing this,

Thanks, applied.

- Arnaldo

Subject: [tip:perf/core] perf.data documentation: Clarify HEADER_SAMPLE_TOPOLOGY format

Commit-ID: 3143906c2770778d89b730e0342b745d1b4a8303
Gitweb: https://git.kernel.org/tip/3143906c2770778d89b730e0342b745d1b4a8303
Author: Vince Weaver <[email protected]>
AuthorDate: Thu, 1 Aug 2019 14:30:43 -0400
Committer: Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Wed, 14 Aug 2019 10:59:59 -0300

perf.data documentation: Clarify HEADER_SAMPLE_TOPOLOGY format

The perf.data file format documentation for HEADER_SAMPLE_TOPOLOGY
specifies the layout in a confusing manner that doesn't match the rest
of the document. This patch attempts to describe things consistent with
the rest of the file.

Signed-off-by: Vince Weaver <[email protected]>
Acked-by: Jiri Olsa <[email protected]>
Cc: Adrian Hunter <[email protected]>
Cc: Alexander Shishkin <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: Chong Jiang <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Simon Que <[email protected]>
Link: http://lkml.kernel.org/r/alpine.DEB.2.21.1908011425240.14303@macbook-air
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/Documentation/perf.data-file-format.txt | 25 +++++++++++++---------
1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/tools/perf/Documentation/perf.data-file-format.txt b/tools/perf/Documentation/perf.data-file-format.txt
index d030c87ed9f5..b0152e1095c5 100644
--- a/tools/perf/Documentation/perf.data-file-format.txt
+++ b/tools/perf/Documentation/perf.data-file-format.txt
@@ -298,16 +298,21 @@ Physical memory map and its node assignments.

The format of data in MEM_TOPOLOGY is as follows:

- 0 - version | for future changes
- 8 - block_size_bytes | /sys/devices/system/memory/block_size_bytes
- 16 - count | number of nodes
-
-For each node we store map of physical indexes:
-
- 32 - node id | node index
- 40 - size | size of bitmap
- 48 - bitmap | bitmap of memory indexes that belongs to node
- | /sys/devices/system/node/node<NODE>/memory<INDEX>
+ u64 version; // Currently 1
+ u64 block_size_bytes; // /sys/devices/system/memory/block_size_bytes
+ u64 count; // number of nodes
+
+struct memory_node {
+ u64 node_id; // node index
+ u64 size; // size of bitmap
+ struct bitmap {
+ /* size of bitmap again */
+ u64 bitmapsize;
+ /* bitmap of memory indexes that belongs to node */
+ /* /sys/devices/system/node/node<NODE>/memory<INDEX> */
+ u64 entries[(bitmapsize/64)+1];
+ }
+}[count];

The MEM_TOPOLOGY can be displayed with following command: