Subject: Re: cache coherence problem

From: Benjamin Herrenschmidt <[email-masked]>
Date: Tue, 18 Nov 2003 14:02:28 +1100

On Tue, 2003-11-18 at 12:16, Juergen Kienhoefer wrote:
> Guys,
> Look at the folloging test program. It mmaps memory, puts some
> instructions in it and executes it.
> Sometimes it works, sometimes it crashes with illegal instruction.
> This smells like cache problems.
> Should the kernel clean the instruction cache for these addresses
> in mmap system call?
> Thanks for any thoughts!
> Juergen

It's your duty to ensure cache coherency. Actually, the kernel
will eventually clean the icache for newly mapped in blank pages,
but it will certainly not enforce flush of your writes to memory.

You need to first flush the data cache to memory using dcbf or
dcbst, then sync for this to complete, then invalidate the
instruction cache, sync and isync.

Ben.

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/