diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-07-23 16:57:24 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-07-23 16:57:24 -0400 |
commit | 6caed6fc294291176ec8f723e0324c6813d1ce99 (patch) | |
tree | 1f7e9e4507876a9ffa8d2d423267052038a5672d | |
parent | 328d7a1d6d5b6320459f2e932781c07bc081518b (diff) | |
download | longterm-queue-4.12-6caed6fc294291176ec8f723e0324c6813d1ce99.tar.gz |
arm64: drop already applied patch
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | queue/arm64-prevent-regressions-in-compressed-kernel-image.patch | 123 | ||||
-rw-r--r-- | queue/series | 1 |
2 files changed, 0 insertions, 124 deletions
diff --git a/queue/arm64-prevent-regressions-in-compressed-kernel-image.patch b/queue/arm64-prevent-regressions-in-compressed-kernel-image.patch deleted file mode 100644 index 6862dbd..0000000 --- a/queue/arm64-prevent-regressions-in-compressed-kernel-image.patch +++ /dev/null @@ -1,123 +0,0 @@ -From fd9dde6abcb9bfe6c6bee48834e157999f113971 Mon Sep 17 00:00:00 2001 -From: Nick Desaulniers <ndesaulniers@google.com> -Date: Fri, 27 Oct 2017 09:33:41 -0700 -Subject: [PATCH] arm64: prevent regressions in compressed kernel image size - when upgrading to binutils 2.27 - -commit fd9dde6abcb9bfe6c6bee48834e157999f113971 upstream. - -Upon upgrading to binutils 2.27, we found that our lz4 and gzip -compressed kernel images were significantly larger, resulting is 10ms -boot time regressions. - -As noted by Rahul: -"aarch64 binaries uses RELA relocations, where each relocation entry -includes an addend value. This is similar to x86_64. On x86_64, the -addend values are also stored at the relocation offset for relative -relocations. This is an optimization: in the case where code does not -need to be relocated, the loader can simply skip processing relative -relocations. In binutils-2.25, both bfd and gold linkers did this for -x86_64, but only the gold linker did this for aarch64. The kernel build -here is using the bfd linker, which stored zeroes at the relocation -offsets for relative relocations. Since a set of zeroes compresses -better than a set of non-zero addend values, this behavior was resulting -in much better lz4 compression. - -The bfd linker in binutils-2.27 is now storing the actual addend values -at the relocation offsets. The behavior is now consistent with what it -does for x86_64 and what gold linker does for both architectures. The -change happened in this upstream commit: -https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=1f56df9d0d5ad89806c24e71f296576d82344613 -Since a bunch of zeroes got replaced by non-zero addend values, we see -the side effect of lz4 compressed image being a bit bigger. - -To get the old behavior from the bfd linker, "--no-apply-dynamic-relocs" -flag can be used: -$ LDFLAGS="--no-apply-dynamic-relocs" make -With this flag, the compressed image size is back to what it was with -binutils-2.25. - -If the kernel is using ASLR, there aren't additional runtime costs to ---no-apply-dynamic-relocs, as the relocations will need to be applied -again anyway after the kernel is relocated to a random address. - -If the kernel is not using ASLR, then presumably the current default -behavior of the linker is better. Since the static linker performed the -dynamic relocs, and the kernel is not moved to a different address at -load time, it can skip applying the relocations all over again." - -Some measurements: - -$ ld -v -GNU ld (binutils-2.25-f3d35cf6) 2.25.51.20141117 - ^ -$ ls -l vmlinux --rwxr-x--- 1 ndesaulniers eng 300652760 Oct 26 11:57 vmlinux -$ ls -l Image.lz4-dtb --rw-r----- 1 ndesaulniers eng 16932627 Oct 26 11:57 Image.lz4-dtb - -$ ld -v -GNU ld (binutils-2.27-53dd00a1) 2.27.0.20170315 - ^ -pre patch: -$ ls -l vmlinux --rwxr-x--- 1 ndesaulniers eng 300376208 Oct 26 11:43 vmlinux -$ ls -l Image.lz4-dtb --rw-r----- 1 ndesaulniers eng 18159474 Oct 26 11:43 Image.lz4-dtb - -post patch: -$ ls -l vmlinux --rwxr-x--- 1 ndesaulniers eng 300376208 Oct 26 12:06 vmlinux -$ ls -l Image.lz4-dtb --rw-r----- 1 ndesaulniers eng 16932466 Oct 26 12:06 Image.lz4-dtb - -By Siqi's measurement w/ gzip: -binutils 2.27 with this patch (with --no-apply-dynamic-relocs): -Image 41535488 -Image.gz 13404067 - -binutils 2.27 without this patch (without --no-apply-dynamic-relocs): -Image 41535488 -Image.gz 14125516 - -Any compression scheme should be able to get better results from the -longer runs of zeros, not just GZIP and LZ4. - -10ms boot time savings isn't anything to get excited about, but users of -arm64+compression+bfd-2.27 should not have to pay a penalty for no -runtime improvement. - -Reported-by: Gopinath Elanchezhian <gelanchezhian@google.com> -Reported-by: Sindhuri Pentyala <spentyala@google.com> -Reported-by: Wei Wang <wvw@google.com> -Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> -Suggested-by: Rahul Chaudhry <rahulchaudhry@google.com> -Suggested-by: Siqi Lin <siqilin@google.com> -Suggested-by: Stephen Hines <srhines@google.com> -Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> -Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> -[will: added comment to Makefile] -Signed-off-by: Will Deacon <will.deacon@arm.com> - -diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile -index 939b310913cf..953e43dd0417 100644 ---- a/arch/arm64/Makefile -+++ b/arch/arm64/Makefile -@@ -14,8 +14,12 @@ LDFLAGS_vmlinux :=-p --no-undefined -X - CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET) - GZFLAGS :=-9 - --ifneq ($(CONFIG_RELOCATABLE),) --LDFLAGS_vmlinux += -pie -shared -Bsymbolic -+ifeq ($(CONFIG_RELOCATABLE), y) -+# Pass --no-apply-dynamic-relocs to restore pre-binutils-2.27 behaviour -+# for relative relocs, since this leads to better Image compression -+# with the relocation offsets always being zero. -+LDFLAGS_vmlinux += -pie -shared -Bsymbolic \ -+ $(call ld-option, --no-apply-dynamic-relocs) - endif - - ifeq ($(CONFIG_ARM64_ERRATUM_843419),y) --- -2.15.0 - diff --git a/queue/series b/queue/series index 27eeed1..9d1633e 100644 --- a/queue/series +++ b/queue/series @@ -68,7 +68,6 @@ bcache-explicitly-destroy-mutex-while-exiting.patch bcache-fix-wrong-cache_misses-statistics.patch Ib-hfi1-Return-actual-operational-VLs-in-port-info-q.patch Bluetooth-hci_ldisc-Fix-another-race-when-closing-th.patch -arm64-prevent-regressions-in-compressed-kernel-image.patch btrfs-fix-false-EIO-for-missing-device.patch btrfs-Explicitly-handle-btrfs_update_root-failure.patch btrfs-undo-writable-superblocke-when-sprouting-fails.patch |