[parisc-linux] Re: Problems with kernel mmap (failing
tst-mmap-eofsync in glibc on parisc)
James Bottomley
James.Bottomley@steeleye.com
22 Aug 2003 13:41:26 -0500
On Fri, 2003-08-22 at 13:34, Hugh Dickins wrote:
> Might the problem be in parisc's __flush_dcache_page,
> which only examines i_mmap_shared?
This is the issue: we do treat them differently.
Semantics differ between privately mapped data (where there's no
coherency guarantee) and shared data (where there is). Flushing the
virtual cache is expensive on pa, so we only do it for the i_mmap_shared
list.
The difficulty is that a mmap of a read only file with MAP_SHARED is
expecting the shared cache semantics, but gets added to the non shared
list.
Since flushing the caches is a performance hog, we'd like do be able to
distinguish the cases where we have to do the flush MAP_SHARED mappings
from those we don't (MAP_PRIVATE).
James