Bernd Schmidt wrote:
> Jamie Lokier wrote:
> > It's also possibly to do atomic memory operations the way older
> > versions of ARM do cmpxchg (they don't have an instruction for it).
> > 
> > They call a routine in the kernel address space (but not a syscall).
> > Kernel task switching checks if the intruction pointer is inside that
> > code sequence, and restarts the cmpxchg sequence if it is.  That makes
> > it effectively atomic without disabling interrupts, and works with
> > normal userspace protections.  It doesn't work on SMP, but we assume
> > SMP ARMs will be a newer version which has atomic instructions.
> 
> We do exactly the same thing on the Blackfin.  I thought I'd invented
> the technique - apparently not.

I'm sure the technique is much older than Linux :-)

-- Jamie
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to