[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [RFC] bootloader improvements - pygrub-kernel-config



On Thu, Nov 09, 2006 at 07:22:40PM +0000, John Levon wrote:
> 
> # HG changeset patch
> # User john.levon@xxxxxxx
> # Date 1163095800 28800
> # Node ID 0da173ee886e13bd4116c7d085cd4a4704ffe279
> # Parent  7c80aaffe16f5e4037d10660d262ed7b22894b01
> Split out bootloader-derived parameters separately from config-file-specified
> ones. This allows a config file to still specify kernel/ramdisk, even if a
> bootloader is being used.

I'm not sure this is a good idea - its essentially completely inverting
the current semantics for bootloader/kernel params in the config files.
Currently a 'kernel' parameter will always override a 'bootloader' param,
but with this change a 'bootloader' param will always override a 'kernel'
param. I can see that both approaches have their merits, I don't think
we can ever pick one prioritization rule which satisfies everyone here
and thus for sake of compatability we should keep the current semantics
for kernel/booloader prioritization in the configs.

> diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py
> --- a/tools/python/xen/xend/image.py
> +++ b/tools/python/xen/xend/image.py
> @@ -70,7 +70,9 @@ class ImageHandler:
>          self.vm = vm
>  
>          self.kernel = None
> +        self.boot_kernel = None
>          self.ramdisk = None
> +        self.boot_ramdisk = None
>          self.cmdline = None
>  
>          self.configure(imageConfig, deviceConfig)
> @@ -82,6 +84,14 @@ class ImageHandler:
>              return sxp.child_value(imageConfig, name, default)
>  
>          self.kernel = get_cfg("kernel")
> +        self.ramdisk = get_cfg("ramdisk", '')
> +        self.boot_kernel = get_cfg("boot_kernel")
> +        if not self.boot_kernel:
> +            self.boot_kernel = self.kernel
> +        self.boot_ramdisk = get_cfg("boot_ramdisk")
> +        if not self.boot_ramdisk:
> +            self.boot_ramdisk = self.ramdisk
> +

This is also changing the semantics of the SEXPR exposed by XenD - previously
the ('vmlinux') and ('initrd') parameters would refer to the live kernel
in the guest, but now you'd have to look at the boot_XXX variants instead.

If we did want to change the prioritzation such that bootloader overrides
any explicit kernel/initrd, then I think we should just have the values
from bootloader directly overwrite the existing named SXPR fields rather
than adding new boot_XX fields.

Regards,
Dan.
-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.