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

Re: [Libvir] PATCH: Allow Xen HVM kernel+initrd booting



On Mon, Feb 04, 2008 at 09:44:12AM -0500, Daniel Veillard wrote:
> 
>   So basically Xen PV, Xen FV and KVM  <os> blocks should now share the
> same set of functionalities, sharight the same syntax, right ? And the
> refactoring comes from the 3 being able to share more code, if yes that
> sounds excellent :-)

Almost the same. pv guests won't have use for a <boot dev="c"/> tag
since they have no BIOS, nor do they have a <loader> tag, but other
than that they're the same.

> > <domain type='xen'>
> >   <name>kernel</name>
> >   <uuid>06ed00fe-1162-4fc4-b5d8-11993ee4a8b9</uuid>
> >   <os>
> >     <type>hvm</type>
> >     <loader>/usr/lib/xen/boot/hvmloader</loader>
> >     <kernel>/root/vmlinuz.f864</kernel>
> >     <initrd>/root/initrd.img.f864</initrd>
> >     <cmdline>console=ttyS0 console=tty0</cmdline>
> >   </os>
> >   <memory>540672</memory>
> >   <currentMemory>531456</currentMemory>
> >   <vcpu>1</vcpu>
> >   <on_poweroff>preserve</on_poweroff>
> >   <on_reboot>preserve</on_reboot>
> >   <on_crash>preserve</on_crash>
> >   <features>
> >     <acpi/>
> >     <apic/>
> >     <pae/>
> >   </features>
> >   <devices>
> >     <emulator>/usr/lib64/xen/bin/qemu-dm</emulator>
> >     <interface type='bridge'>
> >       <source bridge='xenbr0'/>
> >       <mac address='00:16:3e:0e:e8:b7'/>
> >       <script path='vif-bridge'/>
> >     </interface>
> >     <disk type='file' device='disk'>
> >       <driver name='file'/>
> >       <source file='/root/kernel.img'/>
> >       <target dev='hda'/>
> >     </disk>
> >     <input type='mouse' bus='ps2'/>
> >     <graphics type='vnc' port='-1' listen='0.0.0.0'/>
> >     <console tty='pty'/>
> >   </devices>
> > </domain>
> 
>   If we were to switch that domain to PV, the change would basically
> to remove os/loader and devices/emulator, change os/type to be linux,
> and then get kernel and initrd to point to the PV versions, right ?

No need to get rid of devices/emulator - that's valid for paravirt
guests too now - qemu-dm is used to provide the VNC / SDL framebuffer
and text console in paravirt guests too now. So merely remove loader
and the os/type to linux.

> > +    /* 
> > +     * Originally XenD abused the 'kernel' parameter for the HVM
> > +     * firmware. New XenD allows HVM guests to boot from a kernel
> > +     * and if this is enabled, the HVM firmware must use the new
> > +     * 'loader' parameter
> > +     */
> > +    if (hasKernel) {
> > +        virBufferVSprintf(buf, "(loader '%s')", (const char *) loader);
> >      } else {
> >          virBufferVSprintf(buf, "(kernel '%s')", (const char *) loader);
> >      }
> 
>   What happen if someone uses libvirt-0.4.1 with an old xend and an HVM
> with kernel XML description is given ? I suppose (kernel) gets ignored
> but it fails because the loader is not proper.

Yep, user error. If they try to use a kernel+initrd on an old XenD there's
nothing we can do to make it work. I don't want to do a Xen version check
in libvirt though, because this kernel+initrd stuff is something I backport
to the Xen currently in Fedora so any version check would be bogus.

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  -=| 


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