James Tyrer posted on Tue, 15 Nov 2011 02:22:50 -0700 as excerpted: > I would want to run only the Kernel as 64 bit so that it could address a > full 1 GB of memory and leave 3 GB for the applications. That is the > main advantage of 64 bit -- the ability to address more memory.
Following up on old threads that I had marked to look at later... FWIW, you might be interested in the new x32 ABI. Gentoo's out in front on this as one of the first deployments, as embedded is quite interested in it and a number of embedded projects base on gentoo. Basically, it tries for the best of both x86 (32, shorter pointers) and amd64 (more registers to work with, not quite so much historic cruft). http://lwn.net/Articles/500482/rss Meanwhile, your above isn't quite right either. 32-bit kernels can only address 4 gigs at a time, and normally that's split between user and kernel address space, but there's a 4-gig/4-gig option with a bit of an extra performance hit when switching between user mode and kernel mode, and even an upto 64-gig option, using hardware pni mode paging to address a 4 gig movable address-window on the larger 64-gig total frame. Obviously this comes with a bit more of a performance hit, but moving a 4- gig address window on 64-gig of memory is still way faster than waiting on a slow disk. But you're right in that 64-bit is better with large memory. Your barrier was simply off. Anything above 4-gig is definitely faster in native 64-bit, with the ideal for most apps mode being a 64-bit kernel with 32-bit apps, making the app limit 4 gigs, but allowing running many apps of that size in parallel. As above, the new x32 mode uses this while also taking advantage of the extra registers 64-bit mode normally affords. But when an individual app needs more than 4 gigs, full 64-bit mode is the only (mainline) way. (The other alternative for dedicated use single big-memory apps is to meld normal kernel functions into the app, running the app itself on "bare metal", no interposed kernel. Oracle can be run in this mode, I believe, when the database working set gets big enough, but you pay big $$ for the extra engineering resources they have to dedicate to it.) And if your hardware has over three gigs of physical memory, a 64-bit kernel is indeed the best option, with 32-bit x86 or x32 apps except where individual apps need more memory. That's because there's a hardware access memory hole just below 4 gigs, so to access the full memory, the kernel needs to be able to handle the physical memory mapped out from behind that hole up into the 4-5 gig address range, and while a 32-bit kernel can do that if the options are set right, it takes a performance hit to do so, that a 64-bit kernel doesn't have. -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman ___________________________________________________ This message is from the kde-linux mailing list. Account management: https://mail.kde.org/mailman/listinfo/kde-linux. Archives: http://lists.kde.org/. More info: http://www.kde.org/faq.html.