On Thu, Mar 13, 2003 at 06:13:08PM -0800, Wayne Gowcher wrote:
> I am wondering if someone could point me towards
> articles / source code that would give me a little
> insight into how to debug cache problems in mips.
> For example , how do I inspect the contents of the
> cache ? Are there routines to dump out the contents of
> the cache ?
Frankly, such code isn't to useful. The problems in the cache code can
be fairly subtle. The only thing that has worked halfway well is reading
the code 1,000 times more after having read it 1,000 times. And because
it's such a nice job, read it another 1000 times when finished.
If you're refering to the current round of cache problems introduced about
three days ago when I eleminated flush_page_to_ram() and replace it
with flush_dcache_page() - the untested quickfix is changing the
definitions of clear_user_page() and copy_user_page() in <asm/page.h> to
flush the data cache after the operation, for example by invoking
flush_cache_all(). This particular problem affects all processors with
virtually indexed data caches except the R4000 and R4000 SC and MC
versions and the R10000 family.
And everybody's favorite question, was this necessary that late in 2.4?
Yes, it was. The new mechanism deals is not only more efficient it also
deals better with aliases between the pagecache and userspace mappings.