| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-07-25 | |||
| 09:01:48 | stephenfin | HexChat's copy-paste behaviour is FUBAR | |
| 09:02:17 | alex_xu | stephenfin: ok, i'm cool with that | |
| 09:08:23 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Follow-up for I2936ce8cb293dc80e1a426094fdae6e675461470 https://review.opendev.org/672669 | |
| 09:08:27 | stephenfin | alex_xu: ^ | |
| 09:08:59 | alex_xu | thanks | |
| 09:17:34 | kashyap | aspiers: On "what's wrong with option 1 -- do we need to pass virt_type?" -- if libvirt "knows" that KVM is available, then if you pass virt_type as None to getDomanCapabilities(), it defaults to KVM | |
| 09:17:46 | kashyap | I've done a bunch of quick tests | |
| 09:29:14 | aspiers | kashyap, sean-k-mooney: I got a reply from our libvirt guy | |
| 09:29:35 | aspiers | he said "domcapabilities should be the same with or without virttype" | |
| 09:29:45 | aspiers | so I'm not sure why it's a parameter in the API call | |
| 09:30:03 | aspiers | "default on a kvm host would be virttype=kvm" | |
| 09:31:53 | kashyap | aspiers: I'm getting you some diffs and results. 1 sec, uploading the files | |
| 09:32:13 | kashyap | https://kashyapc.fedorapeople.org/domCapabilities/domCapabilities_without_virt_type.txt | |
| 09:32:16 | kashyap | https://kashyapc.fedorapeople.org/domCapabilities/domCapabilities_with_virt_type_kvm.txt | |
| 09:32:43 | kashyap | aspiers: If you `diff` them, you'd see no `diff` (besides a one-line unrelated noise) | |
| 09:33:04 | aspiers | ok | |
| 09:33:13 | kashyap | aspiers: But ... as you guessed, if you explicitly supply virt_type as 'qemu', you would see siginificant difference | |
| 09:33:18 | kashyap | Here is the 'diff': https://kashyapc.fedorapeople.org/domCapabilities/diff_domCapabilities_of_virt_type_kvm_and_qemu.txt | |
| 09:35:16 | kashyap | aspiers: In other words, "your guy" is of course correct :-) | |
| 09:52:23 | aspiers | kashyap: thanks | |
| 09:53:27 | kashyap | aspiers: I'm still finishing something; but yes, option-4 is what I'd lean towards (at 'debug' level) | |
| 09:53:42 | aspiers | I think that's what sean-k-mooney's new PS implemented | |
| 09:54:04 | kashyap | And also yes to sean-k-mooney's we _do_ want to use the 'virt_type' when we know. As that will ensure the right CPU features are reported. | |
| 09:54:17 | kashyap | aspiers: Ah, okay. I'm lagging behind, as I was basing my comments on your IRC exchange linked in the review. | |
| 09:54:20 | kashyap | (Didn't refresh) | |
| 09:54:25 | aspiers | kashyap: https://review.opendev.org/#/c/670189/9..10/nova/virt/libvirt/host.py | |
| 09:54:35 | kashyap | Thank you | |
| 09:58:08 | bhagyashris | stephenfin: I gone through all you patches and also applied those in my environment and did some testing on it I have few observation with me | |
| 09:58:44 | stephenfin | shoot | |
| 09:59:13 | bhagyashris | stephenfin: 1. 1. I am able create the pinned instance using old way on your patches. you can see the details which steps I have followed to create the instance here http://paste.openstack.org/show/754840/ | |
| 09:59:40 | bhagyashris | stephenfin: 2. I have also checked few scenarios and there I saw some issues. you can see here http://paste.openstack.org/show/754841/ | |
| 10:01:09 | stephenfin | Yeah, I'd expect it to consume both VCPU and PCPU because I don't have the handling code you do. Your implementation is better in that regard | |
| 10:01:33 | stephenfin | The other two scenarios are interesting. I wonder what I'm hitting there | |
| 10:01:41 | bhagyashris | stephenfin: yeah it's handling this case .... | |
| 10:02:24 | bhagyashris | stephenfin: I know where is point that's reporting wrong inventory | |
| 10:04:11 | stephenfin | Oh yeah? | |
| 10:04:29 | bhagyashris | Here https://review.opendev.org/#/c/671793/4/nova/virt/libvirt/driver.py@6852 if I set [compute] cpu_dediacted_set then it's report VCPU resources as well | |
| 10:05:58 | bhagyashris | stephenfin: because in self._get_vcpu_total() method you are checking if vcpu_pin_set , elif CONF.compute.cpu_shared_set else all the host_cpus | |
| 10:06:26 | stephenfin | Ah, yes. So before thatfallthrough case I need a final conditional to check if cpu_dedicated_set is set and return nothing if so | |
| 10:06:46 | stephenfin | And ditto for the '_get_vcpu_total' method | |
| 10:06:55 | bhagyashris | yes | |
| 10:07:32 | bhagyashris | stephenfin: I will keep testing and review your patches | |
| 10:07:57 | stephenfin | bhagyashris: The one I'm most interested in your thoughts on is https://review.opendev.org/#/c/671800/7/nova/objects/numa.py | |
| 10:08:22 | stephenfin | Because I think that and the changes to InstanceNUMACell are the biggest differences we have | |
| 10:09:45 | stephenfin | I don't know what we do with old NUMACell objects. For those, 'cpu_usage' can contain usage of either pinned (PCPU) or unpinned (VCPU) instance vCPUs | |
| 10:09:46 | bhagyashris | stephenfin: yeah same question was in my mid | |
| 10:09:51 | bhagyashris | mind* | |
| 10:09:54 | stephenfin | and we don't ever rebuild the objects from scratch | |
| 10:10:20 | stephenfin | instead, we use that numa_usage_from_instances function to add or subtract usage based on a provided instance NUMA topology | |
| 10:11:10 | stephenfin | I'm thinking it might make sense to start retrieving all instances associated with a host and building the host NUMA topology object from scratch each time | |
| 10:11:28 | stephenfin | but that would involve a join on the instance extra table in some places | |
| 10:14:26 | bhagyashris | stephenfin: yeah that is one option | |
| 10:15:40 | bhagyashris | stephenfin: what's your opinion about my change I mean I made change in both the InctanceNUMAToplogy and host NUMAToplogy | |
| 10:16:49 | stephenfin | Yeah, as noted I'm not sure if it's necessary yet. We have the 'cpu_policy' field on that object so we're already able to tell if 'cpuset' describes VCPUs or PCPUs | |
| 10:17:16 | stephenfin | That will change when we support both types in the same instance, but we're doing that separately | |
| 10:17:26 | stephenfin | Speaking of which, I need to review that spec again today | |
| 10:17:57 | stephenfin | So I don't mind having it, but I think it might be unnecessary for now and possibly make things a little more complicated than necessary | |
| 10:19:51 | bhagyashris | stephenfin: okay, But what I thought is anyways we are going to support both the VCPU and PCPU in future so that will not cause any problem even if we keep now and I have added the api and scheduler check that dont allow both the PCPU and VCPU in one request | |
| 10:20:18 | bhagyashris | stephenfin: so in future there will be just matter of removing that check | |
| 10:20:31 | stephenfin | Yup, I get that. Maybe it makes sense. I haven't really parsed how much complexity it adds so maybe it's not an issue | |
| 10:20:45 | stephenfin | I just wanted to highlight that it wasn't 100% necessary yet, if that makes sense | |
| 10:20:49 | sean-k-mooney | well we will need to add a filed to store teh mask of pinned cores | |
| 10:20:55 | sean-k-mooney | which we should not add until we need it | |
| 10:21:26 | sean-k-mooney | e.g. we should not make object changes that would only be required when we allow mixed instances | |
| 10:21:34 | sean-k-mooney | until we support that | |
| 10:21:42 | stephenfin | Yeah, that's my gut feeling too | |
| 10:21:55 | stephenfin | YAGNI or something like that | |
| 10:22:33 | bhagyashris | stephenfin, sean-k-mooney: ok. | |
| 10:23:57 | stephenfin | bhagyashris: On the plus side, it should be very easy reuse it if/when that spec to allow mixed instances gets merged, so that's a win :) | |
| 10:24:50 | bhagyashris | stephenfin, sean-k-mooney: means for now we will consider the cpuset only | |
| 10:24:58 | bhagyashris | stephenfin: ok | |
| 10:26:00 | bhagyashris | stephenfin: and one more point we are going to allow the new syntax of flavor extra specs like "resources:PCPU=<no of cpus>" right? | |
| 10:26:45 | stephenfin | I think we decided we would have to, yes | |
| 10:26:53 | stephenfin | Though it wouldn't be the preferred option, of course | |
| 10:27:35 | bhagyashris | stephenfin: and I saw that this is not yet implemented in your series of patches ... and I have implemented that so may be we can use that code | |
| 10:28:04 | stephenfin | bhagyashris: I'm working on rebasing your stuff into my series (keeping authorship, of course) to do just that now :) | |
| 10:30:00 | bhagyashris | stephenfin: also the upgrade and reshape part is not in your series of patches and I have submitted the patche https://review.opendev.org/#/c/672224/1 to do so . I will address all your review comments on it and will upload the patch ( this is priority work for me) | |
| 10:32:00 | bhagyashris | stephenfin: now only the part remaining is which one will be the better option this one https://review.opendev.org/#/c/672223/1 or this one https://review.opendev.org/#/c/671801/7 | |
| 10:34:08 | stephenfin | Yeah, pretty much | |
| 10:34:19 | bhagyashris | stephenfin: I guess this one will be the better option ttps://review.opendev.org/#/c/672223/1 because it's simple and also as mentioned in spec that we will used scheduler profiler https://review.opendev.org/#/c/555081/28/specs/train/approved/cpu-resources.rst@451 | |
| 10:34:23 | stephenfin | I'm still on the fence, personally | |
| 10:34:42 | stephenfin | Yeah, definitely a lot less work there | |
| 10:35:11 | stephenfin | The only thing is that rewriting extra specs on the user feels a little wrong. I'm not sure why | |
| 10:35:18 | stephenfin | Assuming these are persisted somewhere | |
| 10:36:32 | bhagyashris | stephenfin: yeah, but it looks simple that and less work and there is no overhead of conf option as well | |
| 10:37:08 | stephenfin | I think we still need the config option, no? | |
| 10:37:46 | stephenfin | Otherwise how do we say "don't start converting these extra specs yet because I don't have enough hosts reporting PCPU inventory" ? | |
| 10:39:51 | bhagyashris | stephenfin: ohh ok | |
| 10:40:19 | stephenfin | I'm not crazy, right? We do need an option for that, yeah? | |
| 10:40:20 | bhagyashris | stephenfin: will wait for others opinion then | |
| 10:45:08 | bhagyashris | stephenfin: TO DO is 1. the aliasing of flavor extra spec 2. upgrade related stuff is remaining ... out of that for first to do will wait for other opinion and I will take the upgrade part on high priority | |
| 10:45:39 | bhagyashris | stephenfin: what's your opinion? | |
| 10:49:19 | openstackgerrit | Maksim Malchuk proposed openstack/nova stable/queens: fix cellv2 delete_host https://review.opendev.org/672690 | |
| 11:01:01 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Follow-up for I2936ce8cb293dc80e1a426094fdae6e675461470 https://review.opendev.org/672669 | |
| 11:01:02 | openstackgerrit | Stephen Finucane proposed openstack/nova master: trivial: Rename exception argument https://review.opendev.org/671795 | |
| 11:01:02 | openstackgerrit | Stephen Finucane proposed openstack/nova master: libvirt: Start reporting PCPU inventory to placement https://review.opendev.org/671793 | |
| 11:01:03 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Remove 'hardware.get_host_numa_usage_from_instance' https://review.opendev.org/671797 | |
| 11:01:03 | openstackgerrit | Stephen Finucane proposed openstack/nova master: trivial: Remove unused function parameter https://review.opendev.org/671796 | |
| 11:01:04 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Remove 'hardware.instance_topology_from_instance' https://review.opendev.org/671799 | |
| 11:01:04 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Remove 'hardware.host_topology_and_format_from_host' https://review.opendev.org/671798 | |