Earlier  
Posted Nick Remark
#openstack-nova - 2021-06-18
12:39:05 gibi cool
12:39:16 gibi I think I missunderstood some port of the proposal
12:39:30 bauzas ah ?
12:40:01 gibi today we have the VGPU resource class in placement
12:40:17 gibi how do we use that if there are multiple vgpu types are enabled?
12:41:02 bauzas gibi: two possibilities
12:41:51 bauzas gibi: either you don't need to use types
12:42:10 bauzas and then even if you have multiple types, any of them will be used
12:42:14 bauzas or, you use traits
12:42:17 gibi I see
12:42:48 gibi so we always represent every vgpu type as VGPU inventory in placement, and if the deployer wants to differentiate between types then he needs to use traits
12:44:32 gibi do I understand it correctly?
12:45:25 gibi assume yes. :)
12:46:03 gibi so then we introduce generic mdev support
12:46:07 bauzas sorry, I was afk
12:46:16 bauzas yes, indeed
12:46:28 gibi and there we say each mdev type is a new CUSTOM RC
12:47:31 gibi so if I have enabled_vgpu_types = A, B, today then both represented az VGPU inventory, but when I translate that to the new enabled_mdev_types =A, B there will be two new CUSTOM RCs?
12:47:57 gibi so the logic changes
12:48:05 sean-k-mooney that is an interesting point
12:48:14 gibi what is a single resource pool today, will be two separate pool tomorrow
12:48:19 sean-k-mooney i guess when translating we would have to map both to vgpu
12:49:06 gibi sean-k-mooney: to be able to translate we need to know which mdev type represents a vgpu
12:49:14 gibi to put them into the same pool
12:49:21 bauzas sean-k-mooney: gibi: by default, this could not change
12:49:23 sean-k-mooney gibi: oh kno i ment have a config option
12:49:29 sean-k-mooney mdev_type -> RC
12:50:00 bauzas sean-k-mooney: gibi: but if the operator use a different mdev_class per type, yes
12:50:50 sean-k-mooney bauzas: well even in th vgpu case i think ti woudl be nice to use custom RCs instead of VGPU + trait
12:50:59 gibi hm
12:51:19 sean-k-mooney one thing i have been wonderign is do we want to have a different mechanium to request this
12:51:32 gibi so we can use the same mdev_class = vgpu to two different mdev type
12:51:38 sean-k-mooney e.g. an mdev: extra spec
12:51:39 bauzas sean-k-mooney: the config options I provided in https://review.opendev.org/c/openstack/nova-specs/+/792796/3/specs/xena/approved/generic-mdevs.rst could do this
12:52:14 sean-k-mooney kind of like the pci alais
12:52:26 sean-k-mooney bauzas: yes it can
12:52:45 bauzas gibi: do you have concerns with this ?
12:53:08 sean-k-mooney gibi: yes you would have mdev_class = vgpu in two different mdev type
12:53:11 bauzas for the moment, we indeed use traits for vgpu types https://docs.openstack.org/nova/latest/admin/virtual-gpu.html#optional-provide-custom-traits-for-multiple-gpu-types
12:53:21 gibi bauzas: actually I've just relaized that my using the same mdev_class in two different types the pooling can be defined precisely
12:53:35 lyarwood artom / sean-k-mooney ; https://review.opendev.org/c/openstack/nova-specs/+/794799 - would you mind taking another look at this btw?
12:53:38 gibi s/my/by/
12:53:52 bauzas gibi: if you use mdev_class='vgpu' which is the default, then you will have two inventories with the same RC
12:54:01 gibi bauzas: cool, that works for me
12:54:08 sean-k-mooney lyarwood: sure ill take a look tat this soon after ^
12:54:25 lyarwood ack thanks :)
12:54:28 sean-k-mooney bauzas: i have one question though
12:54:29 bauzas gibi: if you use other mdev_class value, you will still have two inventories but with different RCs
12:54:46 sean-k-mooney from the generic resouces:request in the flavor
12:54:53 gibi bauzas: and then what I really want is to tell the consumers of the generic mdev feature not to use to specific RC names for different types but uses custom traits instead as that is more flexibly when you request things
12:54:56 bauzas sean-k-mooney: sure, shoot
12:55:10 sean-k-mooney how are you planning to determin that a RC is an request for an MDEV to be passed through
12:55:11 bauzas gibi: agreed
12:55:12 gibi s/to/too/
12:55:22 bauzas gibi: we should document this
12:55:29 gibi bauzas: agreed
12:55:30 sean-k-mooney are you on the compute node going to look at all the RC in the config for mdevs and then just compare to that list
12:55:49 bauzas gibi: that's why I used the wording "class" and not "type"
12:56:22 bauzas gibi: in theory, that's for apples vs. bananas
12:56:28 bauzas gibi: and not about apple flavors
12:56:37 sean-k-mooney or should we havee a mdev_request:<RC>=<amount>,<RC>=<Amount>,... extra specs
12:56:54 bauzas sean-k-mooney: I was expecting to reuse this method, sec
12:57:29 sean-k-mooney gibi: bauzas would it be clear to use resouce_class instead of mdev_class in the cofnig
12:57:37 bauzas sean-k-mooneyhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L7377
12:57:58 bauzas sean-k-mooney: meh, I'm not opiniated by the option name
12:58:01 sean-k-mooney bauzas: the reason im asking is for the pci in placement spec by the way
12:58:11 gibi sean-k-mooney: I have no hard opinion about naming, if the doc is clear about that different classes results in different resource pools then I'm fine with the naming
12:58:23 bauzas sean-k-mooney: so I was expecting to look at the options to know the custom RCS
12:58:28 sean-k-mooney im not currently planning to support resource: syntax for pci passthough
12:59:06 bauzas sean-k-mooney: sorry, wrong method, this would be done in https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L7763
12:59:10 sean-k-mooney bauzas: ok
12:59:30 sean-k-mooney so for consitency should i include the same capablity in the pci spec?
12:59:55 bauzas sean-k-mooney: within this method, we would look at the known custom RCs besides the VGPU one
13:00:09 sean-k-mooney bauzas: i can determin the classes form pci_whitelist
13:00:29 bauzas sean-k-mooney: correct, I was expecting to look at the options
13:01:27 gibi sean-k-mooney: about PCI, we have an established way to request PCI, I would not extend on that as that can cause confusion.
13:01:49 gibi sure the PCI and the VGPU will be differnet from the flavor point of view
13:01:53 gibi but I think that is fine
13:02:02 sean-k-mooney i dont really like that personally
13:02:24 sean-k-mooney well its more i dont really like using resouce: as the only way to requst vgpus
13:02:35 gibi I see
13:02:37 sean-k-mooney but if we are supporting it for mdev i dont see why we would not support it for pci
13:02:53 sean-k-mooney i kind fo feel like we shoud go one way or the other
13:03:13 gibi I agree that having 'resource:' in the flavor is a shortcut, but it is an established form for VGPU already
13:03:14 sean-k-mooney the resouce class basiclaly will give use the same level of indrection the pci alais has today
13:03:28 sean-k-mooney but without the need to configure pci aliase in the first place
13:04:33 sean-k-mooney gibi: basically im wonderign should look to eventually remove the pci alaise and just use resouce: for pci passthough or mdev passtough in the future
13:04:44 gibi I can accept that ^^
13:05:01 gibi they feel pretty equal to me regarding expressivity
13:05:23 gibi but I don't think we have to do that now. as you said, in the future :)
13:05:58 sean-k-mooney ill at least mention it in the spec in the alternitive section as possibel future work
13:06:06 gibi that is totally cool with me
13:07:25 sean-k-mooney the spec will already be split into 2 spec 1 basic passtogh 2 neutron integration i can add 3 which is replaceing alsias with resouce: but that wont happen this cycle
13:07:40 gibi sure
13:07:44 gibi sounds like a plan :)
13:08:07 sean-k-mooney bauzas: so just looping back to your discussion
13:08:27 sean-k-mooney i think im ok with useing resouce: and just checking the config on the compute node for the RC classes
13:09:07 sean-k-mooney i would still prefer to use resouce_class as the config option name but thats minor
13:09:26 sean-k-mooney i can also live with mdev_class if we just have good help text
13:09:42 sean-k-mooney gibi: did you have any other open question on bauzas proposal

Earlier   Later