XenAPI: Add PCI Assignment Support
cover XenAPI: Add PCI Assignment Support
Hi all,
This series of patches is an attempt to support pci pass-through device assignment via xen-api.
There already is 'PCI_bus' parameter in VM class to specify pci device to be assigned, but it doesn't work now. Another problem is that pci device hotplug/coldplug cannot be supported with the current model.
So I decided to implement fully-functional pci assignment support to xen-api. Below is the basic design of new class models.
PPCI: Represents physical pci devices belonging to the host.
ppci instances are automatically generated by xend and contain domain:bus:slot:func number, vendor name, device name and other information.
DPCI: Represents direct pci devices. dpci instances work as connectors
between a vm and a physical pci device. Creation of a dpci device will result in attachment of the pci device and deletion will result in detachment.
+------------+ * 1 +----------+
| VM |----------| host |
+------------+ +----------+
1 | | 1
| |
* | | *
+-------------+ 0,1 1 +----------+
| DPCI |---------| PPCI |
+-------------+ +----------+BTW I'm aware that there is xen-api community project going on. If there's any decision made about discussing/merging procedure of xen-api related patches, please let me know.
Technical suggestions and comments are welcome, of course.
Regards,
-----------------------
Yosuke Iwamatsu
NEC Corporation
cover XenAPI: Add PCI Assignment Support
Keir,
Now that you applied this patch set, is it okay to update the xen-api document toward xen-3.3 release? I'm a little concerned about api stability, but if the basic structure of these new classes is acceptable, I'm willing to renew the document accordingly.
Thanks,
-- Yosuke
Quoted 44 lines · Yosuke Iwamatsu
Hi all,
This series of patches is an attempt to support pci pass-through device assignment via xen-api.
There already is '
PCI_bus' parameter in VM class to specify pci device to be assigned, but it doesn't work now. Another problem is that pci device hotplug/coldplug cannot be supported with the current model.So I decided to implement fully-functional pci assignment support to xen-api. Below is the basic design of new class models.
PPCI: Represents physical pci devices belonging to the host.
ppci instances are automatically generated by xend and contain domain:bus:slot:func number, vendor name, device name and other information.
DPCI: Represents direct pci devices. dpci instances work as connectors
between a vm and a physical pci device. Creation of a dpci device will result in attachment of the pci device and deletion will result in detachment.+------------+ * 1 +----------+ | VM |----------| host | +------------+ +----------+ 1 | | 1 | | * | | * +-------------+ 0,1 1 +----------+ | DPCI |---------| PPCI | +-------------+ +----------+BTW I'm aware that there is xen-api community project going on. If there's any decision made about discussing/merging procedure of xen-api related patches, please let me know.
Technical suggestions and comments are welcome, of course.Regards,
-----------------------
Yosuke Iwamatsu
NEC Corporation_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel
PATCH 1/1 Update Document ([PATCH][0/3] XenAPI: Add PCI Assignment Support)
In reply to Yosuke IwamatsuHere is the patch to update the xen-api doc for pci device assignment support.
Thank you,
-----------------
Yosuke Iwamatsu
Quoted 40 lines · Yosuke Iwamatsu
Hi all,
This series of patches is an attempt to support pci pass-through device assignment via xen-api.
There already is '
PCI_bus' parameter in VM class to specify pci device to be assigned, but it doesn't work now. Another problem is that pci device hotplug/coldplug cannot be supported with the current model.So I decided to implement fully-functional pci assignment support to xen-api. Below is the basic design of new class models.
PPCI: Represents physical pci devices belonging to the host.
ppci instances are automatically generated by xend and contain domain:bus:slot:func number, vendor name, device name and other information.
DPCI: Represents direct pci devices. dpci instances work as connectors
between a vm and a physical pci device. Creation of a dpci device will result in attachment of the pci device and deletion will result in detachment.+------------+ * 1 +----------+ | VM |----------| host | +------------+ +----------+ 1 | | 1 | | * | | * +-------------+ 0,1 1 +----------+ | DPCI |---------| PPCI | +-------------+ +----------+BTW I'm aware that there is xen-api community project going on. If there's any decision made about discussing/merging procedure of xen-api related patches, please let me know.
Technical suggestions and comments are welcome, of course.Regards,
-----------------------
Yosuke Iwamatsu
NEC Corporation
Quoted 4 lines
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel
xenapi: Update the xenapi document for pci device assignment support.
docs/xen-api/coversheet.tex +2 -2
@@ -50,7 +50,7 @@ Hollis Blanchard, IBM & Alastair Tse, Xe Hollis Blanchard, IBM & Alastair Tse, XenSource \\ Mike Day, IBM & Daniel Veillard, Red Hat \\ Jim Fehlig, Novell & Tom Wilkie, University of Cambridge \\ -Jon Harrop, XenSource & \\ +Jon Harrop, XenSource & Yosuke Iwamatsu, NEC \\ \end{tabular} \end{large}
@@ -60,4 +60,4 @@ Jon Harrop, XenSource & \\ \legalnotice{} \newpage -\pagestyle{fancy} +\pagestyle{fancy}
docs/xen-api/revision-history.tex +9 -0
@@ -47,5 +47,14 @@ \end{flushleft} \end{minipage}\\ \hline + 1.0.6 & 24th Jul. 08 & Y. Iwamatsu & + \begin{minipage}[t]{7cm} + \begin{flushleft} + Added definitions of new classes DPCI and PPCI. Updated the table + and the diagram representing relationships between classes. + Added host.PPCIs and VM.DPCIs fields. + \end{flushleft} + \end{minipage}\\ + \hline \end{tabular} \end{center}
docs/xen-api/xenapi-coversheet.tex +2 -2
@@ -17,12 +17,12 @@ \newcommand{\coversheetlogo}{xen.eps} %% Document date -\newcommand{\datestring}{11th February 2008} +\newcommand{\datestring}{24th July 2008} \newcommand{\releasestatement}{Stable Release} %% Document revision -\newcommand{\revstring}{API Revision 1.0.5} +\newcommand{\revstring}{API Revision 1.0.6} %% Document authors \newcommand{\docauthors}{
docs/xen-api/xenapi-datamodel-graph.dot +5 -2
@@ -14,7 +14,7 @@ fontname="Verdana"; node [ shape=box ]; session VM host network VIF PIF SR VDI VBD PBD user XSPolicy ACMPolicy; node [shape=ellipse]; PIF_metrics VIF_metrics VM_metrics VBD_metrics PBD_metrics VM_guest_metrics host_metrics; -node [shape=box]; host_cpu console +node [shape=box]; DPCI PPCI host_cpu console session -> host [ arrowhead="none" ] session -> user [ arrowhead="none" ] VM -> VM_metrics [ arrowhead="none" ]
@@ -22,7 +22,7 @@ VM -> console [ arrowhead="crow" ] VM -> console [ arrowhead="crow" ] host -> PBD [ arrowhead="crow", arrowtail="none" ] host -> host_metrics [ arrowhead="none" ] -host -> host_cpu [ arrowhead="none" ] +host -> host_cpu [ arrowhead="crow", arrowtail="none" ] VIF -> VM [ arrowhead="none", arrowtail="crow" ] VIF -> network [ arrowhead="none", arrowtail="crow" ] VIF -> VIF_metrics [ arrowhead="none" ]
@@ -38,4 +38,7 @@ VBD -> VBD_metrics [ arrowhead="none" ] VBD -> VBD_metrics [ arrowhead="none" ] XSPolicy -> host [ arrowhead="none" ] XSPolicy -> ACMPolicy [ arrowhead="none" ] +DPCI -> VM [ arrowhead="none", arrowtail="crow" ] +DPCI -> PPCI [ arrowhead="none" ] +PPCI -> host [ arrowhead="none", arrowtail="crow" ] }
docs/xen-api/xenapi-datamodel.tex +1259 -0
1,301 lines not on this page · raw message
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel