This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: PATCH: Change x86-64 maximum page size to 2MB
On Thu, May 25, 2006 at 10:43:03PM -0400, Daniel Jacobowitz wrote:
> On Thu, May 25, 2006 at 04:10:19PM -0700, H. J. Lu wrote:
> > On Fri, May 19, 2006 at 10:12:01AM +0100, Nick Clifton wrote:
> > > Hi H. J.
> > >
> > > >The current x86-64 maximum page size is 1MB. With the future
> > > >development, 2MB is better for performance. Using 2MB won't break
> > > >anything, except for up to 2MB gap in virtual address space per file,
> > > >instead of 1MB. x86-64 has 48 bits in virtual address space. It
> > > >shouldn't be an issue for most applications. I have a patch:
> > > >
> > > >http://sourceware.org/ml/binutils/2005-05/msg00644.html
> > > >
> > > >which can be used to implement "-z max-page-size=xxxx" so that people
> > > >can control maximum page size at the link time if they prefer different
> > > >maximum page size.
> > >
> > > This seems to be perfectly reasonable.
> >
> > I tested this patch on gcc, glibc, 2.4 and 2.6 kernels. I will check
> > it in shortly.
>
> If you do this without setting ELF_MINPAGESIZE, won't BFD start to
> reject some files?
>
> It doesn't happen obviously, they'll just get corrupted on objcopy;
> see the one use of ->minpagesize.
>
Thanks. I am checking in this patch. I will add a testcase once we can
use a different maximum page size.
H.J.
---
2006-05-25 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (ELF_MINPAGESIZE): Set to 0x100000.
--- bfd/elf64-x86-64.c.min 2006-05-25 19:54:47.000000000 -0700
+++ bfd/elf64-x86-64.c 2006-05-25 19:56:07.000000000 -0700
@@ -3631,6 +3631,7 @@ static const struct bfd_elf_special_sect
#define ELF_ARCH bfd_arch_i386
#define ELF_MACHINE_CODE EM_X86_64
#define ELF_MAXPAGESIZE 0x200000
+#define ELF_MINPAGESIZE 0x100000
#define elf_backend_can_gc_sections 1
#define elf_backend_can_refcount 1