[parisc-linux] Question about cache flushing and fork

James Bottomley James.Bottomley at steeleye.com
Tue Dec 16 17:36:44 MST 2003


> I have a different cache question.  GCC uses a stack trampoline
> to call nested functions.  This trampoline is on the stack and
> has to be flushed before being used.  A few weeks ago a trampoline
> testcase was added.  This testcase failed under hppa64-hpux.  It
> turned out that the code assumed that the PA 2.0 cache line was
> 32 bytes (it was apparently derived from the original PA 1.1 code).

Could you elaborate on the context for this?  It was my understanding
that to flush an area for execution, you simply loop over the area
striding by the cache line width, issuing fdc; fic. (at least, that's
how we do it in the kernel).

If we think the cache line is *smaller* than it actually is, all this
does is issue more flushes than necessary to the cache lines, I don't
understand how it results in an observable failure.

James




More information about the parisc-linux mailing list