Ralf Baechle wrote:
It's a cache instruction so priviledged which means userspace can't execute
it. It's also entirely unclear if a cache barrier instruction would make a
difference at all.
The cache barrier has an interesting effect. I built three binaries: f, f2, and
f3 (I'm cheap on the names):
f - cache barriers on load and stores (-mr10k-cache-barrier=2)
f2 - cache barriers on loads only (-mr10k-cache-barrier=1)
f3 - no cache barriers (flag omitted from gcc)
Running 'f' and 'f2' generates an "Illegal instruction" error, then drops back
to the command line, while 'f3' hangs the box. This is an IP28 running on
2.6.23.9, using Thomas' patches backported to fit (plus Peter's Impact code and
two sgiseeq patches from upstream).
This is similar to using a gentoo stage3 in a chroot environment that was built
back in May of 2007, so I think this hang up pre-dates glibc-2.7 by some degree,
as that chroot uses glibc-2.5. Chroot into this userland, and run our
"env-update" script, and you'll hang the box.
FYI, CPU rev in this machine is R10000 v2.5. I think that's the same for all
IP28 systems.
--Kumba
--
Gentoo/MIPS Team Lead
"Such is oft the course of deeds that move the wheels of the world: small hands
do them because they must, while the eyes of the great are elsewhere." --Elrond