lkml.org 
[lkml]   [2021]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v2 5/6] perf stat: Enable iiostat mode for x86 platforms
From
Date

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

\
 
 \ /
  Last update: 2021-01-14 17:45    [W:0.070 / U:0.044 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site