Messages in this thread | | | Subject | Re: [PATCH v2 5/6] perf stat: Enable iiostat mode for x86 platforms | From | Alexander Antonov <> | Date | Thu, 14 Jan 2021 19:41:30 +0300 |
| |
On 1/14/2021 6:39 AM, Namhyung Kim wrote: > On Wed, Jan 13, 2021 at 9:08 PM Alexander Antonov > <alexander.antonov@linux.intel.com> wrote: >> >> On 1/6/2021 12:02 PM, Namhyung Kim wrote: >>> On Wed, Dec 23, 2020 at 10:03 PM Alexander Antonov >>> <alexander.antonov@linux.intel.com> wrote: >>>> This functionality is based on recently introduced sysfs attributes >>>> for Intel® Xeon® Scalable processor family (code name Skylake-SP): >>>> Commit bb42b3d39781 ("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 >>>> IIO stack: >>>> - Inbound Read: I/O devices below IIO stack read from the host memory >>>> - Inbound Write: I/O devices below IIO stack write to the host memory >>>> - Outbound Read: CPU reads from I/O devices below IIO stack >>>> - Outbound Write: CPU writes to I/O devices below IIO stack >>>> >>>> Each metric requiries only one IIO event which increments at every 4B >>>> transfer in corresponding direction. The formulas to compute metrics >>>> are generic: >>>> #EventCount * 4B / (1024 * 1024) >>> Hmm.. maybe we can do this with JSON metrics, no? >> Do you mean to add metrics to *-metrics.json file? >> Looks like it's possible but in this case JSON file should be updated >> for each >> new enabled platform and calculations will be the same. >> I would prefer to leave it as is because perf will work without changing of >> userspace part once IIO sysfs attributes are added for new platforms. > OK. > >>>> Signed-off-by: Alexander Antonov <alexander.antonov@linux.intel.com> >>>> --- > [SNIP] >>>> diff --git a/tools/perf/perf-iiostat.sh b/tools/perf/perf-iiostat.sh >>>> new file mode 100644 >>>> index 000000000000..2c5168d2550b >>>> --- /dev/null >>>> +++ b/tools/perf/perf-iiostat.sh >>>> @@ -0,0 +1,12 @@ >>>> +#!/bin/bash >>>> +# SPDX-License-Identifier: GPL-2.0 >>>> +# perf iiostat >>>> +# Alexander Antonov <alexander.antonov@linux.intel.com> >>>> + >>>> +if [[ "$1" == "show" ]] || [[ "$1" =~ ([a-f0-9A-F]{1,}):([a-f0-9A-F]{1,2})(,)? ]]; then >>>> + DELIMITER="=" >>>> +else >>>> + DELIMITER=" " >>>> +fi >>>> + >>>> +perf stat --iiostat$DELIMITER$* >>> Why is this needed? >>> >>> Thanks, >>> Namhyung >> Arnaldo raised question relates to format of 'perf stat --iiostat' >> subcommand >> and explained how it can be changed to 'perf iiostat' through the aliases >> mechanism in perf. > Yeah, I know that. What I'm asking is the DELIMITER part. > > Thanks, > Namhyung I'm using DELIMITER to resolve two different cases for format of iiostat command: The first one is the command with an option for iiostat mode, for example: 'perf iiostat show' which should be converted to 'perf stat --iiostat=show' or 'perf iiostat 0000:ae,0000:5d' to 'perf stat --iiostat=0000:ae,0000:5d'. The second is the command without any option for iiostat: 'perf iiostat -I 1000' should be converted to 'perf stat --iiostat -I 1000'.
Thanks, Alexander
| |