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

Randy Dunlap rdunlap at infradead.org
Tue Sep 15 15:24:26 EDT 2020


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 at oracle.com>
> Reviewed-by: Steve Sistare <steven.sistare at oracle.com>
> Reviewed-by: Waiman Long <longman at redhat.com>
> ---
>  .../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
>  			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.


More information about the linux-arm-kernel mailing list