> > The compiler may stop working sometimes on certain files, giving bogus
> > error messages which I don't understand (the compiler is probably not the
> > only application affected). Running this program I just wrote forces the
> > corrupted caches to be flushed or something and ``fixes'' the problems:
> This problem sounds like a cache flushing problem. Do you also get
> SIGILL, SIGBUS, and SIGSEGV failures? One possibility is that the
> icache is not being flushed on a page fault, when a page is read in from
> disk, and the icache still has old data in it. This could lead to a
> cache line of bogus instructions being executed.
Sometimes when this happens I think I only get a SIGSEGV or a SIGBUS, otherwise
I get internal compiler errors. It's hard to say since these problems are very
hard to reproduce, and I forget what happens from time to time. I have
unfortunately not written down the results. It sounds like this may be the
cause of the type of file corruption I have when only a little part of the file
is damaged (sounds like the problem covers both icache and dcache). That type
of file corruption goes away after reboot. I haven't had a chance to try this
with my discard-disk-cache program since this happens very seldom..
> What model of CPU do you have in your machine?
I have a 133 MHz R4600 with 512kb board cache, 16kb dcache and 16kb icache.