[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <6f7291d7-ed3d-2ed2-654f-b8ba1a63cbad@arm.com>
Date: Tue, 20 Dec 2022 10:22:32 +0000
From: James Clark <james.clark@....com>
To: Namhyung Kim <namhyung@...nel.org>
Cc: linux-perf-users@...r.kernel.org, robh@...nel.org,
German Gomez <german.gomez@....com>,
Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>,
John Garry <john.g.garry@...cle.com>,
Will Deacon <will@...nel.org>,
Mike Leach <mike.leach@...aro.org>,
Leo Yan <leo.yan@...aro.org>, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH 1/4] perf event: Add simd_flags field to perf_sample
On 19/12/2022 18:21, Namhyung Kim wrote:
> Hi James,
>
> On Mon, Dec 19, 2022 at 8:13 AM James Clark <james.clark@....com> wrote:
>>
>> From: German Gomez <german.gomez@....com>
>>
>> Add new field to the struct perf_sample to store flags related to SIMD
>> ops.
>>
>> It will be used to store SIMD information from SVE and NEON when
>> profiling using ARM SPE.
>>
>> Signed-off-by: German Gomez <german.gomez@....com>
>> Signed-off-by: James Clark <james.clark@....com>
>> ---
>> tools/perf/util/sample.h | 13 +++++++++++++
>> 1 file changed, 13 insertions(+)
>>
>> diff --git a/tools/perf/util/sample.h b/tools/perf/util/sample.h
>> index 60ec79d4eea4..bdf52faf165f 100644
>> --- a/tools/perf/util/sample.h
>> +++ b/tools/perf/util/sample.h
>> @@ -66,6 +66,18 @@ struct aux_sample {
>> void *data;
>> };
>>
>> +struct simd_flags {
>> + u64 arch:1, /* architecture (isa) */
>> + pred:2; /* predication */
>
> Can we reserve more bits for possible future extension or
> other arch support? It seems to be too tight for each field.
> Do you plan to add more info to the struct in the future?
As far as I can see because this is userspace only, reserving bits
doesn't be done ahead of time. When we need more bits we can just add
it. It never gets written to a file either so there is no need for
backwards compatibility.
>
> Thanks,
> Namhyung
>
>
>> +};
>> +
>> +/* simd architecture flags */
>> +#define SIMD_OP_FLAGS_ARCH_SVE 0x01 /* ARM SVE */
>> +
>> +/* simd predicate flags */
>> +#define SIMD_OP_FLAGS_PRED_PARTIAL 0x01 /* partial predicate */
>> +#define SIMD_OP_FLAGS_PRED_EMPTY 0x02 /* empty predicate */
>> +
>> struct perf_sample {
>> u64 ip;
>> u32 pid, tid;
>> @@ -103,6 +115,7 @@ struct perf_sample {
>> struct stack_dump user_stack;
>> struct sample_read read;
>> struct aux_sample aux_sample;
>> + struct simd_flags simd_flags;
>> };
>>
>> /*
>> --
>> 2.25.1
>>
Powered by blists - more mailing lists