0b17c96705
This patch switches MIPS to make use of generically implemented queued spinlocks, rather than the ticket spinlocks 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/16358/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
25 lines
599 B
Makefile
25 lines
599 B
Makefile
# MIPS headers
|
|
generic-(CONFIG_GENERIC_CSUM) += checksum.h
|
|
generic-y += clkdev.h
|
|
generic-y += current.h
|
|
generic-y += dma-contiguous.h
|
|
generic-y += emergency-restart.h
|
|
generic-y += export.h
|
|
generic-y += irq_work.h
|
|
generic-y += local64.h
|
|
generic-y += mcs_spinlock.h
|
|
generic-y += mm-arch-hooks.h
|
|
generic-y += parport.h
|
|
generic-y += percpu.h
|
|
generic-y += preempt.h
|
|
generic-y += qrwlock.h
|
|
generic-y += qspinlock.h
|
|
generic-y += sections.h
|
|
generic-y += segment.h
|
|
generic-y += serial.h
|
|
generic-y += trace_clock.h
|
|
generic-y += unaligned.h
|
|
generic-y += user.h
|
|
generic-y += word-at-a-time.h
|
|
generic-y += xor.h
|