On Mon, Aug 13, 2018 at 09:07:13AM +0200, Igor Mammedov wrote: > On Fri, 10 Aug 2018 15:28:35 -0300 > Eduardo Habkost <ehabk...@redhat.com> wrote: > > > On Fri, Aug 10, 2018 at 06:01:06PM +0200, Igor Mammedov wrote: > > > On Fri, 10 Aug 2018 16:06:57 +0200 > > > Igor Mammedov <imamm...@redhat.com> wrote: > > > > > > > Commit 848a1cc1e8b04 while introducing SRAT entries for DIMM and NVDIMM > > > > also introduced fake entries for gaps between memory devices, assuming > > > > that we need all possible range covered with SRAT entries. > > > > And it did it wrong since gap would overlap with preceeding entry. > > > > Reproduced with following CLI: > > > > > > > > -m 1G,slots=4,maxmem=8 \ > > > > -object memory-backend-ram,size=1G,id=m0 \ > > > > -device pc-dimm,memdev=m0,addr=0x101000000 \ > > > > -object memory-backend-ram,size=1G,id=m1 \ > > > > -device pc-dimm,memdev=m1 > > > > > > > > However recent development (10efd7e108) showed that gap entries might > > > > be not need. And indeed testing with WS2008DC-WS2016DC guests range > > > > shows that memory hotplug works just fine without gap entries. > > > > > > > > So rather than fixing gap entry borders, just drop them altogether > > > > and simplify code around it. > > > > > > > > Spotted-by: Laszlo Ersek <ler...@redhat.com> > > > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > > > > --- > > > > There is no need to update reference blobs since gaps beween dimms > > > > aren't generated by any exsting test case. > > > > > > > > Considering issue is not visible by default lets just merge it into 3.1 > > > > and stable 3.0.1 > > > Pls ignore it for now I'll need to do more extensive testing with old > > > kernels, > > > we might need these holes for old kernels or even new ones. > > > /me goes to read kernel code > > > > > > /per spec possible to hotplug range could be in SRAT, > > > even though I don't like it bu we might end up with static > > > partitioning of hotplug area between nodes like on bare metal > > > to avoid chasing after unknown requirements from windows / > > > > Does that mean we might want to pair DIMM slots with NUMA nodes > > in advance? Do you have a suggestion on how the command-line > > would look like, in this case? > > > > Maybe "-numa mem-slot,slot=X,node=Y"? > it's either, to make it per slot (it implies fixed maximum size per slot) > or a bit more flexible maxmem per node, might be something like: > -numa memory,node=X,maxmem=Y
That could work, but maybe it's too much flexibility? It would be tricky to define what is supposed happen when a slot cross multiple NUMA nodes. -- Eduardo