This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RFC][PATCH 0/2] Make sparcv8 work again on cas enabled hardware
- From: Torvald Riegel <triegel at redhat dot com>
- To: David Miller <davem at davemloft dot net>
- Cc: andreas at gaisler dot com, libc-alpha at sourceware dot org, adhemerval dot zanella at linaro dot org, carlos at redhat dot com, software at gaisler dot com
- Date: Tue, 01 Nov 2016 17:46:41 +0100
- Subject: Re: [RFC][PATCH 0/2] Make sparcv8 work again on cas enabled hardware
- Authentication-results: sourceware.org; auth=none
- References: <1478012867-6031-1-git-send-email-andreas@gaisler.com> <1478015984.7146.645.camel@localhost.localdomain> <20161101.120933.844037675386229627.davem@davemloft.net>
On Tue, 2016-11-01 at 12:09 -0400, David Miller wrote:
> From: Torvald Riegel <triegel@redhat.com>
> Date: Tue, 01 Nov 2016 16:59:44 +0100
>
> > On Tue, 2016-11-01 at 16:07 +0100, Andreas Larsson wrote:
> >> Any comments are most welcome. The spin lock based sparcv8 semaphore
> >> implementation is currently unchanged by this patchset, but I would say
> >> that that should go as well.
> >
> > Agreed.
>
> I think tossing out all of the ldstub based v8 code is not wise.
>
> I was envisioning adding code to use ldstub on v8 when CAS is not
> available in order to maintain the status quo of what worked and
> was functional before the changes which introduced this problem
> for v8 in the first place.
>
> Having that in place until the kernel-side atomics could be
> implemented, propagated, and supported in glibc would be a nice
> intermediate state compared to what we have now.
How do you intend to make the synchronization primitives work whose
implementation requires a CAS and for which nobody has provided an
alternative implementation that does not require CAS?
Will they remain unsupported? If so, we're just talking about
semaphores and lowlevellock here. Barriers, condvars, rwlock would not
be supported anymore.
Would we just not support the process-shared of all these? If so, it
likely doesn't hurt much to not support process-shared semaphores.
The low-level locks can be changed to just use a TAS instead of a CAS,
which would remove the need to keep the 24b variant just for these.