On Sat, 21 May 2005 04:40 am, Eric Frias wrote:
Mike Hearn wrote:
On Thu, 19 May 2005 17:46:28 -0400, Eric Frias wrote:
I'll get a patch ready once I understand a bit more of what is going on that is causing wine to reserve this memory.
It's probably blocking off the top 3rd quarter of the address space to prevent the kernel allocating memory above the 2gig boundary (this can break some Windows programs).
Thanks for the explanation. I just read over that section in the developer's guide, and it's starting to make sense. Sounds like it won't be straightforward to figure out *exactly* how much memory wine is going to require, because it should amount to roughly:
whatever the preloader reserves in the low addresses
- the size of native linux libraries not mapped in the 3rd gig
- heap used by native libraries (?)
- 1G to block off that 3rd quarter
So the requirements of 1300 megabytes I was seeing dosn't seem that unrealistic. I couldn't tell from the docs, but it sounds likely that wine would also reserve the 4th quarter of the address space if the 4G VM split patch was in effect, so wine would actually need around 2300 megabytes of address space on those systems.
Eric
Really we need a better way. Under Solaris I have run into these problems for well over 2 years and I have a patch in my kit that pre-allocates 64MB for the heap then lets mmap allocate over the 2 GB limit for everything else, eg DLLs and so on. This seems to work pretty well, but it's been rejected as a fix to wine.
Bob