| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-03-27 | |||
| 15:08:01 | jaypipes | does it even matter guys? the spec is up. | |
| 15:08:01 | bauzas | I agree it's a signal | |
| 15:08:12 | mriedem | yeah i'm saying it's a spec, | |
| 15:08:15 | mriedem | and likely a microversion bump | |
| 15:08:26 | bauzas | okay, I'll comment that too then | |
| 15:09:47 | bauzas | mriedem: jaypipes: speaking of specs | |
| 15:10:03 | bauzas | jaypipes: now I'm back, can we discuss about my point with vGPU types ? | |
| 15:10:17 | bauzas | looks like you were sad about that | |
| 15:11:05 | sahid | stephenfin, sean-k-mooney[m] I think the issue is on the scheduling, we will have first to select a host so then we could create the ports and query them | |
| 15:11:28 | stephenfin | sahid: I'd be perfectly fine saying we need pre-created ports for this thing | |
| 15:11:54 | stephenfin | That's already a requirement for SR-IOV and afaik is the plan for gibi's bandwidth-aware scheduling spec | |
| 15:12:18 | sahid | stephenfin: the problem is then you need to raise that re-schedule excpetion is the resources are not enough | |
| 15:12:27 | jaypipes | bauzas: "sad" would be one way to put it, yes. | |
| 15:12:32 | sahid | yes i think we do that somewhere but i can't really remember | |
| 15:12:47 | stephenfin | same issue with SR-IOV though, right? | |
| 15:12:47 | bauzas | jaypipes: let's be gentlemen :p | |
| 15:13:08 | bauzas | jaypipes: so, before discussing about a solution, do you understand the problem ? | |
| 15:13:18 | sahid | stephenfin: yes probably you are right | |
| 15:13:43 | jaypipes | bauzas: yes, I fully understand the problem. | |
| 15:13:57 | bauzas | jaypipes: in https://specs.openstack.org/openstack/nova-specs/specs/queens/implemented/add-support-for-vgpu.html we don't mention that a single pGPU can have multiple types and we just suppose a single inventory of VGPU for each | |
| 15:14:47 | jaypipes | bauzas: I had numerous conversations with jianghuaw_ about this. | |
| 15:14:48 | bauzas | the fact is, once *one* mediated device is created, then *all* the others types are not possible for that pGPU | |
| 15:15:03 | stephenfin | sahid, sean-k-mooney[m]: The bigger concern I have is that a vhost-user port is configured to a given PMD based on the guest - not the routes | |
| 15:15:04 | bauzas | jaypipes: and what are your thoughts on that ? | |
| 15:15:52 | bauzas | jaypipes: we already somehow set inventories based on config option thru enabled_gpu_types tho | |
| 15:16:00 | jaypipes | bauzas: the only thing I really don't want is on-the-fly re-configuration of providers based on *what the user requested*. | |
| 15:16:15 | stephenfin | sahid, sean-k-mooney[m]: e.g. all vhost-user ports will be handled by a random PMD until the guest is attached, when that reallocation happens | |
| 15:16:17 | bauzas | jaypipes: it's not that, if I understand correctly your concern | |
| 15:16:45 | stephenfin | sahid, sean-k-mooney[m]: Assuming vhost-user ports that aren't associated with a guest even appear in output of 'ovs-appctl dpif-netdev/pmd-rxq-show' (I can't test it, grrr) | |
| 15:17:12 | jaypipes | bauzas: if we want to pre-define configuration of multiple supported vGPU types using a CONF option, so be it. I would prefer to stop adding yet more CONF options and instead handle inventory of providers using a provider-config YAML file format, but that ain't gonna happen apparently, so be it. | |
| 15:17:33 | bauzas | jaypipes: if we go on a direction where each pGPU has multiple inventories, each for a GPU type, then that said, yes it would be dynamically modified on an instance creation | |
| 15:17:48 | kashyap | alex_xu_: You're right; I can remove that extra test. The main test in test_driver.py takes care of the full config. Thanks for catching. | |
| 15:17:52 | bauzas | jaypipes: I can try to spec it, you know | |
| 15:18:05 | jaypipes | bauzas: that's exactly what I *don't* want. | |
| 15:18:05 | bauzas | jaypipes: the YAML file | |
| 15:18:15 | bauzas | jaypipes: okay cool, so we're aligned | |
| 15:18:18 | edleafe | bauzas: multiple inventories is not going to work | |
| 15:18:31 | bauzas | edleafe: if each inventory is behind a child RP | |
| 15:18:38 | bauzas | either way, sounds we're in agreement | |
| 15:18:42 | edleafe | yeah | |
| 15:18:51 | bauzas | I *don't* want to make things complicated | |
| 15:19:03 | bauzas | the problem is more about the specific config option | |
| 15:19:08 | bauzas | I understand jaypipes on that | |
| 15:19:15 | jaypipes | bauzas: it would be the same inventory of VGPU. But different child providers would be tagged with specific VGPU_TYPE_XXX traits, right? | |
| 15:19:37 | sean-k-mooney[m] | stephenfin: if they are not associate with a guest im not sure. when they do get added to a guest they might also change. | |
| 15:19:41 | bauzas | jaypipes: you're talking of the possibility to have children, each of them being a type ? | |
| 15:19:56 | bauzas | jaypipes: if so, each inventory would be different | |
| 15:20:06 | jaypipes | bauzas: no | |
| 15:20:10 | bauzas | because the total number of vGPUs you can create depends on your type | |
| 15:20:20 | jaypipes | bauzas: I'm saying the resource class would all be "VGPU" | |
| 15:20:21 | bauzas | oh, with the conf opt solution ? | |
| 15:20:34 | stephenfin | sean-k-mooney[m]: Yeah, it seems like a lot of magic (even for ovs-dpdk) to say "we have this route that uses this NIC, therefore the vhost-user port should be processed by this PMD thread" | |
| 15:20:39 | bauzas | yeah, it's still VGPU resource class and a trait for that type | |
| 15:20:49 | jaypipes | bauzas: right. | |
| 15:20:58 | bauzas | so each PGPU will be a leaf | |
| 15:21:11 | sean-k-mooney[m] | stephenfin: this wont work in general however as this would only work with vhost-user. the approch you need to enable need to work for any switch backend | |
| 15:21:22 | bauzas | with one inventory about the total number of vGPUs it can create *for the type defined by the opt* | |
| 15:21:25 | jaypipes | bauzas: each pGPU group, but yes. | |
| 15:21:33 | bauzas | plus the trait telling which type it is | |
| 15:21:42 | bauzas | jaypipes: libvirt doesn't have the notion of groups | |
| 15:21:43 | jaypipes | bauzas: right. | |
| 15:21:49 | jaypipes | bauzas: I know, but xen does. | |
| 15:22:21 | bauzas | sure, but from a placement perspective, a "PGPU" RP is, from a libvirt perspective, a PCI device, and from a xen perspective, a PGPU group | |
| 15:22:25 | stephenfin | sean-k-mooney[m]: Sure, but vhost-user would be a start. Once we have a way to expose this information, we can extend other backends | |
| 15:22:30 | bauzas | but both are reconciled | |
| 15:22:37 | jaypipes | ack | |
| 15:22:41 | bauzas | it's just a driver-only thing | |
| 15:23:00 | bauzas | okay, now question | |
| 15:23:07 | bauzas | does that need to be spec'd up ? | |
| 15:23:11 | bauzas | jaypipes:^ | |
| 15:23:57 | sean-k-mooney[m] | stephenfin: if we wanted to do anything regardign the interface rx queue it likely should be an os-vif thing where we calulate teh best pmd our selves and set that not the other way around | |
| 15:24:13 | jaypipes | bauzas: yes. new CONF option, new way of behaving for the virt drivers. I would say yes. | |
| 15:24:35 | openstackgerrit | Merged openstack/nova master: tox: Remove unnecessary configuration https://review.openstack.org/556544 | |
| 15:26:09 | sean-k-mooney[m] | stephenfin: most backend wont that this info so vhost-user is not something we should build on | |
| 15:26:36 | stephenfin | sean-k-mooney[m]: What other backends would there be? | |
| 15:26:54 | openstackgerrit | Kashyap Chamarthy proposed openstack/nova master: libvirt: Allow to specify granular CPU feature flags https://review.openstack.org/534384 | |
| 15:26:57 | sean-k-mooney[m] | stephenfin: for example kernel ovs with kernel vhost has kerne vhost-treads it spwans per interface, it dose not have pmds, so while we can taskset those threads we cant affinites them via looking a queues | |
| 15:27:18 | bauzas | jaypipes: fine by me | |
| 15:27:51 | bauzas | artom: had some concerns about the virt driver "calling" the conductor in https://review.openstack.org/#/c/552722/6 | |
| 15:28:24 | artom | bauzas, replied on the patch, but we can continue here if you want. Basically, no new calls are added, it's just existing methods/returns with new data in them | |
| 15:28:30 | artom | Should I clarify the spec? | |
| 15:28:30 | bauzas | artom: maybe I misunderstood but you mean that the compute service would call back the conductor ? | |
| 15:28:31 | alex_xu_ | kashyap: np | |
| 15:28:45 | bauzas | artom: that would help | |
| 15:29:03 | edmondsw | mriedem I don't remember ever discussing a service-protected-server case in our RBAC discussions, but I don't think you need to use service tokens there... just have a role that's given permission to manage these | |
| 15:29:12 | sean-k-mooney[m] | stephenfin: in any case queue mapping or tasksetting of vhost threads i think is out of scope of nova | |
| 15:29:26 | edmondsw | that spec needs a lot of work if anything's to happen there | |
| 15:30:10 | bauzas | artom: also, on the fact we would check the compute version | |
| 15:30:32 | bauzas | artom: does a live migration work with two different compute versions already ? | |
| 15:30:34 | openstackgerrit | Merged openstack/nova master: Move placement test cases from db to placement https://review.openstack.org/553149 | |
| 15:30:40 | mriedem | bauzas: yes | |
| 15:30:48 | mriedem | we support mixed version computes for live migration | |
| 15:30:49 | artom | bauzas, I didn't see anything in the code that would suggest it wouldn't | |
| 15:30:58 | bauzas | mriedem: context is https://review.openstack.org/#/c/552722/6/specs/rocky/approved/numa-aware-live-migration.rst@244 | |
| 15:30:59 | mriedem | we have a grenade + live migratoin job that also does this back and forth | |
| 15:30:59 | sean-k-mooney[m] | linux bridge, sriov, hardware offloaded ovs, vpp, iovision(ebpf), mini net, calico and macvtap are the main ones used beyond ovs/ovs-dpdk | |
| 15:31:25 | bauzas | mriedem: then, I was claiming we could microversion the behavioural change artom is going to introduce | |
| 15:31:26 | sean-k-mooney[m] | oh there is also snabb switch | |
| 15:31:27 | mriedem | that's a bit drastic | |
| 15:31:32 | artom | bauzas, also, we'd only fail it if the instance has "NUMA" characteristics | |