Mail Archives: cygwin/2006/08/13/05:23:07
Corinna Vinschen schrieb:
...
> Ok, back to mmap/munmap. Private anonymous mappings are implemented in
> Cygwin by calling VirtualAlloc/VirtualFree. However, due to
> restrictions in the Win32 API, VirtualFree is only called by munmap, as
> soon as *all* pages within a single mmap'ed area are free'ed by this or
> preceding calls to munmap.
>
> In other words, the mmap'ed memory will not be returned to the OS, if
> not the complete mmap'ed area is munmap'ed. Therefore I assume that the
> implementation in Lisp keeps bits of memory around which are not
> munmap'ed for some internal reason.
>
> Of course it's also possible that there's a bug in Cygwin related to the
> way mmap/munmap is called. But I have so far no evidence for that and
> simple mmap/munmap tests show that VirtualFree is called as soon as all
> pages in a mmap'ed area have been munmap'ed. If somebody thinks there's
> a bug in this implementation, please send a simple, self-contained
> testcase in pure C source code, which allows to reproduce the problem.
> Of course, patches are welcome, too :)
And there's the known mmap() under cygwin limitation, esp. harmful to
clisp, that mmap() can only be properly aligned to a base address modulo
64k (windows "allocation granularity"), and not the usual pagesize, if
it's 4k or 8k. windows pagesize is still 4k though.
http://www.cygwin.com/ml/cygwin/2000-09/msg00380.html
http://www.cygwin.com/ml/cygwin/2004-09/msg00741.html
This has nothing directly to do with the possible xemacs munmap()
problem, but maybe there's a logic flaw somewhere.
--
Reini Urban
http://phpwiki.org/ http://murbreak.at/
http://helsinki.at/ http://spacemovie.mur.at/
--
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/
- Raw text -