All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Mike Frysinger <vapier@gentoo.org>,
	Ingo Molnar <mingo@kernel.org>,
	Randy Dunlap <rdunlap@infradead.org>,
	<linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Russell King <linux@arm.linux.org.uk>,
	Michal Simek <monstr@monstr.eu>,
	Ralf Baechle <ralf@linux-mips.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mundt <lethal@linux-sh.org>,
	"David S. Miller" <davem@davemloft.net>,
	Chris Metcalf <cmetcalf@tilera.com>,
	Richard Weinberger <richard@nod.at>
Subject: Re: [PATCH v2] early_printk: consolidate random copies of identical code
Date: Thu, 7 Mar 2013 14:50:23 -0500	[thread overview]
Message-ID: <5138EF7F.1050003@windriver.com> (raw)
In-Reply-To: <20130307112536.82288f41924a38a441cdf345@linux-foundation.org>

On 13-03-07 02:25 PM, Andrew Morton wrote:
> On Thu, 7 Mar 2013 14:15:54 -0500 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
> 
>> [v2: essentially unchanged since v1, so I've left the acked/reviewed
>>  tags.  There was a compile fail[1] for a randconfig with EARLY_PRINTK=y
>>  and PRINTK=n, because the early_console struct and early_printk calls
>>  were nested within an #ifdef CONFIG_PRINTK -- moving that whole block
>>  exactly as-is to be outside the #ifdef CONFIG_PRINTK fixes the randconfig
>>  and still works for everyday sane configs too.]
>>  [1] http://marc.info/?l=linux-next&m=136219350914998&w=2   
> 
> You did this:
> 
> --- a/kernel/printk.c~early_printk-consolidate-random-copies-of-identical-code-v2
> +++ a/kernel/printk.c
> @@ -759,29 +759,6 @@ module_param(ignore_loglevel, bool, S_IR
>  MODULE_PARM_DESC(ignore_loglevel, "ignore loglevel setting, to"
>  	"print all kernel messages to the console.");
>  
> -#ifdef CONFIG_EARLY_PRINTK
> -struct console *early_console;
> -
> -void early_vprintk(const char *fmt, va_list ap)
> -{
> -	if (early_console) {
> -		char buf[512];
> -		int n = vscnprintf(buf, sizeof(buf), fmt, ap);
> -
> -		early_console->write(early_console, buf, n);
> -	}
> -}
> -
> -asmlinkage void early_printk(const char *fmt, ...)
> -{
> -	va_list ap;
> -
> -	va_start(ap, fmt);
> -	early_vprintk(fmt, ap);
> -	va_end(ap);
> -}
> -#endif
> -
>  #ifdef CONFIG_BOOT_PRINTK_DELAY
>  
>  static int boot_delay; /* msecs delay after each printk during bootup */
> @@ -1743,6 +1720,29 @@ static size_t cont_print_text(char *text
>  
>  #endif /* CONFIG_PRINTK */
>  
> +#ifdef CONFIG_EARLY_PRINTK
> +struct console *early_console;
> +
> +void early_vprintk(const char *fmt, va_list ap)
> +{
> +	if (early_console) {
> +		char buf[512];
> +		int n = vscnprintf(buf, sizeof(buf), fmt, ap);
> +
> +		early_console->write(early_console, buf, n);
> +	}
> +}
> +
> +asmlinkage void early_printk(const char *fmt, ...)
> +{
> +	va_list ap;
> +
> +	va_start(ap, fmt);
> +	early_vprintk(fmt, ap);
> +	va_end(ap);
> +}
> +#endif
> +
>  static int __add_preferred_console(char *name, int idx, char *options,
>  				   char *brl_options)
>  {
> _
> 
> Problem is, that won't fix the various compilation problems we've had. 
> See yesterday's lkml thread "linux-next: build failure after merge of
> the final tree (akpm tree related)"

Thanks for the pointer -- I'd only found Randy's original report
and had not seen this yet.  I'll go build test on sparc and have
a look there.

This brings up a recurring question.  I was tempted to just go make
CONFIG_EARLY_PRINTK depend on CONFIG_PRINTK, but lately I've faced
pushback when trying to "fix" things like seeing ARM OMAP USB options
for an x86 build[1], and GOLDFISH virt drivers being offered even
when the end user already said no to GOLDFISH[2].

Do we want to use dependencies to reflect the real world layout of
platforms/systems, or do we want to go the minimal dependency
approach, where we are building sparc specific drivers on mips just
because we can?

I think the former is better from a user specific point of view, as
the maze of Kconfig is better as a tree topology with branches that
have clear dependencies that exclude them, versus it being a flat
monolithic space where anything can select anything.

Arguments I've heard for the latter seem to be developer centric
(i.e forcing wider build coverage on the population as a whole, etc)

Thanks,
Paul.

[1] https://lkml.org/lkml/2013/2/27/204
[2] http://marc.info/?l=linux-kernel&m=136198970523568&w=3


> 

  reply	other threads:[~2013-03-07 19:52 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-07 19:15 [PATCH v2] early_printk: consolidate random copies of identical code Paul Gortmaker
2013-03-07 19:25 ` Andrew Morton
2013-03-07 19:50   ` Paul Gortmaker [this message]
2013-03-07 20:05     ` Joe Perches
2013-03-07 21:35     ` Andrew Morton
2013-03-07 21:41       ` Thomas Gleixner
2013-03-07 22:47       ` Rob Landley
2013-03-08  0:49       ` Paul Gortmaker
2013-03-08  0:56         ` Andrew Morton
2013-03-08  1:15           ` Paul Gortmaker
2013-03-08  1:10         ` Steven Rostedt
2013-03-08 15:29           ` Guenter Roeck
2013-03-07 20:20   ` Paul Gortmaker
2013-03-07 21:25     ` Thomas Gleixner
2013-03-07 21:43       ` Andrew Morton
2013-03-07 22:34         ` Thomas Gleixner
2013-03-08 16:11           ` [PATCH v3] " Paul Gortmaker
2013-03-08 21:46             ` Andrew Morton
2013-03-23 21:23             ` Geert Uytterhoeven

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=5138EF7F.1050003@windriver.com \
    --to=paul.gortmaker@windriver.com \
    --cc=akpm@linux-foundation.org \
    --cc=benh@kernel.crashing.org \
    --cc=cmetcalf@tilera.com \
    --cc=davem@davemloft.net \
    --cc=lethal@linux-sh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mingo@kernel.org \
    --cc=monstr@monstr.eu \
    --cc=ralf@linux-mips.org \
    --cc=rdunlap@infradead.org \
    --cc=richard@nod.at \
    --cc=tglx@linutronix.de \
    --cc=vapier@gentoo.org \
    /path/to/YOUR_REPLY

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

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