Re: [RFC PATCH v2 2/7] x86/tsc: Add clocksource ID, set system_counterval_t.cs_id

From: Peter Hilber
Date: Thu Jan 11 2024 - 06:37:11 EST


On 24.12.23 17:27, Simon Horman wrote:
> On Fri, Dec 15, 2023 at 11:06:07PM +0100, Peter Hilber wrote:
>> Add a clocksource ID for TSC and a distinct one for the early TSC.
>>
>> Use distinct IDs for TSC and early TSC, since those also have distinct
>> clocksource structs. This should help to keep existing semantics when
>> comparing clocksources.
>>
>> Also, set the recently added struct system_counterval_t member cs_id to the
>> TSC ID in the cases where the clocksource member is being set to the TSC
>> clocksource. In the future, this will keep get_device_system_crosststamp()
>> working, when it will compare the clocksource id in struct
>> system_counterval_t, rather than the clocksource.
>>
>> For the x86 ART related code, system_counterval_t.cs == NULL corresponds to
>> system_counterval_t.cs_id == CSID_GENERIC (0).
>>
>> Signed-off-by: Peter Hilber <peter.hilber@xxxxxxxxxxxxxxx>
>
> Hi Peter,
>
> some minor feedback from my side that you may consider for
> a future revision.
>
>> diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
>
> ...
>
>> @@ -1327,12 +1334,15 @@ EXPORT_SYMBOL(convert_art_to_tsc);
>> * that this flag is set before conversion to TSC is attempted.
>> *
>> * Return:
>> - * struct system_counterval_t - system counter value with the pointer to the
>> + * struct system_counterval_t - system counter value with the ID of the
>> * corresponding clocksource
>> * @cycles: System counter value
>> * @cs: Clocksource corresponding to system counter value. Used
>> * by timekeeping code to verify comparability of two cycle
>> * values.
>> + * @cs_id: Clocksource ID corresponding to system counter value.
>> + * Used by timekeeping code to verify comparability of two
>> + * cycle values.
>
> None of the documented parameters to convert_art_ns_to_tsc() above
> correspond to the parameters of convert_art_ns_to_tsc() below.
>
> I would suggest a separate patch to address this.
> And dropping this hunk from this patch.
>

In the quoted documentation, @cycles, @cs and @cs_id document members of
the return type struct system_counterval_t (not parameters). I will just
drop the members documentation, since they are documented at the struct
definition site anyway.

> The same patch that corrects the kernel doc for convert_art_ns_to_tsc()
> could also correct the kernel doc for tsc_refine_calibration_work()
> by documenting it's work parameter.
>

OK.

Thanks for the comments,

Peter