All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Burton <paul.burton@imgtec.com>
To: <linux-mips@linux-mips.org>
Cc: Ralf Baechle <ralf@linux-mips.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Paul Burton <paul.burton@imgtec.com>
Subject: [PATCH 6/6] MIPS: Use thin archives & dead code elimination
Date: Thu, 20 Oct 2016 21:27:05 +0100	[thread overview]
Message-ID: <20161020202705.3783-7-paul.burton@imgtec.com> (raw)
In-Reply-To: <20161020202705.3783-1-paul.burton@imgtec.com>

Enable CONFIG_THIN_ARCHIVES & CONFIG_LD_DEAD_CODE_DATA_ELIMINATION for
MIPS, ensuring that we keep the data bus exception table & the machine
list which would be discarded without marking them with KEEP.

This shrinks a typical generic kernel build with drivers enabled for
Boston, Ci40 & SEAD-3 by around 5%, or ~450kb. As reported by
bloat-o-meter:

  add/remove: 0/3028 grow/shrink: 1/14 up/down: 18/-457362 (-457344)
  ...
  Total: Before=9001030, After=8543686, chg -5.08%

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Nicholas Piggin <npiggin@gmail.com>

---

 arch/mips/Kconfig              | 2 ++
 arch/mips/kernel/vmlinux.lds.S | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index b3c5bde..8557667 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -66,6 +66,8 @@ config MIPS
 	select HAVE_EXIT_THREAD
 	select HAVE_REGS_AND_STACK_ACCESS_API
 	select HAVE_ARCH_HARDENED_USERCOPY
+	select THIN_ARCHIVES
+	select LD_DEAD_CODE_DATA_ELIMINATION
 
 menu "Machine selection"
 
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
index d1f5401..a43ba2a 100644
--- a/arch/mips/kernel/vmlinux.lds.S
+++ b/arch/mips/kernel/vmlinux.lds.S
@@ -72,7 +72,7 @@ SECTIONS
 	/* Exception table for data bus errors */
 	__dbe_table : {
 		__start___dbe_table = .;
-		*(__dbe_table)
+		KEEP(*(__dbe_table))
 		__stop___dbe_table = .;
 	}
 
@@ -122,7 +122,7 @@ SECTIONS
 	. = ALIGN(4);
 	.mips.machines.init : AT(ADDR(.mips.machines.init) - LOAD_OFFSET) {
 		__mips_machines_start = .;
-		*(.mips.machines.init)
+		KEEP(*(.mips.machines.init))
 		__mips_machines_end = .;
 	}
 
-- 
2.10.0

WARNING: multiple messages have this Message-ID (diff)
From: Paul Burton <paul.burton@imgtec.com>
To: linux-mips@linux-mips.org
Cc: Ralf Baechle <ralf@linux-mips.org>,
	Nicholas Piggin <npiggin@gmail.com>,
	Paul Burton <paul.burton@imgtec.com>
Subject: [PATCH 6/6] MIPS: Use thin archives & dead code elimination
Date: Thu, 20 Oct 2016 21:27:05 +0100	[thread overview]
Message-ID: <20161020202705.3783-7-paul.burton@imgtec.com> (raw)
Message-ID: <20161020202705.QaUVgwAGaymIsYrIsyCjJO7_fI0Qg5SkBef2qVgziT0@z> (raw)
In-Reply-To: <20161020202705.3783-1-paul.burton@imgtec.com>

Enable CONFIG_THIN_ARCHIVES & CONFIG_LD_DEAD_CODE_DATA_ELIMINATION for
MIPS, ensuring that we keep the data bus exception table & the machine
list which would be discarded without marking them with KEEP.

This shrinks a typical generic kernel build with drivers enabled for
Boston, Ci40 & SEAD-3 by around 5%, or ~450kb. As reported by
bloat-o-meter:

  add/remove: 0/3028 grow/shrink: 1/14 up/down: 18/-457362 (-457344)
  ...
  Total: Before=9001030, After=8543686, chg -5.08%

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Nicholas Piggin <npiggin@gmail.com>

---

 arch/mips/Kconfig              | 2 ++
 arch/mips/kernel/vmlinux.lds.S | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index b3c5bde..8557667 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -66,6 +66,8 @@ config MIPS
 	select HAVE_EXIT_THREAD
 	select HAVE_REGS_AND_STACK_ACCESS_API
 	select HAVE_ARCH_HARDENED_USERCOPY
+	select THIN_ARCHIVES
+	select LD_DEAD_CODE_DATA_ELIMINATION
 
 menu "Machine selection"
 
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
index d1f5401..a43ba2a 100644
--- a/arch/mips/kernel/vmlinux.lds.S
+++ b/arch/mips/kernel/vmlinux.lds.S
@@ -72,7 +72,7 @@ SECTIONS
 	/* Exception table for data bus errors */
 	__dbe_table : {
 		__start___dbe_table = .;
-		*(__dbe_table)
+		KEEP(*(__dbe_table))
 		__stop___dbe_table = .;
 	}
 
@@ -122,7 +122,7 @@ SECTIONS
 	. = ALIGN(4);
 	.mips.machines.init : AT(ADDR(.mips.machines.init) - LOAD_OFFSET) {
 		__mips_machines_start = .;
-		*(.mips.machines.init)
+		KEEP(*(.mips.machines.init))
 		__mips_machines_end = .;
 	}
 
-- 
2.10.0

  parent reply	other threads:[~2016-10-20 20:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-20 20:26 [PATCH 0/6] MIPS: Use thin archives & dead code elimination Paul Burton
2016-10-20 20:26 ` Paul Burton
2016-10-20 20:27 ` [PATCH 1/6] kbuild: Keep device tree tables though " Paul Burton
2016-10-20 20:27   ` Paul Burton
2016-10-21  9:33   ` Sergei Shtylyov
2016-10-20 20:27 ` [PATCH 2/6] kbuild: Keep .init.setup section through " Paul Burton
2016-10-20 20:27   ` Paul Burton
2016-10-20 20:27 ` [PATCH 3/6] kbuild: Keep PCI fixups " Paul Burton
2016-10-20 20:27   ` Paul Burton
2016-10-20 20:27 ` [PATCH 4/6] kbuild: Keep earlycon table " Paul Burton
2016-10-20 20:27   ` Paul Burton
2016-10-20 20:27 ` [PATCH 5/6] MIPS: Ensure bss section ends on a long-aligned address Paul Burton
2016-10-20 20:27   ` Paul Burton
2016-11-04  8:46   ` Marcin Nowakowski
2016-11-04  8:46     ` Marcin Nowakowski
2016-10-20 20:27 ` Paul Burton [this message]
2016-10-20 20:27   ` [PATCH 6/6] MIPS: Use thin archives & dead code elimination Paul Burton
2016-10-21  0:51 ` [PATCH 0/6] " Nicholas Piggin
2016-10-21  0:51   ` Nicholas Piggin
2016-10-21  7:45   ` Paul Burton
2016-10-21  7:45     ` Paul Burton
2016-10-21  8:47     ` Nicholas Piggin
2016-10-21  8:47       ` Nicholas Piggin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161020202705.3783-7-paul.burton@imgtec.com \
    --to=paul.burton@imgtec.com \
    --cc=linux-mips@linux-mips.org \
    --cc=npiggin@gmail.com \
    --cc=ralf@linux-mips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.