[kde-linux] Very ugly image in X root window.

Duncan 1i5t5.duncan at cox.net
Thu Jun 7 09:12:56 UTC 2012


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




More information about the kde-linux mailing list