Subject: Re: SA110 - Current status
To: None <port-arm32@NetBSD.ORG>
From: Mark Smith <mark@findon.demon.co.uk>
List: port-arm32
Date: 10/16/1996 20:52:54
In message <9610151623.ZM7714@physig4.ph.kcl.ac.uk>
          "Mark Brinicombe" <amb@physig4.ph.kcl.ac.uk> wrote:

> I dont need to clean on an interrupt but some cleaning is needed when ever any
> pages are remapped due to having a virtual cache.

Why not do the following for each page you remap:

1) Disable interupts
2) For each 32 byte potential data cache line within the page do an entry
specific clean and flush
3) Remap the page, flush the data TLB entry
4) Enable interrupts
5) Check for any pending interrupts by calling the interrupt handler routine
6) Repeat for each page

Note that enabling and immediately disabling interrupts will not give them a
chance to occur, hence the need for a specific check.

The question is, if you think interrupts may occur which will dirty cache
lines of pages that you're trying to remap, how does the offending interrupt
routine know if the old or new physical pages are mapped in?

Presumably these remaps are occuring during process switching?

-- 
Mark Smith - Surrey, UK         ...http://www.findon.demon.co.uk/...
This message was posted via my private internet account. It doesn't represent
the position of any individuals or organisations with whom I may be linked.
... Start slow and taper off.