Re: [PATCH v14 4/6] locking/qspinlock: Introduce starvation avoidance into CNA

From: Andi Kleen
Date: Tue Apr 13 2021 - 02:12:26 EST


Andi Kleen <ak@xxxxxxxxxxxxxxx> writes:

> Alex Kogan <alex.kogan@xxxxxxxxxx> writes:
>>
>> + numa_spinlock_threshold= [NUMA, PV_OPS]
>> + Set the time threshold in milliseconds for the
>> + number of intra-node lock hand-offs before the
>> + NUMA-aware spinlock is forced to be passed to
>> + a thread on another NUMA node. Valid values
>> + are in the [1..100] range. Smaller values result
>> + in a more fair, but less performant spinlock,
>> + and vice versa. The default value is 10.
>
> ms granularity seems very coarse grained for this. Surely
> at some point of spinning you can afford a ktime_get? But ok.

Actually thinking about it more using jiffies is likely broken
anyways because if the interrupts are disabled and the CPU
is running the main timer interrupts they won't increase.

cpu_clock (better than ktime_get) or sched_clock would work.

-Andi