| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-cyborg - 2020-05-28 | |||
| 03:34:06 | chenke | bye | |
| #openstack-cyborg - 2020-05-30 | |||
| 14:37:54 | openstackgerrit | Andreas Jaeger proposed openstack/cyborg-specs master: Switch to newer openstackdocstheme and reno versions https://review.opendev.org/731956 | |
| #openstack-cyborg - 2020-06-02 | |||
| 06:08:26 | Sundar | Hello all | |
| 06:08:46 | Yumeng | hello | |
| 06:08:57 | brinzhang | Sundar means add two nova APIs to support bind and unbinding ARQs? | |
| 06:09:09 | songwenping_ | Hello all | |
| 06:09:11 | chenke | Hi I move here. | |
| 06:09:17 | brinzhang | hello all | |
| 06:10:05 | Sundar | brinzhang -- That is not clear to me. If we can do HTTP PATCH on the server object, we can apply or remove devic eprofiles. | |
| 06:10:14 | Sundar | SO I think it is one API only | |
| 06:10:56 | brinzhang | Yeah, one or two all ok for me | |
| 06:11:22 | Sundar | Second problem is with libvirt/qemu -- I don;t think we can add PCI interfaces to a running VM. We have to stop it first, regenerate the doain XML and then restart the server | |
| 06:11:38 | Sundar | *domain XML | |
| 06:12:50 | Sundar | What is the openstack CLI command you are thinking of? | |
| 06:13:24 | Sundar | One option is to avoid all this, and just do a resize with a different flavor, which has a different device profile | |
| 06:13:31 | Sundar | Then no need to change Nova API at all | |
| 06:13:39 | songwenping_ | Sundar, I have test the case of add and remove PCI interfaces to a running VM like this https://review.opendev.org/#/c/729945/5/nova/virt/libvirt/driver.py | |
| 06:14:51 | Sundar | songwenping_ : How does this work? How will libvirt change the domain XML on the fly? | |
| 06:14:52 | brinzhang | Sundar, I mean I want add two nova api to support binding and unbinding arqs from nova. that we can use "nova bind-accelerators and/or unbind-accelerators" | |
| 06:15:44 | brinzhang | this need a spec to nova team | |
| 06:16:12 | Sundar | brinzhang: The Nova CLI is old. In the new openstack CLI, we say: $ openstack server create --flavor myflavor ..., where myflavor has the device profile. What is the openstack CLI you plan to use for hot attach/detach? | |
| 06:17:02 | songwenping_ | `guest.detach_device(hostdevPCI, persistent=True, live=True)' this function with "live=True" param can work for running VM. | |
| 06:17:33 | songwenping_ | we can dumpxml the VM and see the hostdev PCI attach. | |
| 06:17:37 | brinzhang | Sundar, they are same, we should do completed the cli in novaclinet and then to openstackclient to support, otherwise we cannt completed this feature in Nova | |
| 06:18:26 | brinzhang | Sundar: binding/unbinding will be an independent operation in nova | |
| 06:19:09 | brinzhang | Now we dont consider to support resize operation, that will be out of my control | |
| 06:19:19 | brinzhang | I think | |
| 06:19:53 | Sundar | brinzhang: will you pass a device profile to this CLI? if so, will one VM have 2 or more associated device profiles? | |
| 06:21:58 | brinzhang | Sundar: maybe you are right, but I am sure I can answer your question, I dont know does it need pass device_profile to the CLI | |
| 06:22:14 | Sundar | songwenping_: Great. I found this: https://libvirt.org/pci-hotplug.html Thanks for the pointer. | |
| 06:23:15 | brinzhang | If we want to bind an ARQ to an instance that its flavor has not accel:device_profile, maybe we should pass it. | |
| 06:24:34 | brinzhang | with unbind, I think we should judge the instance does have the accel:device_profile, access unbind or reject. | |
| 06:25:07 | songwenping_ | Yeah, right Sundar. Libvirt has supported hotplug for PCI devices. | |
| 06:25:41 | Sundar | IMHO, it is better to support resize: it covers hot-add and is more generally useful also. It allows us to keep the model that one VM has one device profile. | |
| 06:26:24 | Sundar | It is a standrd Nova operation: so less resistance, and may be we can even get help from Nova developers | |
| 06:27:01 | shaohe_feng | Libvirt has supported hotplug for PCI devices for a long time-_- | |
| 06:27:10 | Sundar | brinzhang: on a resize, does Nova scheduler get involved? If so, can it pick a different host? | |
| 06:27:37 | brinzhang | Sundar, resize may need to change host,that not easy to control, I know it should support, but it need time | |
| 06:27:43 | xinranwang | I think it will do re-schedule | |
| 06:27:45 | Sundar | Libvirt does not support it for the default config: looks like you have to specify a different cpu model q35. | |
| 06:29:20 | Sundar | brinzhang: we already have the scheduler flow for device profiles and ARQs. Why do you think it is difficult? | |
| 06:30:59 | Yumeng | brinzhang: I think unshelve will also do re-schedule, right? | |
| 06:31:48 | brinzhang | unshelve jsut need to re-create ARQs, it's easy to get | |
| 06:32:38 | brinzhang | I am not search into resize, so I can not answer clearly. | |
| 06:32:48 | Sundar | We can bring this up in the Nova discussion. | |
| 06:33:35 | Sundar | Anyway, we need to tlak to them about other VM ops for accelerators. | |
| 06:33:39 | Sundar | *talk | |
| 06:33:42 | shaohe_feng | Sundar: a question about schedule. You have bring up a discussion about this: | |
| 06:33:52 | brinzhang | This release we have rebuild/evcaute, suspend/resume, shelve/unshelve, I think it's enough to do in V | |
| 06:34:03 | shaohe_feng | add a new filter for dynamic program | |
| 06:34:23 | shaohe_feng | let cyborg do the filter, right? | |
| 06:34:41 | Sundar | shaohe_feng: not sue what you are referring to | |
| 06:34:50 | brinzhang | In https://review.opendev.org/#/c/729945/5/api-guide/source/accelerator-support.rst we record the operations supported in cyborg | |
| 06:36:07 | Yumeng | brinzhang: I think we can also start to support resize, chenke can investigate in. anyway, we can start discuss with nova during the session. | |
| 06:36:28 | brinzhang | agree | |
| 06:37:53 | brinzhang | after chenke talked with nova team, I think we can get more info about resize. | |
| 06:38:19 | shaohe_feng | such as, currently the function of the FPGA is ovs with 4 VF, but no VM uses it. and now on more FPGA available , we can select this one ovs PFGA as IPsec with 2 NICs, and change its function. | |
| 06:38:52 | shaohe_feng | ^ Sundar so this need a scheduler improvement, right? | |
| 06:39:05 | shaohe_feng | and you bring up to add a new filter. | |
| 06:39:13 | shaohe_feng | I remember. | |
| 06:40:49 | Sundar | shaohe_feng: That doesn;t involve the Nova scheduler. We can define a device profile with a trait that selects that type of FPGA, and an accel:bitstream that refers to ipsec. Then Placement may return some FPGA with ovs image if it is free. But Cyborg will notice it does not have ipsec and do the programming. | |
| 06:41:36 | Sundar | What we don't have is this: | |
| 06:42:05 | shaohe_feng | yes, that's the current flow in cyborg at present | |
| 06:42:13 | Sundar | Say, we have two free FPGAs, one with ovs and with ipsec. In this case, we want the scheduler to pick the one with ipsec preferentially. That is not there today. | |
| 06:43:05 | Sundar | The scheduler has a weigher but it selects among hosts, not among allocation candidates from Placement | |
| 06:43:13 | shaohe_feng | you can not fill ovs or ipsec in the trait | |
| 06:43:44 | Yumeng | brinzhang: I was curious, given "unshelve jsut need to re-create ARQs, it's easy to get", does that mean shelve operation does not actually release the accelerator in hypervisor, the accelerator is still a claimed allocation, that's why there is no re-scheduler in unshelve. | |
| 06:44:00 | Yumeng | please correct me if I was wrong | |
| 06:44:00 | shaohe_feng | but the weigher also not support for FPGA, right? | |
| 06:44:08 | Sundar | That is right. At least, if you do, it makes it too specific -- if you ask for ipsec and no FPGA with ipsec is free, the request will fail. No reprogramming. | |
| 06:44:17 | Sundar | What we really want is preferred traits: | |
| 06:44:36 | Sundar | We should be able to say I prefer the resource provider have this trait but, if not, give me something | |
| 06:44:42 | Sundar | Alex Xu knows about this | |
| 06:45:00 | shaohe_feng | everyone also know about it | |
| 06:45:07 | shaohe_feng | -_- | |
| 06:45:19 | shaohe_feng | but we want to improve it | |
| 06:45:46 | Sundar | shaohe_feng: There are many weighers, and we cna write custom weighers too. None of them cover FPGA, because they deal with hosts, not device RPs. | |
| 06:45:57 | shaohe_feng | and everyone know placement is so weak :') | |
| 06:46:14 | shaohe_feng | we can consider how to improve it. | |
| 06:46:37 | Sundar | What I meant is, Alex Xu knows Cyborg wants preferred traits. I think he was looking into implementing it at some point, but he got busy with other things | |
| 06:47:00 | shaohe_feng | yes, we can consider write a custom weigher for FPGA | |
| 06:47:25 | Sundar | Nope, that won;t help, as I said | |
| 06:47:39 | shaohe_feng | he did not give us a good suggestion | |
| 06:47:54 | shaohe_feng | what he know, others also know \ | |
| 06:48:01 | shaohe_feng | we want a good solution | |
| 06:48:13 | shaohe_feng | not the common knowledge | |
| 06:48:33 | brinzhang | Yumeng: when shelve instance we delete the instance's ARQs from nova and cyborg, when unshelve we should create it, it need to re-scheduler in unshelve | |
| 06:49:16 | shaohe_feng | yes, we can improve placement, every one can improve it. but we can let upstream accept it. | |
| 06:49:31 | brinzhang | Yumeng: the poc code is here, you can review https://review.opendev.org/#/c/729563/2 | |
| 06:50:42 | shaohe_feng | such as SDL can used for placement, but it is a big change for placement, right? vendor can improve it in this way. but it is difficult in upstream, right? | |
| 06:51:12 | Sundar | If we can get preferred traits, that would help. Shall we add that to Nova discussion? | |
| 06:51:19 | brinzhang | we will introduce the service version to support these operations, controled in https://review.opendev.org/#/c/715326/13/nova/compute/api.py@288 | |
| 06:52:23 | shaohe_feng | preferred is just a case of SDL. SDL can cover it. | |
| 06:54:18 | shaohe_feng | and preferred can not resolve the complex scenarios :') | |
| 06:54:24 | Sundar | Yumeng: ^ | |
| 06:54:38 | Sundar | brinzhang: ^ | |
| 06:55:15 | Yumeng | Sundar,yes sure. I will add operations to Nova etherpad | |
| 06:55:32 | Sundar | No I mean discuss preferred traits | |
| 06:55:32 | shaohe_feng | Yumeng no, not this release. | |
| 06:55:46 | shaohe_feng | the next release. | |