| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2022-02-15 | |||
| 14:13:19 | dmitriis | sean-k-mooney: on module renaming: yes, kind of going along the way VFIO is going (it has a common part and bus-specific parts) | |
| 14:13:28 | sean-k-mooney | but i have not really spent time looking, at least not in the last 2 years | |
| 14:15:26 | dmitriis | sean-k-mooney: one other direction which we haven't covered is ways for an operator to choose which device will be selected. E.g. in case of multiple DPUs per host or in the cloud we might want to supply product id-like info. | |
| 14:15:36 | dmitriis | currently InstancePCIRequest gets a generated spec | |
| 14:16:07 | sean-k-mooney | no | |
| 14:16:11 | sean-k-mooney | we do not | |
| 14:16:37 | sean-k-mooney | the operator gets to select which device are allowed | |
| 14:16:57 | sean-k-mooney | and can also associate them with a neutron phsyical network | |
| 14:17:18 | sean-k-mooney | but we explcitly do not want them to be able to select device via the pci aliase or the request by other means | |
| 14:17:41 | sean-k-mooney | what we could support is traits requests | |
| 14:17:58 | sean-k-mooney | or perhaps resouce classes | |
| 14:18:20 | sean-k-mooney | i have covered both of those in my pci in placment spec | |
| 14:18:44 | sean-k-mooney | https://review.opendev.org/c/openstack/nova-specs/+/791047 | |
| 14:18:51 | dmitriis | yeah, agreed. I didn't mean we want to specify bus-specific info in a request - just that there's no way to alter device selection | |
| 14:19:22 | dmitriis | ^ yes, that. I need to look at the spec again | |
| 14:19:24 | sean-k-mooney | it depend on what you mean by bus specific but in generally i dont think we shoudl | |
| 14:19:32 | sean-k-mooney | we can do it indrectly | |
| 14:19:38 | sean-k-mooney | vai resouce classes or traits | |
| 14:20:03 | sean-k-mooney | vendor id and product id are some what generic and somewhat specific | |
| 14:20:15 | sean-k-mooney | in that other buss tend to have a similar concept | |
| 14:20:29 | sean-k-mooney | like usb has a similar mapping | |
| 14:22:12 | dmitriis | sean-k-mooney: yeah, an indirect approach as with classes or traits would do it I think. | |
| 14:27:10 | sean-k-mooney | i was propsoing using CUSTOM_<Vendor_id>_<product_id> as the resouce class unless you set one in the pci whitelist | |
| 14:27:34 | sean-k-mooney | and extending the pci_alias to supprot a resouce class too | |
| 14:28:28 | sean-k-mooney | the neutron port could potentally specify it but in generally it woudl be nicer if it specified thigns like Support ipse via a HW_NET_IPSEC trait request instead | |
| 14:29:18 | sean-k-mooney | you would need a new neutron extenion however to tie that all together | |
| 14:39:07 | dmitriis | sean-k-mooney: yes, it would be preferable to use a Neutron extension the way I see it | |
| 14:40:20 | sean-k-mooney | there is a security consern with allow arbitry Resouce classes | |
| 14:40:36 | sean-k-mooney | but traits or vendor id and product id may be allowable | |
| 14:40:55 | sean-k-mooney | we perhasp could allow a RC but not allow you to specify the quantity | |
| 14:41:14 | sean-k-mooney | that is proably safe | |
| 14:53:31 | ralonsoh | sean-k-mooney, is it possible to run nova API without wsgi? | |
| 14:54:06 | sean-k-mooney | yes | |
| 14:54:11 | sean-k-mooney | well | |
| 14:54:20 | sean-k-mooney | without an external wsgi server yes | |
| 14:54:32 | sean-k-mooney | it still use wsgi but the python webserver | |
| 14:54:36 | sean-k-mooney | if you just run nova-api | |
| 14:54:38 | ralonsoh | to be able to run it in debug mode, with pycahrm | |
| 14:55:03 | sean-k-mooney | oh well that is harder you can try but eventlet tends to break things | |
| 14:55:23 | sean-k-mooney | in pycharm you can just have it launch the nova-api console script | |
| 14:55:28 | ralonsoh | sean-k-mooney, at least to know when the port receives the allocation information | |
| 14:55:43 | ralonsoh | ok, that could be an idea | |
| 14:56:01 | sean-k-mooney | you have to enabel the gevent pdb option | |
| 14:56:12 | sean-k-mooney | im not sure if its still considerd experimental or not | |
| 14:56:20 | sean-k-mooney | but it was off by default before in pycharm | |
| 14:56:39 | ralonsoh | it works fine | |
| 14:56:40 | sean-k-mooney | the gevent supprot help with debuging with eventlets | |
| 14:56:58 | sean-k-mooney | ya you could actuly disable eventlets in the nova-api | |
| 14:57:06 | sean-k-mooney | with an env argument | |
| 14:57:25 | sean-k-mooney | we only use it for one thing which is multi cell scater gater | |
| 14:57:58 | sean-k-mooney | https://github.com/openstack/nova/blob/master/nova/monkey_patch.py#L98 | |
| 14:58:08 | sean-k-mooney | OS_NOVA_DISABLE_EVENTLET_PATCHING | |
| 14:58:13 | ralonsoh | yes, but the wsgi part? | |
| 14:58:29 | sean-k-mooney | the api is a wsgi applicaiton | |
| 14:58:50 | sean-k-mooney | you cant run it with out wsgi but you do not need mod_wsgi or uwsgi | |
| 15:00:52 | ralonsoh | sean-k-mooney, when the allocation info is added to the port? | |
| 15:01:35 | sean-k-mooney | as in placment allcoations | |
| 15:01:44 | sean-k-mooney | i belive as part of port binding | |
| 15:02:03 | sean-k-mooney | ralonsoh: i doubt that will happen in the api | |
| 15:02:08 | sean-k-mooney | it may | |
| 15:02:40 | sean-k-mooney | but conductor, is more likely if not the comptue or schduler | |
| 15:02:50 | ralonsoh | ok | |
| 15:03:19 | sean-k-mooney | the allcoation will only be know after we select the host so its after the api ahs started the async boot in the conductor | |
| 15:03:49 | bauzas | reminder: nova meeting in 57 mins | |
| 15:03:58 | sean-k-mooney | ralonsoh: https://github.com/openstack/nova/blob/master/nova/network/neutron.py#L1172-L1181 | |
| 15:04:24 | ralonsoh | sean-k-mooney, yes but I have no idea who calls this method | |
| 15:04:35 | ralonsoh | compute | |
| 15:04:39 | sean-k-mooney | likely the compute agent or conductor | |
| 15:05:17 | sean-k-mooney | https://opendev.org/openstack/nova/src/branch/master/nova/compute/manager.py#L1769 | |
| 15:07:16 | gibi | ralonsoh: during normal VM create, that is called from the nova-compute service in build_and_run_instance | |
| 15:07:27 | gibi | but it is async as sean-k-mooney linked | |
| 15:07:30 | sean-k-mooney | ralonsoh: so ya this all happens on the compute node from build_and_run_instance | |
| 15:07:39 | ralonsoh | gibi, is there something extra I need to add for handling the QoS in the port? | |
| 15:07:50 | ralonsoh | for placement testing, I'm implementing the OVN placement support | |
| 15:08:10 | ralonsoh | (I have created the RPs when the chassis is created) | |
| 15:08:10 | sean-k-mooney | no if the port has the resouce request we shoudl include it | |
| 15:08:21 | gibi | ralonsoh: hm I have to look but I think that code has no conditional on OVN backend | |
| 15:08:32 | ralonsoh | perfect! | |
| 15:08:42 | gibi | so as sean-k-mooney said, make sure the port has resource request | |
| 15:08:49 | ralonsoh | yeah | |
| 15:08:53 | gibi | then nova should do the scheduling and allocation accordingly | |
| 15:09:02 | gibi | and then adds the RP uuid to the port during binding | |
| 15:09:40 | sean-k-mooney | ralonsoh: also check in the db. as you know neutron has a habbit fo resusing the request to generate teh respocne so if the extions is disabled in the neutron server it can say its there but not persist it into the db | |
| 15:09:54 | sean-k-mooney | which is what happened to me with port numa requests | |
| 15:10:10 | ralonsoh | sean-k-mooney, I'm retrieving this info from the chassis, not the RP | |
| 15:10:14 | sean-k-mooney | osc clearly showed it in the port create respocne but a show afterword did not have it | |
| 15:10:14 | ralonsoh | not the placement | |
| 15:10:34 | sean-k-mooney | i did not mention the RP | |
| 15:11:08 | sean-k-mooney | but i assume you mean you are retriving the bandwith inventories config options form the chassis | |
| 15:11:18 | ralonsoh | yes | |
| 15:11:31 | sean-k-mooney | to create the RP inventories in placment yes | |
| 15:12:04 | sean-k-mooney | the other half of it si actully requesting allcoations form that via the resouce_requests object in the port | |
| 15:12:30 | sean-k-mooney | gibi: its not a dict correct to account for the fact you can have multple different requst groups for different qos polices | |
| 15:12:33 | sean-k-mooney | *now | |
| 15:13:00 | sean-k-mooney | or do we still just have one request group | |
| 15:14:15 | gibi | sean-k-mooney: it depends on an extension :) | |
| 15:14:29 | sean-k-mooney | ah right | |
| 15:14:39 | sean-k-mooney | we detect if neutron support the new format | |
| 15:14:52 | sean-k-mooney | i forgot that was dynamic | |
| 15:15:00 | gibi | yepp | |