Re: [patch] cache flush bug in mm/filemap.c (all kernels >=

Paul Mackerras (paulus@au1.ibm.com)
Fri, 23 May 2003 21:22:09 +1000


Andrew Morton writes:

> filemap_nopage isn't the right place to be doing these things though.
>
> Given that there was no page at the virtual address before filemap_nopage
> was called I don't think any CPU cache writeback or invalidation need be
> performed. Perhaps a writeback or invalidate is missing somewhere in the
> unmap paths, or there is a problem in arch/arm somewhere.
>
> We have a no-op flush_icache_page() in do_no_page(), but I don't know what
> that thing ever did, not what it's doing in there. (What happens if you
> replace it with a flush_cache_page(vma, address)?)

We used to use flush_icache_page() on ppc/ppc64 to ensure that the
i-cache was consistent with the d-cache and with memory. It was
needed in do_no_page for the case where the page had just been read in
and the i-cache could have stale data reflecting the previous contents
of the page (the i-cache doesn't snoop on ppc). But we now do that in
update_mmu_cache.

Paul.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/