Re: [PATCH] x86: remove byte locks

From: Jeremy Fitzhardinge
Date: Tue Jan 13 2009 - 18:10:44 EST


Ingo Molnar wrote:
* Jiri Kosina <jkosina@xxxxxxx> wrote:

On Mon, 12 Jan 2009, Ingo Molnar wrote:

Remove byte locks implementation, which was introduced by Jeremy in 8efcbab6 ("paravirt: introduce a "lock-byte" spinlock implementation"), but turned out to be dead code that is not used by any in-kernel virtualization guest (Xen uses its own variant of spinlocks implementation and KVM is not planning to move to byte locks).

Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
---
arch/x86/include/asm/paravirt.h | 2 -
arch/x86/include/asm/spinlock.h | 66 +--------------------------------
arch/x86/kernel/paravirt-spinlocks.c | 10 -----
3 files changed, 2 insertions(+), 76 deletions(-)
didnt you send a patch in this lkml thread:

Subject: Re: Is 386 processor still supported?
that makes use of byte-locks on i386 ?
I did, but that patch was bogus, as we indeed don't support smp on M386.

This is totally independent -- it just removes dead code (byte locks) that has no in-tree user at all.

But i guess we should solve M386 and M486 by only allowing it on !SMP, hence spinlock support is moot there, right?
Agreed. But that's a different issue.

ok. Jeremy, can we apply Jiri's patch or do you still have plans with that code?

My intention for that code was always that it be a simplest-possible reference implementation for the spinlock pvops, and perhaps a basis for a more specialized version (the Xen version is based on byte locks, for example).

The code is "dead" in the sense that it has no users, but it also results in no generated code, and should be easy to maintain if the spinlock API is changed (as it is a canary to show that the other implementations will need changing too). In particular, the "paravirt spinlock" mechanism relies on all implementations using the same static initializer, and I wanted there to be an obvious second implementation so that if someone decided to change the ticketlock initializer, they'd be forced to consider what happens with the bytelock initializer (and by extension, any other implementation).

It's also useful as a baseline for benchmarking.

J
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/