[openstack-dev] [nova] [neutron] PCI pass-through network support
yongli he
yongli.he at intel.com
Fri Jan 10 07:11:09 UTC 2014
On 2014?01?10? 00:49, Robert Li (baoli) wrote:
>
> Hi Folks,
>
HI, all
basiclly i flavor the pic-flavor style and against massing the
white-list. please see my inline comments.
>
> With John joining the IRC, so far, we had a couple of productive
> meetings in an effort to come to consensus and move forward. Thanks
> John for doing that, and I appreciate everyone's effort to make it to
> the daily meeting. Let's reconvene on Monday.
>
> But before that, and based on our today's conversation on IRC, I'd
> like to say a few things. I think that first of all, we need to get
> agreement on the terminologies that we are using so far. With the
> current nova PCI passthrough
>
> PCI whitelist: defines all the available PCI passthrough
> devices on a compute node. pci_passthrough_whitelist=[{
> "vendor_id":"xxxx","product_id":"xxxx"}]
> PCI Alias: criteria defined on the controller node with which
> requested PCI passthrough devices can be selected from all the PCI
> passthrough devices available in a cloud.
> Currently it has the following format:
> pci_alias={"vendor_id":"xxxx", "product_id":"xxxx", "name":"str"}
> nova flavor extra_specs: request for PCI passthrough devices
> can be specified with extra_specs in the format for
> example:"pci_passthrough:alias"="name:count"
>
> As you can see, currently a PCI alias has a name and is defined on the
> controller. The implications for it is that when matching it against
> the PCI devices, it has to match the vendor_id and product_id against
> all the available PCI devices until one is found. The name is only
> used for reference in the extra_specs. On the other hand, the
> whitelist is basically the same as the alias without a name.
>
> What we have discussed so far is based on something called PCI groups
> (or PCI flavors as Yongli puts it). Without introducing other
> complexities, and with a little change of the above representation, we
> will have something like:
> pci_passthrough_whitelist=[{ "vendor_id":"xxxx","product_id":"xxxx",
> "name":"str"}]
>
> By doing so, we eliminated the PCI alias. And we call the "name" in
> above as a PCI group name. You can think of it as combining the
> definitions of the existing whitelist and PCI alias. And believe it or
> not, a PCI group is actually a PCI alias. However, with that change of
> thinking, a lot of
the white list configuration is mostly local to a host, so only address
in there, like John's proposal is good. mix the group into the whitelist
means we make the global thing per host style, this is maybe wrong.
> benefits can be harvested:
>
> * the implementation is significantly simplified
but more mass, refer my new patches already sent out.
> * provisioning is simplified by eliminating the PCI alias
pci alias provide a good way to define a global reference-able name for
PCI, we need this, this is also true for John's pci-flavor.
> * a compute node only needs to report stats with something
> like: PCI group name:count. A compute node processes all the PCI
> passthrough devices against the whitelist, and assign a PCI group
> based on the whitelist definition.
simplify this seems like good, but it does not, separated the local and
global is the instinct nature simplify.
> * on the controller, we may only need to define the PCI group
> names. if we use a nova api to define PCI groups (could be private or
> public, for example), one potential benefit, among other things
> (validation, etc), they can be owned by the tenant that creates them.
> And thus a wholesale of PCI passthrough devices is also possible.
this mean you should consult the controller to deploy your host, if we
keep white-list local, we simplify the deploy.
> * scheduler only works with PCI group names.
> * request for PCI passthrough device is based on PCI-group
> * deployers can provision the cloud based on the PCI groups
> * Particularly for SRIOV, deployers can design SRIOV PCI
> groups based on network connectivities.
>
> Further, to support SRIOV, we are saying that PCI group names not only
> can be used in the extra specs, it can also be used in the —nic option
> and the neutron commands. This allows the most flexibilities and
> functionalities afforded by SRIOV.
i still feel use alias/pci flavor is better solution.
>
> Further, we are saying that we can define default PCI groups based on
> the PCI device's class.
default grouping make our conceptual model more mass, pre-define a
global thing in API and your hard code is not good way, i post -2 for this.
>
> For vnic-type (or nic-type), we are saying that it defines the link
> characteristics of the nic that is attached to a VM: a nic that's
> connected to a virtual switch, a nic that is connected to a physical
> switch, or a nic that is connected to a physical switch, but has a
> host macvtap device in between. The actual names of the choices are
> not important here, and can be debated.
>
> I'm hoping that we can go over the above on Monday. But any comments
> are welcome by email.
>
> Thanks,
> Robert
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140110/5959f003/attachment.html>
More information about the OpenStack-dev
mailing list