| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-08-07 | |||
| 15:04:37 | melwitt | mriedem: will do | |
| 15:05:00 | efried | stephenfin: I would be fine limiting the use of resources:(P|V)CPU as strictly as possible without breaking backward compat. | |
| 15:05:00 | mnaser | mriedem: i think noonedeadpunk will likely look into fixing it so might be good if he created a bug to track it ^ | |
| 15:05:18 | efried | but resources$S:* will be a different story. | |
| 15:05:44 | stephenfin | efried: What would the reason for 'resources$S:PCPU' be? | |
| 15:05:57 | stephenfin | I mean, without NUMA at least | |
| 15:06:07 | stephenfin | *NUMA in placement | |
| 15:06:58 | dansmith | mriedem: sure | |
| 15:07:21 | efried | stephenfin: Exactly NUMA in placement. | |
| 15:07:38 | efried | "will be" future tense intended | |
| 15:07:58 | sean-k-mooney | efried: why not block resources$S:* for pcus and vcpus | |
| 15:08:09 | efried | for now, yes, we certainly can ^ | |
| 15:08:15 | stephenfin | Why not forever? | |
| 15:08:17 | sean-k-mooney | we shoudl only support using the hw:numa_cpu.0 values | |
| 15:08:48 | sean-k-mooney | efried: e.g. we already have syntax for specify the cpu to numa mappings | |
| 15:08:51 | efried | stephenfin: pretty sure there will be affinity use cases where we'll need that level of control. | |
| 15:08:59 | stephenfin | Given that we have ways to request all these things with extra specs | |
| 15:09:10 | efried | including things like accelerators? | |
| 15:09:15 | efried | and VGPUs? | |
| 15:09:21 | efried | And bandwidth? | |
| 15:09:31 | efried | esp. that last one | |
| 15:09:38 | efried | because we need to be able to do affinity by subtree matching | |
| 15:09:39 | sean-k-mooney | if we also support mixed cpus in instance we will jsut combien the mask with the hw:numa_cpu.X=Y status | |
| 15:09:46 | sean-k-mooney | *spec | |
| 15:09:54 | noonedeadpunk | mnaser: I guess writing a patch might be quicker that filing in a bug... | |
| 15:09:56 | efried | ...when the requests come from different thingies | |
| 15:10:07 | huaqiang | sean-k-mooney: morning | |
| 15:10:47 | stephenfin | efried: 'hw:numa_affinity:$RESOURCE_CLASS:$POLICY' or something similar? | |
| 15:11:26 | stephenfin | e.g. 'hw:numa_affinity:VCPU:prefer' | |
| 15:11:30 | stephenfin | *VGPU | |
| 15:11:52 | gibi | I don't think we ever want to request bandwidth via flavor exta_spec | |
| 15:11:59 | efried | exactly gibi | |
| 15:12:12 | efried | but we still need to be able to express (NUMA) affinity | |
| 15:12:31 | stephenfin | We're not. We're just saying what the affinity of whatever the bandwidth resource class is | |
| 15:12:40 | stephenfin | Assuming we can know that ahead of time (idk) | |
| 15:12:48 | efried | by tying together the port bw request group suffix and the NUMA request group suffix | |
| 15:13:32 | efried | there's going to be a coupling problem for sure | |
| 15:13:38 | efried | like what we have for group_policy, only much worse. | |
| 15:17:24 | gibi | if nova start using the port uuid as the port suffix for the bandwidth request then a single use flavor can be created where the port group can be referenced for affinity. But this sounds pretty horrific | |
| 15:17:37 | gibi | s/port suffix/group suffix/ | |
| 15:18:09 | efried | agree, I don't think we want the suffix to be a port UUID, do we? | |
| 15:18:36 | gibi | efried: currently each port's resource request is understood as a separate group | |
| 15:18:52 | gibi | efried: so a natural suffix for the group could be the port uuid | |
| 15:19:12 | sean-k-mooney | stephenfin: why woudl we need hw:numa_affinity:VCPU:prefer | |
| 15:19:26 | stephenfin | sean-k-mooney: *VGPU | |
| 15:19:43 | sean-k-mooney | oh for graphics ya | |
| 15:20:12 | stephenfin | Just some way to define NUMA affinity for individual resource class types | |
| 15:20:24 | sean-k-mooney | cpus and memory are are affinites by adding hw:numa_node or one of the option that imples it so i was confused | |
| 15:20:27 | stephenfin | It doesn't allow you to define the same for individual instances, but that's slightly insane | |
| 15:20:34 | stephenfin | Yup, my mistake | |
| 15:21:19 | sean-k-mooney | well you would be surprised what we have approved in the past and never implmeneted. | |
| 15:22:31 | sean-k-mooney | stephenfin: https://github.com/openstack/nova-specs/blob/master/specs/newton/approved/virt-image-props-boot-override.rst | |
| 15:23:34 | efried | gibi: I guess it's not really relevant until we can tie in whatever piece of hardware is associated with the NUMA node. RP for a NIC PF, kind of thing. Cause today you don't request network VF resources or whatever, right? | |
| 15:24:20 | gibi | efried: right. we don't request VF resource from neutron via the resource request. | |
| 15:25:07 | gibi | efried: you are also correct that when VF will be requested from neturon along with the bandwidth then expressing NUMA affinity will be an issue to be solved | |
| 15:25:59 | efried | gibi: Won't the majority of affinity use cases involve only one NUMA node? | |
| 15:26:18 | sean-k-mooney | we request vf internally in nova currently based on the vif type | |
| 15:26:32 | efried | sean-k-mooney: yes but VF not tracked by placement yet | |
| 15:26:36 | sean-k-mooney | but sriov vf will be owned and created by nova in placmenet in the future | |
| 15:26:36 | efried | is my point | |
| 15:26:39 | sean-k-mooney | not by neutron | |
| 15:26:40 | efried | right | |
| 15:26:47 | efried | oh | |
| 15:26:54 | efried | oh? | |
| 15:27:06 | efried | That will make it tougher | |
| 15:27:12 | sean-k-mooney | yes all pci decice handeling is currently done by nova | |
| 15:27:14 | efried | to affine the bw resources with the vf resources | |
| 15:27:26 | sean-k-mooney | neutron does not have a whitelist of device that can be used | |
| 15:27:28 | efried | what if it was a VIF resource? | |
| 15:28:03 | efried | Anyway, if we had a one-NUMA-node use case, we could handle this fairly well. Even multiple NUMA nodes if they're symmetrical. | |
| 15:28:05 | sean-k-mooney | we discussed adding vif ressource that would be owned by the neutron backend too | |
| 15:28:51 | efried | A case where I want $this specific VF/bw associated with $big_numa and $that specific VF/bw associated with $small_numa that things get really hairy. | |
| 15:29:13 | sean-k-mooney | well nomally its not symetric | |
| 15:29:25 | sean-k-mooney | idealy it would be | |
| 15:29:37 | sean-k-mooney | but its quite common to only have nics attached to numa 0 | |
| 15:29:39 | efried | It's not? I thought that was the point of saying hw:numa_nodes=2 | |
| 15:29:51 | sean-k-mooney | no | |
| 15:29:54 | efried | Sorry, I mean if the CPU/mem resources in the NUMA nodes are symmetric | |
| 15:30:05 | sean-k-mooney | hw:numa_nodes=2 is refering to the guest numa toplogy | |
| 15:30:05 | efried | I don't mean "same number of VFs per NUMA node" | |
| 15:30:19 | sean-k-mooney | oh by default yest | |
| 15:30:22 | sean-k-mooney | *yes | |
| 15:30:28 | efried | when we do that we're dividing evenly, yah? | |
| 15:31:00 | sean-k-mooney | you can change that with hw:numa_mem.0=512 hw:numa_mem.1=1536 | |
| 15:31:02 | huaqiang | sean-k-mooney: hi | |
| 15:31:20 | efried | sean-k-mooney: Yes, exactly, that's my point: those cases are rarer, right? | |
| 15:31:23 | sean-k-mooney | efried: yes if you jsut do hw:numa_nodes it devices cpus and ram evenly | |
| 15:31:36 | sean-k-mooney | we also check its evenly deivisable | |
| 15:31:50 | efried | sean-k-mooney: Do we currently support VF NUMA affinity? | |
| 15:31:56 | sean-k-mooney | efried: yes | |
| 15:32:06 | sean-k-mooney | for 4+ years | |
| 15:32:29 | sean-k-mooney | we require it in the case of neutron sriov which is what im trying to chagne | |
| 15:32:51 | sean-k-mooney | with https://review.opendev.org/#/c/674072/ | |
| 15:33:05 | sean-k-mooney | gibi: ^ i would like your input on that by the way | |
| 15:33:26 | sean-k-mooney | huaqiang: hi | |
| 15:33:42 | efried | sean-k-mooney: even in the case of lopsided NUMA nodes? You can say which one you want your VF associated with? | |
| 15:33:52 | sean-k-mooney | efried: no | |
| 15:33:58 | sean-k-mooney | you cannot specify that at all | |
| 15:34:00 | efried | okay, then we're fine. | |
| 15:34:08 | efried | we continue to say you can't specify that. | |