|
From: <tgi...@fr...> - 2008-02-25 12:54:50
|
Quoting Keith Owens <ka...@oc...>:
{...}
> A combination of options (2) and (3) would work. Have a single source
> file for the IVT, using conditional macros. Use that source file to
> build (at least) two copies of the IVT, for native and any virtualized
> modes. The native copy of the IVT starts at label ia64_ivt in section
> .text.ivt, as it does now. Any IVT versions for virtualized mode are
> defined as __cpuinitdata, so they are discarded after boot, unless
> CONFIG_HOTPLUG_CPU=y. arch/ia64/kernel/head.S copies the relevant
> virtualized version over ia64_ivt when necessary, before initializing
> cr.iva.
>
> Single source for maintenance. No indirect function overhead at run
> time. Binary patching at boot time for the right mode. No wasted
> space in the kernel.
Good idea. The linker script will be slightly more complex however...
Tristan.
|