[PATCH v3 4/7] perf arm-spe: Use metadata to decide the data source feature

Leo Yan leo.yan at arm.com
Thu Oct 10 07:58:09 PDT 2024


On 10/10/24 14:53, James Clark wrote:

[...]

>> +static bool arm_spe__is_common_ds_encoding(struct arm_spe_queue *speq)
>> +{
>> +     struct arm_spe *spe = speq->spe;
>> +     bool is_in_cpu_list;
>> +     u64 *metadata = NULL;
>> +     u64 midr = 0;
>> +
>> +     /*
>> +      * Metadata version 1 doesn't contain any info for MIDR.
>> +      * Simply return false in this case.
>> +      */
>> +     if (spe->metadata_ver == 1) {
>> +             pr_warning_once("The data file contains metadata version 1, "
>> +                             "which is absent the info for data source. "
>> +                             "Please upgrade the tool to record data.\n");
>> +             return false;
>> +     }
>> +
>> +     /* CPU ID is -1 for per-thread mode */
>> +     if (speq->cpu < 0) {
>> +             /*
>> +              * On the heterogeneous system, due to CPU ID is -1,
>> +              * cannot confirm the data source packet is supported.
>> +              */
>> +             if (!spe->is_homogeneous)
>> +                     return false;
> 
> Technically you could look at timestamps and context switches to find
> the CPU for non-homogeneous per-thread mode. But it's such an edge case
> I'm not sure it's even worth leaving a TODO for.

Good point. Let’s bear the idea in mind in case we need it later.

Thanks,
Leo



More information about the linux-arm-kernel mailing list