| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-09-11 | |||
| 14:42:26 | sean-k-mooney | alex_xu: we can crate a numa toplogy as a impmeenation detail | |
| 14:42:53 | sean-k-mooney | but we should never telll people we are because they will assume it works the same way as the other cases we do that | |
| 14:44:40 | sean-k-mooney | alex_xu: just to clarify we use teh terms implcit and explcit numa topoyg in downstream docs and in bug reports and customer expect an implict numa toplogy to be the same as and expclti one. that is the only reason i bring up docs/release notes | |
| 14:45:23 | mriedem | here is an idea, defer vpmems since you're still arguing about designs 1 day before FF and just sort it out in Ussuri :) | |
| 14:45:31 | mriedem | rather than defer and promise to fix things later | |
| 14:45:54 | alex_xu | mriedem: come on... | |
| 14:46:53 | sean-k-mooney | as i said lest just follow the spec and use the code as it is | |
| 14:46:56 | alex_xu | mriedem: so that is works a later fix? | |
| 14:47:23 | sean-k-mooney | alex_xu: we would need to change qemu/libvirt to not do what the current code does | |
| 14:47:38 | mriedem | alex_xu: i'm not reviewing the series nor am i following the argument here, but i know when we say "we'll hack it in x and fix it for real in x+1" that x+1 rarely happens if ever (x+5) | |
| 14:47:40 | sean-k-mooney | or require a realy numa toplogy with affity | |
| 14:49:57 | mriedem | bauzas: you know you already have head count to work on numa in placement support for nova in ussuri? | |
| 14:50:50 | bauzas | mriedem: if I don't have other things like internal crisises, then yes | |
| 14:50:59 | bauzas | or escalations if you prefer | |
| 14:51:00 | sean-k-mooney | at this point not having it block so much of our roadmap since we cant do it the non plamcent way i dont see we have any choice but to dedicate headcount to it | |
| 14:51:29 | mriedem | bauzas: so that means no | |
| 14:51:41 | bauzas | sean-k-mooney: yeah and I went out of steam trying to find some other way for vGPU affinity | |
| 14:52:16 | mriedem | let's just not bullshit ourselves here is all i'm saying | |
| 14:52:21 | bauzas | mriedem: nah, it just means I'm telling the truth : we can't continue implementing NUMA related features without having NUMA support in placement | |
| 14:52:30 | mriedem | sure you can! | |
| 14:52:36 | bauzas | and that's something I'll make it clea to who it could be | |
| 14:52:39 | mriedem | stephenfin doesn't see why ont | |
| 14:52:40 | mriedem | *not | |
| 14:52:47 | stephenfin | jaypipes | |
| 14:52:54 | stephenfin | that was the main reason why, in the past :) | |
| 14:52:56 | sean-k-mooney | no not jaypies | |
| 14:53:04 | mriedem | god rest his soul | |
| 14:53:08 | stephenfin | RIP | |
| 14:53:08 | stephenfin | placement will solve <X> | |
| 14:53:11 | sean-k-mooney | we can implemntate we jsut cant get it merged | |
| 14:53:50 | sean-k-mooney | anyone here if his house/partner/dogs were safe after the storm | |
| 14:53:53 | mriedem | so what's the actual decision that's blocking the pmems stuff at this point? whether numa is implied or not? | |
| 14:54:27 | stephenfin | by specifying VPMEM, you get an implicit NUMA topology but that implicit NUMA topology works differently to every other implicit NUMA topology | |
| 14:54:39 | mriedem | differently how | |
| 14:54:41 | dansmith | that's BS | |
| 14:54:44 | dansmith | don't do that | |
| 14:54:54 | alex_xu | dansmith: you said yes in PTG :) | |
| 14:54:57 | sean-k-mooney | it does not give numa affinity fo the cpus and memory | |
| 14:55:02 | stephenfin | normally, each guest NUMA node is mapped to a unique host NUMA node | |
| 14:55:07 | stephenfin | with this, they'll float | |
| 14:55:10 | sean-k-mooney | so its not the same as hw:numa_nodes=1 | |
| 14:55:15 | dansmith | alex_xu: sean-k-mooney said I said that too, but I don't agree that I did | |
| 14:55:34 | stephenfin | so the guest has a NUMA topology but it's literally there to work around a quirk in libvirt | |
| 14:55:38 | dansmith | alex_xu: I know that because I'm quite sure I didn't say anything positive about vpmems | |
| 14:55:52 | sean-k-mooney | dansmith: it proably was not you but apprently it was form redhat an i know stephn and i relly hate that idea | |
| 14:55:58 | alex_xu | dansmith: haha | |
| 14:56:15 | stephenfin | I really don't want to blow something out of the water, but I feel by doing this we're really just masking a problem with libvirt (or QEMU) | |
| 14:56:35 | stephenfin | and we're also creating yet another special case that we'll have to clean up later | |
| 14:57:04 | mriedem | so with pmem do you have to have an implicit numa topology? | |
| 14:57:12 | stephenfin | yup, see here | |
| 14:57:26 | stephenfin | https://github.com/libvirt/libvirt/blob/master/src/qemu/qemu_domain.c#L11604-L11615 | |
| 14:57:28 | mriedem | i mean, will libvirt fail to boot the guest w/o numa defined in the xml? | |
| 14:57:31 | stephenfin | yup | |
| 14:57:32 | mriedem | ah ok | |
| 14:57:34 | alex_xu | sean-k-mooney: stephenfin ok, let me try to remove that, maybe it is super fast and simple than our discussion :) | |
| 14:57:50 | mriedem | alex_xu: remove what? qemu code? | |
| 14:57:58 | stephenfin | alex_xu: Remove the implicit NUMA topology? Doesn't look like that's an option. See the above link | |
| 14:58:03 | mriedem | that is likely years before it hits LTS | |
| 14:58:33 | stephenfin | libvirt is telling us we need a NUMA topology, so we must give it a NUMA topology | |
| 14:58:46 | alex_xu | stephenfin: add numa topology explicityly | |
| 14:58:54 | mriedem | ok so if qemu requires implicit numa, then our options are hack it and create a unicorn (bad for nova), change qemu and defer the feature (bad for intel), or do numa affinity as usual in nova, | |
| 14:58:55 | bauzas | oh gosh | |
| 14:58:55 | mriedem | right? | |
| 14:59:14 | stephenfin | mriedem: Right. But | |
| 14:59:17 | sean-k-mooney | mriedem: yes | |
| 14:59:21 | openstackgerrit | Eric Fried proposed openstack/nova master: WIP Include error 'details' in dynamic vendordata log https://review.opendev.org/681329 | |
| 14:59:39 | stephenfin | the reason they avoided doing it that way was because they wanted to avoid doing more stuff in NUMATopologyFilter | |
| 14:59:42 | dansmith | artom: commented on the top numa functional patch | |
| 14:59:46 | bauzas | ... and all Hatters technically need to bail out for attending some meeting :) | |
| 14:59:56 | dansmith | bauzas: not all of them :) | |
| 15:00:12 | artom | dansmith, ack - I'm still trying to write words that make sense for https://review.opendev.org/#/c/640021/50/nova/conductor/tasks/live_migrate.py@179 | |
| 15:00:27 | alex_xu | stephenfin: emm...no, that isn't the reason | |
| 15:00:27 | mriedem | stephenfin: would the numa topo filter need to look at pmems or something? or just the hardware module that the filter calls? | |
| 15:00:27 | sean-k-mooney | dansmith: can i join your team to not do numa stuff. it seam simpler | |
| 15:00:30 | bauzas | dansmith: heh, so true | |
| 15:00:38 | stephenfin | to be able to do NUMA affinity properly, we'll need to provide information about the VPMEM devices available in each node as part of the NUMATopology/NUMACell objects | |
| 15:00:38 | artom | It's tricky because... just because we found some old computes in the cell, doesn't mean the source and dest are old | |
| 15:00:41 | dansmith | sean-k-mooney: heh | |
| 15:00:42 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Skip querying resource request if no qos port https://review.opendev.org/681513 | |
| 15:00:46 | artom | So I want to word around that | |
| 15:00:53 | dansmith | artom: ack | |
| 15:01:30 | mriedem | artom: the code isn't granular to just the source and selected dest - where you're checking we don't have a dest yet in some cases, | |
| 15:01:37 | mriedem | so i'm not sure why that would matter for the reno | |
| 15:01:41 | mriedem | oh this is the log | |
| 15:01:58 | artom | mriedem, yeah - I don't want to say "WARNING LEGACY BEHAVIOR" unconditionally | |
| 15:01:59 | stephenfin | Yeah, the NUMA fitting code in the hardware module only gets InstanceNUMATopology, NUMATopology, PCIRequest and whatever the host PCI tracking object is | |
| 15:02:13 | mriedem | artom: i think it's fine to say computes aren't new enough | |
| 15:02:17 | mriedem | that's generic enough | |
| 15:02:32 | artom | Yeah, except they *might* be new enough | |
| 15:02:37 | mriedem | that doesn't matter | |
| 15:02:44 | artom | If that specific source and dest are, even if others in the cell aren't | |
| 15:02:45 | mriedem | b/c that's not how the code works | |
| 15:02:55 | alex_xu | stephenfin: ah, you complain the part of explicltly numa but no affinity | |
| 15:02:56 | mriedem | iow i don't see a problem with the paraphrase that dan gave | |
| 15:03:13 | alex_xu | stephenfin: but you are ok with implicity numa? | |
| 15:03:21 | artom | So, if we got passed the service check, it means there are some old computes in the cell | |
| 15:03:26 | alex_xu | to be host, I'm confused what we discussion for now.... | |
| 15:03:32 | mriedem | artom: correct | |
| 15:03:35 | artom | But... the actual source and dest might both be new | |
| 15:03:44 | artom | In which case, assuming the workaround is enabled, NUMA-LM will happen | |