Bryan J. Smith wrote:
On Mon, 2006-06-12 at 13:32 +0200, Per Jessen wrote:
Would a Linux application even be able to use PAE by itself? Does the kernel provide that option/interface?
Yes. It's really a _complex_ discussion. And my answer below is _still_ a _mega_-simplification.
On x86, the kernel has various code to do this, along with GCC compile-time/directives. Applications that want to address more than 1-3GiB (depending on the model) of user-space memory have to be built differently. It's _never_ a matter of getting access to _all_ 4GiB of memory, even if the pointers are capable of (or being rationalized to) address upto 32-bit/4GiB. This is in _addition_ to how the kernel-processor actually do PAE (36-bit) -- which is a _serious_ performance hit.
Bryan, that really does not explain anything, not even simplified. How about starting with how a Linux application gets to use PAE by itself? What are the GCC options and assuming ordinary malloc() calls will not suffice, what are the kernel interfaces I need to use ? Or is there perhaps even a library that'll let me do this? I know how my application can get to use more than e.g. the standard 3Gb of user-space, but how do I get it beyond the 4Gb address-space? Which is what we're talking about. Well, that's what I'm talking about anyway :-) As to the serious performance hit, I guess it's a trade-off (as usual) - do I want to use the extra 12Gb on my 16GB system despite the performance hit, or will 4Gb really do. (and if so, why on earth did I bother with the extra 12Gb :-) /Per Jessen, Zürich -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com