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

Alex Kogan alex.kogan at oracle.com
Tue Sep 15 15:57:55 EDT 2020



> On Sep 15, 2020, at 3:24 PM, Randy Dunlap <rdunlap at infradead.org> wrote:
> 
> 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 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
>> 			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.
Will fix that, thanks.

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

— Alex


More information about the linux-arm-kernel mailing list