I-Cache incoherence

Marc Lörner marc.loerner at hob.de
Wed May 28 06:40:00 UTC 2008


On Tuesday 27 May 2008 18:52, Marcel Moolenaar wrote:
> On May 27, 2008, at 7:48 AM, Marc Lörner wrote:
> > Hi,
> > when testing snapshot 7.0-Stable from 05/2008 and
> > 8.0-Current installation discs, it seems that the image
> > gets loaded from disc into data cache.
> >
> > When we now try to access this just loaded data as instructions
> > => I-Cache is not coherent and HW just hangs
> > (after output: "Trying to mount root from /dev/md0"
> > and before choosing the terminal-emulation)
>
> I thought I used a big enough hammer to make this work...
>
> The only place we don't make the I-cache coherent is for the
> ptrace interface. This typically shows up as not hitting a
> breakpoint after setting it. In all other cases we seem to be
> fine.
>
> > I tried to verify this assumption with inserting a"ptc.l"-instruction
> > before every itc.i in Instruction_TLB, so we force the HW to ensure
> > coherency.
> > =>It now runs further to sysinstall.
>
> I'm confused. Are we talking about the translation cache or
> the data/instruction cache?

I think the problem is on loading code from disk and then inserting an 
translation in the ITC. So it can be that the newest values/data lays still 
in L1D/L2D-cache and not in L3. 
=> we only see old memory contents

So I inserted an ptc.l to ensure that Data-Translation is purged and within 
that all entries in data caches get written back to memory.
=> we now (after itc.i) can see/get new values.
(I know ptc.l is not the appropriate solution, just used for testing purpose)

We only get this fault, if we load few data and shortly after that try to 
switch there for execution.
=> on installation-discs when loading and executing sysinstall

Regards,
Marc Loerner


More information about the freebsd-ia64 mailing list