This is the mail archive of the cygwin-developers mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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
Red Hat

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]