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

Daniel P. Berrange berrange at redhat.com
Sun Mar 9 21:11:49 UTC 2008


On Fri, Mar 07, 2008 at 02:50:03PM +0000, Mark McLoughlin wrote:
> On Sun, 2008-02-03 at 18:47 +0000, Daniel P. Berrange wrote:
> > -
> > -            if ((str == NULL) || (strcmp(str, "hvm"))) {
> > -                res = virDomainParseXMLOSDescPV(conn, node,
> > -                                                &buf, ctxt,
> > -                                                xendConfigVersion);
> > -            } else {
> > +            if ((str != NULL) && STREQ(str, "hvm"))
> >                  hvm = 1;
> > -                res = virDomainParseXMLOSDescHVM(conn, node, &buf, ctxt,
> > -                                                 vcpus, xendConfigVersion);
> > -            }
> > +            xmlFree(str);
> > +            str = NULL;
> >  
> > -            free(str);
> > +            if (hvm)
> > +                virBufferAdd(&buf, "(image (hvm ", 12);
> > +            else
> > +                virBufferAdd(&buf, "(image (linux ", 14);
> 
> Okay, I was seeing something weird that is at least somewhat related to
> this patch.
> 
> This is with libvirt-0.4.0-5.fc9.i386 and python-virtinst cset
> 374:507a70e9ed10
> 
> Trying to do a paravirt install with virt-install I was seeing it blow
> up with "virDomainCreateLinux() failed XML description for domain is not
> well formed or invalid"
> 
> The problem was <os><type>xen</type>
> 
> Changing that to <os><type>linux</type> made it work fine
> 
> Updating to libvirt CVS made it work fine too, since you now don't check
> that the os type is "linux"
> 
> Dunno, haven't looked into this much and I'm not sure if it's of any
> real concern ... just thought I'd mention it.

The problem is that the Xen driver expects the OS type to be 'linux'
but the capabilities XML is advertising the OS type as 'xen'. Technically
'xen' is the correct value, since its refering to a guest ABI & the ABI
is xen, not linux. Since we can't break XML semantics we have to stick 
with 'linux'. Thus I've added a workaround to make virt-install still
use 'linux' if talking to the Xen driver. 

Dan.
-- 
|: Red Hat, Engineering, Boston   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list