hw/acpi-build: Fix SRAT memory building in case of node 0 without RAM
commit4926403c250fc41dc2d27f1c77e200e7d3d239cd
authorEduardo Habkost <ehabkost@redhat.com>
Fri, 1 Sep 2017 02:10:02 +0000 (1 10:10 +0800)
committerEduardo Habkost <ehabkost@redhat.com>
Tue, 19 Sep 2017 19:51:33 +0000 (19 16:51 -0300)
tree071db7a4d3386dad35ab48c5c7ee7ecca01f08bd
parentf51878ba863d1f6938bc8e04381979767b7b508c
hw/acpi-build: Fix SRAT memory building in case of node 0 without RAM

Currently, Using the fisrt node without memory on the machine makes
QEMU unhappy. With this example command line:
  ... \
  -m 1024M,slots=4,maxmem=32G \
  -numa node,nodeid=0 \
  -numa node,mem=1024M,nodeid=1 \
  -numa node,nodeid=2 \
  -numa node,nodeid=3 \
Guest reports "No NUMA configuration found" and the NUMA topology is
wrong.

This is because when QEMU builds ACPI SRAT, it regards node 0 as the
default node to deal with the memory hole(640K-1M). this means the
node0 must have some memory(>1M), but, actually it can have no
memory.

Fix this problem by cut out the 640K hole in the same way the PCI
4G hole does.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
Message-Id: <1504231805-30957-2-git-send-email-douly.fnst@cn.fujitsu.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
hw/i386/acpi-build.c