| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-04-12 | |||
| 13:19:02 | bauzas | you could discover the host topology as an end-user if we were restricting | |
| 13:19:12 | stephenfin | assuming total vCPUs < total host CPUs | |
| 13:19:20 | stephenfin | 'zactly | |
| 13:19:24 | bauzas | just by trying to boot a couple of different topologies | |
| 13:19:27 | stephenfin | There's also zero reason to allow it | |
| 13:19:53 | bauzas | efried: so you agree the numbered request groups feature exactly matches the above ? ^ | |
| 13:20:57 | sahid | bauzas, stephenfin, if user is asking for hw:numa_node=2 and host does not have at least 2 NUMA node we don't accept the host | |
| 13:21:08 | sahid | or it's a bug and we should fix it | |
| 13:21:27 | stephenfin | sahid: Why? | |
| 13:21:36 | bauzas | sahid: that's very different from what stephenfin says | |
| 13:21:48 | bauzas | http://www.quickmeme.com/meme/361gwd | |
| 13:22:00 | sahid | because it's all performance related | |
| 13:22:22 | sahid | it's all about distance between pci devices, memory channel an cpus | |
| 13:24:07 | sahid | stephenfin: we should have in hardware.py constrainsts something which check that | |
| 13:24:14 | stephenfin | bauzas: Ah, crap. sahid's correct there | |
| 13:24:42 | stephenfin | bauzas, sahid: https://github.com/openstack/nova/blob/master/nova/virt/hardware.py#L1548-L1553 | |
| 13:25:35 | bauzas | sahid: so, like I said, say I'm an evil folk named Eve, I could guess the host topology by booting a couple of test instances having various NUMA guest topologies, right? | |
| 13:25:58 | stephenfin | bauzas: and https://github.com/openstack/nova/blob/master/nova/objects/instance_numa_topology.py#L217-L219 | |
| 13:26:23 | bauzas | I understand the performance reason for affinitizing the guest, but not for anti-affinitizing it | |
| 13:26:27 | stephenfin | I thought that was comparing the length of cell.cpuset, a la https://github.com/openstack/nova/blob/master/nova/objects/instance_numa_topology.py#L82-L83 | |
| 13:26:39 | stephenfin | sahid: Yeah, why do we do that? It seems unnecessary | |
| 13:27:34 | stephenfin | Like I said above, I get the reason for not splitting guest NUMA nodes across host NUMA nodes | |
| 13:27:37 | stephenfin | and for placing at least one guest NUMA node's CPUs on the host NUMA node associated with a PCI device | |
| 13:27:52 | bauzas | stephenfin: checking whether the host has the same number of NUMA nodes that the guest is one thing | |
| 13:28:10 | bauzas | stephenfin: the other thing being that we would restrict that to different nodes | |
| 13:28:18 | sahid | what is the use-cases? I mean why you want to have differente NUMA nodes if the CPU is using a memory channel which is on an different NUMA node? as I said it's all performance related | |
| 13:28:59 | stephenfin | sahid: Right, but I have two NUMA nodes and I boot the instance with four NUMA nodes. Why can't two go on one host node and two on the other? | |
| 13:29:03 | bauzas | sahid: performance is affinity, and I don't disagree with you | |
| 13:29:24 | stephenfin | Sounds like you'd get the same performance as with an instance with two NUMA nodes that's split across the two host nodes | |
| 13:29:25 | sahid | stephenfin: why you want do that? | |
| 13:29:34 | stephenfin | sahid: So I can boot my instance | |
| 13:29:53 | bauzas | sahid: in theory, the user doesn't know the host topology | |
| 13:30:00 | bauzas | sahid: he's just booting a flavor | |
| 13:30:17 | bauzas | but what he knows is that he'll get a guest having its own topology | |
| 13:30:20 | openstackgerrit | Matthew Booth proposed openstack/nova master: Rename recreate to evacuate in driver signatures https://review.openstack.org/560900 | |
| 13:30:20 | stephenfin | Yeah, what bauzas said | |
| 13:30:33 | sahid | yes and if he wants 2 numa where don"t want to fake that | |
| 13:30:39 | openstackgerrit | Eric Fried proposed openstack/os-traits master: normalize_name helper https://review.openstack.org/560107 | |
| 13:30:43 | stephenfin | He wants two _guest_ NUMA nodes | |
| 13:30:50 | sahid | yes and if he wants 2 numa nodes for it's guest we don"t want to fake that | |
| 13:31:00 | stephenfin | The entire thing is fake | |
| 13:31:14 | bauzas | sahid: so some evil guy could guess there are no left hosts having 2 numa nodes | |
| 13:31:20 | stephenfin | There aren't actually two guest NUMA nodes. That's just QEMU/KVM mocking it | |
| 13:32:07 | sahid | stephenfin: it's not... the guest memory and vcpus threads are running on a uniq node | |
| 13:32:35 | stephenfin | sahid: I get that. I'm not suggesting splitting a guest's NUMA node across a host NUMA node | |
| 13:32:56 | stephenfin | What I'm saying is there's not reason we shouldn't fit N guest NUMA nodes on the same host NUMA node | |
| 13:32:57 | efried | but the other way around is okay | |
| 13:33:09 | stephenfin | efried: Yeah, precisely | |
| 13:33:15 | sahid | stephenfin: it's not what we do | |
| 13:33:29 | bauzas | so the big thing is | |
| 13:33:33 | bauzas | now we know that | |
| 13:33:38 | bauzas | should Placement do that ? | |
| 13:33:41 | bauzas | I don't think so | |
| 13:33:45 | stephenfin | sahid: Indeed, and I think we can change that | |
| 13:33:47 | bauzas | leave that logic to the filter | |
| 13:33:53 | stephenfin | bauzas: No, neither do I | |
| 13:34:01 | bauzas | what Placement would return is just a list of potential targets | |
| 13:34:12 | stephenfin | So long as we can still ensure at least one guest NUMA node is affined with a given host NUMA node | |
| 13:34:17 | bauzas | some can run that workload but on a single node, some can do that better | |
| 13:34:19 | stephenfin | For things like PCI devices and the likes | |
| 13:34:26 | bauzas | so the filter will pick the best one | |
| 13:34:28 | openstackgerrit | Andrey Volkov proposed openstack/osc-placement master: RP list: member_of and resources parameters (v1.3, v1.4) https://review.openstack.org/511183 | |
| 13:34:29 | openstackgerrit | Andrey Volkov proposed openstack/osc-placement master: RP delete inventories (v1.5) https://review.openstack.org/514642 | |
| 13:34:30 | openstackgerrit | Andrey Volkov proposed openstack/osc-placement master: CLI for traits (v1.6) https://review.openstack.org/514643 | |
| 13:34:31 | openstackgerrit | Andrey Volkov proposed openstack/osc-placement master: Resource class set (v1.7) https://review.openstack.org/514644 | |
| 13:34:32 | openstackgerrit | Andrey Volkov proposed openstack/osc-placement master: Usages per project and user (v1.8, v1.9) https://review.openstack.org/514646 | |
| 13:34:33 | openstackgerrit | Andrey Volkov proposed openstack/osc-placement master: CLI allocation candidates (v1.10) https://review.openstack.org/514647 | |
| 13:34:33 | stephenfin | And vSwitches :) | |
| 13:34:34 | Shilpa | stephenfin: Hi, noVNC 1.0.0, i have checked logs http://logs.openstack.org/72/550172/2/check/tempest-full/f6945b6/job-output.txt.gz, and observed that 1 test case is failed, and that is tempest.api.compute.servers.test_novnc.NoVNCConsoleTestJSON.test_novnc[id-c640fdff-8ab4-45a4-a5d8-7e6146cbd0dc] | |
| 13:34:34 | openstackgerrit | Andrey Volkov proposed openstack/osc-placement master: New dict format of allocations (v1.11, v1.12) https://review.openstack.org/542819 | |
| 13:34:35 | openstackgerrit | Andrey Volkov proposed openstack/osc-placement master: Transactionally update allocations (v1.13) https://review.openstack.org/546674 | |
| 13:34:36 | openstackgerrit | Andrey Volkov proposed openstack/osc-placement master: Add nested resource providers (v1.14) https://review.openstack.org/546675 | |
| 13:34:37 | openstackgerrit | Andrey Volkov proposed openstack/osc-placement master: Limit allocation candidates (v1.15, v1.16) https://review.openstack.org/548043 | |
| 13:34:38 | openstackgerrit | Andrey Volkov proposed openstack/osc-placement master: Allocation candidates parameter: required (v1.17) https://review.openstack.org/548326 | |
| 13:34:44 | bauzas | oh shit, gerrit dropbomb | |
| 13:34:47 | efried | Placement will give you candidates telling you exactly which NUMA nodes the *actual* resources come from. The virt driver must adhere to that. What it turns around and tells the guest is entirely up to your conscience :) | |
| 13:34:56 | sahid | stephenfin: what do you want to change? | |
| 13:35:17 | Shilpa | stephengin: checked there, URL is correct though 'http://217.182.140.77:6080/vnc.html?path=websockify?token=30848df8-99b2-4a0c-a615-51a5a444660d' | |
| 13:35:21 | bauzas | efried: Placement will give hosts that match the possibility to support a guest having a specific topology | |
| 13:35:30 | stephenfin | Shilpa: Indeed. I thought that was because of the change in the path but your change apparently works with both 1.0 and pre-1.0 | |
| 13:35:36 | stephenfin | Shilpa: So I don't know what's going on | |
| 13:35:45 | efried | bauzas: Maybe. | |
| 13:35:46 | bauzas | efried: but the filter could restrict that list | |
| 13:35:50 | efried | bauzas: Exactly. | |
| 13:36:05 | efried | The filter is allowed to be stricter than placement. That's... kind of its job. | |
| 13:36:06 | bauzas | efried: okay, so I feel numbered request groups can still work | |
| 13:36:10 | stephenfin | sahid: If a user requests N nodes, then nova should place those on host NUMA nodes as necessary | |
| 13:36:12 | efried | yes, agree completely. | |
| 13:36:17 | bauzas | provided I'm clear on my spec | |
| 13:36:37 | stephenfin | sahid: So for 4 guest nodes, if it can fit 3 on one host node and 1 on the other, that would be OK | |
| 13:36:42 | bauzas | that, whatever logic I dislike on filter, it's not intended to be in Placement | |
| 13:36:56 | sahid | stephenfin: please don't do that | |
| 13:36:58 | efried | bauzas: Would even work if we wanted to support explicit sharding/anti-affinity - like I said earlier, the filter would be responsible for getting rid of the candidates where placement "incorrectly" clustered separate groups into the same RP. | |
| 13:37:03 | Shilpa | stephenfin: ok will check further, if i will get something, will let you know, thanks | |
| 13:37:04 | bauzas | ++ | |
| 13:37:06 | bauzas | efried: ++ | |
| 13:37:20 | efried | sahid: Please clarify. | |
| 13:37:21 | stephenfin | sahid: But we're not breaking the NUMA affinity with PCI devices or the likes. At least one of those guest nodes would have to be placed on the same host NUMA node as the PCI device | |
| 13:37:21 | sahid | you are going to break the whole aim of numa toplogy | |
| 13:37:39 | efried | sahid: You're saying that if we request 4 (host) nodes, we must get 4 (host) nodes? | |