Re: mmap modified data not to be swapped out but saved?
site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com On Oct 2, 2004, at 2:58 PM, Dylan McNamee wrote: --Jim _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... Ben Dougall asked: with mmap once you've read in some of a file and made some modifications is there anyway to avoid those modifications being swapped out to the backing store? what would be preferable is in the event of the system needing more memory, rather than swapping out those modifications, save them directly to the original file -- is that what happens now, by default maybe, or is there anyway of doing that? While I haven't examined Darwin's code lately, I am pretty familiar with the Mach's VM code from years past, and my memory says that what you want to have happen is supported. (At pageout, "dirty" pages are written back to the file backing the mapped region, which is a file-backed Memory Object). Revisiting the mmap man page reminds me that this might only be the case if the region is mmapped including the MAP_SHARED flag. You're memory (and reading of the manpage) are correct. Using MAP_SHARED read/write, modifications to mapped files get written back to the original file. Using MAP_PRIVATE results in a private copy-on-write mapping of the file where local modifications get written to swap instead. This email sent to site_archiver@lists.apple.com
participants (1)
-
Jim Magee