13:00:07 #startmeeting PCI Passthrough 13:00:08 Meeting started Tue Mar 11 13:00:07 2014 UTC and is due to finish in 60 minutes. The chair is baoli. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:00:09 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 13:00:11 The meeting name has been set to 'pci_passthrough' 13:00:21 Hello 13:00:28 Hi 13:00:28 hi 13:00:32 hi 13:00:41 Great, everyone is here 13:01:04 Let's start with code review 13:01:15 ok 13:01:29 nova or neutron first? 13:01:46 Irenab, can we start with yours? 13:02:42 sure 13:02:54 My main question is whether or not we'll support non-identical vNICs (therefore multiple sriov MDs) in the same cloud 13:02:54 Iink https://review.openstack.org/#/c/74464/ 13:03:24 I think that teoretically it can be possible, but for real cloud not sure... 13:04:26 If that's not a concern, then I think that it's ok to check the vendor info after the agent query 13:04:28 baoli: any reason you need the assumtion for single SRIOV MD? 13:05:04 irenab, my comments to your change is that the vendor infor should be checked before the agent query 13:05:45 baoli: I probably miss your point here, why the order is critical? 13:06:22 I think it does make sense for the MD to ignore (not bind) ports using unrecognized devices 13:06:23 irenab, the agent query requires DB access. 13:06:50 baoli, irenab: from the info that I have so far, it is possible to have a cloud with sr-iov devices from diff vendors 13:07:13 so we need to check for vendor info before L2 agent query 13:07:33 baoli: so the order is just for optimization, right? 13:08:19 rkukura: any chance you can take a look at MechnismDriver at review I posted to see if looks OK or you suggest reordering? 13:08:22 irenab, yea, it won't affect functionality 13:09:15 irenab: I'll give it a closer review, but at a quick glance, I think I agree with baoli and sadasu that checking the vendor 1st makes sense 13:09:31 baoli: good comment anyway. I need to see how to take an advantage of basic agent MD logic 13:09:42 irenab, cool 13:10:05 Let's move on 13:10:13 #topic port admin_state 13:10:20 sadsu: regarding PCI vendor info check, shall we add some utils? 13:10:42 baoli: just few more minutes on previous topic, please 13:10:48 Sorry, sure 13:11:11 irenab: yes...makes sense 13:11:21 irenab, rkukura, is it ok to have a separate base class for SRIOV? 13:11:39 I am not sure that creating SRIOVBaseMD for Agent based makes sense 13:11:56 baoli: sure, but keep in mind that some use agents and some don't, so mixin might make sense 13:11:59 takes supported vendor info as params and checks against the port that is trying to bind 13:12:27 or is it ok to add vendor_info the current agent base class? 13:12:50 sadasu: ok 13:13:03 baoli: can you please elaborate a bit 13:13:15 rkukura: +1 for Mixin, although I don't know of any other MD (other than mine) that does not use an agent 13:13:21 given we are not rushing to get this in icehouse, my general advice would be to not initially worry too much about sharing common code between SR-IOV drivers. That can be done later as a refactoring step once we see what's really common. 13:14:01 irenab, in the current AgentBase class, we can add vendor_info 13:14:14 rkukura, I agree. 13:14:51 rkukura: still we joined effort here, seems we do not want to spend cycles at both sides, both for code and unittest for common parts 13:15:19 rkukura: agreed. 13:15:22 agreed that sharing code where it is obvious will reduce effort 13:15:28 at least we can try to share 13:15:57 seems we ca skip to next topic 13:16:09 maybe start with a simple mixing for common SR-IOV-specific code 13:16:15 s/mixing/mixin/ 13:16:35 rkukura: you had some objections for Mixin before 13:16:51 not relevant here? 13:16:54 rkukura, irenab: this method of adding proposed common code to existing patches so others can take a look, is working for me 13:17:19 then when we converge, we can move that to a diff BP 13:17:26 no objection to using a mixin from me 13:17:46 refactoring can often be handled as a bug 13:17:56 sadasu: I am ok with it too 13:17:57 rkukura, I took an attempt to come up with a common SRIOV base class, take a look at this thread when you have time: RE: [openstack-dev] [nova][neutron] PCI pass-through SRIOV binding of ports 13:18:00 rkukura: ok 13:18:35 I think its possible to push number of patches for same bp, so common part can be pushed separatly if needed 13:19:28 baoli: hadn't seen that, looking 13:19:52 Ok then, can we move on now? 13:20:00 sure 13:20:43 so neutron port API supports change of port state. 13:20:54 I checked the ovs implementation for it 13:21:23 ovs pushed DEAD vlan for port disable 13:21:31 it basically installed a dead vlan and a flow to drop packets to/from the port 13:21:52 and I think the vm is not aware of the status change of the port 13:22:03 baoli: right 13:22:20 I thought to use 'ip link set ' command to enforce it on VF 13:22:28 although there is a patch in review to push some port status changes from neutron to nova 13:22:57 rkukura, +1 yeah that is one of the future purposes of that series of patches 13:22:59 rkukura, that seesms to make more sense 13:23:33 what nova action will be once get the notification? 13:23:46 rkukura, can you share links for those patches/bugs, etc? 13:23:47 https://review.openstack.org/#/q/status:merged+project:openstack/nova+branch:master+topic:bp/admin-event-callback-api,n,z 13:23:59 beagles: thanks 13:24:06 Right now, my understanding of nova's use of this is simply to block VM boot until the ports are up. 13:24:25 rkukura, can you change the status after the VM is up? 13:24:30 in short the mechanisms are in place, but it is not employed everywhere it might be 13:24:53 admin state can be changed after VM is already up 13:25:00 The neutron API allows the admin state to be changed any time, and I don't think nova is involved in those changes after boot 13:25:23 rkukura, that's what I'm trying to discuss 13:25:28 In fact, it should be possible to create a port with admin state down, and allow nova to boot with it, and bring it up later via the API 13:25:50 rkukura: agree 13:26:00 The question is should the VM be aware of port status change? 13:26:15 admin state should be enforced on port and not VIF 13:26:26 another question is why would admin decides to change the port status? 13:27:04 baoli: VM awareness probably depends on Vif type 13:27:14 For SR-IOV it should be aware 13:27:46 irenab, my question to you is that with direct passthrough, how do you admin down/up a port? 13:28:07 Can that be done using the PF? 13:28:07 after it's attached to a vm 13:28:15 probably via 'ip link set' command 13:28:35 irenab, after it's attached, you can't do that any more 13:28:59 it's not a ip link on the host any more, isn't it? 13:29:24 I think you cando it via pf net device and vf index. 13:29:39 baoli: lets clarify that it works this way for the cisco pci passthrough ports 13:29:40 I need to recheck, but I think it works for mellanox nics 13:30:08 sadasu, we need to check as weel 13:30:14 s/weel/well 13:30:30 baoli: ok 13:30:44 baoli: sadasu: if it works for your case, I think you may need L2 agent to handle it 13:31:17 irenab: no, even L2 agent will not solve the problem 13:31:31 because the host looses control of the port to the VM 13:32:11 if 'ip link set' works then L2 agent would work 13:32:17 I think the model for admin state is that it just stops/starts flow of packets. The VM should not see it as a hot-plug or anything like that. 13:32:33 but with some initial testing 'ip link set' isn't working 13:32:53 baoli: speaking of hot-plug, does your patch support it? 13:33:05 lets stay on topic 13:33:12 irenab, not yet 13:33:38 ok 13:33:46 irenab, the patch can get you going with basic testing. 13:34:00 rkukura: so the VM will not know that the port is admined down, and may still keep sending traffic? 13:34:16 I think that's the model, but not positive 13:34:42 any action items to record? 13:35:38 #action, check ip link to see if it can change a vf state after it's attached to a vm 13:35:57 is it Ok to reject an admin down of the port after VM is attached? 13:36:28 before moving on, I had this additional q on this topic? 13:37:10 sadasu, I'm still thinking about the question why would a admin like to change the port state after it's attached to a vm which is running. 13:37:15 sadasu: you may add another cisco MD that talks to switches/controller to enforce admin state on physical switch 13:37:56 baoli: it may be for the case tenant is not paying :-) 13:38:29 irenab: in that case we could also unbind 13:38:35 irenab, that would be an interesting way to get the money back 13:38:56 how about some sort of fencing for fault isolation? 13:39:38 rkukura, that sounds like a possibility. 13:39:44 rkukura: looks like real case 13:39:59 rkukura: so unbind is an option for this? 13:40:00 no idea if anyone is using it that way, just a thought 13:40:45 I wanted to discuss plans for Juno summit 13:40:56 irenab: Changing the host_id or something to force unbinding would prevent the port from being plugged, but doesn' 13:41:12 doesn't necessarily do anything after the port is plugged 13:42:19 rkukura: thanks 13:42:24 I don't think we should spend too much time on this right now, but I'm not sure the semantics of admin state and status are all that clear/consistent right now. 13:42:51 rkukura, ok. let's move on 13:42:55 This might be something to try to get agreement on at the summit. 13:43:04 works for me 13:43:08 agreed 13:43:11 rkukura: point taken...will look into this some more 13:43:53 the design sessions proposal is open: link http://summit.openstack.org/ 13:44:48 we had agreed upon a joint nova/neutron session 13:45:10 I think we need to arrange the plan and proposal 13:45:39 seems also that there is more content for nova and maybe need one joined and one anly for nova 13:45:56 ^only 13:46:04 agree 13:46:42 we need to see how to get nova cores to sponsor this 13:47:02 irenab, this is the key problem. 13:47:38 first thing first, we can add the proposed sessions first, right? 13:48:11 baoli: I think so 13:48:16 i will proposed a nova common sriov support topic 13:48:21 lets propose beagles for nova core! 13:48:29 rkukura: +1 13:48:33 rkukura, don't embarass me :) 13:48:52 it will quickly come to everyones attention how I'm so distributed that I'm not fit to be core anywhere ;) 13:49:13 I do need to talk to some cores about some related subjects 13:49:26 It could be argued that nova really needs a core focusing on the networking 13:49:29 while I can't promise anything maybe that could garner some interest 13:49:57 rkukura, no question... for the moment it'll be proxy I guess 13:50:02 by proxy that is 13:50:08 (how appropriate ;)) 13:51:01 in all seriousness, I was in a nova related conversation and SR-IOV/PCI Pass through came up. I'm following up on some details 13:51:13 for joint nova-neutron session on SRIOV what do we want to discuss? 13:51:16 maybe if we get the summit proposal in before I have the conversation I can reference that 13:51:49 irenab, certainly the interface between the two 13:52:34 baoli: seems it is defined already,thanks to rkukura work on profile and vif_details 13:52:51 do I miss something? 13:53:16 are the use-cases the group have in mind sufficiently fleshed out to use in that or a related discussion. I'm aware (painfully one might say) that these discussions have occurred but would it be fair to say that they are "set" at the moment? 13:53:27 maybe a nova session on scheduling taking network connectivity (including special things like SR-IOV, QoS) into account? 13:53:29 irenab, agreed. And also how neutron make uses of the nova pci generic support 13:53:41 by "set" I mean established or at least tentatively agreed upon 13:54:07 beagles: I think that is the case w.r.t use cases 13:54:47 rkukura: agree 13:55:12 beagles: proably need to refresh and put together 13:55:15 beagles, is there a IRC for the meeting you attends? 13:55:21 rkukura: we can keep that as a separate session...neutron aware nova scheduler 13:55:40 sadasu, okay cool. That's one of the things want to make sure is generally "known" among at-least-a-few cores so we are all on the same page 13:56:04 we need also the nova api related discussion, for requesting vnic_type 13:56:41 at this point our "base" session should cover use cases, API changes and flavor discussion 13:56:42 irenab, not at the moment, but this is something we might want to look at... ie. acting as a subgroup that is attached to both neutron and nova 13:57:12 I should've done something like that for parity, but wasn't savvy and afaik, nobody has done before 13:57:42 that was the major point of contention for icehouse 13:58:12 beagles: I think we need to define and get agreement how to request specific vnic_type, working via neutron port is not convenient for end users 13:58:27 irenab, agreed 13:59:03 shall we set some etherpad for topics to discuss and send it to ml? 13:59:07 afaict, this is a specifc point of contention... how this kind of thing can be used in a fashion that is compatible with 'cloudness' 13:59:42 ok, times is up. 13:59:57 we should continue with eitherpad, and in the next meeting. 14:00:23 baoli: do you want to open one? 14:00:24 in the mean time, we should add the session in the design summit. 14:00:29 irenab, sure 14:00:44 great, thanks 14:00:48 thanks, everyone 14:00:56 #endmeeting