Re: [PATCH 1/6] printk: Allocate kernel log buffer earlier

From: Mike Travis
Date: Thu Jan 20 2011 - 18:55:39 EST




Andrew Morton wrote:
On Wed, 19 Jan 2011 17:01:07 -0600
Mike Travis <travis@xxxxxxx> wrote:

On larger systems, because of the numerous ACPI, Bootmem and EFI
messages, the static log buffer overflows before the larger one
specified by the log_buf_len param is allocated. Minimize the
overflow by allocating the new log buffer as soon as possible.

All arch's are covered by the "setup_log_buf" in start_kernel().
The x86 arch allocates it right after bootmem is created.

...

+void setup_log_buf(void);

...

+void __init setup_log_buf(void)


It's a PITA but the declaration should have the __init tag as well. We
have had at least one instance where failing to do this caused an arch
(arm) to emit a short-mode address offset to a function which it
thought was in the same section as the callsite. Only the target was
in a different section from the callsite and the linker couldn't fit
the needed offset into the operand.


That reminds me of another question. If I have:

void __init setup(void)
{
static int data;
...

Does data automatically get put into the initdata section? Or does
it need the __initdata tag as well?

Thanks,
Mike
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/