Re: [PATCH v8 01/11] timekeeping: move multigrain timestamp floor handling into timekeeper

From: Thomas Gleixner
Date: Mon Sep 30 2024 - 15:16:34 EST


On Mon, Sep 16 2024 at 06:57, Jeff Layton wrote:
> On Mon, 2024-09-16 at 12:32 +0200, Thomas Gleixner wrote:
>> > 'Something has changed' is a truly understandable technical
>> > explanation.
>>
>> old = mg_floor
>> mono = T1;
>> mg_floor = mono
>> preemption
>>
>> do {
>> mono = T2;
>> }
>>
>> cmpxchg fails and the function returns a value based on T1
>>
>> No?
>>
>>
>
> Packing for LPC, so I can't respond to all of these just now, but I
> will later. You're correct, but either outcome is OK.
>
> The requirement is that we don't hand out any values that were below
> the floor at the time that the task entered the kernel. Since the time
> changed while the task was already inside the kernel, either T1 or T2
> would be valid timestamps.

That really needs to be documented. A similar scenario exists
vs. ktime_get_coarse_real_ts64_mg().

Thanks,

tglx