Bug 179911 - mmaping over NFS: msync(MS_INVALIDATE) does not do anything.
Summary: mmaping over NFS: msync(MS_INVALIDATE) does not do anything.
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel
Version: 5.0
Hardware: All
OS: Linux
Target Milestone: ---
: ---
Assignee: Steve Dickson
QA Contact: Brian Brock
Keywords: FutureFeature
: 137330 (view as bug list)
Depends On:
Blocks: 184317
TreeView+ depends on / blocked
Reported: 2006-02-03 20:09 UTC by Daniel Riek
Modified: 2007-11-30 22:07 UTC (History)
6 users (show)

Clone Of:
Last Closed: 2006-10-23 14:40:34 UTC

Attachments (Terms of Use)

Comment 1 Ernie Petrides 2006-02-03 23:43:00 UTC
*** Bug 137330 has been marked as a duplicate of this bug. ***

Comment 7 Amit Gud 2006-08-07 21:44:38 UTC
If I'm not wrong, it shouldn't (at least for NFSv3). In fact the case is,
currently MS_INVALIDATE is of no use to us because of the way Linux implements
shared mmap - processes mmapping a common file simply share the memory pages.
So, rightly so, it turns out that MS_INVALIDATE is effectively an implicit
no-op, and currently there are no takers.

SuSv3 standard says "When MS_INVALIDATE is specified, msync() shall invalidate
all cached copies of mapped data that are inconsistent with the permanent
storage locations such that subsequent references shall obtain data that was
consistent with the permanent storage locations sometime between the call to
msync() and the first subsequent memory reference to the data."

This makes sense for a network file system (like NFS!) that all the client
caches (mmappings) of the data (file) be invalidated. But, being stateless, NFS
server doesn't care about which clients uses what files and how. So IMO, for NFS
MS_INVALIDATE is again a no-op.

Comment 9 RHEL Product and Program Management 2006-10-23 14:40:35 UTC
Development Management has reviewed and declined this request.  You may appeal
this decision by reopening this request. 

Note You need to log in before you can comment on or make changes to this bug.