This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: [PATCH] Remove arm lowlevellock.c
- From: Bernie Ogden <bernie dot ogden at linaro dot org>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: Will Newton <will dot newton at linaro dot org>, "libc-ports at sourceware dot org" <libc-ports at sourceware dot org>, libc-alpha <libc-alpha at sourceware dot org>
- Date: Wed, 30 Apr 2014 13:58:33 +0100
- Subject: Re: [PATCH] Remove arm lowlevellock.c
- Authentication-results: sourceware.org; auth=none
- References: <CALE0ps2nxAqHeotsxVcBEOV+nRsFGLBLD8+kP2ZY-PdnELkueA at mail dot gmail dot com> <CANu=Dmjz96Nk-C0xWOdO-xDWzt=+Z7u6OrsYJehcB_Y0T7B=ag at mail dot gmail dot com> <Pine dot LNX dot 4 dot 64 dot 1404291523380 dot 6770 at digraph dot polyomino dot org dot uk>
The workaround is that some of the arm lowlevellock.c functions
promote futex to 2 if it is 1. Generic lowlevellock.c always promotes
futex to 2. Hence, removing arm's lowlevellock.c doesn't cause a
regression in this sense.
It does mean that arm stops being affected by BZ 15119 and instead is
affected by the second bug. So we go from having BZ 15119 on arm, and
a second bug on aarch64, m68k and sh/sh4, to having the second bug
across all of these platforms. That feels like progress to me, but you
could reasonably differ.
I agree with you on unifying lowlevellock.h - so it'll take a little
longer for me to submit the fix for the second bug as I'll stop to
unify the files as part of the work. (Quite a few of them do look
unifiable.)
I guess I should create something in bugzilla for 'the second bug' -
I'll go do that soon.
On 29 April 2014 16:26, Joseph S. Myers <joseph@codesourcery.com> wrote:
> On Mon, 28 Apr 2014, Will Newton wrote:
>
>> Hi Bernie,
>>
>> ARM patches can now be sent to libc-alpha as ARM has moved from ports
>> into the main tree.
>>
>> I'm not sure if we still use libc-ports for HPPA patches...
>>
>> On 28 April 2014 15:50, Bernie Ogden <bernie.ogden@linaro.org> wrote:
>> > lowlevellock.c for arm differs from the generic lowlevellock.c only in
>> > insignificant ways, so can be removed. Happily, this fixes BZ 15119
>> > (unnecessary busy loop in __lll_timedlock_wait on arm).
>
> ...
>
>> > Also note that the analysis at
>> > https://sourceware.org/ml/libc-ports/2013-02/msg00021.html indicates a
>> > further locking performance bug to fix - I've got a partial patch for
>> > that which I can submit once I've finished testing.
>
> That analysis asserts that ARM's lowlevellock.c is trying to work around
> a bug in lowlevellock.h. Are you asserting in this patch that in fact the
> workaround is not needed - that there is no regression caused by removing
> the lowlevellock.c file before fixing the lowlevellock.h bug?
>
> (Actually I'd like to see unification of the lowlevellock.h files as far
> as possible, not just lowlevellock.c.)
>
> --
> Joseph S. Myers
> joseph@codesourcery.com