Earlier  
Posted Nick Remark
#openstack-nova - 2017-08-25
08:25:55 openstackgerrit jichenjc proposed openstack/nova master: propagate OSError to MigrationPreCheckError https://review.openstack.org/469779
08:36:48 openstackgerrit jichenjc proposed openstack/nova master: WIP: use conf for keystone session creation https://review.openstack.org/485121
08:57:01 rabel so, vmware ci insists to fail on https://review.openstack.org/#/c/494169/ but imho the error has nothing to do with the patch set. it should be ready for final review / merging than, i guess.
08:59:29 cdent rabel: vmware ci is borked, you can’t trust it at the moment, unfortunately
09:00:41 cdent rabel: as long as your unit tests are fairly complete, should be okay
09:02:39 rabel cdent: should be, yes.
09:08:41 cdent gabor_antal: thanks for commenting on the complexity thing and including those references, especially to the test results, great to see
09:09:10 gabor_antal cdent: you're welcome. Hope the community finds it interesting too
09:11:24 cdent gabor_antal: I think there are plenty of people who find it interesting. The challenge is often finding the review bandwidth to get the stuff merged (as you’ve experienced).
09:12:36 gabor_antal cdent: that is true, but we have also lots of patches, which are stuck, and just reopened now, maybe someone has an idea to move on.
09:31:14 openstackgerrit Lei Zhang proposed openstack/nova master: placement: add traits to the 'GET /allocation_candidates' endpoint https://review.openstack.org/479776
09:48:03 openstackgerrit Radoslav Gerganov proposed openstack/nova master: Update all instances when their AZ is renamed https://review.openstack.org/419502
10:37:11 openstackgerrit Maciej Kucia proposed openstack/nova master: SR-IOV passthrough: Check PF only if VF is enabled https://review.openstack.org/476642
13:18:16 openstackgerrit Stephen Finucane proposed openstack/nova master: libvirt: bandwidth param should be set in guest migrate https://review.openstack.org/497455
13:22:51 openstackgerrit Merged openstack/nova master: Fix bug on vmware driver attach volume failed https://review.openstack.org/496140
13:58:10 efried Who's an expert on PCI passthrough in nova? (The internals, not the ux)
13:58:26 stephenfin efried: Nice work on https://review.openstack.org/#/c/493701/
13:58:48 efried stephenfin Thanks :)
13:58:58 stephenfin efried: I have a rough idea on it, but I'm not expert. moshele and sean-k-mooney know their stuff though
13:59:04 stephenfin *no
14:00:29 efried stephenfin Okay, at least for the sake of having a sounding board, here's what I'm trying to work with:
14:00:52 efried On Power, our PCI devices don't have 32-bit domain:bus:slot.func PCI addresses.
14:01:24 efried The nova PCI code around whitelisting, passthrough devices, and aliases is *all* set up to assume domain:bus:slot.func
14:02:11 efried At the moment, if I want to make PCI passthrough work in PowerVM, I have to very carefully leave out any reference to addresses in the whitelist & alias specs.
14:02:25 openstackgerrit sahid proposed openstack/nova master: libvirt: add method to configure migration speed https://review.openstack.org/497456
14:02:25 openstackgerrit sahid proposed openstack/nova master: libvirt: slowly live-migration to ensure network is ready https://review.openstack.org/497457
14:02:26 openstackgerrit sahid proposed openstack/nova master: libvirt: bandwidth param should be set in guest migrate https://review.openstack.org/497455
14:02:40 efried And when I create my pci_passthrough_devices list (from get_available_resource), I have to spoof a domain:bus:slot.func PCI address for each dev.
14:02:52 efried Cause each dev has to have a distinct address, or it won't get recognized at all.
14:03:02 efried So this leads to a couple of problems.
14:03:30 efried One is that I have to hack these addresses horribly. (And from a 64-bit source, so possibility of collisions, etc.)
14:04:04 efried The other is that I've given my op the ability to whitelist device *classes* (vendor x prod ID) but not specific devices.
14:04:25 efried Because as soon as I try to specify a device in the whitelist, nova tries to get at /sys/bus/.../<PCI address>/...
14:04:33 efried ...which isn't a thing in PowerVM.
14:05:18 efried btw, I have reason to believe HyperV and VMWare (and maybe xen) suffer from a similar class of problem (the devs not being owned by the node running the compute process).
14:05:55 efried So
14:06:40 stephenfin HyperV too, for that matter. I don't know the specifics though
14:07:52 efried One possible inroads may be the new resource provider stuff.
14:08:12 cdent I was just going to say that nest providers will help with this, but it is a long road before it completely resolves it
14:08:55 efried If my compute node registers a rp that provides the PCI devs as generic resources, they could conceivably have arbitrary names/identifiers.
14:09:17 efried But we would have to replumb the whole whitelist concept if we wanted to support whitelist filtering.
14:10:44 efried I would be happy to reimplement whitelisting in a way that works for PowerVM, but would have to have some way to bypass the whitelisting that nova's doing.
14:10:57 efried [pci]whitelist_by_compute_driver = True
14:10:57 cdent the long term goal (jaypipes can you confirm this?) would be to get rid of the on-node whitelist stuff
14:11:05 stephenfin Yeah, the plan was to move most of the PCI device management code to resource providers
14:11:22 stephenfin Any vGPU stuff would also be done this way
14:11:23 efried Yeah, jaypipes and I talked briefly about that in Boston.
14:11:55 stephenfin Hmm, so how do you define what devices can/can't be used if you don't have unique identifiers like that?
14:12:06 efried oh, I have unique identifiers.
14:12:12 efried They just don't look like domain:bus:slot.func
14:12:19 cdent bigger better unique identifiers!
14:12:35 cdent bbuid
14:12:43 stephenfin Ah
14:13:24 efried My IDs look like U78CB.001.WZS0JZB-P1-C14 or 2105001F
14:13:53 stephenfin So I guess you'd do your whitelisting using those identifiers. If so , would that be done inside nova?
14:14:01 edmondsw (those are 2 different formats... not different values of the same format... either should work)
14:14:44 stephenfin i.e. 'if driver = powervm: do special whitelisting; else: do normal domain:bus:slot.func whitelist'
14:15:15 efried Yeah, in nova right now all the Whitelist and PciDeviceStats and PciAlias stuff is hardwired to expect domain:bus:slot.func format, down to the point of being able to wildcard any of those components.
14:15:25 efried So if you whitelisted *:12:ab.*, you would match a device with address abcd:12:ab.7 but not abcd:13:ab.7
14:16:10 efried And then there are some code paths that actually try to look up attributes of the device under /sys/bus - which is a total nonstarter on Power (and, I assume, HyperV and VMWare, where the devices also aren't on the compute node)
14:16:22 efried ...like when it's trying to figure out if a dev is a physical function.
14:16:44 efried ...or if the whitelist specifies a dev by name
14:17:08 stephenfin claudiub is hardly about, is he? I'm pretty sure the Hyper-V driver does have some PCI device support now
14:17:36 cdent I was just looking at some of that code and wondered if perhaps that it ought to be in the virt drivers: https://review.openstack.org/#/c/476642/
14:17:39 jaypipes cdent, efried: yeah, I remember chatting with you about it in Boston, though I think I said I would be happy to just stop using the whitelist for two purposes (filtering stuff that guests can use vs. inventory management of devices)
14:17:59 cdent it’s rather limiting that it is doing /sys file stuff ...
14:18:37 efried Yeah, those are two examples where I would like to be able to have e.g. "is_physical_function" be a compute driver override whose default impl could be the /sys/bus business, but in the powervm driver I can do it my way.
14:19:36 efried jaypipes Right, so the inventory is actually being done by get_available_resource (which will eventually become get_inventory when all the plumbing is ready).
14:19:47 efried The whitelist is how you limit which devices are allowed to be assigned.
14:20:12 efried And then the alias list is how you nickname devices or device classes so you can specify them easily in a flavor.
14:20:19 jaypipes ya
14:20:20 efried So really, the conf stuff isn't doing inventorying.
14:20:46 jaypipes if we can just have the whitelist do the former thing and not the latter, I'd be happy
14:20:53 jaypipes efried: zactly.
14:21:03 efried which former/latter?
14:21:11 jaypipes efried: my only question is why haven't you gotten it all done yet? WAITING!
14:21:18 mriedem (filtering stuff that guests can use vs. inventory management of devices)
14:21:21 mriedem "(filtering stuff that guests can use vs. inventory management of devices)"
14:21:27 mriedem you turkeys
14:21:30 jaypipes efried: former == filtering for guests.
14:21:54 efried hm, how is the current impl of the whitelist doing inventory management?
14:22:16 jaypipes would be nice if IBM would just hop on the "newfangled" PCI bus.
14:22:23 efried Hah!
14:22:30 claudiub stephenfin: o/
14:22:33 jaypipes efried: :P
14:22:58 claudiub stephenfin: yeah, we do support pci passthrough since ocata.
14:23:22 efried and jaypipes, I actually have a prototype/PoC that works for PowerVM. But I very carefully have to bypass PCI address handling in some interesting ways.
14:23:42 stephenfin claudiub: Cool. How do you manage whitelisting of those devices? I assume you're not indexing devices in domain:bus:slot.func format
14:23:46 jaypipes efried: yes, I can imagine.
14:23:51 efried https://review.openstack.org/#/c/496434/
14:24:01 claudiub stephenfin: we are.
14:24:55 claudiub stephenfin: we're currently only reporting devices which have the domain:bus:slot.func format
14:25:05 efried ...with e.g. [pci]alias = {"name": "USB", "product_id": "8241", "vendor_id": "104c", "device_type": "type-PCI"} and [pci]passthrough_whitelist = {"product_id": "8241", "vendor_id": "104c"}
14:26:08 efried claudiub Those devices show up on the compute node?
14:26:21 claudiub stephenfin: but I've mainly whitelisted devices using product_id / vendor_id
14:26:42 claudiub efried: if they're are passthrough-able, yes.
14:26:56 claudiub efried: they have to be prepared for passthrough first
14:27:06 efried claudiub How?
14:27:38 claudiub efried: https://github.com/openstack/nova/blob/master/releasenotes/notes/hyper-v-pci-passthrough-babf104d6bc2baa6.yaml
14:28:41 jaypipes efried: reviewed.

Earlier   Later