From e5c537e48a40d69509c6f79c53a8eb9d80ea3ef7 Mon Sep 17 00:00:00 2001 From: Artur Grabowski Date: Mon, 23 Sep 2002 01:50:32 +0000 Subject: In an ELF binary the end of the text segment and the start of the data segment can share the same page in the file. Since we can't mmap it with the same permissions, the data segment is loaded offset by a constant so that it ends up in a different page. On sparc that's not really enough. To avoid cache aliases we have to make the offset big enough to make sure that we don't get incoherent aliases that would have to be mapped uncached. This offset has been 64k this far and noone noticed until some change actually made us fault in those pages at the same time and incoherent aliases reduced make build time on some hypersparcs (only hypersparcs have big enough caches to notice this) from 14 hours to 23 hours. Bump that offset (MAXPAGESIZE) to 1MB. deraadt@ ok --- gnu/usr.bin/binutils/ld/emulparams/elf32_sparc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/usr.bin/binutils/ld/emulparams/elf32_sparc.sh b/gnu/usr.bin/binutils/ld/emulparams/elf32_sparc.sh index 74e2326d53e..da5c4a7a079 100644 --- a/gnu/usr.bin/binutils/ld/emulparams/elf32_sparc.sh +++ b/gnu/usr.bin/binutils/ld/emulparams/elf32_sparc.sh @@ -1,7 +1,7 @@ SCRIPT_NAME=elf OUTPUT_FORMAT="elf32-sparc" TEXT_START_ADDR=0x10000 -MAXPAGESIZE=0x10000 +MAXPAGESIZE=0x100000 NONPAGED_TEXT_START_ADDR=0x10000 ALIGNMENT=8 ARCH=sparc -- cgit v1.2.3