<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>Ian,</div>
<div><br>
</div>
<div>I hope that you guys are in agreement on this. But take a look at the wiki: <a href="https://wiki.openstack.org/wiki/PCI_passthrough_SRIOV_support">https://wiki.openstack.org/wiki/PCI_passthrough_SRIOV_support</a> and see if it has any difference from
your proposals. IMO, it's the critical piece of the proposal, and hasn't been specified in exact term yet. I'm not sure about vif_attributes or vif_stats, which I just heard from you. In any case, I'm not convinced with the flexibility and/or complexity,
and so far I haven't seen a use case that really demands it. But I'd be happy to see one.</div>
<div><br>
</div>
<div>thanks,</div>
<div>Robert</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div>
<div>On 1/29/14 4:43 PM, "Ian Wells" <<a href="mailto:ijw.ubuntu@cack.org.uk">ijw.ubuntu@cack.org.uk</a>> wrote:</div>
</div>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div>
<div dir="ltr">My proposals:<br>
<br>
On 29 January 2014 16:43, Robert Li (baoli) <span dir="ltr"><<a href="mailto:baoli@cisco.com" target="_blank">baoli@cisco.com</a>></span> wrote:<br>
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
1. pci-flavor-attrs is configured through configuration files and will be<br>
available on both the controller node and the compute nodes. Can the cloud<br>
admin decide to add a new attribute in a running cloud? If that's<br>
possible, how is that done?<br>
</blockquote>
<div><br>
</div>
<div>When nova-compute starts up, it requests the VIF attributes that the schedulers need. (You could have multiple schedulers; they could be in disagreement; it picks the last answer.) It returns pci_stats by the selected combination of VIF attributes.<br>
<br>
When nova-scheduler starts up, it sends an unsolicited cast of the attributes. nova-compute updates the attributes, clears its pci_stats and recreates them.<br>
<br>
</div>
<div>If nova-scheduler receives pci_stats with incorrect attributes it discards them.<br>
<br>
</div>
<div>(There is a row from nova-compute summarising devices for each unique combination of vif_stats, including 'None' where no attribute is set.)<br>
<br>
</div>
<div>I'm assuming here that the pci_flavor_attrs are read on startup of nova-scheduler and could be re-read and different when nova-scheduler is reset. There's a relatively straightforward move from here to an API for setting it if this turns out to be useful,
but firstly I think it would be an uncommon occurrence and secondly it's not something we should implement now.<br>
</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2. PCI flavor will be defined using the attributes in pci-flavor-attrs. A<br>
flavor is defined with a matching expression in the form of attr1 = val11<br>
[| val12 ©.], [attr2 = val21 [| val22 ©]], ©. And this expression is used<br>
to match one or more PCI stats groups until a free PCI device is located.<br>
In this case, both attr1 and attr2 can have multiple values, and both<br>
attributes need to be satisfied. Please confirm this understanding is<br>
correct<br>
</blockquote>
<div><br>
</div>
<div>This looks right to me as we've discussed it, but I think we'll be wanting something that allows a top level AND. In the above example, I can't say an Intel NIC and a Mellanox NIC are equally OK, because I can't say (intel + product ID 1) AND (Mellanox
+ product ID 2). I'll leave Yunhong to decice how the details should look, though.<br>
<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
3. I'd like to see an example that involves multiple attributes. let's say<br>
pci-flavor-attrs = {gpu, net-group, device_id, product_id}. I'd like to<br>
know how PCI stats groups are formed on compute nodes based on that, and<br>
how many of PCI stats groups are there? What's the reasonable guidelines<br>
in defining the PCI flavors.<br>
</blockquote>
<div><br>
</div>
<div>I need to write up the document for this, and it's overdue. Leave it with me.<br>
-- <br>
</div>
<div>Ian. <br>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</span>
</body>
</html>