All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] hw/arm/virt: Fix qemu booting failure on device-tree
@ 2021-10-12  6:36 Gavin Shan
  2021-10-12  6:36 ` [PATCH v2 1/2] numa: Set default distance map if needed Gavin Shan
  2021-10-12  6:36 ` [PATCH v2 2/2] hw/arm/virt: Don't create device-tree node for empty NUMA node Gavin Shan
  0 siblings, 2 replies; 4+ messages in thread
From: Gavin Shan @ 2021-10-12  6:36 UTC (permalink / raw)
  To: qemu-arm; +Cc: peter.maydell, drjones, qemu-devel, shan.gavin, ehabkost

The empty NUMA nodes, where no memory resides, are allowed on ARM64 virt
platform. However, QEMU fails to boot because the device-tree can't be
populated due to the conflicting device-tree node names of these empty
NUMA nodes. For example, QEMU fails to boot and the following error
message reported when below command line is used.

  /home/gavin/sandbox/qemu.main/build/qemu-system-aarch64 \
  -accel kvm -machine virt,gic-version=host               \
  -cpu host -smp 4,sockets=2,cores=2,threads=1            \
  -m 1024M,slots=16,maxmem=64G                            \
  -object memory-backend-ram,id=mem0,size=512M            \
  -object memory-backend-ram,id=mem1,size=512M            \
  -numa node,nodeid=0,cpus=0-1,memdev=mem0                \
  -numa node,nodeid=1,cpus=2-3,memdev=mem1                \
  -numa node,nodeid=2                                     \
  -numa node,nodeid=3                                     \
    :
  qemu-system-aarch64: FDT: Failed to create subnode /memory@80000000: FDT_ERR_EXISTS

The lastest device-tree specification doesn't indicate how the device-tree
nodes should be populated for these empty NUMA nodes. The proposed way
to handle this is documented in linux kernel. The linux kernel patches
have been acknoledged and merged to upstream pretty soon.

  https://lkml.org/lkml/2021/9/27/31

This series follows the suggestion, which is included in linux kernel
patches, to resolve the QEMU boot failure issue: The corresponding
device-tree nodes aren't created for the empty NUMA nodes, but their
NUMA IDs and distance map matrix should be included in the distance-map
device-tree node.

Changelog
=========
v2:
   * Amend PATCH[01/02]'s changelog to explain why we needn't
     switch to disable generating the default distance map        (Drew)

Gavin Shan (2):
  numa: Set default distance map if needed
  hw/arm/virt: Don't create device-tree node for empty NUMA node

 hw/arm/boot.c  |  4 ++++
 hw/core/numa.c | 13 +++++++++++--
 2 files changed, 15 insertions(+), 2 deletions(-)

-- 
2.23.0



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-10-12  6:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-12  6:36 [PATCH v2 0/2] hw/arm/virt: Fix qemu booting failure on device-tree Gavin Shan
2021-10-12  6:36 ` [PATCH v2 1/2] numa: Set default distance map if needed Gavin Shan
2021-10-12  6:39   ` Andrew Jones
2021-10-12  6:36 ` [PATCH v2 2/2] hw/arm/virt: Don't create device-tree node for empty NUMA node Gavin Shan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.