Skip to contentSkip to conversation

XenAPI: Add PCI Assignment Support

PATCH New Yosuke Iwamatsu 1 participant 3 messages Jul 2, 2008 – Jul 28, 2008

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw

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

#2 lore raw

PATCH 1/1 Update Document ([PATCH][0/3] XenAPI: Add PCI Assignment Support)

In reply to Yosuke Iwamatsu

Here 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
diff -r a7642acd9caf docs/xen-api/coversheet.tex
@@ -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}
\ No newline at end of file
+\pagestyle{fancy}
docs/xen-api/revision-history.tex +9 -0
diff -r a7642acd9caf docs/xen-api/revision-history.tex
@@ -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
diff -r a7642acd9caf docs/xen-api/xenapi-coversheet.tex
@@ -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
diff -r a7642acd9caf docs/xen-api/xenapi-datamodel-graph.dot
@@ -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