Subject: Re: CVS commit: syssrc/sys/arch/arm/arm32
To: None <Richard.Earnshaw@arm.com>
From: Chuck Silvers <chuq@chuq.com>
List: port-arm32
Date: 07/10/2001 05:14:41
well, that does bring up an interesting point:  for this optimization to work,
pmap_clear_modify() will have to flush any VAC after clearing the state which
indicates the page is modified.  (the "after" part is important in a
multiprocessor environment to handle races with other cpus dirtying
the page again.)

-Chuck


On Tue, Jul 10, 2001 at 10:01:17AM +0100, Richard Earnshaw wrote:
> 
> chuq@chuq.com said:
> >  (2) when we're reading the page from memory to write it to backing
> > store.
> >      this use also involves careful ordering of operations in
> >      pmap_clear_modify(), so that any writes to the page via other
> >      mappings which could end up in different cache lines will also
> >      result in the page being marked modified again, so that we'll
> >      be forced to write the page to backing store again at some point
> >      in the future. 
> 
> Hmm, I'm not sure if this is relevant, but the arm32 pmap_protect() 
> implementation does not flush the cache when a page is marked read-only.  
> I discovered this to my cost when trying to optimize pmap_copy_page to 
> minimize cache flushes.
> 
> R.