64-bit Kernel Question

Bill Crawford billcrawford1970 at gmail.com
Mon Mar 9 17:56:26 UTC 2009


On Monday 09 March 2009 17:33:19 Matej Cepl wrote:
> On 2009-03-09, 17:00 GMT, Adam Williamson wrote:
> > Running x86-64 basically uses twice as much RAM for any given
> > workload as running x86-32 would.
>
> Sorry, but that's just not true -- the only data types which are
> twice as big on x86_64 than on i386 are pointers and (I believe)
> long int. Every other primitive C type else remains the same in
> size. There was a long discussion of this on fedora-devel (I
> believe) couple of weeks ago.

... and with pointers being bigger, there's a higher waste from alignment 
restrictions, padding, etc., malloc() internal data structures are bigger, 
libraries need more space for writable mappings like the procedure linkage 
table, virtual function tables and so on. There's a fair bit extra usage that's 
not immediately visible, in other words.

Another problem I noticed was that reported virtual memory map size from top, ps 
etc seems to go up markedly, and I'm wondering if that is due to what pmap 
shows to be a c. 2MB unreadable mapping in between the code and data segments 
of each and every dynamic library; some kind of guard page?




More information about the fedora-test-list mailing list