On 01/30/2014 10:43 AM, Waiman Long wrote:
On 01/30/2014 10:17 AM, Peter Zijlstra wrote:
On Thu, Jan 30, 2014 at 02:04:53PM +0100, Peter Zijlstra wrote:
So I took out that ugly union and rewrote the code to be mostly
atomic_*(), gcc generates acceptable code and its smaller too.
824 0 0 824 338
defconfig-build/kernel/locking/qrwlock.o
776 0 0 776 308
defconfig-build/kernel/locking/qrwlock.o
I don't think I wrecked it, but I've not actually tried it yet.
I did wreck it.. :-)
The below is still small and actually works.
---
arch/x86/Kconfig | 1
arch/x86/include/asm/spinlock.h | 2
arch/x86/include/asm/spinlock_types.h | 4
b/arch/x86/include/asm/qrwlock.h | 18 +++
b/include/asm-generic/qrwlock.h | 174
++++++++++++++++++++++++++++++++++
b/include/asm-generic/qrwlock_types.h | 17 +++
b/kernel/locking/qrwlock.c | 157
++++++++++++++++++++++++++++++
kernel/Kconfig.locks | 7 +
kernel/locking/Makefile | 1
9 files changed, 381 insertions(+)
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
OK, I see what you are trying to do. I can apply the change to my
patch & send out v12. So I presume that you are now OK with it. Can I
add your sign-off line?
-Longman
One more thing, I often see line like
#define queue_write_unlock queue_write_unlock
So exactly what effect does this macro have?
-Longman
--
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html