Re: [RFC patch 00/32] x86: Refactor the setup code to provide a base for embedded platforms

Ingo Molnar
2009-08-22T10:58:20Z

* Thomas Gleixner <tglx@linutronix.de> wrote:

[...]
> The following patch series refactors the setup related x86_quirks
> and the setup related paravirt hooks and puts them into an
> extensible platform_setup infrastructure to provide a proper base
> for adding the Moorestown modifications. As a side effect it also
> unifies time_32/64.c and removes some leftovers of the pre
> arch/x86 era.
>
> Note, this is not a replacement for paravirt_ops. It is just
> replacing the setup related paravirt stuff so it can be reused for
> other platforms though I have to say that it removes a fair amount
> of obscurity which was introduced by paravirt & Co.

> 47 files changed, 622 insertions(+), 808 deletions(-)

Very nice!

One small detail, before we spread out these patches. While looking
at the patches i noticed that at places our new x86 init namespace
is very long:

> + platform_setup.timers.setup_percpu_clockev = platform_setup_noop;
> + platform_cpuhotplug_setup.setup_percpu_clockev = platform_setup_noop;
> +

I think we should shorten the name-space a bit - we'll use it in a
_lot_ of places, so the shorter, the better and the easier to use.

I'd suggest something like:

x86_init.timers.init_percpu_clockev = x86_init_noop;
x86_cpuhotplug_init.init_percpu_clockev = x86_init_noop;

( This also has the advantage that 'init' is the general term we use
for kernel structure initialization - 'setup' is a more
restrictive term we use related to bootloading, most of the time. )

An even shorter form would be to use 'x86' as a general template for
platform details:

x86.timers.init_percpu_ce = x86_init_noop;
x86_cpuhotplug.init_percpu_ce = x86_init_noop;

this is even shorter, plus it allows us to put runtime details into
this structure as well. Note that the fields themselves
(init_percpu_clockev) already signal the 'init' property
sufficiently. Plus 'ce' is an existing, well-known abbreviation for
clockevents. (but 'clockev' would be good too - i might be pushing
it)

What do you think?

Ingo