On Tue, Jan 09, 2001 at 05:48:11PM -0800, Justin Carlson wrote:
> Looking at the existing clear_page implementations for r4xx0, rm7k, and mips32
> in the mips/ tree, I see everyone issuing cache op 0xd for the address range
> of
> the page being cleared.
>
> I'm wondering what the purpose is of these cache flushes...given a physically
> tagged dcache, my understanding of the semantics of clear_page are that it
> just
> zeros the page, in which case the cache ops are pointless overhead.
>
> Especially in the mips32 case, which uses cache op 0xd, which is undefined
> implementation dependent according to my mips32 spec.
The idea is to avoid unnecessary memory reads - all the read data would
be overwritten anyway. The last time I benchmarked this routine on some
machine it made a difference of about 4000 vs. 2500 c0_count cycles. I
think that was on a R4600 RM200.
Ralf
|