This is the mail archive of the cygwin 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: 1.7.0 CVS mmap failure


On Jan  5 20:23, Corinna Vinschen wrote:
> On Jan  5 12:42, Brian Ford wrote:
> > On Fri, 5 Jan 2007, Corinna Vinschen wrote:
> > So, it does indeed look taken.
> 
> Too bad.
> 
> > > Actually this shows a problem in the mmap implementation with respect to
> > > MEM_TOP_DOWN.  I think, what mmap should actually do is to create a
> > > lightweight MAP_RESERVE anonymous mapping of the whole requested mapping
> > > size, then close it again and then reopen it with the address it got
> > > in this first try.  This would probably ensure that the subsequent two
> > > mapping will work.
> > 
> > I don't know what mmap magic Cygwin uses internally to do this, but can't
> > you just map the big region, then overmap the disk file without the map,
> > unmap, remap, remap?
> 
> "overmap"?  -v please?

Since overmapping doesn't work on Windows, unfortunately, I implemented
the above mentioned technique, which isn't much code anyway.  It
reserves a memory lot big enough to fit in the whole mapping, memorizes
the address, free's the memory again and then uses the new address in
the subsequent real mappings.

This should work (knock on wood) on all systems now.  My testcases still
work on my 512 MB machine, so I'd appreciate if you could give the latest
snapshot a try on /3GB enabled machines.


Corinna


-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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