This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: Using __kuser_cmpxchg
- From: Nicolas Pitre <nico at cam dot org>
- To: Andrew Haley <aph at redhat dot com>
- Cc: Paul Brook <paul at codesourcery dot com>, java at gcc dot gnu dot org, linux-arm-kernel at lists dot arm dot linux dot org dot uk
- Date: Thu, 15 Nov 2007 13:28:06 -0500 (EST)
- Subject: Re: Using __kuser_cmpxchg
- References: <200711151759.lAFHxKa4027497@devserv.devel.redhat.com>
On Thu, 15 Nov 2007, Andrew Haley wrote:
> Andrew Haley writes:
> > Paul Brook writes:
> > > For recent kernels there is a kernel helper you should use.
> > > See __kernel_cmpxchg in linux/arch/arm/kernel/entry-armv.S
> > >
> > > Any kernel capable of running on armv6/v7 hardware should have this helper.
> > > So should all targets on targets that define __ARM_EABI__
> > >
> > > So I suggest using the kernel helper for EABI and v6/v7 libraries, everyone
> > > else will have to make do with the crappy old sequence.
> >
> > OK, I'll investigate this as soon as I get some time.
>
> It seems to be impossible to use this kernel helper because
>
> * - A failure might be transient, i.e. it is possible, although unlikely,
> * that "failure" be returned even if *ptr == oldval.
>
> If this were to happen, the logic used to block and unblock threads
> wouldn't work.
Why?
Nicolas