Files
linux/arch/mips/include/asm
Paul Burton 25da4e9ded MIPS: Use queued read/write locks (qrwlock)
This patch switches MIPS to make use of generically implemented queued
read/write locks, rather than the custom implementation used previously.
This allows us to drop a whole load of inline assembly, share more
generic code, and is also a performance win.

Results from running the AIM7 short workload on a MIPS Creator Ci40 (ie.
2 core 2 thread interAptiv CPU clocked at 546MHz) with v4.12-rc4
pistachio_defconfig, with ftrace disabled due to a current bug, and both
with & without use of queued rwlocks & spinlocks:

  Forks | v4.12-rc4 | +qlocks  | Change
 -------|-----------|----------|--------
     10 | 52630.32  | 53316.31 | +1.01%
     20 | 51777.80  | 52623.15 | +1.02%
     30 | 51645.92  | 52517.26 | +1.02%
     40 | 51634.88  | 52419.89 | +1.02%
     50 | 51506.75  | 52307.81 | +1.02%
     60 | 51500.74  | 52322.72 | +1.02%
     70 | 51434.81  | 52288.60 | +1.02%
     80 | 51423.22  | 52434.85 | +1.02%
     90 | 51428.65  | 52410.10 | +1.02%

The kernels used for these tests also had my "MIPS: Hardcode cpu_has_*
where known at compile time due to ISA" patch applied, which allows the
kernel_uses_llsc checks in cmpxchg() & xchg() to be optimised away at
compile time.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/16357/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2017-06-29 02:42:25 +02:00
..
2013-02-01 10:00:22 +01:00
2013-02-01 10:00:22 +01:00
2013-02-01 10:00:22 +01:00
2016-05-28 12:35:06 +02:00
2015-06-21 21:52:44 +02:00
2014-08-26 02:18:58 +02:00
2016-05-28 12:35:07 +02:00
2016-04-03 12:32:09 +02:00
2016-05-28 12:35:08 +02:00
2016-04-03 12:32:09 +02:00
2013-02-01 10:00:22 +01:00
2013-02-01 10:00:22 +01:00
2014-01-22 20:19:02 +01:00
2017-03-28 16:43:25 -04:00
2015-11-12 11:35:47 +01:00
2017-03-28 14:49:15 +01:00
2017-06-28 12:22:39 +02:00
2013-02-01 10:00:22 +01:00
2013-01-24 13:20:09 +01:00
2015-05-28 15:31:53 +02:00
2014-08-26 02:18:56 +02:00
2012-03-28 18:30:02 +01:00
2014-05-24 00:07:01 +02:00
2013-02-01 10:00:22 +01:00
2013-02-01 10:00:22 +01:00
2016-05-28 12:35:06 +02:00
2013-02-01 10:00:22 +01:00
2013-02-01 10:00:22 +01:00
2013-02-01 10:00:22 +01:00
2015-09-03 12:08:05 +02:00
2013-02-01 10:00:22 +01:00
2013-02-01 10:00:22 +01:00
2013-02-01 10:00:22 +01:00
2016-05-28 12:35:07 +02:00
2013-02-01 10:00:22 +01:00
2017-06-08 14:51:58 +02:00
2016-10-04 16:13:57 +02:00
2017-03-28 16:43:25 -04:00
2014-08-02 00:06:38 +02:00
2013-02-01 10:00:22 +01:00
2014-01-22 20:19:02 +01:00
2016-04-03 12:32:09 +02:00
2013-02-01 10:00:22 +01:00
2017-01-03 16:34:44 +01:00
2013-02-01 10:00:22 +01:00
2017-01-03 16:34:42 +01:00
2013-02-01 10:00:22 +01:00
2013-02-01 10:00:22 +01:00
2013-02-01 10:00:22 +01:00
2017-04-06 02:08:09 -04:00
2017-06-28 12:22:39 +02:00
2013-09-18 17:13:58 +02:00
2013-02-01 10:00:22 +01:00
2016-05-09 12:00:02 +02:00