| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-cyborg - 2018-05-30 | |||
| 14:29:56 | shaohe_feng | Sundar, can you give a summary about it? | |
| 14:30:04 | Sundar | It was meant for discussion with operators and end users. We had Verizon, SKA and CERN there, apart from many developers, incl. Nova developers | |
| 14:30:35 | Sundar | The discusison is here: #link https://etherpad.openstack.org/p/Cyborg-FPGA-Support-for-Cloud-NFV | |
| 14:31:14 | Sundar | One of the main conclusions is that the model where VM issues programming requests (what we called run-time programming) is important | |
| 14:31:27 | Sundar | However, we do not have a good end-to-end flow for that today. | |
| 14:31:44 | Sundar | This is an open question that we should address. | |
| 14:32:11 | Li_Liu | The main concern is who to trigger the programming right? | |
| 14:32:57 | Sundar | That is one of the main concerns, the other being the validity of the bitstream itself | |
| 14:33:11 | Li_Liu | ah, that one | |
| 14:34:15 | Sundar | For example, if a developer is developing new RTL inside the VM, the resulting bitstream may have bugs. Can that compromise the shell logic? Can it result in local hot spots or other power issues that affect the FPGA chip itself? | |
| 14:35:06 | Sundar | I was hoping to get feedback from operators on how they plan to validate bitstreams. Has Huawei considered that question? | |
| 14:35:45 | Li_Liu | in terms of operation, shall we 1. let this rtl be synthesis in a wel controlled environment. 2. Let this bitstream load on a clean room enviroment first | |
| 14:36:07 | Li_Liu | actually, internally, we did have some discussion | |
| 14:36:57 | Li_Liu | for now, we might not care too much about it as most of the IPs are in house developed | |
| 14:37:18 | Li_Liu | but in the case of letting 3rd party do the development | |
| 14:37:41 | Li_Liu | I think at lease 1. let this rtl be synthesis in a well controlled environment. is needed | |
| 14:38:49 | Sundar | If the environment is well-controlled, the bitstream may still have bugs. So, it is necessary but not sufficient. | |
| 14:40:17 | Sundar | Re. "Let this bitstream load on a clean room enviroment first", that is a good idea. So, do we confine bitstream development to bare-metal instances, so that a tenant can affect only himself or the local FPGA? | |
| 14:40:27 | Li_Liu | yes, that's why the 2nd point is also needed | |
| 14:41:46 | Li_Liu | it depends, it might just be a VM with a entire bitstream. The cloud provider should provide a CI/CD framework for such dev work | |
| 14:41:57 | Li_Liu | entire FPGA sorry :( | |
| 14:42:38 | Sundar | Sure. By clean room environment, do you mean bare-metal instances for development? | |
| 14:44:20 | shaohe_feng | Li_Liu, do you means is a VM just own a region, it does not be allowed to do program except it own the whole FPGA? | |
| 14:44:33 | Li_Liu | hmm, IMO developer/user might not even care/sense this. All they care is I submit my rtl and it passed all the sanity test | |
| 14:45:01 | Li_Liu | shaohe_feng we are not there yet | |
| 14:46:24 | Li_Liu | after the sanity test, the synthesized bitstream is allowed to be loaded on the PR/FPGA | |
| 14:47:58 | Sundar | What is the sanity test? Checking for power issues depends on workloads and dynamic conditions | |
| 14:50:03 | Li_Liu | Sundar, as least the sanity test should check the rlt for security concerns | |
| 14:50:46 | shaohe_feng | Sundar, Li_Liu, the scenario, a tenant by a VM from cloud provider, he want this VM as his development evn, which means he will do his RTL iterative development in this VM | |
| 14:50:51 | Li_Liu | to identify any malicious behavior | |
| 14:52:29 | shaohe_feng | so there will be error during his development. | |
| 14:53:19 | Li_Liu | shaohe_feng, I agree. | |
| 14:54:57 | Li_Liu | Cloud might also want to provide Synthesis as a Service/Sanity Test as a Service | |
| 14:55:36 | Li_Liu | this we all the bitstream that are being loaded on the FPGA are gated by these services | |
| 14:56:23 | shaohe_feng | yes. | |
| 14:59:14 | Li_Liu | I am not sure if Synthesis as a Service/Sanity Test as a Service will be in the Cyborg Scope. But I think all the cloud operator should definitely consider them | |
| 14:59:56 | shaohe_feng | Sundar, what's your opinion? | |
| 15:01:22 | Sundar | Yes, cloud operators need to do 'something'. That often runs into conflict with two things: (a) bitstream developers often want confidentiality, (b) it is tough to take a bitstream (or even a post-fit netlist) and check whether it is 'good' | |
| 15:01:56 | Sundar | I suspect there is no silver bullet, and the answer will be some combination of technology and business practices | |
| 15:02:57 | Sundar | Anyways, the other big question was: how does the VM initiate programming? | |
| 15:03:54 | Li_Liu | I agree, point b is rather complicated. | |
| 15:04:12 | shaohe_feng | Sundar, does the user need to push his image to glance, let cyborg do the program or he do the program in his local VM? | |
| 15:04:20 | Li_Liu | currently, our in house implementation is using REST calls | |
| 15:04:35 | Li_Liu | to call the reprogramming service api | |
| 15:04:44 | Sundar | One way is to let the VM have access to programming the FPGA directly. Another way is to have the VM generate the request and let it come to Cyborg. There are 2 ways to do that, both with pros and cons. | |
| 15:05:51 | Sundar | Shaohe: both models are possible. The main question is, is the developer/tenant ok with sharing his bitstreams with the cloud provider? If so, we can upload it to Glance first | |
| 15:05:53 | Li_Liu | yes, we can provide both capabilities depends on senario | |
| 15:06:16 | Li_Liu | use the 1st way when user owns the BM and entire FPGA | |
| 15:06:27 | Li_Liu | use 2nd way elsewhere | |
| 15:07:14 | Sundar | Li_Liu: Sure. One way is for the VM to invoke Cyborg REST API and target the region assigned to it. Another way is for the VM to have a connection to host e.g. virtio-serial. That way, the bitstream from the VM is not going through many network paths before coming back to the host | |
| 15:08:00 | Li_Liu | We did consider the virtio-serial way | |
| 15:08:07 | Sundar | It also requires less knowledge on the VM's part: it only sends the bitstream ID or the bitstream itself, and Cyborg will target the region assigned to the VM. The VM need not know which region is assigned to it | |
| 15:08:34 | Sundar | Li_Liu: Cool. What is your evaluation of virtio-serial? | |
| 15:08:43 | Li_Liu | but the problem is in order to control the access on who can program the FPGA, the host still need to contact Cyborg anyways | |
| 15:09:07 | Sundar | Well, the Cyborg agent on the host can listen to virtio-serial | |
| 15:09:24 | Li_Liu | so the flow becomes virtio-serial --> Host --> Rest Call --> Cyborg --> access check --> Host --> Program | |
| 15:09:26 | Sundar | May be it is multi-threaded, or has helper daemons, for scalability | |
| 15:10:01 | Sundar | We don;t need REST API in this 2nd flow. The request via virtio-serial is acted upon by the Cyborg agent | |
| 15:10:11 | Li_Liu | it does not save too much network access but make the flow rather complecated | |
| 15:10:52 | Li_Liu | But the Agent needs to download the bitstream from glance | |
| 15:11:07 | Sundar | Are you assuming that REST API is involved, even with virtio-serial? If not, it is a simple 1-hop without TCP/IP networking | |
| 15:11:13 | Li_Liu | and glance needs to check if this user can use this specific bitstream | |
| 15:11:44 | Li_Liu | I think is real use case, you can not avoid REST calls | |
| 15:11:56 | Li_Liu | This is a cloud environment after all | |
| 15:12:28 | Sundar | Li_Liu: true. Either the VM provides the bitstream, which is validated for authenticity/encryption in some way. Or, the VM request refers to a bitstream id in glance | |
| 15:13:12 | Sundar | Li_Liu: "you can not avoid REST calls" Why is that? For checking whether the tenant has privileges? | |
| 15:14:37 | Li_Liu | One of the methodologies is not to allow use send a bitstream to load directly | |
| 15:15:39 | Li_Liu | this is case, the bitstreams are either coming from Glance, or from a synthesis server | |
| 15:16:32 | Li_Liu | we don't want to allow the use send a unkown bitstream through virtio-serial and blindly A | |
| 15:16:40 | Li_Liu | load it to the FPGA | |
| 15:17:02 | Sundar | Oops, running late for my next meeting. Good discussion. :) I'll check back here as much as I can. | |
| 15:17:27 | Li_Liu | actully, I gotta run as well... I am still on vacation... | |
| 15:18:05 | Li_Liu | shaohe_feng, could you terminate the meeting and log the conversation, we can pick it up later | |
| 15:20:40 | shaohe_feng | OK. we can discuss more about it next time. | |
| 15:21:00 | shaohe_feng | #topic docs | |
| 15:21:13 | shaohe_feng | we need to improve cyborg docs. | |
| 15:21:44 | shaohe_feng | I have update the wiki https://wiki.openstack.org/wiki/Cyborg#How_to_contribute | |
| 15:21:48 | shaohe_feng | add DevStack Quick Start link to the wiki | |
| 15:21:55 | shaohe_feng | so New contributors can follow it setup their cyborg env. | |
| 15:22:00 | shaohe_feng | Any issue during the setup, they can fix it and feedback to community. | |
| 15:22:04 | Li_Liu | I will try to work on it with couple other folks in doc tesam | |
| 15:22:23 | shaohe_feng | Li_Liu, good, thanks. | |
| 15:22:41 | shaohe_feng | AoB? | |
| 15:23:48 | shaohe_feng | OK, let's end the meeting. | |
| 15:23:50 | shaohe_feng | #endmeeting | |
| 15:24:17 | shaohe_feng | #endmeeting | |
| 15:24:31 | shaohe_feng | bye. | |
| 15:26:38 | sum12 | i think start meeting was not considered as there was space before startmeeting :) | |
| 15:27:24 | Li_Liu | lol | |
| 15:45:25 | shaohe_feng | #endmeeting | |
| 15:46:58 | shaohe_feng_ | #endmeeting | |
| 22:04:40 | openstackgerrit | Sundar Nadathur proposed openstack/cyborg master: Specification for Cyborg/Nova interaction for scheduling. https://review.openstack.org/554717 | |
| #openstack-cyborg - 2018-05-31 | |||
| 02:32:26 | openstackgerrit | Merged openstack/cyborg master: Added attribute object and its unit tests https://review.openstack.org/565382 | |
| #openstack-cyborg - 2018-06-04 | |||
| 11:22:04 | openstackgerrit | wangzhh proposed openstack/cyborg master: Fix Deployable get_by_host https://review.openstack.org/572080 | |
| 14:02:54 | shaohe_feng | #startmeeting openstack-cyborg-driver | |
| 14:02:55 | openstack | Meeting started Mon Jun 4 14:02:54 2018 UTC and is due to finish in 60 minutes. The chair is shaohe_feng. Information about MeetBot at http://wiki.debian.org/MeetBot. | |
| 14:02:56 | openstack | Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. | |
| 14:02:58 | openstack | The meeting name has been set to 'openstack_cyborg_driver' | |
| 14:03:14 | shaohe_feng | #topic Roll Call | |
| 14:03:28 | Sundar_ | #info Sundar | |