Hi all,
Is there a way to run processes intended for a 3GB user addressable memory to work under Wine? I'm talking here, of course, assuming that the Linux kernel is compiled with the relevant big memory support.
Shachar
On Tue, 15 Jun 2004 15:58:27 +0300, Shachar Shemesh wrote:
Hi all,
Is there a way to run processes intended for a 3GB user addressable memory to work under Wine? I'm talking here, of course, assuming that the Linux kernel is compiled with the relevant big memory support.
Currently (in CVS) Wine reserves the top 2gig of memory to ensure memory isn't allocated from there. If the only difference is that the app expects to be able to load stuff high you could modify that code to only reserve the top gig.
If that's not the only difference then I don't know I'm afraid.
thanks -mike
Mike Hearn wrote:
On Tue, 15 Jun 2004 15:58:27 +0300, Shachar Shemesh wrote:
Hi all,
Is there a way to run processes intended for a 3GB user addressable memory to work under Wine? I'm talking here, of course, assuming that the Linux kernel is compiled with the relevant big memory support.
Currently (in CVS) Wine reserves the top 2gig of memory to ensure memory isn't allocated from there. If the only difference is that the app expects to be able to load stuff high you could modify that code to only reserve the top gig.
If that's not the only difference then I don't know I'm afraid.
thanks -mike
At the time this change was introduced, it was because some applications would break if they got too high addresses for their things. I then asked what would those apps do on Windows Advanced Server, and the answer was that applications that require the 3GB space mark that fact in the PE header somewhere. Can we take consideration of this marking and honor it?
Shachar
Shachar Shemesh wine-devel@shemesh.biz writes:
At the time this change was introduced, it was because some applications would break if they got too high addresses for their things. I then asked what would those apps do on Windows Advanced Server, and the answer was that applications that require the 3GB space mark that fact in the PE header somewhere. Can we take consideration of this marking and honor it?
Sure, this can be done. Do you have an app that needs this?
Alexandre Julliard wrote:
Shachar Shemesh wine-devel@shemesh.biz writes:
At the time this change was introduced, it was because some applications would break if they got too high addresses for their things. I then asked what would those apps do on Windows Advanced Server, and the answer was that applications that require the 3GB space mark that fact in the PE header somewhere. Can we take consideration of this marking and honor it?
Sure, this can be done. Do you have an app that needs this?
Yes. Do you want a proof of concept?
Shachar
Shachar Shemesh wine-devel@shemesh.biz writes:
Alexandre Julliard wrote:
Sure, this can be done. Do you have an app that needs this?
Yes. Do you want a proof of concept?
If you have one that would be great.
Hi,
--- Alexandre Julliard julliard@winehq.org wrote:
If you have one that would be great.
The flag that the application sets in the PE header is IMAGE_FILE_LARGE_ADDRESS_AWARE. According to Inside Windows NT, you can change this is a existing application but running imagecfg.exe from the support \directory in the Windows NT Advanced Server Edition CDrom or by compiling your application with /LARGEADDRESSAWARE. According to the book if you run the app on a normal Windows system then it should just run it in the 2 gig address space.
Thanks Steven
Thanks Steven
__________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - 100MB free storage! http://promotions.yahoo.com/new_mail
Steven Edwards steven_ed4153@yahoo.com writes:
The flag that the application sets in the PE header is IMAGE_FILE_LARGE_ADDRESS_AWARE. According to Inside Windows NT, you can change this is a existing application but running imagecfg.exe from the support \directory in the Windows NT Advanced Server Edition CDrom or by compiling your application with /LARGEADDRESSAWARE. According to the book if you run the app on a normal Windows system then it should just run it in the 2 gig address space.
Yes, this is why I'm surprised that there would actually be an app that requires the 3G address space, and why it would be interesting to get a test case for that failure condition.
Alexandre Julliard wrote:
Steven Edwards steven_ed4153@yahoo.com writes:
The flag that the application sets in the PE header is IMAGE_FILE_LARGE_ADDRESS_AWARE. According to Inside Windows NT, you can change this is a existing application but running imagecfg.exe from the support \directory in the Windows NT Advanced Server Edition CDrom or by compiling your application with /LARGEADDRESSAWARE. According to the book if you run the app on a normal Windows system then it should just run it in the 2 gig address space.
Yes, this is why I'm surprised that there would actually be an app that requires the 3G address space, and why it would be interesting to get a test case for that failure condition.
There is no failure as of yet. The thing is that I know someone who actually NEEDS 3GB, and they asked me to make sure that Wine can support that. I am, of course, talking about a Linux kernel that is compiled with bigmem support too.
The thing about providing a "proof of concept" is that without running it on a bigmem kernel, I don't think there is any way of checking it.
Shachar
Shachar Shemesh wine-devel@shemesh.biz writes:
There is no failure as of yet. The thing is that I know someone who actually NEEDS 3GB, and they asked me to make sure that Wine can support that. I am, of course, talking about a Linux kernel that is compiled with bigmem support too.
bigmem shouldn't matter, you can allocate 3Gb with a normal kernel. It's probably not possible with the default mmap algorithm though, this will need to be worked around. Do you know why they absolutely need 3Gb, and what they are doing with it?
Alexandre Julliard wrote:
Shachar Shemesh wine-devel@shemesh.biz writes:
There is no failure as of yet. The thing is that I know someone who actually NEEDS 3GB, and they asked me to make sure that Wine can support that. I am, of course, talking about a Linux kernel that is compiled with bigmem support too.
bigmem shouldn't matter, you can allocate 3Gb with a normal kernel.
Can you? I was under the impression that some addresses are reserved for kernel addresses, or is that above 3GB?
It's probably not possible with the default mmap algorithm though, this will need to be worked around.
I don't think mmap not working would be a problem. I don't believe it's mmap that they are after. Still, for completness' sake, it would be nice if we had that too.
Do you know why they absolutely need 3Gb, and what they are doing with it?
Basically, they are keeping huge database-like memory structures in memory for quick access. They are actually working on machines with 3GB of RAM, and they need it accessable. I will need to run some tests, but I think that they mostly do memory allocation and filling, not mmaps.
Shachar
Shachar Shemesh wine-devel@shemesh.biz writes:
Can you? I was under the impression that some addresses are reserved for kernel addresses, or is that above 3GB?
Yes it's above 3Gb normally.
Basically, they are keeping huge database-like memory structures in memory for quick access. They are actually working on machines with 3GB of RAM, and they need it accessable. I will need to run some tests, but I think that they mostly do memory allocation and filling, not mmaps.
Memory allocations are based on mmap.