Re: [RFC PATCH 3/3] boot bzImages under paravirt

From: Eric W. Biederman
Date: Fri May 04 2007 - 15:23:26 EST


Jeremy Fitzhardinge <jeremy@xxxxxxxx> writes:

> Well, a paravirtualized ring0 kernel may still have special constraints
> on how the gdt can be set up (page-aligned, read-only, etc).

Maybe but that is hardly ring0. I would have expected a
para-virtualized ring0 to behave like vmi. Where everything
works like native hardware until you enable paravirtualization.

> Why not just treat them all in the same way? Especially if we start
> sweeping other non-virtual architectures like voyager/visws/etc into the
> same mechanism.

That is my intention. But there are different places we care for
different subarchitectures. So I'm not convinced an early lookup
table is actually helpful.

The issues are that the kernel provides the version to the boot
loader not the other way around.

The code is simple enough in assembly we don't need a table a table
lookup just:

cmp $MY_PLATFORM, BOOT_PARAMS_PLATFORM(%esi)
jz my_init.

Roughly this is what rusty has been prototyping in his lguest patches.

> My idea was that "goto native_boot" would jump to code which assumes
> it's running on real hardware, where there's no problem reloading
> gdt/segment registers, etc.

That may make sense to. It is a question of can we place any code
before the test like clearing the bss?

If we declare the segments are properly initialized it doesn't matter.

Eric
-
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/