This is the mail archive of the
mailing list for the Cygwin project.
Re: Broken autoconf mmap test
On Mar 24 12:44, Christopher Faylor wrote:
> On Thu, Mar 24, 2011 at 10:23:57AM -0600, Eric Blake wrote:
> >On 03/24/2011 10:21 AM, Christopher Faylor wrote:
> >>> - In all three possible solutions above: What if the original file
> >>> handle used in the mmap call has been closed and the file permissions
> >>> have been changed in the meantime so that the process does not have
> >>> write permissions anymore?
> >> - Isn't it going to be really slow? I guess if it only happens once
> >> per page it won't be that bad but still: ouch.
There is a good chance that it's going to be slower. I'm not sure if
loading the file into the anonymous mapping is a problem since that
would have to be done under the hood as well, if the mapping is a file
mapping. For the first write to each page you have a hit of a couple of
cycles to change the page protection. When writing back the changes you
have to open the file, scan the pages and write back the changed ones.
Opening the handle could be quite a hit, writing the changes back would
be basically the same as the OS has to do as well. However, while the
OS can do so in the background whenever it sees fit, Cygwin couldn't.
> >And if I'm understanding correctly, it only needs to happen for the one
> >page at the end of the file; all earlier 64k chunks of the file can be
> >mapped normally, if you can guarantee that the normal mappings are
> >adjacent with the one special mapping.
> Ah. So that would make it like a stack guard page then.
Uh, no. This is an anonymous mapping, ok? So there's no connection
to the file which has been mapped. So the mechanism would have to
cover the entire mapping. It would kind of having all pages set to
be guard pages, but you can't really use guard pages since they have
a hit for writing *and* reading.
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com