Messages in this thread | | | From | Waiman Long <> | Subject | Re: [External] : Re: [PATCH v14 4/6] locking/qspinlock: Introduce starvation avoidance into CNA | Date | Wed, 14 Apr 2021 12:41:58 -0400 |
| |
On 4/13/21 5:01 PM, Alex Kogan wrote: > Hi, Andi. > > Thanks for your comments! > >> On Apr 13, 2021, at 2:03 AM, Andi Kleen <ak@linux.intel.com> wrote: >> >> Alex Kogan <alex.kogan@oracle.com> 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. > We are reading time when we are at the head of the (main) queue, but > don’t have the lock yet. Not sure about the latency of ktime_get(), but > anything reasonably fast but not necessarily precise should work. > >> Could you turn that into a moduleparm which can be changed at runtime? >> Would be strange to have to reboot just to play with this parameter > Yes, good suggestion, thanks. > >> This would also make the code a lot shorter I guess. > So you don’t think we need the command-line parameter, just the module_param?
The CNA code, if enabled, will be in vmlinux, not in a kernel module. As a result, I think a module parameter will be no different from a kernel command line parameter in this regard.
Cheers, Longman
| |