Re: segment alignment in AMD64

From: Alan Cox <alan.l.cox_at_gmail.com>
Date: Sun, 28 Jun 2009 19:37:38 -0500
On Sun, Jun 28, 2009 at 6:42 PM, Sean P. Dew <freebsd.work_at_gmail.com> wrote:

> Hi,
>
> Why is a loadable segment aligned to 1 MB on AMD64 while the pagezie is
> still 4K for a user application. Is there anyway to change it back to 4K,
> It
> is not making sense to me is because if my file segment is around 400K, we
> are wasting 1 MB of virtual address space ( granted it is not a lot for
> X64).  I am trying to find out the reason. I am posting the readelf output
> of a .so. Any help is appreciated.
>

You'll find this question discussed in the mailing list archives on more
than one occasion.  Here is one such message:

http://lists.freebsd.org/pipermail/freebsd-amd64/2007-September/010260.html

To be a little more explicit, it is done to increase the likelihood that the
entire code segment of a large program can be mapped using 2 MB page
mappings.  Moreover, to be able to do so without wasting any physical memory
on padding.  Although we have the necessary 2 MB page support in the virtual
memory system, the kernel's image activator hasn't been modified to take
advantage of this.  Only a few programs with large code and data segments,
e.g., emacs, will benefit.

Regards,
Alan
Received on Sun Jun 28 2009 - 23:05:11 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:50 UTC