perf stat: Enable iostat mode for x86 platforms
This functionality is based on recently introduced sysfs attributes for
Intel® Xeon® Scalable processor family (code name Skylake-SP):
Commit bb42b3d397 ("perf/x86/intel/uncore: Expose an Uncore unit to IIO PMON mapping")
Mode is intended to provide four I/O performance metrics in MB per each
PCIe root port:
- Inbound Read: I/O devices below root port read from the host memory
- Inbound Write: I/O devices below root port write to the host memory
- Outbound Read: CPU reads from I/O devices below root port
- Outbound Write: CPU writes to I/O devices below root port
Each metric requiries only one uncore event which increments at every 4B
transfer in corresponding direction. The formulas to compute metrics
are generic:
#EventCount * 4B / (1024 * 1024)
Acked-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Alexander Antonov <alexander.antonov@linux.intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexey V Bayduraev <alexey.v.bayduraev@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20210419094147.15909-4-alexander.antonov@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
19776d3ced
commit
f9ed693e8b
88
tools/perf/Documentation/perf-iostat.txt
Normal file
88
tools/perf/Documentation/perf-iostat.txt
Normal file
@@ -0,0 +1,88 @@
|
||||
perf-iostat(1)
|
||||
===============
|
||||
|
||||
NAME
|
||||
----
|
||||
perf-iostat - Show I/O performance metrics
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'perf iostat' list
|
||||
'perf iostat' <ports> -- <command> [<options>]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Mode is intended to provide four I/O performance metrics per each PCIe root port:
|
||||
|
||||
- Inbound Read - I/O devices below root port read from the host memory, in MB
|
||||
|
||||
- Inbound Write - I/O devices below root port write to the host memory, in MB
|
||||
|
||||
- Outbound Read - CPU reads from I/O devices below root port, in MB
|
||||
|
||||
- Outbound Write - CPU writes to I/O devices below root port, in MB
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
<command>...::
|
||||
Any command you can specify in a shell.
|
||||
|
||||
list::
|
||||
List all PCIe root ports.
|
||||
|
||||
<ports>::
|
||||
Select the root ports for monitoring. Comma-separated list is supported.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
1. List all PCIe root ports (example for 2-S platform):
|
||||
|
||||
$ perf iostat list
|
||||
S0-uncore_iio_0<0000:00>
|
||||
S1-uncore_iio_0<0000:80>
|
||||
S0-uncore_iio_1<0000:17>
|
||||
S1-uncore_iio_1<0000:85>
|
||||
S0-uncore_iio_2<0000:3a>
|
||||
S1-uncore_iio_2<0000:ae>
|
||||
S0-uncore_iio_3<0000:5d>
|
||||
S1-uncore_iio_3<0000:d7>
|
||||
|
||||
2. Collect metrics for all PCIe root ports:
|
||||
|
||||
$ perf iostat -- dd if=/dev/zero of=/dev/nvme0n1 bs=1M oflag=direct
|
||||
357708+0 records in
|
||||
357707+0 records out
|
||||
375083606016 bytes (375 GB, 349 GiB) copied, 215.974 s, 1.7 GB/s
|
||||
|
||||
Performance counter stats for 'system wide':
|
||||
|
||||
port Inbound Read(MB) Inbound Write(MB) Outbound Read(MB) Outbound Write(MB)
|
||||
0000:00 1 0 2 3
|
||||
0000:80 0 0 0 0
|
||||
0000:17 352552 43 0 21
|
||||
0000:85 0 0 0 0
|
||||
0000:3a 3 0 0 0
|
||||
0000:ae 0 0 0 0
|
||||
0000:5d 0 0 0 0
|
||||
0000:d7 0 0 0 0
|
||||
|
||||
3. Collect metrics for comma-separated list of PCIe root ports:
|
||||
|
||||
$ perf iostat 0000:17,0:3a -- dd if=/dev/zero of=/dev/nvme0n1 bs=1M oflag=direct
|
||||
357708+0 records in
|
||||
357707+0 records out
|
||||
375083606016 bytes (375 GB, 349 GiB) copied, 197.08 s, 1.9 GB/s
|
||||
|
||||
Performance counter stats for 'system wide':
|
||||
|
||||
port Inbound Read(MB) Inbound Write(MB) Outbound Read(MB) Outbound Write(MB)
|
||||
0000:17 358559 44 0 22
|
||||
0000:3a 3 2 0 0
|
||||
|
||||
197.081983474 seconds time elapsed
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkperf:perf-stat[1]
|
||||
Reference in New Issue
Block a user