From nobody Mon May 20 05:36:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1622525440; cv=none; d=zohomail.com; s=zohoarc; b=YyYGnIW8X7OImh9UAVALqamoZmf01UY5JvMfFgzD1spqWhXs/iJdh/ybgKA+rjsTeaxUlF2QyGd3Xk55InPSqbzfSNgZgKuJzIGf96Dup3YVQc0re1qdn314lp2fysmaz4aLLC07bD0kJPP7/wcIt6CnEr/p3okGzWa8PpvMZUs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1622525440; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=7/lGE3Q3O38oapozsEntEQplElt+NleYNusY1XC20t4=; b=cEjV7kI3LsBQgKo1nicLX4E/gozvwRNWjpiyeg3Gg0CtL2KzYBIA+Rnql6XKLQDuAkELxPwsCX3NlhQLf4/SIQDBibVtyDHWYctr/FpuklNKq/yT7wkZ3052W32vlZuPpGLrU0YzrMTQXhgGp5KEJW9wdEotqvNTDj2Bo4ZiKaw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1622525440867601.243834154489; Mon, 31 May 2021 22:30:40 -0700 (PDT) Received: from localhost ([::1]:49430 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lnwz8-00016q-Q5 for importer@patchew.org; Tue, 01 Jun 2021 01:30:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52656) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lnwy5-000070-4N for qemu-devel@nongnu.org; Tue, 01 Jun 2021 01:29:33 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:24974) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lnwy2-0005mK-PH for qemu-devel@nongnu.org; Tue, 01 Jun 2021 01:29:32 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-273-bvQK2ZyhPt298fUpMSSKnQ-1; Tue, 01 Jun 2021 01:29:26 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9A653107ACC7; Tue, 1 Jun 2021 05:29:25 +0000 (UTC) Received: from gshan.redhat.com (vpn2-54-23.bne.redhat.com [10.64.54.23]) by smtp.corp.redhat.com (Postfix) with ESMTP id A84D360CCE; Tue, 1 Jun 2021 05:29:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1622525368; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7/lGE3Q3O38oapozsEntEQplElt+NleYNusY1XC20t4=; b=GkIXcz0ZFj9TvX8KOAVZGCF49Ad99M+AyFsaxs+jaKMfTRJE1IlEs54I+5+7Xt6hVwPTRe K364CgK/7R4j636kKl+eTLxdd83STeoAAsyd9kUCPh9+6Dv0bLi/cXVDo2SQV59DeyizHY nq8hZfAUZgcnMQMWqCNKyNUVFn9qwsM= X-MC-Unique: bvQK2ZyhPt298fUpMSSKnQ-1 From: Gavin Shan To: qemu-arm@nongnu.org Subject: [PATCH] hw/arm/boot: Use NUMA node ID in memory node name Date: Tue, 1 Jun 2021 15:30:04 +0800 Message-Id: <20210601073004.106490-1-gshan@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=gshan@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=gshan@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.372, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, drjones@redhat.com, qemu-devel@nongnu.org, shan.gavin@gmail.com, eric.auger@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" We possibly populate empty nodes where memory isn't included and might be hot added at late time. The FDT memory nodes can't be created due to conflicts on their names if multiple empty nodes are specified. For example, the VM fails to start with the following error messages. /home/gavin/sandbox/qemu.main/build/qemu-system-aarch64 \ -accel kvm -machine virt,gic-version=3Dhost \ -cpu host -smp 4,sockets=3D2,cores=3D2,threads=3D1 -m 1024M,maxmem=3D64G \ -object memory-backend-ram,id=3Dmem0,size=3D512M \ -object memory-backend-ram,id=3Dmem1,size=3D512M \ -numa node,nodeid=3D0,cpus=3D0-1,memdev=3Dmem0 \ -numa node,nodeid=3D1,cpus=3D2-3,memdev=3Dmem1 \ -numa node,nodeid=3D2 \ -numa node,nodeid=3D3 \ : -device virtio-balloon-pci,id=3Dballoon0,free-page-reporting=3Dyes qemu-system-aarch64: FDT: Failed to create subnode /memory@80000000: \ FDT_ERR_EXISTS This fixes the issue by using NUMA node ID or zero in the memory node name to avoid the conflicting memory node names. With this applied, the VM can boot successfully with above command lines. Signed-off-by: Gavin Shan --- hw/arm/boot.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hw/arm/boot.c b/hw/arm/boot.c index d7b059225e..3169bdf595 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -432,7 +432,12 @@ static int fdt_add_memory_node(void *fdt, uint32_t ace= lls, hwaddr mem_base, char *nodename; int ret; =20 - nodename =3D g_strdup_printf("/memory@%" PRIx64, mem_base); + if (numa_node_id >=3D 0) { + nodename =3D g_strdup_printf("/memory@%d", numa_node_id); + } else { + nodename =3D g_strdup("/memory@0"); + } + qemu_fdt_add_subnode(fdt, nodename); qemu_fdt_setprop_string(fdt, nodename, "device_type", "memory"); ret =3D qemu_fdt_setprop_sized_cells(fdt, nodename, "reg", acells, mem= _base, --=20 2.23.0