linux-embedded.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] console - Add configurable support for console charset translation
@ 2008-06-02 22:37 Tim Bird
  2008-06-03  1:34 ` H. Peter Anvin
                   ` (4 more replies)
  0 siblings, 5 replies; 85+ messages in thread
From: Tim Bird @ 2008-06-02 22:37 UTC (permalink / raw)
  To: linux-tiny, linux-embedded, linux kernel

With CONSOLE_TRANSLATIONS turned off, this saves about 6K
on my kernel configured for an ARM development board (OMAP
5912 OSK).  In embedded products I'm familiar with,
console translations are not needed.

This was taken from the Linux-tiny project and updated slightly
for 2.6.25.

  drivers/char/consolemap.c |   81 ++++++++++++++++++++++++++++++++++++++++++++++
  drivers/char/vt.c         |    4 ++
  init/Kconfig              |    7 +++
  3 files changed, 92 insertions(+)

Signed-off-by: Tim Bird <tim.bird@am.sony.com>

--- a/drivers/char/consolemap.c
+++ b/drivers/char/consolemap.c
@@ -22,6 +22,8 @@
  #include <linux/consolemap.h>
  #include <linux/vt_kern.h>

+#ifdef CONFIG_CONSOLE_TRANSLATIONS
+
  static unsigned short translations[][256] = {
    /* 8-bit Latin-1 mapped to Unicode -- trivial mapping */
    {
@@ -742,3 +744,82 @@ console_map_init(void)
  }

  EXPORT_SYMBOL(con_copy_unimap);
+
+#else
+
+u16 inverse_translate(struct vc_data *conp, int glyph, int use_unicode)
+{
+	return glyph;
+}
+
+unsigned short *set_translate(int m, struct vc_data *vc)
+{
+	return NULL;
+}
+
+int con_set_trans_old(unsigned char *arg)
+{
+	return 0;
+}
+
+int con_get_trans_old(unsigned char *arg)
+{
+	return -EINVAL;
+}
+
+int con_set_trans_new(ushort *arg)
+{
+	return 0;
+}
+
+int con_get_trans_new(ushort *arg)
+{
+	return -EINVAL;
+}
+
+int con_clear_unimap(struct vc_data *vc, struct unimapinit *ui)
+{
+	return 0;
+}
+
+int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair *list)
+{
+	return 0;
+}
+
+int con_set_default_unimap(struct vc_data *vc)
+{
+	return 0;
+}
+
+int con_copy_unimap(struct vc_data *d, struct vc_data *s)
+{
+	return 0;
+}
+
+int con_get_unimap(struct vc_data *vc, ushort ct, ushort *uct,
+		   struct unipair *list)
+{
+	return -EINVAL;
+}
+
+void con_free_unimap(struct vc_data *vc) { }
+
+int conv_uni_to_pc(struct vc_data *conp, long ucs)
+{
+	return ucs > 0xff ? -1: ucs;
+}
+
+void __init console_map_init(void) { }
+
+u32 conv_8bit_to_uni(unsigned char c)
+{
+	return c;
+}
+
+int conv_uni_to_8bit(u32 uni)
+{
+	return (int)uni & 0xff;
+}
+
+#endif
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -2198,7 +2198,11 @@ rescan_last_byte:
  			c = 0xfffd;
  		    tc = c;
  		} else {	/* no utf or alternate charset mode */
+#ifdef CONFIG_CONSOLE_TRANSLATIONS
  		    tc = vc->vc_translate[vc->vc_toggle_meta ? (c | 0x80) : c];
+#else
+		    tc = c;
+#endif
  		}

                  /* If the original code was a control character we
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -758,6 +758,13 @@ config PROC_PAGE_MONITOR
  	  /proc/kpagecount, and /proc/kpageflags. Disabling these
            interfaces will reduce the size of the kernel by approximately 4kb.

+config CONSOLE_TRANSLATIONS
+	default y
+	bool "Enable character translations in console" if EMBEDDED
+	help
+	  This enables support for font mapping and Unicode translation
+          on virtual consoles.
+
  endmenu		# General setup

  config SLABINFO


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-02 22:37 [PATCH] console - Add configurable support for console charset translation Tim Bird
@ 2008-06-03  1:34 ` H. Peter Anvin
  2008-06-03  7:00   ` Jamie Lokier
  2008-06-03 15:46   ` Matt Mackall
  2008-06-03  8:36 ` David Woodhouse
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 85+ messages in thread
From: H. Peter Anvin @ 2008-06-03  1:34 UTC (permalink / raw)
  To: Tim Bird; +Cc: linux-tiny, linux-embedded, linux kernel

Tim Bird wrote:
> With CONSOLE_TRANSLATIONS turned off, this saves about 6K
> on my kernel configured for an ARM development board (OMAP
> 5912 OSK).  In embedded products I'm familiar with,
> console translations are not needed.

On most embedded products I'm familiar with, you wouldn't have virtual 
consoles at all...?

	-hpa

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03  1:34 ` H. Peter Anvin
@ 2008-06-03  7:00   ` Jamie Lokier
  2008-06-03 15:46   ` Matt Mackall
  1 sibling, 0 replies; 85+ messages in thread
From: Jamie Lokier @ 2008-06-03  7:00 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

H. Peter Anvin wrote:
> Tim Bird wrote:
> >With CONSOLE_TRANSLATIONS turned off, this saves about 6K
> >on my kernel configured for an ARM development board (OMAP
> >5912 OSK).  In embedded products I'm familiar with,
> >console translations are not needed.
> 
> On most embedded products I'm familiar with, you wouldn't have virtual 
> consoles at all...?

On anything with a framebuffer, VCs are quite handy for debugging.
Saving 6k won't save the world on those devices, but each little bit
helps - especially due to no-MMU fragmentation.

-- Jamie

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-02 22:37 [PATCH] console - Add configurable support for console charset translation Tim Bird
  2008-06-03  1:34 ` H. Peter Anvin
@ 2008-06-03  8:36 ` David Woodhouse
  2008-06-03 13:45 ` David Woodhouse
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 85+ messages in thread
From: David Woodhouse @ 2008-06-03  8:36 UTC (permalink / raw)
  To: Tim Bird; +Cc: linux-tiny, linux-embedded, linux kernel

On Mon, 2008-06-02 at 15:37 -0700, Tim Bird wrote:
> With CONSOLE_TRANSLATIONS turned off, this saves about 6K
> on my kernel configured for an ARM development board (OMAP
> 5912 OSK).  In embedded products I'm familiar with,
> console translations are not needed.

I'd have been more inclined to put the #ifdef and the empty functions
into <linux/vt_kern.h>. Then you don't need to provide real stub
functions -- they can be inlined at the caller.

-- 
dwmw2


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-02 22:37 [PATCH] console - Add configurable support for console charset translation Tim Bird
  2008-06-03  1:34 ` H. Peter Anvin
  2008-06-03  8:36 ` David Woodhouse
@ 2008-06-03 13:45 ` David Woodhouse
  2008-06-03 14:06   ` Holger Schurig
  2008-06-04  0:01   ` Tim Bird
  2008-06-03 21:18 ` Rob Landley
  2008-06-04 10:33 ` [PATCH] console - Add configurable support for console charset translation Adrian Bunk
  4 siblings, 2 replies; 85+ messages in thread
From: David Woodhouse @ 2008-06-03 13:45 UTC (permalink / raw)
  To: Tim Bird; +Cc: linux-tiny, linux-embedded, linux kernel

On Mon, 2008-06-02 at 15:37 -0700, Tim Bird wrote:
> With CONSOLE_TRANSLATIONS turned off, this saves about 6K
> on my kernel configured for an ARM development board (OMAP
> 5912 OSK).  In embedded products I'm familiar with,
> console translations are not needed.
> 
> This was taken from the Linux-tiny project and updated slightly
> for 2.6.25.

I prefer it like this... we can drop consolemap.o and
consolemap_deftbl.o from the build completely. It saves 7.2KiB on a
ppc32 build here.

diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index 595a925..f740190 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -36,6 +36,13 @@ config VT
 	  If unsure, say Y, or else you won't be able to do much with your new
 	  shiny Linux system :-)
 
+config CONSOLE_TRANSLATIONS
+	default y
+	bool "Enable character translations in console" if EMBEDDED
+	---help---
+	  This enables support for font mapping and Unicode translation
+	  on virtual consoles.
+
 config VT_CONSOLE
 	bool "Support for console on virtual terminal" if EMBEDDED
 	depends on VT
diff --git a/drivers/char/Makefile b/drivers/char/Makefile
index 4c1c584..6ef173c 100644
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
@@ -12,8 +12,8 @@ obj-y	 += mem.o random.o tty_io.o n_tty.o tty_ioctl.o
 obj-$(CONFIG_LEGACY_PTYS)	+= pty.o
 obj-$(CONFIG_UNIX98_PTYS)	+= pty.o
 obj-y				+= misc.o
-obj-$(CONFIG_VT)		+= vt_ioctl.o vc_screen.o consolemap.o \
-				   consolemap_deftbl.o selection.o keyboard.o
+obj-$(CONFIG_VT)		+= vt_ioctl.o vc_screen.o selection.o keyboard.o
+obj-$(CONFIG_CONSOLE_TRANSLATIONS) += consolemap.o consolemap_deftbl.o
 obj-$(CONFIG_HW_CONSOLE)	+= vt.o defkeymap.o
 obj-$(CONFIG_AUDIT)		+= tty_audit.o
 obj-$(CONFIG_MAGIC_SYSRQ)	+= sysrq.o
diff --git a/include/linux/consolemap.h b/include/linux/consolemap.h
index e2bf7e5..c4811da 100644
--- a/include/linux/consolemap.h
+++ b/include/linux/consolemap.h
@@ -3,6 +3,9 @@
  *
  * Interface between console.c, selection.c  and consolemap.c
  */
+#ifndef __LINUX_CONSOLEMAP_H__
+#define __LINUX_CONSOLEMAP_H__
+
 #define LAT1_MAP 0
 #define GRAF_MAP 1
 #define IBMPC_MAP 2
@@ -10,6 +13,7 @@
 
 #include <linux/types.h>
 
+#ifdef CONFIG_CONSOLE_TRANSLATIONS
 struct vc_data;
 
 extern u16 inverse_translate(struct vc_data *conp, int glyph, int use_unicode);
@@ -18,3 +22,13 @@ extern int conv_uni_to_pc(struct vc_data *conp, long ucs);
 extern u32 conv_8bit_to_uni(unsigned char c);
 extern int conv_uni_to_8bit(u32 uni);
 void console_map_init(void);
+#else
+#define inverse_translate(conp, glyph, uni) ((uint16_t)glyph)
+#define set_translate(m, vc) ((unsigned short *)NULL)
+#define conv_uni_to_pc(conp, ucs) ((int) (ucs > 0xff ? -1: ucs))
+#define conv_8bit_to_uni(c) ((uint32_t)(c))
+#define conv_uni_to_8bit(c) ((int) ((c) & 0xff))
+#define console_map_init(c) do { ; } while (0)
+#endif /* CONFIG_CONSOLE_TRANSLATIONS */
+
+#endif /* __LINUX_CONSOLEMAP_H__ */
diff --git a/include/linux/vt_kern.h b/include/linux/vt_kern.h
index 9448ffb..81ed155 100644
--- a/include/linux/vt_kern.h
+++ b/include/linux/vt_kern.h
@@ -12,6 +12,7 @@
 #include <linux/mutex.h>
 #include <linux/console_struct.h>
 #include <linux/mm.h>
+#include <linux/consolemap.h>
 
 /*
  * Presently, a lot of graphics programs do not restore the contents of
@@ -54,6 +55,7 @@ void redraw_screen(struct vc_data *vc, int is_switch);
 struct tty_struct;
 int tioclinux(struct tty_struct *tty, unsigned long arg);
 
+#ifdef CONFIG_CONSOLE_TRANSLATIONS
 /* consolemap.c */
 
 struct unimapinit;
@@ -70,6 +72,18 @@ int con_set_default_unimap(struct vc_data *vc);
 void con_free_unimap(struct vc_data *vc);
 void con_protect_unimap(struct vc_data *vc, int rdonly);
 int con_copy_unimap(struct vc_data *dst_vc, struct vc_data *src_vc);
+#else
+#define con_set_trans_old(arg) (0)
+#define con_get_trans_old(arg) (-EINVAL)
+#define con_set_trans_new(arg) (0)
+#define con_get_trans_new(arg) (-EINVAL)
+#define con_clear_unimap(vc, ui) (0)
+#define con_set_unimap(vc, ct, list) (0)
+#define con_set_default_unimap(vc) (0)
+#define con_copy_unimap(d, s) (0)
+#define con_get_unimap(vc, ct, uct, list) (-EINVAL)
+#define con_free_unimap(vc) do { ; } while (0)
+#endif
 
 /* vt.c */
 int vt_waitactive(int vt);

-- 
dwmw2


^ permalink raw reply related	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03 13:45 ` David Woodhouse
@ 2008-06-03 14:06   ` Holger Schurig
  2008-06-03 14:10     ` David Woodhouse
  2008-06-04  0:01   ` Tim Bird
  1 sibling, 1 reply; 85+ messages in thread
From: Holger Schurig @ 2008-06-03 14:06 UTC (permalink / raw)
  To: linux-tiny; +Cc: David Woodhouse, Tim Bird, linux kernel, linux-embedded

Maybe change the Kconfig entry so that:

* with CONFIG_EMBEDDED=y it's configuration
* with CONFIG_EMBEDDED=n it's on by default

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03 14:06   ` Holger Schurig
@ 2008-06-03 14:10     ` David Woodhouse
  0 siblings, 0 replies; 85+ messages in thread
From: David Woodhouse @ 2008-06-03 14:10 UTC (permalink / raw)
  To: Holger Schurig; +Cc: linux-tiny, Tim Bird, linux kernel, linux-embedded

On Tue, 2008-06-03 at 16:06 +0200, Holger Schurig wrote:
> Maybe change the Kconfig entry so that:
> 
> * with CONFIG_EMBEDDED=y it's configuration
> * with CONFIG_EMBEDDED=n it's on by default

That's what Tim's patch did (although I moved it to drivers/char/Kconfig
and made it depend on CONFIG_VT).

-- 
dwmw2


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03  1:34 ` H. Peter Anvin
  2008-06-03  7:00   ` Jamie Lokier
@ 2008-06-03 15:46   ` Matt Mackall
  2008-06-03 21:31     ` Rob Landley
  1 sibling, 1 reply; 85+ messages in thread
From: Matt Mackall @ 2008-06-03 15:46 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Tim Bird, linux-tiny, linux kernel, linux-embedded


On Mon, 2008-06-02 at 18:34 -0700, H. Peter Anvin wrote:
> Tim Bird wrote:
> > With CONSOLE_TRANSLATIONS turned off, this saves about 6K
> > on my kernel configured for an ARM development board (OMAP
> > 5912 OSK).  In embedded products I'm familiar with,
> > console translations are not needed.
> 
> On most embedded products I'm familiar with, you wouldn't have virtual 
> consoles at all...?

Actually, lots have frame buffers these days.

-- 
Mathematics is the supreme nostalgia of our time.


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-02 22:37 [PATCH] console - Add configurable support for console charset translation Tim Bird
                   ` (2 preceding siblings ...)
  2008-06-03 13:45 ` David Woodhouse
@ 2008-06-03 21:18 ` Rob Landley
  2008-06-03 21:26   ` David Woodhouse
  2008-06-03 21:30   ` Matt Mackall
  2008-06-04 10:33 ` [PATCH] console - Add configurable support for console charset translation Adrian Bunk
  4 siblings, 2 replies; 85+ messages in thread
From: Rob Landley @ 2008-06-03 21:18 UTC (permalink / raw)
  To: linux-tiny; +Cc: Tim Bird, linux-embedded

On Monday 02 June 2008 17:37:09 Tim Bird wrote:
> With CONSOLE_TRANSLATIONS turned off, this saves about 6K
> on my kernel configured for an ARM development board (OMAP
> 5912 OSK).  In embedded products I'm familiar with,
> console translations are not needed.
>
> This was taken from the Linux-tiny project and updated slightly
> for 2.6.25.

Er, what _is_ the relationship between linux-tiny and linux-embedded lists 
now?

I've been on linux-tiny for years, but it's been mostly dead since Matt moved 
on (not one message in the whole of may, 4 the month before that), and this 
seems the more logical place to discuss kernel patches that might actually 
want to go upstream someday anyway.

Just curious...

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03 21:18 ` Rob Landley
@ 2008-06-03 21:26   ` David Woodhouse
  2008-06-03 21:30   ` Matt Mackall
  1 sibling, 0 replies; 85+ messages in thread
From: David Woodhouse @ 2008-06-03 21:26 UTC (permalink / raw)
  To: Rob Landley; +Cc: linux-tiny, Tim Bird, linux-embedded

On Tue, 2008-06-03 at 16:18 -0500, Rob Landley wrote:
> Er, what _is_ the relationship between linux-tiny and linux-embedded lists 
> now?

There's been a bunch of embedded-related lists, and one of the reasons
for doing linux-embedded@vger (rather than @lists.infradead.org as would
have been my first inclination) is to set up an 'official' one that
people can congregate on.

-- 
dwmw2


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03 21:18 ` Rob Landley
  2008-06-03 21:26   ` David Woodhouse
@ 2008-06-03 21:30   ` Matt Mackall
  2008-06-04  7:02     ` Holger Schurig
  2008-06-04  7:04     ` Holger Schurig
  1 sibling, 2 replies; 85+ messages in thread
From: Matt Mackall @ 2008-06-03 21:30 UTC (permalink / raw)
  To: Rob Landley; +Cc: linux-tiny, linux-embedded


On Tue, 2008-06-03 at 16:18 -0500, Rob Landley wrote:
> On Monday 02 June 2008 17:37:09 Tim Bird wrote:
> > With CONSOLE_TRANSLATIONS turned off, this saves about 6K
> > on my kernel configured for an ARM development board (OMAP
> > 5912 OSK).  In embedded products I'm familiar with,
> > console translations are not needed.
> >
> > This was taken from the Linux-tiny project and updated slightly
> > for 2.6.25.
> 
> Er, what _is_ the relationship between linux-tiny and linux-embedded lists 
> now?
> 
> I've been on linux-tiny for years, but it's been mostly dead since Matt moved 
> on (not one message in the whole of may, 4 the month before that), and this 
> seems the more logical place to discuss kernel patches that might actually 
> want to go upstream someday anyway.

Linux-embedded is the place to be, folks. It's intended to be the
catch-all list for embedded kernel work. When traffic there picks up a
bit more, I'll start bouncing linux-tiny mail.

-- 
Mathematics is the supreme nostalgia of our time.


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03 15:46   ` Matt Mackall
@ 2008-06-03 21:31     ` Rob Landley
  2008-06-03 22:37       ` H. Peter Anvin
  0 siblings, 1 reply; 85+ messages in thread
From: Rob Landley @ 2008-06-03 21:31 UTC (permalink / raw)
  To: Matt Mackall; +Cc: H. Peter Anvin, Tim Bird, linux-tiny, linux-embedded

On Tuesday 03 June 2008 10:46:04 Matt Mackall wrote:
> On Mon, 2008-06-02 at 18:34 -0700, H. Peter Anvin wrote:
> > Tim Bird wrote:
> > > With CONSOLE_TRANSLATIONS turned off, this saves about 6K
> > > on my kernel configured for an ARM development board (OMAP
> > > 5912 OSK).  In embedded products I'm familiar with,
> > > console translations are not needed.
> >
> > On most embedded products I'm familiar with, you wouldn't have virtual
> > consoles at all...?
>
> Actually, lots have frame buffers these days.

Cell phones, for instance.

My research is out of date now, but back in 2007 I tried to give a sense of
scale at my cross compiling tutorial at OLS.  A cut and paste from my
(18 month old) notes:

--------------------------------------------------------------------------

According to http://eetimes.eu/showArticle.jhtml?articleID=199702110

  Arm shipped the processors in 250 million "smart phones" in 2006 (83%
  market share in that niche).

According to ARM Inc. quarterly results for Q1 2007:
  http://media.corporate-ir.net/media_files/irol/19/197211/press/Q12007EarningsRelease.pdf

  In the first quarter of 2007, the licensees of ARM Inc. shipped 724 million
  ARM processors.  In one quarter.  (ARM Inc. collected $45 million in license
  fees, which is an average of 6.2 cents/processor.)

In a May 23 2006 presentation to ARM investors, ARM Inc. estimated its 2006
market share at 80-90% of the cell phone market, but only 21% of the larger
market.  (The embedded world is big, folks.)

  Drew highlighted five key growth areas for ARM between now and 2010...

  [The first four are] set-top-box, high-definition television and DVD systems,
  solid-state and hard disk drive storage, automotive electronics and 32-bit
  microcontrollers.  In these areas in 2006, ARM had market shares of 14, 20,
  5 and 13 percent respectively...  They are also market sectors that will
  represent a total available annual market of nearly a billion cores or more
  each in 2010. The biggest annual market opportunities are likely to be
  automotive and 32-bit microcontrollers at 2.0 billion and 1.9 billion cores
  each.

  ARM's fifth key target market is the smart phone, where it is already
  enjoying success. In this area the company shipped 250 million units in 2006
  and has a market share of 83 percent, according to its own estimates.

--------------------------------------------------------------------------

(And that's why Apple did the iPhone.)

Speaking of set-top boxes (another thing with a framebuffer), Netflix is
transitioning its business model to video-on-demand, with a $99 set top box
that runs Linux on Arm:
http://www.linuxdevices.com/news/NS8633598605.html

Here's the CEO of netflix saying the DVD-by-mail business will peak within
the next 5 years:
http://www.reuters.com/article/marketsNews/idINN2843042120080528?rpc=44

And the manufacturer almost immediately went to a 10 day wait on delivery of
new devices:
http://forums.roku.com/viewtopic.php?t=16722

(And that's why Apple did Apple TV.)

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03 21:31     ` Rob Landley
@ 2008-06-03 22:37       ` H. Peter Anvin
  2008-06-04  2:56         ` Paul Mundt
  2008-06-04 17:34         ` Rob Landley
  0 siblings, 2 replies; 85+ messages in thread
From: H. Peter Anvin @ 2008-06-03 22:37 UTC (permalink / raw)
  To: Rob Landley; +Cc: Matt Mackall, Tim Bird, linux-tiny, linux-embedded

Rob Landley wrote:
>> Actually, lots have frame buffers these days.
> 
> Cell phones, for instance.

Sure, but do you want to use them as consoles?

	-hpa


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03 13:45 ` David Woodhouse
  2008-06-03 14:06   ` Holger Schurig
@ 2008-06-04  0:01   ` Tim Bird
  2008-06-04  0:16     ` David Woodhouse
  2008-06-04 11:55     ` Alan Cox
  1 sibling, 2 replies; 85+ messages in thread
From: Tim Bird @ 2008-06-04  0:01 UTC (permalink / raw)
  To: David Woodhouse; +Cc: linux-tiny, linux-embedded, linux kernel

David Woodhouse wrote:
> On Mon, 2008-06-02 at 15:37 -0700, Tim Bird wrote:
>> With CONSOLE_TRANSLATIONS turned off, this saves about 6K
>> on my kernel configured for an ARM development board (OMAP
>> 5912 OSK).  In embedded products I'm familiar with,
>> console translations are not needed.
>>
>> This was taken from the Linux-tiny project and updated slightly
>> for 2.6.25.
> 
> I prefer it like this... we can drop consolemap.o and
> consolemap_deftbl.o from the build completely. It saves 7.2KiB on a
> ppc32 build here.
> 
> diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
> index 595a925..f740190 100644
> --- a/drivers/char/Kconfig
> +++ b/drivers/char/Kconfig
> ...

This is clearly an improvement. But it is missing this part of the
original patch:

--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -2198,7 +2198,11 @@ rescan_last_byte:
 			c = 0xfffd;
 		    tc = c;
 		} else {	/* no utf or alternate charset mode */
+#ifdef CONFIG_CONSOLE_TRANSLATIONS
 		    tc = vc->vc_translate[vc->vc_toggle_meta ? (c | 0x80) : c];
+#else
+		    tc = c;
+#endif
 		}

                 /* If the original code was a control character we

With the set_translate function stubbed, and the actual translation
operation left intact, I think the code might have problems.

I ran your patch fine on my OSK board here, but I must not have hit a
character translation case.
 -- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  0:01   ` Tim Bird
@ 2008-06-04  0:16     ` David Woodhouse
  2008-06-04  1:03       ` Josh Boyer
  2008-06-04 15:35       ` Tim Bird
  2008-06-04 11:55     ` Alan Cox
  1 sibling, 2 replies; 85+ messages in thread
From: David Woodhouse @ 2008-06-04  0:16 UTC (permalink / raw)
  To: Tim Bird; +Cc: linux-tiny, linux-embedded, linux kernel

On Tue, 2008-06-03 at 17:01 -0700, Tim Bird wrote:
> This is clearly an improvement. But it is missing this part of the
> original patch:

Oops, well spotted. I've updated the patch in the git tree; thanks.

(that's what comes of applying patches by hand -- I _knew_ I had to do
that hunk, but managed to forget about it within the space of about 30
seconds when I was doing the other parts. I plead stupidity)

-- 
dwmw2


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  0:16     ` David Woodhouse
@ 2008-06-04  1:03       ` Josh Boyer
  2008-06-04  1:05         ` David Woodhouse
  2008-06-04 15:35       ` Tim Bird
  1 sibling, 1 reply; 85+ messages in thread
From: Josh Boyer @ 2008-06-04  1:03 UTC (permalink / raw)
  To: David Woodhouse; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

On Wed, 04 Jun 2008 01:16:37 +0100
David Woodhouse <dwmw2@infradead.org> wrote:

> On Tue, 2008-06-03 at 17:01 -0700, Tim Bird wrote:
> > This is clearly an improvement. But it is missing this part of the
> > original patch:
> 
> Oops, well spotted. I've updated the patch in the git tree; thanks.

What git tree?

josh

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  1:03       ` Josh Boyer
@ 2008-06-04  1:05         ` David Woodhouse
  2008-06-04  3:13           ` Josh Boyer
  0 siblings, 1 reply; 85+ messages in thread
From: David Woodhouse @ 2008-06-04  1:05 UTC (permalink / raw)
  To: Josh Boyer; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

On Tue, 2008-06-03 at 20:03 -0500, Josh Boyer wrote:
> On Wed, 04 Jun 2008 01:16:37 +0100
> David Woodhouse <dwmw2@infradead.org> wrote:
> 
> > On Tue, 2008-06-03 at 17:01 -0700, Tim Bird wrote:
> > > This is clearly an improvement. But it is missing this part of the
> > > original patch:
> > 
> > Oops, well spotted. I've updated the patch in the git tree; thanks.
> 
> What git tree?

 git.infradead.org/embedded-2.6.git

-- 
dwmw2


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03 22:37       ` H. Peter Anvin
@ 2008-06-04  2:56         ` Paul Mundt
  2008-06-04 17:36           ` Rob Landley
  2008-06-04 17:34         ` Rob Landley
  1 sibling, 1 reply; 85+ messages in thread
From: Paul Mundt @ 2008-06-04  2:56 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Rob Landley, linux-tiny, linux-embedded

On Tue, Jun 03, 2008 at 03:37:23PM -0700, H. Peter Anvin wrote:
> Rob Landley wrote:
> >>Actually, lots have frame buffers these days.
> >
> >Cell phones, for instance.
> 
> Sure, but do you want to use them as consoles?
> 
Unless your name is Pavel, no one actually wants a console on their
phone. So no, just framebuffers, as is to be expected :-)

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  1:05         ` David Woodhouse
@ 2008-06-04  3:13           ` Josh Boyer
  2008-06-04  9:16             ` David Woodhouse
  0 siblings, 1 reply; 85+ messages in thread
From: Josh Boyer @ 2008-06-04  3:13 UTC (permalink / raw)
  To: David Woodhouse; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

On Wed, 04 Jun 2008 02:05:40 +0100
David Woodhouse <dwmw2@infradead.org> wrote:

> On Tue, 2008-06-03 at 20:03 -0500, Josh Boyer wrote:
> > On Wed, 04 Jun 2008 01:16:37 +0100
> > David Woodhouse <dwmw2@infradead.org> wrote:
> > 
> > > On Tue, 2008-06-03 at 17:01 -0700, Tim Bird wrote:
> > > > This is clearly an improvement. But it is missing this part of the
> > > > original patch:
> > > 
> > > Oops, well spotted. I've updated the patch in the git tree; thanks.
> > 
> > What git tree?
> 
>  git.infradead.org/embedded-2.6.git

Do you have plans to get that in -mm, or linux-next?

(Please say yes).

josh

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03 21:30   ` Matt Mackall
@ 2008-06-04  7:02     ` Holger Schurig
  2008-06-04  7:04     ` Holger Schurig
  1 sibling, 0 replies; 85+ messages in thread
From: Holger Schurig @ 2008-06-04  7:02 UTC (permalink / raw)
  To: linux-tiny; +Cc: Matt Mackall, Rob Landley, linux-embedded

> Linux-embedded is the place to be, folks.

This is the first time I've heard about linux-embedded.

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03 21:30   ` Matt Mackall
  2008-06-04  7:02     ` Holger Schurig
@ 2008-06-04  7:04     ` Holger Schurig
  2008-06-04  7:36       ` Dave Hylands
  2008-06-04 17:19       ` Rob Landley
  1 sibling, 2 replies; 85+ messages in thread
From: Holger Schurig @ 2008-06-04  7:04 UTC (permalink / raw)
  To: linux-tiny; +Cc: Matt Mackall, Rob Landley, linux-embedded

> Linux-embedded is the place to be, folks.

Another thing that I just noticed: According to

http://vger.kernel.org/vger-lists.html#linux-embedded

there is no mailing list archive for this list.

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  7:04     ` Holger Schurig
@ 2008-06-04  7:36       ` Dave Hylands
  2008-06-04 15:24         ` Randy Dunlap
  2008-06-04 17:19       ` Rob Landley
  1 sibling, 1 reply; 85+ messages in thread
From: Dave Hylands @ 2008-06-04  7:36 UTC (permalink / raw)
  To: Holger Schurig; +Cc: linux-tiny, Matt Mackall, Rob Landley, linux-embedded

> Another thing that I just noticed: According to
>
> http://vger.kernel.org/vger-lists.html#linux-embedded

Mike Frysinger setup the following on May 27:
<http://news.gmane.org/gmane.linux.kernel.embedded>

-- 
Dave Hylands
Vancouver, BC, Canada
http://www.DaveHylands.com/

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  3:13           ` Josh Boyer
@ 2008-06-04  9:16             ` David Woodhouse
  2008-06-04 10:07               ` Adrian Bunk
  0 siblings, 1 reply; 85+ messages in thread
From: David Woodhouse @ 2008-06-04  9:16 UTC (permalink / raw)
  To: Josh Boyer; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

On Tue, 2008-06-03 at 22:13 -0500, Josh Boyer wrote:
> 
> >  git.infradead.org/embedded-2.6.git
> 
> Do you have plans to get that in -mm, or linux-next?

Should be already there in today's linux-next.

-- 
dwmw2


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  9:16             ` David Woodhouse
@ 2008-06-04 10:07               ` Adrian Bunk
  2008-06-04 10:10                 ` David Woodhouse
  0 siblings, 1 reply; 85+ messages in thread
From: Adrian Bunk @ 2008-06-04 10:07 UTC (permalink / raw)
  To: David Woodhouse
  Cc: Josh Boyer, Tim Bird, linux-tiny, linux-embedded, linux kernel

On Wed, Jun 04, 2008 at 10:16:22AM +0100, David Woodhouse wrote:
> On Tue, 2008-06-03 at 22:13 -0500, Josh Boyer wrote:
> > 
> > >  git.infradead.org/embedded-2.6.git
> > 
> > Do you have plans to get that in -mm, or linux-next?
> 
> Should be already there in today's linux-next.

Does this imply you want Linus to merge from this tree?

How does this tree fit into the usual maintainership inside the Linux 
kernel?

> dwmw2

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 10:07               ` Adrian Bunk
@ 2008-06-04 10:10                 ` David Woodhouse
  0 siblings, 0 replies; 85+ messages in thread
From: David Woodhouse @ 2008-06-04 10:10 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Josh Boyer, Tim Bird, linux-tiny, linux-embedded, linux kernel

On Wed, 2008-06-04 at 13:07 +0300, Adrian Bunk wrote:
> On Wed, Jun 04, 2008 at 10:16:22AM +0100, David Woodhouse wrote:
> > On Tue, 2008-06-03 at 22:13 -0500, Josh Boyer wrote:
> > > 
> > > >  git.infradead.org/embedded-2.6.git
> > > 
> > > Do you have plans to get that in -mm, or linux-next?
> > 
> > Should be already there in today's linux-next.
> 
> Does this imply you want Linus to merge from this tree?

Yes.

> How does this tree fit into the usual maintainership inside the Linux 
> kernel?

Well, I was trying to avoid creating it -- because largely it doesn't.
I was hoping that everything could go upstream through other routes.
But Tim's patch really was a candidate for handling it myself (unless
I'm just going to punt everything to Andrew), so I capitulated.

-- 
dwmw2


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-02 22:37 [PATCH] console - Add configurable support for console charset translation Tim Bird
                   ` (3 preceding siblings ...)
  2008-06-03 21:18 ` Rob Landley
@ 2008-06-04 10:33 ` Adrian Bunk
  2008-06-04 17:51   ` Rob Landley
                     ` (3 more replies)
  4 siblings, 4 replies; 85+ messages in thread
From: Adrian Bunk @ 2008-06-04 10:33 UTC (permalink / raw)
  To: Tim Bird; +Cc: linux-tiny, linux-embedded, linux kernel

On Mon, Jun 02, 2008 at 03:37:09PM -0700, Tim Bird wrote:
> With CONSOLE_TRANSLATIONS turned off, this saves about 6K
> on my kernel configured for an ARM development board (OMAP
> 5912 OSK).  In embedded products I'm familiar with,
> console translations are not needed.
>
> This was taken from the Linux-tiny project and updated slightly
> for 2.6.25.
>...

It seems to be always me who asks the controversial questions...:

Does the linux-tiny approach of adding a kconfig variable for each 5kB 
of code actually make sense? I'm asking since an exploding amount of 
kconfig variables and their interdependencies have a not so small 
maintainance impact in the long term.

And I'm wondering whether it's the best approach for reaching 
measurable results. E.g. my small patch that removed 
-maccumulate-outgoing-args on 32-bit x86 reduced the kernel size
there for the CONFIG_CC_OPTIMIZE_FOR_SIZE=y case by at about 2.5% (sic)
without adding any kconfig variables or #ifdef's.

Can you take a reasonable (best-case) .config for an existing device and 
get the following numbers:
- Ignoring patches that came from linux-tiny, by how many percent did 
  the size of the kernel increase or decrease between 2.6.16 and 2.6.26?
- By how many percent did the kernel size decrease due to patches from
  the linux-tiny project that added such kconfig options for a few kB 
  of code in the same timeframe?

My gut feeling is that the influence of this kind of linux-tiny patches 
is hardly noticably compared to the overall code size development, but 
if you have numbers that prove me wrong just point me to them and I'll 
stand corrected.

cu
Adrian

BTW: I'm not insisting on "between 2.6.16 and 2.6.26", that's just some
     timeframe big enough for showing general trends.

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  0:01   ` Tim Bird
  2008-06-04  0:16     ` David Woodhouse
@ 2008-06-04 11:55     ` Alan Cox
  2008-06-04 13:55       ` David Woodhouse
  1 sibling, 1 reply; 85+ messages in thread
From: Alan Cox @ 2008-06-04 11:55 UTC (permalink / raw)
  To: Tim Bird; +Cc: David Woodhouse, linux-tiny, linux-embedded, linux kernel

> This is clearly an improvement. But it is missing this part of the
> original patch:
> 
> --- a/drivers/char/vt.c
> +++ b/drivers/char/vt.c
> @@ -2198,7 +2198,11 @@ rescan_last_byte:
>  			c = 0xfffd;
>  		    tc = c;
>  		} else {	/* no utf or alternate charset mode */
> +#ifdef CONFIG_CONSOLE_TRANSLATIONS
>  		    tc = vc->vc_translate[vc->vc_toggle_meta ? (c | 0x80) : c];
> +#else
> +		    tc = c;
> +#endif

Can we please get the ifdefs tided up before this goes in.

For the moment this has a NAK from the tty maintainer but if the ifdefs
turned went into headers where they belong and the code looked like say

		tc = vc_translate(vc, c);

with two versions of vc_translate (one being vc_translate(x) (x)) it
might be more reasonable.

We can't stick random ifdefs in bits of code for arbitary 6K savings or
the entire kernel would be ifdefs.


Sor for the moment

Nacked-by: Alan Cox <alan@redhat.com>

but scope for change

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 11:55     ` Alan Cox
@ 2008-06-04 13:55       ` David Woodhouse
  2008-06-04 14:07         ` Alan Cox
  0 siblings, 1 reply; 85+ messages in thread
From: David Woodhouse @ 2008-06-04 13:55 UTC (permalink / raw)
  To: Alan Cox; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

On Wed, 2008-06-04 at 12:55 +0100, Alan Cox wrote:
> Can we please get the ifdefs tided up before this goes in.
> 
> For the moment this has a NAK from the tty maintainer but if the
> ifdefs
> turned went into headers where they belong and the code looked like
> say
> 
>                 tc = vc_translate(vc, c);
> 
> with two versions of vc_translate (one being vc_translate(x) (x)) it
> might be more reasonable.

Good point. I did think about that originally, but then just completely
forgot to process that hunk of the original patch altogether, which was
another way of avoiding the ifdefs :)

If I merge this incremental patch, does that address your objections?

(Note that I've changed the expression to evaluate (c) only once, just
because that's best practice in macro definitions. Wasn't really worth
doing it for (vc) though.)

diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index de52f99..18b7fb0 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -2208,11 +2208,7 @@ rescan_last_byte:
 			c = 0xfffd;
 		    tc = c;
 		} else {	/* no utf or alternate charset mode */
-#ifdef CONFIG_CONSOLE_TRANSLATIONS
-		    tc = vc->vc_translate[vc->vc_toggle_meta ? (c | 0x80) : c];
-#else
-		    tc = c;
-#endif
+		    tc = vc_translate(vc, c);
 		}
 
 		param.c = tc;
diff --git a/include/linux/vt_kern.h b/include/linux/vt_kern.h
index 81ed155..929ee80 100644
--- a/include/linux/vt_kern.h
+++ b/include/linux/vt_kern.h
@@ -72,6 +72,9 @@ int con_set_default_unimap(struct vc_data *vc);
 void con_free_unimap(struct vc_data *vc);
 void con_protect_unimap(struct vc_data *vc, int rdonly);
 int con_copy_unimap(struct vc_data *dst_vc, struct vc_data *src_vc);
+
+#define vc_translate(vc, c) ((vc)->vc_translate[(c) | \
+					(vc)->vc_toggle_meta ? 0x80 : 0])
 #else
 #define con_set_trans_old(arg) (0)
 #define con_get_trans_old(arg) (-EINVAL)
@@ -83,6 +86,8 @@ int con_copy_unimap(struct vc_data *dst_vc, struct vc_data *src_vc);
 #define con_copy_unimap(d, s) (0)
 #define con_get_unimap(vc, ct, uct, list) (-EINVAL)
 #define con_free_unimap(vc) do { ; } while (0)
+
+#define vc_translate(vc, c) (c)
 #endif
 
 /* vt.c */

-- 
dwmw2


^ permalink raw reply related	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 13:55       ` David Woodhouse
@ 2008-06-04 14:07         ` Alan Cox
  2008-06-04 14:27           ` David Woodhouse
  0 siblings, 1 reply; 85+ messages in thread
From: Alan Cox @ 2008-06-04 14:07 UTC (permalink / raw)
  To: David Woodhouse; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

> If I merge this incremental patch, does that address your objections?

Yes

> (Note that I've changed the expression to evaluate (c) only once, just
> because that's best practice in macro definitions. Wasn't really worth
> doing it for (vc) though.)

Agreed

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 14:07         ` Alan Cox
@ 2008-06-04 14:27           ` David Woodhouse
  0 siblings, 0 replies; 85+ messages in thread
From: David Woodhouse @ 2008-06-04 14:27 UTC (permalink / raw)
  To: Alan Cox; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

On Wed, 2008-06-04 at 15:07 +0100, Alan Cox wrote:
> > If I merge this incremental patch, does that address your objections?
> 
> Yes

http://git.infradead.org/embedded-2.6.git?a=commitdiff;h=a29ccf6f8


-- 
dwmw2


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  7:36       ` Dave Hylands
@ 2008-06-04 15:24         ` Randy Dunlap
  0 siblings, 0 replies; 85+ messages in thread
From: Randy Dunlap @ 2008-06-04 15:24 UTC (permalink / raw)
  To: Dave Hylands
  Cc: Holger Schurig, linux-tiny, Matt Mackall, Rob Landley,
	linux-embedded

On Wed, 4 Jun 2008 00:36:48 -0700 Dave Hylands wrote:

> > Another thing that I just noticed: According to
> >
> > http://vger.kernel.org/vger-lists.html#linux-embedded
> 
> Mike Frysinger setup the following on May 27:
> <http://news.gmane.org/gmane.linux.kernel.embedded>


It's also available at  http://marc.info/?l=linux-embedded


---
~Randy
<quote:>
"It's the Government of the United States." ... The largest, and yet
the least efficient, producer of computer software in the world.

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  0:16     ` David Woodhouse
  2008-06-04  1:03       ` Josh Boyer
@ 2008-06-04 15:35       ` Tim Bird
  1 sibling, 0 replies; 85+ messages in thread
From: Tim Bird @ 2008-06-04 15:35 UTC (permalink / raw)
  To: David Woodhouse; +Cc: linux-tiny, linux-embedded, linux kernel

David Woodhouse wrote:
> On Tue, 2008-06-03 at 17:01 -0700, Tim Bird wrote:
>> This is clearly an improvement. But it is missing this part of the
>> original patch:
> 
> Oops, well spotted. I've updated the patch in the git tree; thanks.
> 
> (that's what comes of applying patches by hand -- I _knew_ I had to do
> that hunk, but managed to forget about it within the space of about 30
> seconds when I was doing the other parts. I plead stupidity)

We can chalk it up to my stupidity for sending a patch
that couldn't be applied automatically...
Thanks very much for the improvements!
 -- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  7:04     ` Holger Schurig
  2008-06-04  7:36       ` Dave Hylands
@ 2008-06-04 17:19       ` Rob Landley
  2008-06-04 17:26         ` linux-embedded archives [was Re: [PATCH] console - Add configurable support for console charset translation] T Ziomek
  1 sibling, 1 reply; 85+ messages in thread
From: Rob Landley @ 2008-06-04 17:19 UTC (permalink / raw)
  To: Holger Schurig; +Cc: linux-tiny, Matt Mackall, linux-embedded

On Wednesday 04 June 2008 02:04:13 Holger Schurig wrote:
> > Linux-embedded is the place to be, folks.
>
> Another thing that I just noticed: According to
>
> http://vger.kernel.org/vger-lists.html#linux-embedded
>
> there is no mailing list archive for this list.

Yes, but according to the comments on http://lwn.net/Articles/283749/ there 
is.  Unfortunately, there seems to be no way to beat a threaded user 
interface out of it.

I have a complete mbox going back to the beginning (thanks Randy!) and am 
pondering putting up an archive in the format I like (threaded index, grouped 
monthly) this weekend.  Depends on whether or not I can convince mailman to 
archive a list it isn't hosting, or if I get bored enough to write my own 
indexer in python...

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* linux-embedded archives  [was Re: [PATCH] console - Add configurable support for console charset translation]
  2008-06-04 17:19       ` Rob Landley
@ 2008-06-04 17:26         ` T Ziomek
  2008-06-04 18:08           ` Rob Landley
  0 siblings, 1 reply; 85+ messages in thread
From: T Ziomek @ 2008-06-04 17:26 UTC (permalink / raw)
  To: Rob Landley; +Cc: Holger Schurig, linux-tiny, Matt Mackall, linux-embedded

On Wed, Jun 04, 2008 at 12:19:53PM -0500, Rob Landley wrote:
> On Wednesday 04 June 2008 02:04:13 Holger Schurig wrote:
> > > Linux-embedded is the place to be, folks.
> >
> > Another thing that I just noticed: According to
> >
> > http://vger.kernel.org/vger-lists.html#linux-embedded
> >
> > there is no mailing list archive for this list.
> 
> Yes, but according to the comments on http://lwn.net/Articles/283749/ there 
> is.  Unfortunately, there seems to be no way to beat a threaded user 
> interface out of it.

Somebody updated the http://vger.kernel.org/ today; it now lists 3 archives
(mail-archive.com, gmane.org and marc.info).

Tom
-- 
  /"\  ASCII Ribbon Campaign   |
  \ /                          |   Email to user 'CTZ001'
   X        Against HTML       |             at 'email.mot.com'
  / \     in e-mail & news     |

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-03 22:37       ` H. Peter Anvin
  2008-06-04  2:56         ` Paul Mundt
@ 2008-06-04 17:34         ` Rob Landley
  1 sibling, 0 replies; 85+ messages in thread
From: Rob Landley @ 2008-06-04 17:34 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Matt Mackall, Tim Bird, linux-embedded

On Tuesday 03 June 2008 17:37:23 H. Peter Anvin wrote:
> Rob Landley wrote:
> >> Actually, lots have frame buffers these days.
> >
> > Cell phones, for instance.
>
> Sure, but do you want to use them as consoles?

A friend of mine hacked his iPhone and got shell prompt on it, and it's quite 
usable with the touchscreen keyboard.  (I very much want a linux box with 
that form factor, battery life, connectivity, at least that much memory...)

And hooking a set top box up to an HDTV gives you better potential resolution 
than my laptop currently has, on a biiiiiig screen.  They already display 
text for program listings and recorded program menus and such, plus you can 
add a mouse and keyboard via bluetooth or usb if you like...

> 	-hpa

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04  2:56         ` Paul Mundt
@ 2008-06-04 17:36           ` Rob Landley
  2008-06-04 17:42             ` Bill Gatliff
  2008-06-05  0:46             ` Paul Mundt
  0 siblings, 2 replies; 85+ messages in thread
From: Rob Landley @ 2008-06-04 17:36 UTC (permalink / raw)
  To: Paul Mundt; +Cc: H. Peter Anvin, linux-embedded

On Tuesday 03 June 2008 21:56:48 Paul Mundt wrote:
> On Tue, Jun 03, 2008 at 03:37:23PM -0700, H. Peter Anvin wrote:
> > Rob Landley wrote:
> > >>Actually, lots have frame buffers these days.
> > >
> > >Cell phones, for instance.
> >
> > Sure, but do you want to use them as consoles?
>
> Unless your name is Pavel, no one actually wants a console on their
> phone. So no, just framebuffers, as is to be expected :-)

Actually if you ever need to diagnose early boot stuff on _any_ platform, you 
do need a console.  But it can be serial or netconsole, as long as that 
works...

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 17:36           ` Rob Landley
@ 2008-06-04 17:42             ` Bill Gatliff
  2008-06-04 18:55               ` Rob Landley
  2008-06-05  0:46             ` Paul Mundt
  1 sibling, 1 reply; 85+ messages in thread
From: Bill Gatliff @ 2008-06-04 17:42 UTC (permalink / raw)
  To: Rob Landley; +Cc: Paul Mundt, H. Peter Anvin, linux-embedded

Rob Landley wrote:
> On Tuesday 03 June 2008 21:56:48 Paul Mundt wrote:
>> On Tue, Jun 03, 2008 at 03:37:23PM -0700, H. Peter Anvin wrote:
>>> Rob Landley wrote:
>>>>> Actually, lots have frame buffers these days.
>>>> Cell phones, for instance.
>>> Sure, but do you want to use them as consoles?
>> Unless your name is Pavel, no one actually wants a console on their
>> phone. So no, just framebuffers, as is to be expected :-)
> 
> Actually if you ever need to diagnose early boot stuff on _any_ platform, you 
> do need a console.  But it can be serial or netconsole, as long as that 
> works...

... who says I _always_ want it to look and feel like a "cell phone"?

Some days, I'd prefer that my cell phone look like something else.  Anything
else.  Especially something that will actually work _for_ me instead of the
other way around.

But barring that, something throw-able.  Like a chair.  :)



b.g.
-- 
Bill Gatliff
bgat@billgatliff.com

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 10:33 ` [PATCH] console - Add configurable support for console charset translation Adrian Bunk
@ 2008-06-04 17:51   ` Rob Landley
  2008-06-04 18:34   ` Bernhard Fischer
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 85+ messages in thread
From: Rob Landley @ 2008-06-04 17:51 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Tim Bird, linux-embedded, linux kernel

On Wednesday 04 June 2008 05:33:53 Adrian Bunk wrote:
> Does the linux-tiny approach of adding a kconfig variable for each 5kB
> of code actually make sense? I'm asking since an exploding amount of
> kconfig variables and their interdependencies have a not so small
> maintainance impact in the long term.

Complexity is a cost, you have to get good bang for the buck when you spend 
it.

> And I'm wondering whether it's the best approach for reaching
> measurable results.

When I first started stripping down systems to make embedded masquerading 
routers back in the late 90's (before linksys came out), I started with a Red 
Hat install and removed lots and lots of packages.  That's the approach we're 
taking today, and I can say from experience that it's not sustainable.

I then wandered to a Linux From Scratch approach, building a system that had 
nothing in it but what I wanted.  Starting from zero and adding stuff, rather 
than starting from Mt. Crapmore and removing things until the shovel broke.

Someday I want to do the same for the Linux kernel.  When I started building 
systems instead of carving them out of blocks of distro, I started with 
a "hello world" root filesystem, and I want to make a "hello world" kernel.  
Start with just the boot code that does the jump to C code, only instead of 
start_kernel() in init/main.c have it call a hello_world() function that 
prints "hello world" to the console using the early_printk logic, then calls 
HLT.  And does _nothing_else_.  Then add stuff back one chunk at a time, 
sstarting with memory management, then the scheduler and process stuff, then 
the vfs, and so on.  So I know what all the bits do, and how big and 
complicated they are.  And I can document the lot of it as I go.

Unfortunately, as a learning experience, I estimate this would take me about a 
year.  And I haven't got a spare year on me at the moment.  But it remains 
prominently on my todo list, if I decide to start another major project.  
(Maybe after I get a 1.0 release of FWL out.)

> My gut feeling is that the influence of this kind of linux-tiny patches
> is hardly noticably compared to the overall code size development, but
> if you have numbers that prove me wrong just point me to them and I'll
> stand corrected.

The whackamole approach is never going to turn Ubuntu into Damn Small Linux, 
and it ignores the needs of the people who don't want the /proc hairball but 
_do_ want a ps that works.

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: linux-embedded archives  [was Re: [PATCH] console - Add configurable support for console charset translation]
  2008-06-04 17:26         ` linux-embedded archives [was Re: [PATCH] console - Add configurable support for console charset translation] T Ziomek
@ 2008-06-04 18:08           ` Rob Landley
  0 siblings, 0 replies; 85+ messages in thread
From: Rob Landley @ 2008-06-04 18:08 UTC (permalink / raw)
  To: T Ziomek; +Cc: Holger Schurig, linux-tiny, Matt Mackall, linux-embedded

On Wednesday 04 June 2008 12:26:17 T Ziomek wrote:
> On Wed, Jun 04, 2008 at 12:19:53PM -0500, Rob Landley wrote:
> > On Wednesday 04 June 2008 02:04:13 Holger Schurig wrote:
> > > > Linux-embedded is the place to be, folks.
> > >
> > > Another thing that I just noticed: According to
> > >
> > > http://vger.kernel.org/vger-lists.html#linux-embedded
> > >
> > > there is no mailing list archive for this list.
> >
> > Yes, but according to the comments on http://lwn.net/Articles/283749/
> > there is.  Unfortunately, there seems to be no way to beat a threaded
> > user interface out of it.
>
> Somebody updated the http://vger.kernel.org/ today; it now lists 3 archives
> (mail-archive.com, gmane.org and marc.info).

So mail-archive.com has no obvious way to browse historical messages by date, 
gmane's interface is a mix of frames and javascript, and marc can't show an 
index with nested replies to threads. 

Well, at least they're broken in different ways...

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 10:33 ` [PATCH] console - Add configurable support for console charset translation Adrian Bunk
  2008-06-04 17:51   ` Rob Landley
@ 2008-06-04 18:34   ` Bernhard Fischer
  2008-06-04 19:01     ` Adrian Bunk
  2008-06-04 18:51   ` Tim Bird
  2008-06-11  7:08   ` Holger Schurig
  3 siblings, 1 reply; 85+ messages in thread
From: Bernhard Fischer @ 2008-06-04 18:34 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

On Wed, Jun 04, 2008 at 01:33:53PM +0300, Adrian Bunk wrote:

>My gut feeling is that the influence of this kind of linux-tiny patches 
>is hardly noticably compared to the overall code size development, but 
>if you have numbers that prove me wrong just point me to them and I'll 
>stand corrected.
>
>cu
>Adrian
>
>BTW: I'm not insisting on "between 2.6.16 and 2.6.26", that's just some
>     timeframe big enough for showing general trends.

Current kernels are too big, they tend to be about 1MB (ignoring lzma or
gz compression), a couple of years back an ide- and network-enabled
kernel with 8139too (or whatever -nic you use in qemu nowadays) was at
least 30% smaller.

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 10:33 ` [PATCH] console - Add configurable support for console charset translation Adrian Bunk
  2008-06-04 17:51   ` Rob Landley
  2008-06-04 18:34   ` Bernhard Fischer
@ 2008-06-04 18:51   ` Tim Bird
  2008-06-04 19:15     ` Sam Ravnborg
                       ` (2 more replies)
  2008-06-11  7:08   ` Holger Schurig
  3 siblings, 3 replies; 85+ messages in thread
From: Tim Bird @ 2008-06-04 18:51 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-tiny, linux-embedded, linux kernel

Adrian Bunk wrote:
> It seems to be always me who asks the controversial questions...:
> 
> Does the linux-tiny approach of adding a kconfig variable for each 5kB 
> of code actually make sense? I'm asking since an exploding amount of 
> kconfig variables and their interdependencies have a not so small 
> maintainance impact in the long term.

Others have expressed similar concerns.  Andi Kleen has brought this
up in the past, and highlighted another aspect of this that I think
is important - fragmenting the configuration space for testing.

That is, if different combinations of options are used, then the
testing results from different users may not be directly comparable.
This makes it harder to track down bugs.

In practice, I think these types of switches tend to get turned
on/off together.  This tends to ameliorate the testing and maintenance
issues. It might be worthwhile to coalesce these into fewer
options.  I'd be fine with overloading this particular
onto CONFIG_BASE_FULL, but I don't know what other people think.
Keeping the option separate means you have more flexibility - so
that you can, for example, turn off all but one feature that's
important to you.  (This seems like a pretty common

> And I'm wondering whether it's the best approach for reaching 
> measurable results. E.g. my small patch that removed 
> -maccumulate-outgoing-args on 32-bit x86 reduced the kernel size
> there for the CONFIG_CC_OPTIMIZE_FOR_SIZE=y case by at about 2.5% (sic)
> without adding any kconfig variables or #ifdef's.

These are certainly nice, but there's a limited number of whole-kernel
reduction options.  Kernel size accumulates by both wasteful
compiler output, and by the introduction or preservation of individual
features that are useless for embedded devices.  I think it's worthwhile
to attack both problems.

> Can you take a reasonable (best-case) .config for an existing device and 
> get the following numbers:
> - Ignoring patches that came from linux-tiny, by how many percent did 
>   the size of the kernel increase or decrease between 2.6.16 and 2.6.26?

Well, an initial comparison is at:
http://www.selenic.com/bloatwatch/?cmd=compare&part=%2F&v1=2.6.16&v2=2.6.25-rc2

This shows a size difference of 1.8 meg, but I'm pretty sure this
is with a default config (not optimized) and is not controlled very well
for changes in the config.

I can do a more controlled comparison if you're interested.

> - By how many percent did the kernel size decrease due to patches from
>   the linux-tiny project that added such kconfig options for a few kB 
>   of code in the same timeframe?

I'm not sure that's a good comparison, since Linux-tiny hasn't been
very active in that time period.  I would guess only about 3 or 4
Linux-tiny patches have made it into the kernel since 2.6.16.
The big wins for Linux-tiny were in the 2.6.10/11 kernels, where
most of the low-hanging fruit (size-wise) was gleaned.

But to address your point, you're right that no existing Linux-tiny
patch gets 2.5% reduction for the kernel.
In my own testing at Sony, the 30 or so Linux-tiny patches that
I use get me about 110k of reductions.  For me, this is about 5% of
my kernel size.   Note that my choice of options to achieve
reductions is pretty conservative.

There are diminishing returns here, and at some point it doesn't make
sense to continue.  I have a nagging feeling, though, that there
are a few more things where the bloat is pronounced (glances at
procfs and sysfs).

> My gut feeling is that the influence of this kind of linux-tiny patches 
> is hardly noticably compared to the overall code size development, but 
> if you have numbers that prove me wrong just point me to them and I'll 
> stand corrected.

It *does* feel a bit like fighting the tide with a teaspoon.
 -- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 17:42             ` Bill Gatliff
@ 2008-06-04 18:55               ` Rob Landley
  2008-06-04 19:05                 ` Bill Gatliff
  0 siblings, 1 reply; 85+ messages in thread
From: Rob Landley @ 2008-06-04 18:55 UTC (permalink / raw)
  To: Bill Gatliff; +Cc: Paul Mundt, H. Peter Anvin, linux-embedded

On Wednesday 04 June 2008 12:42:06 Bill Gatliff wrote:
> Rob Landley wrote:
> > On Tuesday 03 June 2008 21:56:48 Paul Mundt wrote:
> >> On Tue, Jun 03, 2008 at 03:37:23PM -0700, H. Peter Anvin wrote:
> >>> Rob Landley wrote:
> >>>>> Actually, lots have frame buffers these days.
> >>>>
> >>>> Cell phones, for instance.
> >>>
> >>> Sure, but do you want to use them as consoles?
> >>
> >> Unless your name is Pavel, no one actually wants a console on their
> >> phone. So no, just framebuffers, as is to be expected :-)
> >
> > Actually if you ever need to diagnose early boot stuff on _any_ platform,
> > you do need a console.  But it can be serial or netconsole, as long as
> > that works...
>
> ... who says I _always_ want it to look and feel like a "cell phone"?

With the little bluetooth earpieces, cellphone "look and feel" is decidedly 
mutable these days.

(Ok, cell phones started out with the star-tac flip open phone, a fairly 
obvious rip-off from Star Trek TOS.  We now have the banana in Uhura's ear, 
running off of bluetooth.  Now I'm waiting for the communicator badges.  It's 
only a matter of time...)

That said, the cell phone and PDA spaces are converging, and thingies like the 
iPhone and Nokia 810 are the next logical step beyond laptops.  (If you want 
to hook them up to a big screen and keyboard, your "docking station" can just 
be USB.  If it wasn't for the need to provide power to the suckers, it could 
be bluetooth.)

You only need to carry around one pack of electronics with you, and everybody 
has a cell phone these days.  The rest is a question of user interface and 
letting Moore's Law crank long enough...

Rob

P.S. I agree with what Peter seems to be saying, that the old "vga console" 
code is a side issue.  /dev/console doesn't even provide a controlling tty, 
and the PTY code shouldn't really have anything in commonwith the old virtual 
console stuff except an API.  (Honestly it just attaches a cursor position, 
screen size, and some signals to a pipe.  The rest of the stuff it does like 
setting serial port hardware rates and beeping the speaker probably should 
have been done via ioctl on /dev nodes or something.)
-- 
"One of my most productive days was throwing away 1000 lines of code."
  - Ken Thompson.

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 18:34   ` Bernhard Fischer
@ 2008-06-04 19:01     ` Adrian Bunk
  2008-06-04 19:21       ` Bernhard Fischer
  0 siblings, 1 reply; 85+ messages in thread
From: Adrian Bunk @ 2008-06-04 19:01 UTC (permalink / raw)
  To: Bernhard Fischer; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

On Wed, Jun 04, 2008 at 08:34:32PM +0200, Bernhard Fischer wrote:
> On Wed, Jun 04, 2008 at 01:33:53PM +0300, Adrian Bunk wrote:
> 
> >My gut feeling is that the influence of this kind of linux-tiny patches 
> >is hardly noticably compared to the overall code size development, but 
> >if you have numbers that prove me wrong just point me to them and I'll 
> >stand corrected.
> >
> >cu
> >Adrian
> >
> >BTW: I'm not insisting on "between 2.6.16 and 2.6.26", that's just some
> >     timeframe big enough for showing general trends.
> 
> Current kernels are too big, they tend to be about 1MB (ignoring lzma or
> gz compression), a couple of years back an ide- and network-enabled
> kernel with 8139too (or whatever -nic you use in qemu nowadays) was at
> least 30% smaller.

No disagreement that the kernel could (and should) become smaller for
situations where the kernel size matters.

My question is only about whether *this kind of patches* is the correct 
approach.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 18:55               ` Rob Landley
@ 2008-06-04 19:05                 ` Bill Gatliff
  0 siblings, 0 replies; 85+ messages in thread
From: Bill Gatliff @ 2008-06-04 19:05 UTC (permalink / raw)
  To: Rob Landley; +Cc: Paul Mundt, H. Peter Anvin, linux-embedded

Rob Landley wrote:
> Now I'm waiting for the communicator badges.  It's only a matter of time...)

Working on it...  :)


b.g.
-- 
Bill Gatliff
bgat@billgatliff.com

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 18:51   ` Tim Bird
@ 2008-06-04 19:15     ` Sam Ravnborg
  2008-06-04 19:23       ` Tim Bird
  2008-06-04 20:24       ` Jörn Engel
  2008-06-04 19:40     ` Adrian Bunk
  2008-06-04 19:42     ` [PATCH] console - Add configurable support for console charset translation Bernhard Fischer
  2 siblings, 2 replies; 85+ messages in thread
From: Sam Ravnborg @ 2008-06-04 19:15 UTC (permalink / raw)
  To: Tim Bird; +Cc: Adrian Bunk, linux-tiny, linux-embedded, linux kernel

> 
> I can do a more controlled comparison if you're interested.

What would be really useful would be to do some king of automated
monitoring of the size of individual parts of the kernel in
a few controlled configs.
And then as son as somethings grows with > 1% for example then to
bring this to lkml.
Doing this based on linux-next would allow us to catch the bloaters
while they are still or just have been doing certain changes.

It would be nice to tell someone that just enabled som new gcc option
that this had a cost of 163.432 bytes with a certain config.
This would get attraction and be dealt with.

Doing so three months later or maybe one year later would often
get less focus (if the individual commit ever got identified).

Now how to do so I dunno - that would require a bit of tweaking
before working reliable. But the value of being quick here would
pay of this soon I think.

	Sam

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 19:21       ` Bernhard Fischer
@ 2008-06-04 19:20         ` Alan Cox
  0 siblings, 0 replies; 85+ messages in thread
From: Alan Cox @ 2008-06-04 19:20 UTC (permalink / raw)
  To: Bernhard Fischer
  Cc: Adrian Bunk, Tim Bird, linux-tiny, linux-embedded, linux kernel

> So yes, 5k help, several 5k help more. I can see how it's problematic to
> represent that in menuconfig without adding too much clutter but still
> letting the user decide whether or not to include certain families of
> features, but that should not turn out to be a real problem.

Combinatorial explosions, ugly messes, maintenance.

Far better would be target the actual sizes and get stuff down in size
without removing feaures. There is some obvious 'easy reward' stuff here
- such as being able to build an output only console.


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 19:01     ` Adrian Bunk
@ 2008-06-04 19:21       ` Bernhard Fischer
  2008-06-04 19:20         ` Alan Cox
  0 siblings, 1 reply; 85+ messages in thread
From: Bernhard Fischer @ 2008-06-04 19:21 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

On Wed, Jun 04, 2008 at 10:01:46PM +0300, Adrian Bunk wrote:
>On Wed, Jun 04, 2008 at 08:34:32PM +0200, Bernhard Fischer wrote:
 
>> Current kernels are too big, they tend to be about 1MB (ignoring lzma or
>> gz compression), a couple of years back an ide- and network-enabled
>> kernel with 8139too (or whatever -nic you use in qemu nowadays) was at
>> least 30% smaller.
>
>No disagreement that the kernel could (and should) become smaller for
>situations where the kernel size matters.
>
>My question is only about whether *this kind of patches* is the correct 
>approach.

Every dozend of bytes less helps to some degree. I can boot a smallish
testsystem in qemu with 4MB ram and have a useable userspace in 120k or
up to 1.2MB diskspace to play with.

The kernel ultimately needs the vast majority of resources in such a
system; most of the RAM and most of the diskspace (assuming a
comfortable userspace with 500k). Booting with 2MB didn't work last time
i tried. This imbalance is something we should fix.

So yes, 5k help, several 5k help more. I can see how it's problematic to
represent that in menuconfig without adding too much clutter but still
letting the user decide whether or not to include certain families of
features, but that should not turn out to be a real problem.

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 19:15     ` Sam Ravnborg
@ 2008-06-04 19:23       ` Tim Bird
  2008-06-04 20:23         ` Adrian Bunk
  2008-06-04 20:24       ` Jörn Engel
  1 sibling, 1 reply; 85+ messages in thread
From: Tim Bird @ 2008-06-04 19:23 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Adrian Bunk, linux-tiny, linux-embedded, linux kernel

Sam Ravnborg wrote:
>> I can do a more controlled comparison if you're interested.
> 
> What would be really useful would be to do some king of automated
> monitoring of the size of individual parts of the kernel in
> a few controlled configs.
> And then as son as somethings grows with > 1% for example then to
> bring this to lkml.
> Doing this based on linux-next would allow us to catch the bloaters
> while they are still or just have been doing certain changes.
> 
> It would be nice to tell someone that just enabled som new gcc option
> that this had a cost of 163.432 bytes with a certain config.
> This would get attraction and be dealt with.

This is something I've wanted to get done for the last few
years.  We've crept towards it slowly with things like bloatwatch
and some of the automated testing CELF did for it's (currently
temporarily defunct) test lab.

But we've never gotten to the last bit, which is to fully automate
the testing at the top of tree, and send notifications.  I won't
make any promises, but this is something CELF is very interested in,
and we have parts of the required software already written.
 -- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 18:51   ` Tim Bird
  2008-06-04 19:15     ` Sam Ravnborg
@ 2008-06-04 19:40     ` Adrian Bunk
  2008-06-06 23:47       ` Tim Bird
  2008-06-04 19:42     ` [PATCH] console - Add configurable support for console charset translation Bernhard Fischer
  2 siblings, 1 reply; 85+ messages in thread
From: Adrian Bunk @ 2008-06-04 19:40 UTC (permalink / raw)
  To: Tim Bird; +Cc: linux-tiny, linux-embedded, linux kernel

On Wed, Jun 04, 2008 at 11:51:54AM -0700, Tim Bird wrote:
> Adrian Bunk wrote:
> > It seems to be always me who asks the controversial questions...:
> > 
> > Does the linux-tiny approach of adding a kconfig variable for each 5kB 
> > of code actually make sense? I'm asking since an exploding amount of 
> > kconfig variables and their interdependencies have a not so small 
> > maintainance impact in the long term.
> 
> Others have expressed similar concerns.  Andi Kleen has brought this
> up in the past, and highlighted another aspect of this that I think
> is important - fragmenting the configuration space for testing.
> 
> That is, if different combinations of options are used, then the
> testing results from different users may not be directly comparable.
> This makes it harder to track down bugs.
> 
> In practice, I think these types of switches tend to get turned
> on/off together.  This tends to ameliorate the testing and maintenance
> issues. It might be worthwhile to coalesce these into fewer
> options.  I'd be fine with overloading this particular
> onto CONFIG_BASE_FULL, but I don't know what other people think.
> Keeping the option separate means you have more flexibility - so
> that you can, for example, turn off all but one feature that's
> important to you.  (This seems like a pretty common

I'm coming more from the point that drivers/media/ might be the area    
in the kernel that currently offers the biggest flexibility - and this 
stuff breaks multiple times for each kernel release, and sorting this 
out is often nontrivial.

I'm not claiming it was impossible to maintain, but it is a maintainance 
burden if too much is configurable.

> > And I'm wondering whether it's the best approach for reaching 
> > measurable results. E.g. my small patch that removed 
> > -maccumulate-outgoing-args on 32-bit x86 reduced the kernel size
> > there for the CONFIG_CC_OPTIMIZE_FOR_SIZE=y case by at about 2.5% (sic)
> > without adding any kconfig variables or #ifdef's.
> 
> These are certainly nice, but there's a limited number of whole-kernel
> reduction options.  Kernel size accumulates by both wasteful
> compiler output, and by the introduction or preservation of individual
> features that are useless for embedded devices.  I think it's worthwhile
> to attack both problems.

There are still several (although not that trivial) global reductions 
each worth 2% or more in code size possible, and I would say they should 
be attacked before starting a config options jungle.

As a bonus, such stuff brings benefit to everyone, not only to people 
creating hand-optimized kernels for devices with very limited features.

And it also addresses the point that someone trying to get a very small 
kernel might hit completely untested codepaths.

> > Can you take a reasonable (best-case) .config for an existing device and 
> > get the following numbers:
> > - Ignoring patches that came from linux-tiny, by how many percent did 
> >   the size of the kernel increase or decrease between 2.6.16 and 2.6.26?
> 
> Well, an initial comparison is at:
> http://www.selenic.com/bloatwatch/?cmd=compare&part=%2F&v1=2.6.16&v2=2.6.25-rc2
> 
> This shows a size difference of 1.8 meg, but I'm pretty sure this
> is with a default config (not optimized) and is not controlled very well
> for changes in the config.

It seems to be comparing i386 defconfigs.

E.g. the increase of CONFIG_LOG_BUF_SHIFT in the i386 defconfig in 
2.6.19 does alone increase the size of a defconfig kernel by a
quarter Megabyte - but that's both expected and not relevant for 
embedded systems.

> I can do a more controlled comparison if you're interested.

I think the only serious numbers would come from taking some hardware 
and feature set (file systems, network options, etc.), and then 
optimizing by hand the smallest .config possible for both cases.

Do you have anything in this direction?

> > - By how many percent did the kernel size decrease due to patches from
> >   the linux-tiny project that added such kconfig options for a few kB 
> >   of code in the same timeframe?
> 
> I'm not sure that's a good comparison, since Linux-tiny hasn't been
> very active in that time period.  I would guess only about 3 or 4
> Linux-tiny patches have made it into the kernel since 2.6.16.
> The big wins for Linux-tiny were in the 2.6.10/11 kernels, where
> most of the low-hanging fruit (size-wise) was gleaned.
> 
> But to address your point, you're right that no existing Linux-tiny
> patch gets 2.5% reduction for the kernel.
> In my own testing at Sony, the 30 or so Linux-tiny patches that
> I use get me about 110k of reductions.  For me, this is about 5% of
> my kernel size.   Note that my choice of options to achieve
> reductions is pretty conservative.

OK, that's a visible difference.

Are these 30 patches each gaining 4kB or are there a few patches that 
bring most gain?

And are you only measuring the kernel image size or also theruntime 
memory usage?

> There are diminishing returns here, and at some point it doesn't make
> sense to continue.  I have a nagging feeling, though, that there
> are a few more things where the bloat is pronounced (glances at
> procfs and sysfs).
> 
> > My gut feeling is that the influence of this kind of linux-tiny patches 
> > is hardly noticably compared to the overall code size development, but 
> > if you have numbers that prove me wrong just point me to them and I'll 
> > stand corrected.
> 
> It *does* feel a bit like fighting the tide with a teaspoon.

Besides reducing the kernel size it might also make sense if you'd 
regularly monitored -rc and -next kernels for size increases
(AFAIK noone currently does this) and bring them up early.

If you'd do this with kernels for real devices you might also test the 
kernels on the devices, en passant improving the problem that embedded 
architectures currently have nearly zero coverage at the times when 
functional regressions have a reasonable chance of being fixed before 
they reach stable kernels.  ;-)

>  -- Tim

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 18:51   ` Tim Bird
  2008-06-04 19:15     ` Sam Ravnborg
  2008-06-04 19:40     ` Adrian Bunk
@ 2008-06-04 19:42     ` Bernhard Fischer
  2 siblings, 0 replies; 85+ messages in thread
From: Bernhard Fischer @ 2008-06-04 19:42 UTC (permalink / raw)
  To: Tim Bird; +Cc: Adrian Bunk, linux-tiny, linux kernel, linux-embedded

On Wed, Jun 04, 2008 at 11:51:54AM -0700, Tim Bird wrote:

>There are diminishing returns here, and at some point it doesn't make
>sense to continue.  I have a nagging feeling, though, that there
>are a few more things where the bloat is pronounced (glances at
>procfs and sysfs).

A decision on what to favour would certainly help: sysfs or ioctl or
something else.

While i have missed that in this particular case¹) you apparently shall
read via sysfs and write via ioctl -- i thought that most could already
be written via sysfs which doesn't seem to be true -- it would be nice
to get rid of the devilish ioctl mid-term iff there is consensus about
it. The bridge is admittedly a vicarious corner case and probably
seldomly used anyway.

¹)
https://lists.linux-foundation.org/pipermail/bridge/2008-May/005839.html
--
To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 19:23       ` Tim Bird
@ 2008-06-04 20:23         ` Adrian Bunk
  2008-06-04 20:42           ` Tim Bird
  2008-06-05  7:18           ` Uwe Klein
  0 siblings, 2 replies; 85+ messages in thread
From: Adrian Bunk @ 2008-06-04 20:23 UTC (permalink / raw)
  To: Tim Bird; +Cc: Sam Ravnborg, linux-tiny, linux-embedded, linux kernel

On Wed, Jun 04, 2008 at 12:23:26PM -0700, Tim Bird wrote:
> Sam Ravnborg wrote:
> >> I can do a more controlled comparison if you're interested.
> > 
> > What would be really useful would be to do some king of automated
> > monitoring of the size of individual parts of the kernel in
> > a few controlled configs.
> > And then as son as somethings grows with > 1% for example then to
> > bring this to lkml.
> > Doing this based on linux-next would allow us to catch the bloaters
> > while they are still or just have been doing certain changes.
> > 
> > It would be nice to tell someone that just enabled som new gcc option
> > that this had a cost of 163.432 bytes with a certain config.
> > This would get attraction and be dealt with.
> 
> This is something I've wanted to get done for the last few
> years.  We've crept towards it slowly with things like bloatwatch
> and some of the automated testing CELF did for it's (currently
> temporarily defunct) test lab.
> 
> But we've never gotten to the last bit, which is to fully automate
> the testing at the top of tree, and send notifications.  I won't
> make any promises, but this is something CELF is very interested in,
> and we have parts of the required software already written.

I might be wrong, but although monitoring the size makes a lot of sense
I don't believe "fully automate the testing ... and send notifications" 
will work.

Like the CONFIG_LOG_BUF_SHIFT example from my last email you can easily 
get huge differences in a defconfig that do not indicate any problem at 
all, and I'd expect you'll need frequent finetuning of the .config's 
used. And if there's a problem you'll have to identify what exactly 
causes the problem.

But if CELF has resources then doing this kind of stuff IMHO makes
more sense than adding a config option for each 5kB of code
(and also has better long-term effects).

>  -- Tim

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 19:15     ` Sam Ravnborg
  2008-06-04 19:23       ` Tim Bird
@ 2008-06-04 20:24       ` Jörn Engel
  1 sibling, 0 replies; 85+ messages in thread
From: Jörn Engel @ 2008-06-04 20:24 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Tim Bird, Adrian Bunk, linux-tiny, linux-embedded, linux kernel

On Wed, 4 June 2008 21:15:22 +0200, Sam Ravnborg wrote:
> 
> What would be really useful would be to do some king of automated
> monitoring of the size of individual parts of the kernel in
> a few controlled configs.
> And then as son as somethings grows with > 1% for example then to
> bring this to lkml.
> Doing this based on linux-next would allow us to catch the bloaters
> while they are still or just have been doing certain changes.
> 
> It would be nice to tell someone that just enabled som new gcc option
> that this had a cost of 163.432 bytes with a certain config.
> This would get attraction and be dealt with.

I've tried that for one evening without immediate results, then got
distracted again.  My basic idea was to compile a kernel, measure the
size, apply a patch, recompile and measure the new size.  One could even
do something similar to git-bisect that way, each time ignoring the half
that causes less bloat.

The main disadvantage I see is with the overwhelming number of new
config options being added.  Going from 2.6.x to 2.6.x+1 will add so
many new options that I usually just 'yes "" | make oldconfig'.

If someone can translate my description into a few lines of bash or
perl, we could turn it into a "make bloatcheck" and require^W hope that
at least some people use it, get ashamed and fix their mess before it
even hits the list.

Jörn

-- 
If System.PrivateProfileString("",
"HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") <>
"" Then  CommandBars("Macro").Controls("Security...").Enabled = False
-- from the Melissa-source
--
To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 20:23         ` Adrian Bunk
@ 2008-06-04 20:42           ` Tim Bird
  2008-06-05  6:55             ` Jörn Engel
  2008-06-05  7:18           ` Uwe Klein
  1 sibling, 1 reply; 85+ messages in thread
From: Tim Bird @ 2008-06-04 20:42 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Sam Ravnborg, linux-tiny, linux-embedded, linux kernel

Adrian Bunk wrote:
> I might be wrong, but although monitoring the size makes a lot of sense
> I don't believe "fully automate the testing ... and send notifications" 
> will work.

"fully automate" was sloppy wording on my part.  "automate enough
to not be a burden to maintain" is what I should have said.

> But if CELF has resources then doing this kind of stuff IMHO makes
> more sense than adding a config option for each 5kB of code
> (and also has better long-term effects).

Good point about the better long-term effects.
 -- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 17:36           ` Rob Landley
  2008-06-04 17:42             ` Bill Gatliff
@ 2008-06-05  0:46             ` Paul Mundt
  2008-06-05 23:35               ` Rob Landley
  1 sibling, 1 reply; 85+ messages in thread
From: Paul Mundt @ 2008-06-05  0:46 UTC (permalink / raw)
  To: Rob Landley; +Cc: H. Peter Anvin, linux-embedded

On Wed, Jun 04, 2008 at 12:36:11PM -0500, Rob Landley wrote:
> Actually if you ever need to diagnose early boot stuff on _any_ platform, you 
> do need a console.  But it can be serial or netconsole, as long as that 
> works...
> 
Except for the minor fact that most early boot debugging happens long
before the console subsystem is even available..

At the risk of perpetuating the stupidity of this thread.. If you ship a
device to a customer expecting them to debug it for you, you are likewise
not likely to be very commercially successful, either. Devices are not
shipping with consoles, period. If you disagree with this, you've
obviously never shipped a device.

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 20:42           ` Tim Bird
@ 2008-06-05  6:55             ` Jörn Engel
  0 siblings, 0 replies; 85+ messages in thread
From: Jörn Engel @ 2008-06-05  6:55 UTC (permalink / raw)
  To: Tim Bird
  Cc: Adrian Bunk, Sam Ravnborg, linux-tiny, linux-embedded,
	linux kernel

On Wed, 4 June 2008 13:42:38 -0700, Tim Bird wrote:
> Adrian Bunk wrote:
> > I might be wrong, but although monitoring the size makes a lot of sense
> > I don't believe "fully automate the testing ... and send notifications" 
> > will work.
> 
> "fully automate" was sloppy wording on my part.  "automate enough
> to not be a burden to maintain" is what I should have said.

Even that blows.  People all too easily forget about the end-to-end
principle.  If you want a system that scales well, you have to push as
much work as possible to the ends and do as little as possible in the
center.  Applies here as well as in networking.

If CELF funds 20 people to do such tests, they may be able to cope
today.  But the stream of developers keeps swelling, so even those 20
won't be able to cope long-term.  Instead we have to enable everyone in
the stream of developers to easily check for themselves.  If then stream
keeps swelling, the amount of bloat-checking swells along.

What scales well is the "make check*" targets in the source.  Some even
claim it scales too well and attracts too many clueless janitors.  I'd
be happy if we ever get into the same trouble with bloat checking. ;)


Jörn

-- 
Das Aufregende am Schreiben ist es, eine Ordnung zu schaffen, wo
vorher keine existiert hat.
-- Doris Lessing
--
To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 20:23         ` Adrian Bunk
  2008-06-04 20:42           ` Tim Bird
@ 2008-06-05  7:18           ` Uwe Klein
  1 sibling, 0 replies; 85+ messages in thread
From: Uwe Klein @ 2008-06-05  7:18 UTC (permalink / raw)
  Cc: Tim Bird, linux-tiny, Sam Ravnborg, linux kernel, linux-embedded

Adrian Bunk wrote:

 > I'm coming more from the point that drivers/media/ might be the area
 > in the kernel that currently offers the biggest flexibility - and this
 > stuff breaks multiple times for each kernel release, and sorting this
 > out is often nontrivial.

Only partially connected:
I have run into trouble in conjunction with the rtai patches
and the no_console option regularly over a couple of years.

compiling is ok linking breaks on afair on ?*pcspeaker*?
and some other symbols. reported it as a bug with rtai.

Due to time constraints I reactivated the console and moved on.

Imho  TINY setup and RT patches go together on a regular basis.
so some breakage goes beyond the kernel.

uwe

-- 
Uwe Klein [mailto:uwe.klein@cruise.de]
KLEIN MESSGERAETE Habertwedt 1
D-24376 Groedersby b. Kappeln, GERMANY
phone: +49 4642 920 123 FAX: +49 4642 920 125

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-05  0:46             ` Paul Mundt
@ 2008-06-05 23:35               ` Rob Landley
  2008-06-07  3:35                 ` H. Peter Anvin
  0 siblings, 1 reply; 85+ messages in thread
From: Rob Landley @ 2008-06-05 23:35 UTC (permalink / raw)
  To: Paul Mundt; +Cc: H. Peter Anvin, linux-embedded

On Wednesday 04 June 2008 19:46:30 Paul Mundt wrote:
> On Wed, Jun 04, 2008 at 12:36:11PM -0500, Rob Landley wrote:
> > Actually if you ever need to diagnose early boot stuff on _any_ platform,
> > you do need a console.  But it can be serial or netconsole, as long as
> > that works...
>
> Except for the minor fact that most early boot debugging happens long
> before the console subsystem is even available..

Isn't that why CONFIG_EARLY_PRINTK was written?  (And I mentioned Linus's hack 
using the RTC to see how far the _really_ early stuff got.)

> At the risk of perpetuating the stupidity of this thread..

I plead the fifth.

> If you ship a 
> device to a customer expecting them to debug it for you, you are likewise
> not likely to be very commercially successful, either.

There are such things as field servicable devices where companies either send 
people out into the wild or get hardware brought in for service.

However, looking at the message you're replying to, I was talking about during 
development.  (Remember how the early linksys boxes didn't have the serial 
port physically wired up to the outside, but if you busted out a soldering 
iron you got a shell prompt on it without even installing new software?  They 
didn't change it after they got it working because they didn't want to 
re-validate their image?  Yeah, that kind of stuff gets shipped.)

Sure if the device in the field doesn't boot, it's cheaper to just replace it, 
unless you need to get data off the sucker (in which case they bring it in).  
But the defective units returned to the factory sometimes get diagnosed so 
they can reduce the future return rate (or resell 'em used if it was pilot 
error), so once again it helps if it's possible to service 'em after the 
fact.  Depends on the company.

> Devices are not shipping with consoles, period.

Earlier I was trying to distinguish between /dev/console (no controlling tty), 
virtual terminals (tied to old VGA hardware although possibly usable through 
the framebuffer, I'm unclear on this), the tty layer (which is what I 
initially thought the patch was aimed at, but it seems to be the vga VT 
stuff), and having a bitmapped display (may be GUI only).  Four separate 
things, I've lost track of which we're talking about here.

When you imply it's stupid to think anyone will ever have a console on an 
embedded system (because we all know the embedded world is far more uniform 
than crazy diverse things like the desktop space), which of these are _you_ 
referring to?

My cable modem has a serial port that gives me a login prompt if I plug into 
it, and I watched the guy at sprint bring one up last time I broke my cell 
phone so he could get my number list off it.  That kind of console may be 
useful out in the real world, and that's the kind of console I was talking 
about in the message you replied to.

I've learned that "I don't do that, therefore nobody ever will" is not always 
the world's greatest assumption.  Somebody out there may want a console, and 
they may not want the overhead of internationalizing it because although 
their customers speak mandarin, their field service people do not.

Somebody out there may also want to do something I consider a bad idea.  
(Compared to shipping a device with Windows CE on it, any quibble I have 
about Linux configuration is a rounding error.)

> If you disagree with this, you've 
> obviously never shipped a device.

Since I haven't shipped only _one_ device, and since I used to own a tuxscreen 
phone which may actually meet _all_ the above definitions of "console", I 
guess it's ok for me to disagree with this?

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 19:40     ` Adrian Bunk
@ 2008-06-06 23:47       ` Tim Bird
  2008-06-07  4:29         ` Rob Landley
  0 siblings, 1 reply; 85+ messages in thread
From: Tim Bird @ 2008-06-06 23:47 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux-tiny, linux-embedded, linux kernel

Adrian Bunk wrote:
> I think the only serious numbers would come from taking some hardware 
> and feature set (file systems, network options, etc.), and then 
> optimizing by hand the smallest .config possible for both cases.
> 
> Do you have anything in this direction?
Not exactly.  I have some automated tests which measure the
compile-time and runtime memory affect of adjusting various kernel
options.  I do have, for 4 different architectures, a "smallest"
config that I've was hand-tuning for each arch.
Unfortunately, I started this some months ago and didn't
finish tuning these minimum configs.  They bitrotted, and now
none of them yeild bootable kernels for their respective boards.

I suppose I could dust this off and take another stab at it to
get some more results.

I wouldn't mind seeing min-configs for some boards in the main
source tree.

I think this has been discussed before, and one problem is
agreeing on what feature set to include in such configs.
At a minimum, it would be nice to have a few nice examples
of really, really small configs for things like qemus for different
architectures (just to give embedded developers who are working
on size a starting point).

> OK, that's a visible difference.
> 
> Are these 30 patches each gaining 4kB or are there a few patches that 
> bring most gain?
It's a spectrum.  One or two yield something over 20k, a few more
yield about 15k, then there's a long tail going down from about 8k
to very small savings (I should look at the size results more often,
some of these are not worth carrying around.  I've been just
maintaining the whole group as a set, and haven't looked at
the size effect of individual patches/options for a while.)

Oh, and if anyone is wondering why I started with a 7k one,
rather than something else with more "punch", it was a
relatively simple one (and it's option name started with
a letter near the beginning of the alphabet ;-)

> And are you only measuring the kernel image size or also theruntime 
> memory usage?
I also measure runtime, but my current test is not very good.
I do everything over an NFS-mount, and any network hiccups during boot
disturb the memory footprint.  I'm just using a simple "free"
over telnet, and comparing that vs. a baseline.

I suppose a simple "fix" would be to boot each test kernel several
times and discard outlying data points.

A few linux-tiny patches have little effect on kernel image size,
but a nice effect on runtime memory.  (e.g. There's one that changes
some mempool settings, that has only a 1k compile-time effect,
but a 12k runtime effect.)

I've been building up a table with real numbers, but I found
several problem areas with my test.  I'll try to get some numbers
out early next week.
 -- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-05 23:35               ` Rob Landley
@ 2008-06-07  3:35                 ` H. Peter Anvin
  2008-06-09 11:38                   ` Jamie Lokier
  0 siblings, 1 reply; 85+ messages in thread
From: H. Peter Anvin @ 2008-06-07  3:35 UTC (permalink / raw)
  To: Rob Landley; +Cc: Paul Mundt, linux-embedded

Rob Landley wrote:
>> Except for the minor fact that most early boot debugging happens long
>> before the console subsystem is even available..
> 
> Isn't that why CONFIG_EARLY_PRINTK was written?  (And I mentioned Linus's hack 
> using the RTC to see how far the _really_ early stuff got.)

Don't think that works with frame buffers.

> Earlier I was trying to distinguish between /dev/console (no controlling tty), 
> virtual terminals (tied to old VGA hardware although possibly usable through 
> the framebuffer, I'm unclear on this), the tty layer (which is what I 
> initially thought the patch was aimed at, but it seems to be the vga VT 
> stuff), and having a bitmapped display (may be GUI only).  Four separate 
> things, I've lost track of which we're talking about here.
> 
> When you imply it's stupid to think anyone will ever have a console on an 
> embedded system (because we all know the embedded world is far more uniform 
> than crazy diverse things like the desktop space), which of these are _you_ 
> referring to?

I'm talking about the virtual console stuff, which is *not* inherently 
tied to VGA.

The issue is whether it makes sense to have virtual console capability 
on a device which is so constrained that you want a *subset* of the 
functionality in place.

	-hpa


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-06 23:47       ` Tim Bird
@ 2008-06-07  4:29         ` Rob Landley
  2008-06-10  1:37           ` mainlining min-configs Tim Bird
  0 siblings, 1 reply; 85+ messages in thread
From: Rob Landley @ 2008-06-07  4:29 UTC (permalink / raw)
  To: Tim Bird; +Cc: Adrian Bunk, linux-tiny, linux-embedded, linux kernel

On Friday 06 June 2008 18:47:47 Tim Bird wrote:
> At a minimum, it would be nice to have a few nice examples
> of really, really small configs for things like qemus for different
> architectures (just to give embedded developers who are working
> on size a starting point).

That's more or less what I'm trying to do with my Firmware Linux project: 
creating cross compilers and minimal native build environments for every qemu 
target.

http://landley.net/code/firmware
http://landley.net/hg/firmware

I currently have variants of arm, powerpc, mips, x86, and x86-64 working, and 
several others (sh4, sparc, m68k) in various stages of development.  (I think 
sparc just needs one minor bug fixed, I just can't bring myself to _care_ 
about sparc.  m68k is hitting an internal compiler error in gcc.  sh4 isn't 
properly supported by qemu yet: no boards with a hard drive.)

I just did a new release, which finally has the distcc trick implemented.  
(Not _quite_ useful yet because the build environment is missing seven 
important commands I hope to add next release.)

Feel free to ask me any questions about it...

Rob

P.S.  The mips kernel config recently changed because the qemu mips platform 
went away in 2.6.25, and the new one is malta_defconfig with some of the 
obvious options removed.  I'm working on a more stripped-down one as we 
speak, but I didn't hold up the release for it...
-- 
"One of my most productive days was throwing away 1000 lines of code."
  - Ken Thompson.

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-07  3:35                 ` H. Peter Anvin
@ 2008-06-09 11:38                   ` Jamie Lokier
  2008-06-09 11:51                     ` Geert Uytterhoeven
  0 siblings, 1 reply; 85+ messages in thread
From: Jamie Lokier @ 2008-06-09 11:38 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: Rob Landley, Paul Mundt, linux-embedded

H. Peter Anvin wrote:
> >When you imply it's stupid to think anyone will ever have a console on an 
> >embedded system (because we all know the embedded world is far more 
> >uniform than crazy diverse things like the desktop space), which of these 
> >are _you_ referring to?
> 
> I'm talking about the virtual console stuff, which is *not* inherently 
> tied to VGA.
> 
> The issue is whether it makes sense to have virtual console capability 
> on a device which is so constrained that you want a *subset* of the 
> functionality in place.

The uClinux devices I ship do have that.  System console is the serial
port on a board header.  But field engineers are instructed to plug in
a USB keyboard and Alt-F2 to get a diagnostic screen (we call it a
"shell" ;-).  Occasionally even customers with specific requirements
get to use that.

We had to patch the kernel to get the combination of virtual terminal
capability on a framebuffer, but system console messages not to the
framebuffer.  The uClinux (2.4.x) disables system console on a virtual
terminal, but due to some confusion(*), it has the side effect that
you can't attach a VT to a framebuffer at all.  Several howtos provide
a "con2fb" program which didn't work with uClinux.  We had to fix that.

(*) - the word "console" is used for four different concepts in the
kernel, sometimes in the same code, and it seems to have confused
someone.(**)  In the following, CONFIG_VT_CONSOLE should not control
take_over_console(); the two "console" are not the same concept:

#ifdef CONFIG_VT_CONSOLE
    take_over_console(&fb_con, first_fb_vc, last_fb_vc, fbcon_is_default);
#endif

(**) So I suggest using "virtual terminal" consistently in the code,
and when talking about them, would be an improvement.

-- Jamie

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-09 11:38                   ` Jamie Lokier
@ 2008-06-09 11:51                     ` Geert Uytterhoeven
  0 siblings, 0 replies; 85+ messages in thread
From: Geert Uytterhoeven @ 2008-06-09 11:51 UTC (permalink / raw)
  To: Jamie Lokier; +Cc: H. Peter Anvin, Rob Landley, Paul Mundt, linux-embedded

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1559 bytes --]

On Mon, 9 Jun 2008, Jamie Lokier wrote:
> The uClinux devices I ship do have that.  System console is the serial
> port on a board header.  But field engineers are instructed to plug in
> a USB keyboard and Alt-F2 to get a diagnostic screen (we call it a
> "shell" ;-).  Occasionally even customers with specific requirements
> get to use that.
> 
> We had to patch the kernel to get the combination of virtual terminal
> capability on a framebuffer, but system console messages not to the
> framebuffer.  The uClinux (2.4.x) disables system console on a virtual
> terminal, but due to some confusion(*), it has the side effect that
> you can't attach a VT to a framebuffer at all.  Several howtos provide
> a "con2fb" program which didn't work with uClinux.  We had to fix that.

I think this is due to using 2.4.

In 2.6, al you have to do is pass `console=ttyS0' (replace `ttyS0' by your
serial port device) to the kernel, and system console messages will no longer
appear on the frame buffer (unless you add an explicit `console=tty0').
With kind regards,

Geert Uytterhoeven
Software Architect

Sony Techsoft Centre
The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium

Phone:    +32 (0)2 700 8453
Fax:      +32 (0)2 700 8622
E-mail:   Geert.Uytterhoeven@sonycom.com
Internet: http://www.sony-europe.com/

Sony Technology and Software Centre Europe
A division of Sony Service Centre (Europe) N.V.
Registered office: Technologielaan 7 · B-1840 Londerzeel · Belgium
VAT BE 0413.825.160 · RPR Brussels
Fortis 293-0376800-10 GEBA-BE-BB

^ permalink raw reply	[flat|nested] 85+ messages in thread

* mainlining min-configs...
  2008-06-07  4:29         ` Rob Landley
@ 2008-06-10  1:37           ` Tim Bird
  2008-06-10  3:14             ` Ben Nizette
                               ` (3 more replies)
  0 siblings, 4 replies; 85+ messages in thread
From: Tim Bird @ 2008-06-10  1:37 UTC (permalink / raw)
  To: Rob Landley; +Cc: Adrian Bunk, linux-tiny, linux-embedded, linux kernel

Rob Landley wrote:
> On Friday 06 June 2008 18:47:47 Tim Bird wrote:
>> At a minimum, it would be nice to have a few nice examples
>> of really, really small configs for things like qemus for different
>> architectures (just to give embedded developers who are working
>> on size a starting point).
> 
> That's more or less what I'm trying to do with my Firmware Linux project: 
> creating cross compilers and minimal native build environments for every qemu 
> target.

Any chance of getting your minimal configs from Firmware Linux mainlined?

Does anyone else think this would be valuable?  If not in mainline, it
would be nice to collect them somewhere, to compare what options different
developers decide turn on or off.
 -- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10  1:37           ` mainlining min-configs Tim Bird
@ 2008-06-10  3:14             ` Ben Nizette
  2008-06-10  4:16               ` Paul Mundt
  2008-06-10  8:36             ` Adrian Bunk
                               ` (2 subsequent siblings)
  3 siblings, 1 reply; 85+ messages in thread
From: Ben Nizette @ 2008-06-10  3:14 UTC (permalink / raw)
  To: Tim Bird; +Cc: Rob Landley, Adrian Bunk, linux-tiny, linux-embedded,
	linux kernel


On Mon, 2008-06-09 at 18:37 -0700, Tim Bird wrote:
> Rob Landley wrote:
> > On Friday 06 June 2008 18:47:47 Tim Bird wrote:
> >> At a minimum, it would be nice to have a few nice examples
> >> of really, really small configs for things like qemus for different
> >> architectures (just to give embedded developers who are working
> >> on size a starting point).
> > 
> > That's more or less what I'm trying to do with my Firmware Linux project: 
> > creating cross compilers and minimal native build environments for every qemu 
> > target.
> 
> Any chance of getting your minimal configs from Firmware Linux mainlined?

allnoconfig? ;-)

> 
> Does anyone else think this would be valuable?  If not in mainline, it
> would be nice to collect them somewhere, to compare what options different
> developers decide turn on or off.

Seriously though I maintain a bunch of AVR32 minimal configs.  I keep
them as a smallest-working-config baseline to build on; I'm sure others
would get value from having easy access to that kind of thing.

IMO It'd be nice to wire them to an automagic bloat-o-meter as well, but
I suspect no-one would really take notice anyway.

	--Ben.

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10  3:14             ` Ben Nizette
@ 2008-06-10  4:16               ` Paul Mundt
  0 siblings, 0 replies; 85+ messages in thread
From: Paul Mundt @ 2008-06-10  4:16 UTC (permalink / raw)
  To: Ben Nizette
  Cc: Tim Bird, Rob Landley, Adrian Bunk, linux-tiny, linux-embedded,
	linux kernel

On Tue, Jun 10, 2008 at 01:14:36PM +1000, Ben Nizette wrote:
> On Mon, 2008-06-09 at 18:37 -0700, Tim Bird wrote:
> > Rob Landley wrote:
> > > On Friday 06 June 2008 18:47:47 Tim Bird wrote:
> > >> At a minimum, it would be nice to have a few nice examples
> > >> of really, really small configs for things like qemus for different
> > >> architectures (just to give embedded developers who are working
> > >> on size a starting point).
> > > 
> > > That's more or less what I'm trying to do with my Firmware Linux project: 
> > > creating cross compilers and minimal native build environments for every qemu 
> > > target.
> > 
> > Any chance of getting your minimal configs from Firmware Linux mainlined?
> 
> allnoconfig? ;-)
> 
It's a bit counter-intuitive, given the inverted logic employed by many
Kconfig options (enable vs disable and so on), default choices, select
abuse, etc. If your platform happens to select EMBEDDED it's a pretty
close approximation, though.

> > Does anyone else think this would be valuable?  If not in mainline, it
> > would be nice to collect them somewhere, to compare what options different
> > developers decide turn on or off.
> 
> Seriously though I maintain a bunch of AVR32 minimal configs.  I keep
> them as a smallest-working-config baseline to build on; I'm sure others
> would get value from having easy access to that kind of thing.
> 
> IMO It'd be nice to wire them to an automagic bloat-o-meter as well, but
> I suspect no-one would really take notice anyway.
> 
Most people are not opposed to taking additional defconfigs if there's
someone intends to use them and generally look after them. Many configs
are already included in linux-next and similar for nightly builds, but
that's more about making sure things keep working rather than size
measurements. On the other hand, it would be useful to extend that sort
of infrastructure to account for size changes, also, and there's
certainly no reason why minimal configs can't be rolled in, too.

For testing things like allmodconfig/allyesconfig and especially
randconfigs tend to be the most useful, but it's fairly difficult to
extract meaningful size statistics out of any of those. Likewise, a
minimal config tends to be pointless to the extent that it's not actually
useful for anything. Observing the growth in size on configurations that
people are using in the real world is far more useful. Measuring
arbitrary growth in a configuration that's not even usable isn't really
much of an indicator of anything, except that someone might have too much
free time on their hands.

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10  1:37           ` mainlining min-configs Tim Bird
  2008-06-10  3:14             ` Ben Nizette
@ 2008-06-10  8:36             ` Adrian Bunk
  2008-06-10 18:18               ` Tim Bird
  2008-06-11  3:48               ` Rob Landley
  2008-06-11  3:32             ` Rob Landley
  2008-06-11  8:59             ` Christian MICHON
  3 siblings, 2 replies; 85+ messages in thread
From: Adrian Bunk @ 2008-06-10  8:36 UTC (permalink / raw)
  To: Tim Bird; +Cc: Rob Landley, linux-tiny, linux-embedded, linux kernel

On Mon, Jun 09, 2008 at 06:37:29PM -0700, Tim Bird wrote:
> Rob Landley wrote:
> > On Friday 06 June 2008 18:47:47 Tim Bird wrote:
> >> At a minimum, it would be nice to have a few nice examples
> >> of really, really small configs for things like qemus for different
> >> architectures (just to give embedded developers who are working
> >> on size a starting point).
> > 
> > That's more or less what I'm trying to do with my Firmware Linux project: 
> > creating cross compilers and minimal native build environments for every qemu 
> > target.
> 
> Any chance of getting your minimal configs from Firmware Linux mainlined?

It could help finding compile errors in some more "exotic" configurations
early (but I'd question whether the Rob's current configs are really 
both minimal and typical for embedded usage - e.g the i686 one having 
both ext2 and ext3 enabled but no JFFS2; and enabling all IO schedulers 
in the kernel as well as ACPI is also not a typical embedded setup).

But if you want to discover size change with minimal configs early you 
anyway have to both:
- constantly keep your configs in shape so that they are both minimal
  for some set of hardware support and features and
- investigate for any size changes what caused them
  (experience has shown that putting information on a webpage doesn't
   fix problems - even for compile errors).

You need both, and ideally constantly done by the same person against 
Linus' tree, -next and -mm.

Where to get your minimal configs from at the start is just a small 
thing at the beginning - don't underestimate the required manual work 
that will have to be done each week.

> Does anyone else think this would be valuable?  If not in mainline, it
> would be nice to collect them somewhere, to compare what options different
> developers decide turn on or off.

You already have this when you look at e.g. the ARM defconfigs in the 
kernel

>  -- Tim

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10  8:36             ` Adrian Bunk
@ 2008-06-10 18:18               ` Tim Bird
  2008-06-10 18:30                 ` Adrian Bunk
  2008-06-11  5:51                 ` Rob Landley
  2008-06-11  3:48               ` Rob Landley
  1 sibling, 2 replies; 85+ messages in thread
From: Tim Bird @ 2008-06-10 18:18 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Rob Landley, linux-tiny, linux-embedded, linux kernel

Adrian Bunk wrote:
> But if you want to discover size change with minimal configs early you 
> anyway have to both:
> - constantly keep your configs in shape so that they are both minimal
>   for some set of hardware support and features and
> - investigate for any size changes what caused them
>   (experience has shown that putting information on a webpage doesn't
>    fix problems - even for compile errors).
Amen to that last point!

> 
> You need both, and ideally constantly done by the same person against 
> Linus' tree, -next and -mm.
> 
> Where to get your minimal configs from at the start is just a small 
> thing at the beginning - don't underestimate the required manual work 
> that will have to be done each week.

This is probably why I haven't signed up for this myself previously.
I'd be interested in finding out the rate at which defconfigs
bitrot in mainline.  My experience is that usually a 'make oldconfig'
will produce something usable.  But maybe that wouldn't be as
effective with a minconfig?

Maybe I'll collect some minconfigs, and try maintaining them
in my own tree for a few releases to see how onerous it is...
The problem is that I can only reasonably do this for boards
I have, so there'd only be a few.  But maybe that'd be enough.
They would really only be meant as examples.
 -- Tim


=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10 18:18               ` Tim Bird
@ 2008-06-10 18:30                 ` Adrian Bunk
  2008-06-10 18:51                   ` Sam Ravnborg
  2008-06-11  5:17                   ` Rob Landley
  2008-06-11  5:51                 ` Rob Landley
  1 sibling, 2 replies; 85+ messages in thread
From: Adrian Bunk @ 2008-06-10 18:30 UTC (permalink / raw)
  To: Tim Bird; +Cc: Rob Landley, linux-tiny, linux-embedded, linux kernel

On Tue, Jun 10, 2008 at 11:18:30AM -0700, Tim Bird wrote:
> Adrian Bunk wrote:
>...
> > You need both, and ideally constantly done by the same person against 
> > Linus' tree, -next and -mm.
> > 
> > Where to get your minimal configs from at the start is just a small 
> > thing at the beginning - don't underestimate the required manual work 
> > that will have to be done each week.
> 
> This is probably why I haven't signed up for this myself previously.
> I'd be interested in finding out the rate at which defconfigs
> bitrot in mainline.  My experience is that usually a 'make oldconfig'
> will produce something usable.  But maybe that wouldn't be as
> effective with a minconfig?
>...

Someone has to run the 'make oldconfig' for all configs...

And no, you cannot get that completely automated.

>  -- Tim

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10 18:30                 ` Adrian Bunk
@ 2008-06-10 18:51                   ` Sam Ravnborg
  2008-06-10 19:05                     ` Adrian Bunk
  2008-06-11  5:09                     ` Rob Landley
  2008-06-11  5:17                   ` Rob Landley
  1 sibling, 2 replies; 85+ messages in thread
From: Sam Ravnborg @ 2008-06-10 18:51 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Tim Bird, Rob Landley, linux-tiny, linux-embedded, linux kernel

On Tue, Jun 10, 2008 at 09:30:04PM +0300, Adrian Bunk wrote:
> On Tue, Jun 10, 2008 at 11:18:30AM -0700, Tim Bird wrote:
> > Adrian Bunk wrote:
> >...
> > > You need both, and ideally constantly done by the same person against 
> > > Linus' tree, -next and -mm.
> > > 
> > > Where to get your minimal configs from at the start is just a small 
> > > thing at the beginning - don't underestimate the required manual work 
> > > that will have to be done each week.
> > 
> > This is probably why I haven't signed up for this myself previously.
> > I'd be interested in finding out the rate at which defconfigs
> > bitrot in mainline.  My experience is that usually a 'make oldconfig'
> > will produce something usable.  But maybe that wouldn't be as
> > effective with a minconfig?
> >...
> 
> Someone has to run the 'make oldconfig' for all configs...
> 
> And no, you cannot get that completely automated.

When I get my kconfig patchset polished you will be able to do:

make K=my_mini_config allnoconfig

Thus selecting 'no' for all new symbols in an automated fashion.
I know that in a few cases 'no' is the wrong answer but in the
99% of the cases 'no' is perfectly valid.

	Sam

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10 18:51                   ` Sam Ravnborg
@ 2008-06-10 19:05                     ` Adrian Bunk
  2008-06-11  5:09                     ` Rob Landley
  1 sibling, 0 replies; 85+ messages in thread
From: Adrian Bunk @ 2008-06-10 19:05 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Tim Bird, Rob Landley, linux-tiny, linux-embedded, linux kernel

On Tue, Jun 10, 2008 at 08:51:23PM +0200, Sam Ravnborg wrote:
> On Tue, Jun 10, 2008 at 09:30:04PM +0300, Adrian Bunk wrote:
> > On Tue, Jun 10, 2008 at 11:18:30AM -0700, Tim Bird wrote:
> > > Adrian Bunk wrote:
> > >...
> > > > You need both, and ideally constantly done by the same person against 
> > > > Linus' tree, -next and -mm.
> > > > 
> > > > Where to get your minimal configs from at the start is just a small 
> > > > thing at the beginning - don't underestimate the required manual work 
> > > > that will have to be done each week.
> > > 
> > > This is probably why I haven't signed up for this myself previously.
> > > I'd be interested in finding out the rate at which defconfigs
> > > bitrot in mainline.  My experience is that usually a 'make oldconfig'
> > > will produce something usable.  But maybe that wouldn't be as
> > > effective with a minconfig?
> > >...
> > 
> > Someone has to run the 'make oldconfig' for all configs...
> > 
> > And no, you cannot get that completely automated.
> 
> When I get my kconfig patchset polished you will be able to do:
> 
> make K=my_mini_config allnoconfig

  make KCONFIG_ALLCONFIG=my_mini_config allnoconfig

already does the same.

> Thus selecting 'no' for all new symbols in an automated fashion.
> I know that in a few cases 'no' is the wrong answer but in the
> 99% of the cases 'no' is perfectly valid.

The 1% contain cases like e.g. a kconfig variable you need getting
a new dependency.

> 	Sam

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10  1:37           ` mainlining min-configs Tim Bird
  2008-06-10  3:14             ` Ben Nizette
  2008-06-10  8:36             ` Adrian Bunk
@ 2008-06-11  3:32             ` Rob Landley
  2008-06-11  8:59             ` Christian MICHON
  3 siblings, 0 replies; 85+ messages in thread
From: Rob Landley @ 2008-06-11  3:32 UTC (permalink / raw)
  To: Tim Bird; +Cc: Adrian Bunk, linux-tiny, linux-embedded, linux kernel

On Monday 09 June 2008 20:37:29 Tim Bird wrote:
> Rob Landley wrote:
> > On Friday 06 June 2008 18:47:47 Tim Bird wrote:
> >> At a minimum, it would be nice to have a few nice examples
> >> of really, really small configs for things like qemus for different
> >> architectures (just to give embedded developers who are working
> >> on size a starting point).
> >
> > That's more or less what I'm trying to do with my Firmware Linux project:
> > creating cross compilers and minimal native build environments for every
> > qemu target.
>
> Any chance of getting your minimal configs from Firmware Linux mainlined?

There's _slightly_ more to it than that if you want to actually get a working 
environment.  (For example, I'm feeding ppc an extra patch and a boot rom, 
both from Milton Miller.  The config is useless without those.  I can walk 
you through the status and reasoning of each platform if you'd like...)

I have no objection to people taking the configs I worked out for my purposes 
and using them for any purpose if they want to do so, but my idea 
of "working" involves having a hard drive and a network connection (so I can 
run builds under the emulator using distcc to call out to the cross 
compiler).  It's the minimal functionality _I_ need.  I'm just offering it as 
a starting point, because you specifically mentioned configs for qemu.

If you're looking to compare and contrast configurations, possibly a more 
_useful_ thing would be to convert all the kernel's existing *_defconfig 
files to *_miniconfig files so you could see what they all _are_.

Lemme take a stab at that, actually...

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10  8:36             ` Adrian Bunk
  2008-06-10 18:18               ` Tim Bird
@ 2008-06-11  3:48               ` Rob Landley
  1 sibling, 0 replies; 85+ messages in thread
From: Rob Landley @ 2008-06-11  3:48 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

On Tuesday 10 June 2008 03:36:10 Adrian Bunk wrote:
> On Mon, Jun 09, 2008 at 06:37:29PM -0700, Tim Bird wrote:
> > Rob Landley wrote:
> > > On Friday 06 June 2008 18:47:47 Tim Bird wrote:
> > >> At a minimum, it would be nice to have a few nice examples
> > >> of really, really small configs for things like qemus for different
> > >> architectures (just to give embedded developers who are working
> > >> on size a starting point).
> > >
> > > That's more or less what I'm trying to do with my Firmware Linux
> > > project: creating cross compilers and minimal native build environments
> > > for every qemu target.
> >
> > Any chance of getting your minimal configs from Firmware Linux mainlined?
>
> It could help finding compile errors in some more "exotic" configurations
> early (but I'd question whether the Rob's current configs are really
> both minimal and typical for embedded usage - e.g the i686 one having
> both ext2 and ext3 enabled but no JFFS2; and enabling all IO schedulers
> in the kernel as well as ACPI is also not a typical embedded setup).

No argument there.  I just offered them as a starting point for supporting 
each qemu target.

I'm emulating a native build environment, meaning I need an emulated hard 
drive with gibabytes of writable space; lots of embedded devices use 
initramfs and nothing else.  I'm using distcc so I need a working network 
card and network stack, which lots of devices won't need.  Also, some of them 
(mips comes to mind) need to be stripped down some more.

(The ext2 plus ext3 thing is because ext2 isn't happy about writable mounts 
where the emulator gets killed out from under it and then needs fsck, but 
ext3 isn't really happy with small read-only mounts ala initrd.  I keep 
meaning to teach ext3 to work without a #*%&# journal, at least on read only 
mounts, but it's about 150 entries down on my todo list...)

I keep meaning to refactor the configs into two files, so "just enough to boot 
this with a serial console" is a separate file from things like filesystems 
and network stack that are common to all of 'em.  (Then concatenate the two 
to get a miniconfig.)  I'm not _quite_ convinced the extra build complexity's 
worth it...

> But if you want to discover size change with minimal configs early you
> anyway have to both:
> - constantly keep your configs in shape so that they are both minimal
>   for some set of hardware support and features and

I find miniconfig helps here.

> - investigate for any size changes what caused them
>   (experience has shown that putting information on a webpage doesn't
>    fix problems - even for compile errors).
>
> You need both, and ideally constantly done by the same person against
> Linus' tree, -next and -mm.

Speaking from experience, this is a huge #*%&# pain.  (I'm trying to track 
this sort of changes for less than a dozen qemu configs.  There are hundreds 
of defconfigs in the tree, most of which I can't boot test...)

However, qemu can be automated and scripted.  (Especially when /dev/console 
attaches to qemu's stdin and stdout.  That's why I need each platform to know 
how to shut _down_, and exit the emulator.  Currently, powerpc -M prep 
doesn't do this. :P)

> Where to get your minimal configs from at the start is just a small
> thing at the beginning - don't underestimate the required manual work
> that will have to be done each week.

Eh, I'd suggest every -pre release.

And starting with tracking the size regressions in just _one_ platform is 
probably best.  I'd suggest either x86 (32 bit, matches arm) or x86_64 
(largest userbase at this point, even Via's finally switched over).

> > Does anyone else think this would be valuable?  If not in mainline, it
> > would be nice to collect them somewhere, to compare what options
> > different developers decide turn on or off.
>
> You already have this when you look at e.g. the ARM defconfigs in the
> kernel

I've got a script running to convert all the 2.6.25 defconfigs into 
miniconfigs, which I find makes 'em easier to read.  I'll post the results 
when it finishes...

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10 18:51                   ` Sam Ravnborg
  2008-06-10 19:05                     ` Adrian Bunk
@ 2008-06-11  5:09                     ` Rob Landley
  2008-06-11  6:39                       ` Sam Ravnborg
  1 sibling, 1 reply; 85+ messages in thread
From: Rob Landley @ 2008-06-11  5:09 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Adrian Bunk, Tim Bird, linux-tiny, linux-embedded, linux kernel

On Tuesday 10 June 2008 13:51:23 Sam Ravnborg wrote:
> On Tue, Jun 10, 2008 at 09:30:04PM +0300, Adrian Bunk wrote:
> > On Tue, Jun 10, 2008 at 11:18:30AM -0700, Tim Bird wrote:
> > > Adrian Bunk wrote:
> > >...
> > >
> > > > You need both, and ideally constantly done by the same person against
> > > > Linus' tree, -next and -mm.
> > > >
> > > > Where to get your minimal configs from at the start is just a small
> > > > thing at the beginning - don't underestimate the required manual work
> > > > that will have to be done each week.
> > >
> > > This is probably why I haven't signed up for this myself previously.
> > > I'd be interested in finding out the rate at which defconfigs
> > > bitrot in mainline.  My experience is that usually a 'make oldconfig'
> > > will produce something usable.  But maybe that wouldn't be as
> > > effective with a minconfig?
> > >...
> >
> > Someone has to run the 'make oldconfig' for all configs...
> >
> > And no, you cannot get that completely automated.
>
> When I get my kconfig patchset polished you will be able to do:
>
> make K=my_mini_config allnoconfig

So you're renaming KCONFIG_ALLNOCONFIG then?

> Thus selecting 'no' for all new symbols in an automated fashion.
> I know that in a few cases 'no' is the wrong answer but in the
> 99% of the cases 'no' is perfectly valid.

For a "make miniconfig", warnings should be errors.  (Attempts to set unknown 
symbols are an error with a miniconfig, the operation should exit with a 
nonzero error code.)  Also, all the stuff allnoconfig puts to stdout 
shouldn't be there for miniconfig, only the stuff it writes to stderr right 
now should show up.

I think I did more than that, but I'd have to look at my old patches...

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10 18:30                 ` Adrian Bunk
  2008-06-10 18:51                   ` Sam Ravnborg
@ 2008-06-11  5:17                   ` Rob Landley
  1 sibling, 0 replies; 85+ messages in thread
From: Rob Landley @ 2008-06-11  5:17 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

On Tuesday 10 June 2008 13:30:04 Adrian Bunk wrote:
> On Tue, Jun 10, 2008 at 11:18:30AM -0700, Tim Bird wrote:
> > Adrian Bunk wrote:
> >...
> >
> > > You need both, and ideally constantly done by the same person against
> > > Linus' tree, -next and -mm.
> > >
> > > Where to get your minimal configs from at the start is just a small
> > > thing at the beginning - don't underestimate the required manual work
> > > that will have to be done each week.
> >
> > This is probably why I haven't signed up for this myself previously.
> > I'd be interested in finding out the rate at which defconfigs
> > bitrot in mainline.  My experience is that usually a 'make oldconfig'
> > will produce something usable.  But maybe that wouldn't be as
> > effective with a minconfig?
> >...
>
> Someone has to run the 'make oldconfig' for all configs...

Running "make oldconfig" isn't necessarily enough.  If you can't build the 
result, you don't really _know_ if it's going to work.

For example, in 2.6.23 new guard symbols showed up (CONFIG_BLK_DEV and 
CONFIG_SCSI_LOWLEVEL), meaning if you had stuff under those selected but they 
defaulted to off, everything under them would silently vanish.  (I don't 
remember what their defaults were, but I do remember it broke miniconfig.)

I need to go through and teach "make miniconfig" that when you set something 
inside a menu, you set its menu symbol as well (all the way up to root if 
necessary).  That would allow the resulting config to strip down to fewer 
symbols and not get broken by the addition of guard symbols between 
versions...

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10 18:18               ` Tim Bird
  2008-06-10 18:30                 ` Adrian Bunk
@ 2008-06-11  5:51                 ` Rob Landley
  1 sibling, 0 replies; 85+ messages in thread
From: Rob Landley @ 2008-06-11  5:51 UTC (permalink / raw)
  To: Tim Bird; +Cc: Adrian Bunk, linux-tiny, linux-embedded, linux kernel

On Tuesday 10 June 2008 13:18:30 Tim Bird wrote:
> bitrot in mainline.  My experience is that usually a 'make oldconfig'
> will produce something usable.  But maybe that wouldn't be as
> effective with a minconfig?

I'm probably going to have to start breaking down and patching the kconfig 
infrastructure.  (Today, I drove allnoconfig into an endless loop.  Go me.)

So far the only "gotcha" I've found is added guard symbols, and it's 
semantically pretty clear what a miniconfig should do there: force open the 
menu that contains a symbol you're setting, rather than _ignore_ that symbol.

> Maybe I'll collect some minconfigs, and try maintaining them
> in my own tree for a few releases to see how onerous it is...

The thing about my .configs is that I boot test them each new kernel release, 
using qemu.  This is 100% scriptable, actually, which you can seldom say 
about real hardware.

> The problem is that I can only reasonably do this for boards
> I have, so there'd only be a few.  But maybe that'd be enough.
> They would really only be meant as examples.

Start with qemu and work your way out?  That's what I'm doing.  (Any platform 
that isn't emulated by qemu is almost by definition not very interesting...)

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-11  5:09                     ` Rob Landley
@ 2008-06-11  6:39                       ` Sam Ravnborg
  2008-06-11 19:09                         ` Tim Bird
  0 siblings, 1 reply; 85+ messages in thread
From: Sam Ravnborg @ 2008-06-11  6:39 UTC (permalink / raw)
  To: Rob Landley
  Cc: Adrian Bunk, Tim Bird, linux-tiny, linux-embedded, linux kernel

> >
> > When I get my kconfig patchset polished you will be able to do:
> >
> > make K=my_mini_config allnoconfig
> 
> So you're renaming KCONFIG_ALLNOCONFIG then?

Somehow yes. The K= notation I hope will see more use. Only very few
people know the KCONFIG_ALL*CONFIG= trick.

> 
> > Thus selecting 'no' for all new symbols in an automated fashion.
> > I know that in a few cases 'no' is the wrong answer but in the
> > 99% of the cases 'no' is perfectly valid.
> 
> For a "make miniconfig", warnings should be errors.  (Attempts to set unknown 
> symbols are an error with a miniconfig, the operation should exit with a 
> nonzero error code.)  Also, all the stuff allnoconfig puts to stdout 
> shouldn't be there for miniconfig, only the stuff it writes to stderr right 
> now should show up.

My reference was to a minimal config of a system - not to a miniconfig
as your patcset produces. Just to make it clear.

The patchset I refer will also reduce the nosie generated during make *config.

	Sam

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: [PATCH] console - Add configurable support for console charset translation
  2008-06-04 10:33 ` [PATCH] console - Add configurable support for console charset translation Adrian Bunk
                     ` (2 preceding siblings ...)
  2008-06-04 18:51   ` Tim Bird
@ 2008-06-11  7:08   ` Holger Schurig
  3 siblings, 0 replies; 85+ messages in thread
From: Holger Schurig @ 2008-06-11  7:08 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Tim Bird, linux-tiny, linux-embedded, linux kernel

> Does the linux-tiny approach of adding a kconfig variable for
> each 5kB of code actually make sense? I'm asking since an
> exploding amount of kconfig variables and their
> interdependencies have a not so small maintainance impact in
> the long term.

I don't want to answer for the general case, but I can answer for 
my specific case.

My device has Intel Strataflash, which have 256 kB size of 
erase-sectors. I reserved one sector for u-boot (which is 
plenty) and 4 for linux --- which uses to be plenty in the 
2.4.21 days.

It is no longer plenty, some years ago I switched one of the 
targets to 2.6.15. The 4 sectors still were ok. Some months ago 
I switched to 2.6.24/2.6.25 and now space is VERY scarce. Just 
yesterday, when I trashed unionfs because of some misbehavior I 
couldn't fix by myself and went with aufs. Now my kernel 
suddenly became 14 kB too big for my device.

Now, tiny-linux patches are at 2.6.23, but I could still adapt a 
bunch of them to 2.6.25 and with that and some changed configs 
my headroom is now again 26460 bytes. Unfortunately, my custom 
boot logo had to go :-/

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-10  1:37           ` mainlining min-configs Tim Bird
                               ` (2 preceding siblings ...)
  2008-06-11  3:32             ` Rob Landley
@ 2008-06-11  8:59             ` Christian MICHON
  3 siblings, 0 replies; 85+ messages in thread
From: Christian MICHON @ 2008-06-11  8:59 UTC (permalink / raw)
  To: Tim Bird; +Cc: Rob Landley, linux-tiny, linux kernel, linux-embedded,
	Adrian Bunk

On Tue, Jun 10, 2008 at 3:37 AM, Tim Bird <tim.bird@am.sony.com> wrote:
> Any chance of getting your minimal configs from Firmware Linux mainlined?
>
> Does anyone else think this would be valuable?  If not in mainline, it
> would be nice to collect them somewhere, to compare what options different
> developers decide turn on or off.
>  -- Tim
>

this is very valuable. DetaolB uses this concept. Download the latest
iso of DetaolB, boot it and look for /proc/miniconfig.gz.
you'll see an example for 2.6.23 there.

you can find old patches there:
http://downloads.sourceforge.net/detaolb/detaolb_v03-linux-2.6.21.patch

-- 
Christian
--
http://detaolb.sourceforge.net/, a linux distribution for Qemu with Git inside !

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-11  6:39                       ` Sam Ravnborg
@ 2008-06-11 19:09                         ` Tim Bird
  2008-06-11 19:22                           ` Sam Ravnborg
                                             ` (2 more replies)
  0 siblings, 3 replies; 85+ messages in thread
From: Tim Bird @ 2008-06-11 19:09 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Rob Landley, Adrian Bunk, linux-tiny, linux-embedded,
	linux kernel

Sam Ravnborg wrote:
>>> When I get my kconfig patchset polished you will be able to do:
>>>
>>> make K=my_mini_config allnoconfig
>> So you're renaming KCONFIG_ALLNOCONFIG then?
> 
> Somehow yes. The K= notation I hope will see more use. Only very few
> people know the KCONFIG_ALL*CONFIG= trick.

Indeed.  I had never heard of it, but it appears to have been
around for at least 18 months.  It looks like Randy Dunlap tried
to submit some documentation for this in Oct 2006, but it didn't
make it in?

Is this feature widely used?  Should it be doc'ed now
or are you about to make it obsolete?
 -- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-11 19:09                         ` Tim Bird
@ 2008-06-11 19:22                           ` Sam Ravnborg
  2008-06-11 19:36                           ` Adrian Bunk
  2008-06-12  0:01                           ` Rob Landley
  2 siblings, 0 replies; 85+ messages in thread
From: Sam Ravnborg @ 2008-06-11 19:22 UTC (permalink / raw)
  To: Tim Bird; +Cc: Rob Landley, Adrian Bunk, linux-tiny, linux-embedded,
	linux kernel

On Wed, Jun 11, 2008 at 12:09:56PM -0700, Tim Bird wrote:
> Sam Ravnborg wrote:
> >>> When I get my kconfig patchset polished you will be able to do:
> >>>
> >>> make K=my_mini_config allnoconfig
> >> So you're renaming KCONFIG_ALLNOCONFIG then?
> > 
> > Somehow yes. The K= notation I hope will see more use. Only very few
> > people know the KCONFIG_ALL*CONFIG= trick.
> 
> Indeed.  I had never heard of it, but it appears to have been
> around for at least 18 months.  It looks like Randy Dunlap tried
> to submit some documentation for this in Oct 2006, but it didn't
> make it in?
> 
> Is this feature widely used?  Should it be doc'ed now
> or are you about to make it obsolete?
I will most likely obsolete all except KCONFIG_ALLCONFIG
And I'm afraid I have Randy patch somewhere.

	Sam

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-11 19:09                         ` Tim Bird
  2008-06-11 19:22                           ` Sam Ravnborg
@ 2008-06-11 19:36                           ` Adrian Bunk
  2008-06-11 19:46                             ` Tim Bird
  2008-06-11 19:48                             ` Sam Ravnborg
  2008-06-12  0:01                           ` Rob Landley
  2 siblings, 2 replies; 85+ messages in thread
From: Adrian Bunk @ 2008-06-11 19:36 UTC (permalink / raw)
  To: Tim Bird
  Cc: Sam Ravnborg, Rob Landley, linux-tiny, linux-embedded,
	linux kernel

On Wed, Jun 11, 2008 at 12:09:56PM -0700, Tim Bird wrote:
> Sam Ravnborg wrote:
> >>> When I get my kconfig patchset polished you will be able to do:
> >>>
> >>> make K=my_mini_config allnoconfig
> >> So you're renaming KCONFIG_ALLNOCONFIG then?
> > 
> > Somehow yes. The K= notation I hope will see more use. Only very few
> > people know the KCONFIG_ALL*CONFIG= trick.
> 
> Indeed.  I had never heard of it, but it appears to have been
> around for at least 18 months.  It looks like Randy Dunlap tried
> to submit some documentation for this in Oct 2006, but it didn't
> make it in?
>...

Randy's patch that documents KCONFIG_ALLCONFIG is in Linus' tree since
April 2006.

>  -- Tim

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-11 19:36                           ` Adrian Bunk
@ 2008-06-11 19:46                             ` Tim Bird
  2008-06-12  1:42                               ` Rob Landley
  2008-06-11 19:48                             ` Sam Ravnborg
  1 sibling, 1 reply; 85+ messages in thread
From: Tim Bird @ 2008-06-11 19:46 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Sam Ravnborg, Rob Landley, linux-tiny, linux-embedded,
	linux kernel

Adrian Bunk wrote:
> Randy's patch that documents KCONFIG_ALLCONFIG is in Linus' tree since
> April 2006.

Well, dangit there it is!

The patch I googled had it going into Documentation/kbuild.  It
somehow escaped my attention in the README.  If I was
a little more skilled with my grep-ing I would have found it.
Sorry for the bother!
 -- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================


^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-11 19:36                           ` Adrian Bunk
  2008-06-11 19:46                             ` Tim Bird
@ 2008-06-11 19:48                             ` Sam Ravnborg
  1 sibling, 0 replies; 85+ messages in thread
From: Sam Ravnborg @ 2008-06-11 19:48 UTC (permalink / raw)
  To: Adrian Bunk
  Cc: Tim Bird, Rob Landley, linux-tiny, linux-embedded, linux kernel

On Wed, Jun 11, 2008 at 10:36:39PM +0300, Adrian Bunk wrote:
> On Wed, Jun 11, 2008 at 12:09:56PM -0700, Tim Bird wrote:
> > Sam Ravnborg wrote:
> > >>> When I get my kconfig patchset polished you will be able to do:
> > >>>
> > >>> make K=my_mini_config allnoconfig
> > >> So you're renaming KCONFIG_ALLNOCONFIG then?
> > > 
> > > Somehow yes. The K= notation I hope will see more use. Only very few
> > > people know the KCONFIG_ALL*CONFIG= trick.
> > 
> > Indeed.  I had never heard of it, but it appears to have been
> > around for at least 18 months.  It looks like Randy Dunlap tried
> > to submit some documentation for this in Oct 2006, but it didn't
> > make it in?
> >...
> 
> Randy's patch that documents KCONFIG_ALLCONFIG is in Linus' tree since
> April 2006.
The one I refer to is not.

	Sam

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-11 19:09                         ` Tim Bird
  2008-06-11 19:22                           ` Sam Ravnborg
  2008-06-11 19:36                           ` Adrian Bunk
@ 2008-06-12  0:01                           ` Rob Landley
  2 siblings, 0 replies; 85+ messages in thread
From: Rob Landley @ 2008-06-12  0:01 UTC (permalink / raw)
  To: Tim Bird
  Cc: Sam Ravnborg, Adrian Bunk, linux-tiny, linux-embedded,
	linux kernel

On Wednesday 11 June 2008 14:09:56 Tim Bird wrote:
> Sam Ravnborg wrote:
> >>> When I get my kconfig patchset polished you will be able to do:
> >>>
> >>> make K=my_mini_config allnoconfig
> >>
> >> So you're renaming KCONFIG_ALLNOCONFIG then?
> >
> > Somehow yes. The K= notation I hope will see more use. Only very few
> > people know the KCONFIG_ALL*CONFIG= trick.
>
> Indeed.  I had never heard of it, but it appears to have been
> around for at least 18 months.  It looks like Randy Dunlap tried
> to submit some documentation for this in Oct 2006, but it didn't
> make it in?

Nor did the documentation I posted back in November 2005:
http://lwn.net/Articles/160497/

Nor its resubmission:
http://lwn.net/Articles/161086/

Nor its re-resubmission:
http://lkml.org/lkml/2006/7/6/404

Randy's submission was after those three...

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

* Re: mainlining min-configs...
  2008-06-11 19:46                             ` Tim Bird
@ 2008-06-12  1:42                               ` Rob Landley
  0 siblings, 0 replies; 85+ messages in thread
From: Rob Landley @ 2008-06-12  1:42 UTC (permalink / raw)
  To: Tim Bird
  Cc: Adrian Bunk, Sam Ravnborg, linux-tiny, linux-embedded,
	linux kernel

On Wednesday 11 June 2008 14:46:55 Tim Bird wrote:
> Adrian Bunk wrote:
> > Randy's patch that documents KCONFIG_ALLCONFIG is in Linus' tree since
> > April 2006.
>
> Well, dangit there it is!
>
> The patch I googled had it going into Documentation/kbuild.  It
> somehow escaped my attention in the README.

Mine as well.  (I grepped for KCONFIG_ALLCONFIG in Documentation, not in the 
rest of the tree.  I of all people should know better...)

> If I was 
> a little more skilled with my grep-ing I would have found it.
> Sorry for the bother!

The linux kernel has documentation in Documentation, in the "make htmldocs" 
output, in the Kconfig help entries, in README files, in the output of "make 
help", and several other places.  (And then there's all the stuff that's not 
_in_ the kernel tarball...)

It's easy to miss.

Rob

P.S: yes, README files plural.
  find . -name "*[Rr][Ee][Aa][Dd][Mm][Ee]*" | grep -v Documentation | wc
  69	69	2315

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

^ permalink raw reply	[flat|nested] 85+ messages in thread

end of thread, other threads:[~2008-06-12  1:42 UTC | newest]

Thread overview: 85+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-02 22:37 [PATCH] console - Add configurable support for console charset translation Tim Bird
2008-06-03  1:34 ` H. Peter Anvin
2008-06-03  7:00   ` Jamie Lokier
2008-06-03 15:46   ` Matt Mackall
2008-06-03 21:31     ` Rob Landley
2008-06-03 22:37       ` H. Peter Anvin
2008-06-04  2:56         ` Paul Mundt
2008-06-04 17:36           ` Rob Landley
2008-06-04 17:42             ` Bill Gatliff
2008-06-04 18:55               ` Rob Landley
2008-06-04 19:05                 ` Bill Gatliff
2008-06-05  0:46             ` Paul Mundt
2008-06-05 23:35               ` Rob Landley
2008-06-07  3:35                 ` H. Peter Anvin
2008-06-09 11:38                   ` Jamie Lokier
2008-06-09 11:51                     ` Geert Uytterhoeven
2008-06-04 17:34         ` Rob Landley
2008-06-03  8:36 ` David Woodhouse
2008-06-03 13:45 ` David Woodhouse
2008-06-03 14:06   ` Holger Schurig
2008-06-03 14:10     ` David Woodhouse
2008-06-04  0:01   ` Tim Bird
2008-06-04  0:16     ` David Woodhouse
2008-06-04  1:03       ` Josh Boyer
2008-06-04  1:05         ` David Woodhouse
2008-06-04  3:13           ` Josh Boyer
2008-06-04  9:16             ` David Woodhouse
2008-06-04 10:07               ` Adrian Bunk
2008-06-04 10:10                 ` David Woodhouse
2008-06-04 15:35       ` Tim Bird
2008-06-04 11:55     ` Alan Cox
2008-06-04 13:55       ` David Woodhouse
2008-06-04 14:07         ` Alan Cox
2008-06-04 14:27           ` David Woodhouse
2008-06-03 21:18 ` Rob Landley
2008-06-03 21:26   ` David Woodhouse
2008-06-03 21:30   ` Matt Mackall
2008-06-04  7:02     ` Holger Schurig
2008-06-04  7:04     ` Holger Schurig
2008-06-04  7:36       ` Dave Hylands
2008-06-04 15:24         ` Randy Dunlap
2008-06-04 17:19       ` Rob Landley
2008-06-04 17:26         ` linux-embedded archives [was Re: [PATCH] console - Add configurable support for console charset translation] T Ziomek
2008-06-04 18:08           ` Rob Landley
2008-06-04 10:33 ` [PATCH] console - Add configurable support for console charset translation Adrian Bunk
2008-06-04 17:51   ` Rob Landley
2008-06-04 18:34   ` Bernhard Fischer
2008-06-04 19:01     ` Adrian Bunk
2008-06-04 19:21       ` Bernhard Fischer
2008-06-04 19:20         ` Alan Cox
2008-06-04 18:51   ` Tim Bird
2008-06-04 19:15     ` Sam Ravnborg
2008-06-04 19:23       ` Tim Bird
2008-06-04 20:23         ` Adrian Bunk
2008-06-04 20:42           ` Tim Bird
2008-06-05  6:55             ` Jörn Engel
2008-06-05  7:18           ` Uwe Klein
2008-06-04 20:24       ` Jörn Engel
2008-06-04 19:40     ` Adrian Bunk
2008-06-06 23:47       ` Tim Bird
2008-06-07  4:29         ` Rob Landley
2008-06-10  1:37           ` mainlining min-configs Tim Bird
2008-06-10  3:14             ` Ben Nizette
2008-06-10  4:16               ` Paul Mundt
2008-06-10  8:36             ` Adrian Bunk
2008-06-10 18:18               ` Tim Bird
2008-06-10 18:30                 ` Adrian Bunk
2008-06-10 18:51                   ` Sam Ravnborg
2008-06-10 19:05                     ` Adrian Bunk
2008-06-11  5:09                     ` Rob Landley
2008-06-11  6:39                       ` Sam Ravnborg
2008-06-11 19:09                         ` Tim Bird
2008-06-11 19:22                           ` Sam Ravnborg
2008-06-11 19:36                           ` Adrian Bunk
2008-06-11 19:46                             ` Tim Bird
2008-06-12  1:42                               ` Rob Landley
2008-06-11 19:48                             ` Sam Ravnborg
2008-06-12  0:01                           ` Rob Landley
2008-06-11  5:17                   ` Rob Landley
2008-06-11  5:51                 ` Rob Landley
2008-06-11  3:48               ` Rob Landley
2008-06-11  3:32             ` Rob Landley
2008-06-11  8:59             ` Christian MICHON
2008-06-04 19:42     ` [PATCH] console - Add configurable support for console charset translation Bernhard Fischer
2008-06-11  7:08   ` Holger Schurig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).