Re: [PATCH] Configure out DMI scanning code v2 (Linux Tiny)

Previous thread: build #351 issue for v2.6.25-rc1-51-g96b5a46 in ./drivers/acpi/osl.c by Toralf on Tuesday, February 12, 2008 - 4:55 am. (1 message)

Next thread: IDE cdrom problem with PLEXTOR DVDR PX-608AL by Hans-Peter Jansen on Tuesday, February 12, 2008 - 5:26 am. (8 messages)
To: Andrew Morton <akpm@...>, Ingo Molnar <mingo@...>, Thomas Gleixner <tglx@...>, H. Anvin <hpa@...>, Matt Mackall <mpm@...>
Cc: <Linux-tiny@...>, <linux-kernel@...>
Date: Tuesday, February 12, 2008 - 5:04 am

Hi,

Enclosed patch is an updated version, with proper credits to Matt
Mackall and the Linux Tiny project.

Sincerly,

Thomas

---

Turn CONFIG_DMI into a selectable option if EMBEDDED is defined, in
order to be able to remove the DMI table scanning code if it's not
needed, and then reduce the kernel code size.

With CONFIG_DMI (i.e before) :

text data bss dec hex filename
1076076 128656 98304 1303036 13e1fc vmlinux

Without CONFIG_DMI (i.e after) :

text data bss dec hex filename
1068092 126308 98304 1292704 13b9a0 vmlinux

Result:

text data bss dec hex filename
-7984 -2348 0 -10332 -285c vmlinux

The new option appears in "Processor type and features", only when
CONFIG_EMBEDDED is defined.

This patch is part of the Linux Tiny project, and is based on previous
work done by Matt Mackall <mpm@selenic.com>.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

---
arch/x86/Kconfig | 12 +++++++++---
include/linux/dmi.h | 1 +
2 files changed, 10 insertions(+), 3 deletions(-)

Index: linux/arch/x86/Kconfig
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- linux.orig/arch/x86/Kconfig 2008-02-11 16:51:50.000000000 +0100
+++ linux/arch/x86/Kconfig 2008-02-11 17:48:15.000000000 +0100
@@ -88,9 +88,6 @@
config ARCH_MAY_HAVE_PC_FDC
def_bool y
=20
-config DMI
- def_bool y
-
config RWSEM_GENERIC_SPINLOCK
def_bool !X86_XADD
=20
@@ -433,6 +430,15 @@
=20
# Mark as embedded because too many people got it wrong.
# The code disables itself when not needed.
+config DMI
+ default y
+ bool "Enable DMI scanning" if EMBEDDED
+ help
+ Enabled scanning of DMI to identify machine quirks. Say Y
+ here unless you have verified that your setup is not
+ affected by entries in the DMI black...

To: Thomas Petazzoni <thomas.petazzoni@...>
Cc: <mingo@...>, <tglx@...>, <hpa@...>, <mpm@...>, <Linux-tiny@...>, <linux-kernel@...>, Reynes Philippe <tremyfr@...>
Date: Tuesday, April 1, 2008 - 3:00 pm

Question for Ingo...

On Tue, 12 Feb 2008 10:04:18 +0100

This introduces a build error in drivers/acpi/thermal.c, because that code
does:

#ifdef CONFIF_DMI
<define some tables>
#endif

...
dmi_check_system(<those tables>);

Now, the approved fix here is to just remove the ifdefs. The !CONFIG_DMI
version of dmi_check_system() won't generate any references to the tables
and the build system is then supposed to remove the generated code and data
from vmlinux.

But this doesn't work.

When I add an ifdef around the dmi_check_system() call, I get

text data bss dec hex filename
1614279 210524 159992 1984795 1e491b vmlinux

but when I remove the ifdefs around the tables and rely on the compiler
removing the code and data I get

text data bss dec hex filename
1614447 210972 159992 1985411 1e4b83 vmlinux

An additional 616 bytes of useless stuff.

Ingo, I think there was some trick to making this work right. Do you
recall?

--

To: <linux-tiny@...>
Cc: Andrew Morton <akpm@...>, Thomas Petazzoni <thomas.petazzoni@...>, Reynes Philippe <tremyfr@...>, <hpa@...>, <linux-kernel@...>, <mingo@...>, <tglx@...>
Date: Tuesday, April 1, 2008 - 4:09 pm

Does bloat-o-meter say what the additional 616 bytes _is_?

scripts/bloat-o-meter vmlinux.old vmlinux.new

P.S. What busybox did:

ifneq ($(strip $(CONFIG_DEBUG)),y)
OPTIMIZATION+=$(call check_cc,
$(CC),-ffunction-sections -fdata-sections,)
CHECKED_LDFLAGS += $(call check_ld,$(LD),--gc-sections,)
endif

Tells gcc to put each function and each global into its own ELF section, and
then told the linker to garbage collect unused sections...

Rob
--
"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson.
--

To: Thomas Petazzoni <thomas.petazzoni@...>
Cc: Andrew Morton <akpm@...>, Ingo Molnar <mingo@...>, Thomas Gleixner <tglx@...>, H. Anvin <hpa@...>, <Linux-tiny@...>, <linux-kernel@...>
Date: Tuesday, February 12, 2008 - 2:56 pm

Thanks for working on this.

Acked-by: Matt Mackall <mpm@selenic.com>

--
Mathematics is the supreme nostalgia of our time.

--

To: Matt Mackall <mpm@...>
Cc: <thomas.petazzoni@...>, <mingo@...>, <tglx@...>, <hpa@...>, <Linux-tiny@...>, <linux-kernel@...>
Date: Tuesday, February 12, 2008 - 4:08 pm

On Tue, 12 Feb 2008 12:56:45 -0600

That should have been "Signed-off-by:". I'll speculatively make that
change.
--

To: Andrew Morton <akpm@...>
Cc: Matt Mackall <mpm@...>, <thomas.petazzoni@...>, <tglx@...>, <hpa@...>, <Linux-tiny@...>, <linux-kernel@...>
Date: Sunday, February 17, 2008 - 1:59 pm

for the x86 bits:

Acked-by: Ingo Molnar <mingo@elte.hu>

Ingo
--

Previous thread: build #351 issue for v2.6.25-rc1-51-g96b5a46 in ./drivers/acpi/osl.c by Toralf on Tuesday, February 12, 2008 - 4:55 am. (1 message)

Next thread: IDE cdrom problem with PLEXTOR DVDR PX-608AL by Hans-Peter Jansen on Tuesday, February 12, 2008 - 5:26 am. (8 messages)