On Mon, 2015-06-22 at 09:30 +0200, Ingo Molnar wrote:
Linus,Very interesting.
Please pull the latest locking-core-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking-core-for-linus
# HEAD: 68722101ec3a0e179408a13708dd020e04f54aab locking/lockdep: Remove hard coded array size dependency
The main changes are:
- 'qspinlock' support, enabled on x86: queued spinlocks - these are now the
spinlock variant used by x86 as they outperform ticket spinlocks in every
category. (Waiman Long)
While rebasing http://www.kernelhub.org/?msg=737214&p=2
I found that indeed qspinlock improved the scalability issue by a big
factor.
linux-4.1
lpaa23:~# pipebench -n 16
threads:16 sleep:30 pinned:1
total operations: 6977349, ops/sec 232578
6977349
lpaa23:~# pipebench -n 16
threads:16 sleep:30 pinned:1
total operations: 7326280, ops/sec 244209
7326280
Current Linus tree :
lpaa23:~# pipebench -n 16
threads:16 sleep:30 pinned:1
total operations: 15640802, ops/sec 521360
15640802
lpaa23:~# pipebench -n 16
threads:16 sleep:30 pinned:1
total operations: 15045022, ops/sec 501500
15045022
Adding fd_install() patch then :
lpaa23:~# pipebench -n 16
threads:16 sleep:30 pinned:1
total operations: 21471043, ops/sec 715701
21471043
lpaa23:~# pipebench -n 16
threads:16 sleep:30 pinned:1
total operations: 21068501, ops/sec 702283
21068501