This is the mail archive of the
mailing list for the binutils project.
Re: PATCH: Change x86-64 maximum page size to 2MB
On Thu, May 25, 2006 at 08:03:25PM -0700, H. J. Lu wrote:
> 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.
Linux/x86-64 supports 4K page size. I am changing ELF_MINPAGESIZE to
2006-05-26 H.J. Lu <firstname.lastname@example.org>
* elf64-x86-64.c (ELF_MINPAGESIZE): Changed to 0x1000.
--- bfd/elf64-x86-64.c.4k 2006-05-26 06:54:45.000000000 -0700
+++ bfd/elf64-x86-64.c 2006-05-26 06:55:31.000000000 -0700
@@ -3631,7 +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_MINPAGESIZE 0x1000
#define elf_backend_can_gc_sections 1
#define elf_backend_can_refcount 1