Re: [PATCH v11 4/5] locking/qspinlock: Introduce starvation avoidance into CNA

From: Randy Dunlap
Date: Tue Sep 15 2020 - 15:25:05 EST


Hi,

Entries in the kernel-parameters.txt file should be kept in alphabetical order
mostly (there are a few exceptions where related options are kept together).



On 9/15/20 11:05 AM, Alex Kogan wrote:
> Keep track of the time the thread at the head of the secondary queue
> has been waiting, and force inter-node handoff once this time passes
> a preset threshold. The default value for the threshold (10ms) can be
> overridden with the new kernel boot command-line option
> "numa_spinlock_threshold". The ms value is translated internally to the
> nearest rounded-up jiffies.
>
> Signed-off-by: Alex Kogan <alex.kogan@xxxxxxxxxx>
> Reviewed-by: Steve Sistare <steven.sistare@xxxxxxxxxx>
> Reviewed-by: Waiman Long <longman@xxxxxxxxxx>
> ---
> .../admin-guide/kernel-parameters.txt | 9 ++
> kernel/locking/qspinlock_cna.h | 95 ++++++++++++++++---
> 2 files changed, 92 insertions(+), 12 deletions(-)
>
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index 51ce050f8701..73ab23a47b97 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -3363,6 +3363,15 @@
> Not specifying this option is equivalent to
> numa_spinlock=auto.
>
> + 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.
> +
> cpu0_hotplug [X86] Turn on CPU0 hotplug feature when
> CONFIG_BOOTPARAM_HOTPLUG_CPU0 is off.
> Some features depend on CPU0. Known dependencies are:


This new entry and numa_spinlock from patch 3/5 should go between these other 2 NUMA entries:

numa_balancing= [KNL,X86] Enable or disable automatic NUMA balancing.
Allowed values are enable and disable

numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA.
'node', 'default' can be specified
This can be set from sysctl after boot.
See Documentation/admin-guide/sysctl/vm.rst for details.


Oooh, that cpu0_hotplug entry is way out of place. I'll send a patch for that.


thanks.
--
~Randy