• Waiman Long's avatar
    locking/pvqspinlock: Collect slowpath lock statistics · 45e898b7
    Waiman Long authored
    This patch enables the accumulation of kicking and waiting related
    PV qspinlock statistics when the new QUEUED_LOCK_STAT configuration
    option is selected. It also enables the collection of data which
    enable us to calculate the kicking and wakeup latencies which have
    a heavy dependency on the CPUs being used.
    
    The statistical counters are per-cpu variables to minimize the
    performance overhead in their updates. These counters are exported
    via the debugfs filesystem under the qlockstat directory.  When the
    corresponding debugfs files are read, summation and computing of the
    required data are then performed.
    
    The measured latencies for different CPUs are:
    
    	CPU		Wakeup		Kicking
    	---		------		-------
    	Haswell-EX	63.6us		 7.4us
    	Westmere-EX	67.6us		 9.3us
    
    The measured latencies varied a bit from run-to-run. The wakeup
    latency is much higher than the kicking latency.
    
    A sample of statistical counters after system bootup (with vCPU
    overcommit) was:
    
    	pv_hash_hops=1.00
    	pv_kick_unlock=1148
    	pv_kick_wake=1146
    	pv_latency_kick=11040
    	pv_latency_wake=194840
    	pv_spurious_wakeup=7
    	pv_wait_again=4
    	pv_wait_head=23
    	pv_wait_node=1129
    Signed-off-by: default avatarWaiman Long <Waiman.Long@hpe.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Douglas Hatch <doug.hatch@hpe.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Scott J Norton <scott.norton@hpe.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/1447114167-47185-6-git-send-email-Waiman.Long@hpe.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    45e898b7
qspinlock_paravirt.h 11.3 KB