Port-mips archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: __atomic_test_and_set() and mips o32 - help wanted
On Mon, 17 Nov 2025, Simon Burge wrote:
> > i'm not sure what the right thing to do here is. it's not clear
> > to me that the actual old 32-bit hardware can do this at all, but
> > there are now explicit calls to this builtin. GCC configury tries
> > to find and notice it's missing, but libstdc++ still has a couple
> > of calls to it directly in it's "test_and_set()".
> >
> >
> > anyone have a good idea?
>
> MIPS1 has no ll/sc or any other atomic primatives. SMP R3000
> boxes (eg DECsystem 54x0) used external hardware for this.
>
> Seems like RAS (see rasctl(2)) might be the only (simple?)
> option for MIPS1/o32 ?
Just trap and emulate LL/SC in the kernel for user software; it's trivial
for UP and lets software benefit from actual machine instructions when run
on newer hardware (which is the vast majority nowadays).
For SMP the exception handler could make use of said external logic, but
I reckon there's no support for such hardware in the OS right now (and
said hardware is as scarce as hen's teeth anyway).
NB it's the 58x0 that's SMP; the 5400 along with 5500 are ordinary UP
Q-bus boxes and you can actually swap the CPU modules between them.
FWIW,
Maciej
Home |
Main Index |
Thread Index |
Old Index