[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <496D1F54.7070104@goop.org>
Date: Tue, 13 Jan 2009 15:10:12 -0800
From: Jeremy Fitzhardinge <jeremy@...p.org>
To: Ingo Molnar <mingo@...e.hu>
CC: Jiri Kosina <jkosina@...e.cz>,
Jeremy Fitzhardinge <jeremy@...source.com>,
linux-kernel@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
"H. Peter Anvin" <hpa@...or.com>
Subject: Re: [PATCH] x86: remove byte locks
Ingo Molnar wrote:
> * Jiri Kosina <jkosina@...e.cz> 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@...e.cz>
>>>> ---
>>>> 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists