Ported changes from the queued lock implementation in Linux kernel v6.6.7 in addition to general improvements.
General improvements:
Change CONFIG_NR_CPUS to the max allowed without affecting the lock bit layout.
Fix allocation of mcs_pool. Used cache-aligned allocations to make sure there is no false-sharing between cpus (in the actual kernel implementation DEFINE_PER_CPU_ALIGNED is used). Cache line size is assumed to be 64 bytes.
Ported changes from the queued lock implementation in Linux kernel v6.6.7 in addition to general improvements.
General improvements:
Lock behavior changes from Linux v6.6.7: