Re: [tip:core/stacktrace] symbols, stacktrace: look up init symbols after module symbols

From: Rusty Russell
Date: Mon Mar 23 2009 - 01:32:23 EST


On Thursday 19 March 2009 22:24:35 Ingo Molnar wrote:
> a2da405: module: Don't report discarded init pages as kernel text.
>
> The reason is this check added to core_kernel_text():
>
> - if (addr >= (unsigned long)_sinittext &&
> + if (system_state == SYSTEM_BOOTING &&
> + addr >= (unsigned long)_sinittext &&
> addr <= (unsigned long)_einittext)
> return 1;
>
> This will discard inittext symbols even though their symbol table
> is still present and even though stacktraces done while the system
> was booting up might still be relevant.
>
> To not reintroduce the (not well-specified) bug addressed in that
> commit, first do a module symbols lookup, then a final init-symbols
> lookup.
>
> This will work fine on architectures that have separate address
> spaces for modules (such as x86) - and should not crash any other
> architectures either.

Returning "1" all the time won't crash them either, AFAICT, but it's still
misleading if kernel_text_address() isn't reliable. It makes me
uncomfortable.

Does every kernel_text_address() caller want this behavior, or should we
have a was_ever_text_address()?

Rusty.
--
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/