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

Re: [libvirt] [PATCH ] (type ioem) adding mode type = "pvxen" configuration option in to libvirt (XEN)



Daniel P. Berrange wrote:
On Thu, Dec 04, 2008 at 10:33:28PM +0000, Gihan Munasinghe wrote:
Daniel P. Berrange wrote:
    <mac address='00:16:3e:00:a5:01'/>
    <source bridge='eth0'/>
    <target dev='vif1.0'/>
</interface>
As I mentioned before this should be handled with the existing
XML <model> element.


 ...no model element...  -> Default QEMU nic + Paravirt Driver backend
 <model type='e1000'/>  -> Only QEMU's e1000 nic
 <model type='rtl8139'/>  -> Only QEMU's rtl8139 nic
 <model type='ne2k_pci'/>  -> Only QEMU's ne2k nic
 <model type='xen'/>       -> Only Paravirt driver backend


Supporting pv net drives in XEN patch.
If you define the interface model type as pvxen (<model type ="pvxen">). XEN will not load emulated network card
Let me know what you think of the patch

--- xend_internal.c.back        2009-02-02 10:53:31.000000000 +0000
+++ xend_internal.c     2009-02-03 10:02:54.000000000 +0000
@@ -75,6 +75,8 @@
#define XEND_CONFIG_MIN_VERS_PVFB_NEWCONF 3
#endif

+#define XEN_PV_NETWORK "pvxen"
+

#ifndef PROXY
static int
@@ -5198,12 +5200,25 @@
    if (def->model != NULL)
        virBufferVSprintf(buf, "(model '%s')", def->model);

+   /*Fixing up the model to support XEN pv drivers
+   , if the user XML is defined as <model type="pvxen" > this means that
+ there is a PV driver for network is alredy installed. So xen should not
+    emulate the network card */
+
+ if(hvm && (def->model!=NULL) && (strcmp(def->model,XEN_PV_NETWORK)==0) ){
+                virBufferAddLit(buf, "(type none)");
+    }else if(hvm){// For any other hvm guest ask XEN to emulate the card
+       virBufferAddLit(buf, "(type ioemu)");
+        if (def->model != NULL)
+        virBufferVSprintf(buf, "(model '%s')", def->model);
+    }
+ /*
     * apparently (type ioemu) breaks paravirt drivers on HVM so skip this
     * from Xen 3.1.0
-     */
+ if (hvm && xendConfigVersion <= XEND_CONFIG_MAX_VERS_NET_TYPE_IOEMU)
-        virBufferAddLit(buf, "(type ioemu)");
+        virBufferAddLit(buf, "(type ioemu)");*/

    if (!isAttach)
        virBufferAddLit(buf, ")");
@@ -5566,3 +5581,4 @@
}

#endif /* ! PROXY */
+



Thanks

--
Gihan Munasinghe
R&D Team Leader
XCalibre Communications Ltd.
www.flexiscale.com


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