From nobody Tue Sep 9 19:05:55 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1737559100675161.46048320294142; Wed, 22 Jan 2025 07:18:20 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 0E5A014FE; Wed, 22 Jan 2025 10:18:19 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id A568C147B; Wed, 22 Jan 2025 10:17:18 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 918B4142B; Wed, 22 Jan 2025 10:17:13 -0500 (EST) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id B744E11D0 for ; Wed, 22 Jan 2025 10:17:12 -0500 (EST) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-21675fd60feso150260605ad.2 for ; Wed, 22 Jan 2025 07:17:12 -0800 (PST) Received: from grind.. ([191.202.238.10]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21c2d402f7dsm96059215ad.216.2025.01.22.07.17.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jan 2025 07:17:11 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1737559031; x=1738163831; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=W5JbHJ8yXUYhDQwgnVAyOz9ZQAcjGiVC/ofvl9+Cm6c=; b=lXtLM0mbMpsL/PuNRMGD0oWPeCl+940lZa7u7iLcM4DuFMHP3H5b1Kq9X48M3IHnKH FYtYeY2cCOUyQ8RgP4wMQJyyh392Pn3vdThwfgPGv3ntAsSZNMaBQjMp8I+H/ZLuWhxt 09adaaW/kuf2szRtQPG8rsWhzsvGo2R7IoaRE4HhPSN1oUM8h3QiRNlzpM4y9d4X1+TB SYnpM59jEeSGWFZspvYpkgg6zNaVUZgPUexLKGsmGFxihGP6LfHUErFdkwagrNuI+LCJ hppUu7TelcG1l8/YlTbjV4sjqnr2Zn+8pIje2HdBFPCHhbMkAwOIDJao5aDtv7R2GK6D J0Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737559031; x=1738163831; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W5JbHJ8yXUYhDQwgnVAyOz9ZQAcjGiVC/ofvl9+Cm6c=; b=j2SZDP34WaYuFWgDlpRUcd/LBDwJWmWcAlLcdD3rSg20iVnPfZoos60hRMB0DIvKat rF8Las+4pvk5UjMDLJ3uUHidzhWjb80qRk4XmlmAwVcRc1sYbKIY4ZXz04w00Vlz8K9G xQLmpK2ca6GiKinu453rJRICsen9tR3JcW2NUpq9uS0f2EJmcXhy5V59wRtEDyPPIcjL 85HBUHaF2avMc6sMKTcNIkdCPGPvS4N+RSC36rXR+V8nc1fXYj7+Azgcbl2aPlpPyPVA fPXVJEqGOVm1sBz9Cbko3uVyLkaYGw5ZLfyVqrH2sp786+JMjRbFw5VsVH6V5pxS4r0Y D7Cw== X-Gm-Message-State: AOJu0Yw9ebiNls6jF/3jbwVB2CFpBKDKco+Lzsja8uyvbKM8e1GWI4Db IXjXpRHmrw+7K19exMu3pJxpyDPgtoOspUNsEoLTft96HpJwPF7SUpHvVLETwwvzS7VgTkcwYDr I X-Gm-Gg: ASbGnctfCz4bW+RJ4LhL5CJH7rvl62QbmpJ4iOZFNBi2WOXPskZEDZQeSL1pPej3DSH 4sFFtwBvkz8Zb0zg+x2IvvfHCfMs6YhnlAYaoQE45CC552C6q+VfQBj9qR2GSu5wfj5xwBN07FN mUba5r6DlDgVY5VFdXfgTO4zrklTiljunO6sIG/f3LwI0PAZGo8UgDWylVb87BPOiRloKPsemAs WoTuJWWsIA3IDeaFNsCRp0rI6xgdLYxtQxs8dBPsysyYqJm9lK1N9u31BeM9AwWixhdA3Xr X-Google-Smtp-Source: AGHT+IFLEnU6CkJ4ADcy45m5oWnPzh5FKKRxnhcuPps4utQJIk9MH5SlG6Rt6+DOkw3BVS1b6wczZw== X-Received: by 2002:a17:902:e5ce:b0:21b:b3c9:38ff with SMTP id d9443c01a7336-21c355eeaf3mr292577865ad.37.1737559031490; Wed, 22 Jan 2025 07:17:11 -0800 (PST) From: Daniel Henrique Barboza To: devel@lists.libvirt.org Subject: [PATCH v2 1/3] qemu: add capability for RISC-V AIA feature Date: Wed, 22 Jan 2025 12:17:00 -0300 Message-ID: <20250122151702.95617-3-dbarboza@ventanamicro.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250122151702.95617-1-dbarboza@ventanamicro.com> References: <20250122151702.95617-1-dbarboza@ventanamicro.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: VDZWT7AFAFEBYVCLS6Z5GEP55UTTVGFH X-Message-ID-Hash: VDZWT7AFAFEBYVCLS6Z5GEP55UTTVGFH X-MailFrom: dbarboza@ventanamicro.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: dbarboza@ventanamicro.com X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1737559101843019000 Content-Type: text/plain; charset="utf-8" AIA (Advanced Interrupt Architecture) support was introduced in QEMU 7.0 for the 'virt' machine type. It allows the guest to choose from a more modern interrupt model than the default (CLINT - Core Logical Interrupt Controller). Signed-off-by: Daniel Henrique Barboza Reviewed-by: Martin Kletzander --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml | 1 + 4 files changed, 5 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 53aa64a009..490f5b28fd 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -725,6 +725,7 @@ VIR_ENUM_IMPL(virQEMUCaps, =20 /* 470 */ "migrate-incoming.exit-on-error", /* QEMU_CAPS_MIGRATE_INCOM= ING_EXIT_ON_ERROR */ + "machine.virt.aia", /* QEMU_CAPS_MACHINE_VIRT_AIA */ ); =20 =20 @@ -1764,6 +1765,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsMachi= nePropsPSeries[] =3D { static struct virQEMUCapsStringFlags virQEMUCapsMachinePropsVirt[] =3D { { "iommu", QEMU_CAPS_MACHINE_VIRT_IOMMU }, { "ras", QEMU_CAPS_MACHINE_VIRT_RAS }, + { "aia", QEMU_CAPS_MACHINE_VIRT_AIA }, }; =20 static struct virQEMUCapsStringFlags virQEMUCapsMachinePropsGeneric[] =3D { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 398749a136..07746f644c 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -704,6 +704,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ =20 /* 470 */ QEMU_CAPS_MIGRATE_INCOMING_EXIT_ON_ERROR, /* exit-on-error argument of= migrate-incoming command */ + QEMU_CAPS_MACHINE_VIRT_AIA, /* -machine virt,aia=3D(none|aplic|aplic-i= msic), RISC-V only */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml b/tests/qemu= capabilitiesdata/caps_8.0.0_riscv64.xml index 7959d49c02..0207637ebc 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml @@ -142,6 +142,7 @@ + 7002050 0 v7.2.0-333-g222059a0fc diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml b/tests/qemu= capabilitiesdata/caps_9.1.0_riscv64.xml index 77f4deca03..ccc7673ba9 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml @@ -169,6 +169,7 @@ + 9001000 0 v9.1.0 --=20 2.48.1 From nobody Tue Sep 9 19:05:55 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1737559078439367.1120005883856; Wed, 22 Jan 2025 07:17:58 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 3B4B4149C; Wed, 22 Jan 2025 10:17:57 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id B14401533; Wed, 22 Jan 2025 10:17:15 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 00A7F142C; Wed, 22 Jan 2025 10:17:11 -0500 (EST) Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 501F1142D for ; Wed, 22 Jan 2025 10:17:11 -0500 (EST) Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-21619108a6bso122140505ad.3 for ; Wed, 22 Jan 2025 07:17:11 -0800 (PST) Received: from grind.. ([191.202.238.10]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21c2d402f7dsm96059215ad.216.2025.01.22.07.17.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jan 2025 07:17:09 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1737559030; x=1738163830; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pViZm+PVxNshEHLakMdDyYDGsVbM9wNfQLiOfbCRRYw=; b=MLmqFpat+wbx8qtL/sS/WWKQVQbc/iGF5r34XdI1TpKh0UrShipLKG4vlK/hATB1YT 8ykINDztrnqlZx2oRqa8Ss520RxjdlR18AMQ0siOZ8yV/5vWac3WEhSdODdmjWxBB9nx wme0NLAOo1ovZtYuOaZClBROYT4fDrv0gWnXSaCKpOjd8dJsvGgOjybENGp3EEty7/fZ YCH/TbYNvgT0ME18W/K/5JFWJI4As6WZZPmIVAxhvDLxzN0J7jAWB0Cu6LezjDSETRgU 7jw1GCbIhoTcD2ecbVdiqD2z0R9ncT/sIJtA+MDAJpkyFyJD2N9cG8j6Cx0tVzEE9FzV hHgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737559030; x=1738163830; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pViZm+PVxNshEHLakMdDyYDGsVbM9wNfQLiOfbCRRYw=; b=CXaHg+TBSsm0Mbl0DLgaMvEuY5/KIRPbyEyiiJ91NDNrLhUAVO0vTADbsnxLXaU9sC 7wxTE/68poitBkpRjYPpU8R7Uxsd9pqEmM78krG/vszPuRk1zi2cPnFRMGvM5Yt3YZRT do1AWaTm7f+qPJBoQqaMSqzT89QweXLlDqDVJ3ZvvIk1o3rB9NLwIo/05TM9aDIiEi8y Ud+C/qDQ2X556KcNgtdV1dRCNgLb/yesyOaZQjGqspHna7F6VVxXLNqM1cgszl3nBuFA nwwWyOXoqz4iKBtKMd72Hbdr4ALCfV9u+5sraTfBjh2ITy5XPyE7A3ReyUtqPhEE6EHN UnnA== X-Gm-Message-State: AOJu0YyCQkmKXmgio+STCtqkq8Jdm2pbXd5CILXkMOglOk7ehzOo6T+n 4h1nEsDlW82ylQue7+87keHiQ7cMXA2Sz1p8G2yysjVggEi9wyekUZjjRsxEXcMbxL/0bdkQKwo s X-Gm-Gg: ASbGncu+UQCQUZccignQJzrZH0ZzYGrEttCzoa/ytaxIBha3LGMgX/Ii1RDQ1wFc84d MfuWpo8hcXCWhRhKA7S8byxMmPRz0qavxU2OAMy8pHF8DqS+uzrprH4YD+UTaFogqN+duApy0oq 7a53XCFnhz4moKCCj+PzjdVJHRHqsnIypk//8P4eVTmqUOFlN3L5NDkexo8tFTpJu9OBhaRlW3+ oS9OPc6V12eCDy/xSplpVyHyWMov3gZypD9xAII4kcv3zb3NpP/K/2SbpouVjfSW1dbzg92 X-Google-Smtp-Source: AGHT+IEBYBW5opppozWvdmV+fPmtZUFysS1PMAHOChltfCajvBlgQXJUyNAHryyxYMOFAhiILhL50g== X-Received: by 2002:a17:902:db07:b0:215:b9a7:5282 with SMTP id d9443c01a7336-21c3554b516mr316469355ad.26.1737559029808; Wed, 22 Jan 2025 07:17:09 -0800 (PST) From: Daniel Henrique Barboza To: devel@lists.libvirt.org Subject: [PATCH v2 1/1] cpu_riscv64.c: add update() implementation Date: Wed, 22 Jan 2025 12:16:59 -0300 Message-ID: <20250122151702.95617-2-dbarboza@ventanamicro.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250122151702.95617-1-dbarboza@ventanamicro.com> References: <20250122151702.95617-1-dbarboza@ventanamicro.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: CFXLWDO32CIEWQF6UNY5L3PDETVHEXHY X-Message-ID-Hash: CFXLWDO32CIEWQF6UNY5L3PDETVHEXHY X-MailFrom: dbarboza@ventanamicro.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: dbarboza@ventanamicro.com X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1737559081826019000 Content-Type: text/plain; charset="utf-8" At this moment it is not possible to launch a 'riscv64' domain if a CPU definition is presented in the domain. For example, adding this CPU definition: rv64 Will trigger the following error: $ sudo ./run tools/virsh start riscv-virt1 error: Failed to start domain 'riscv-virt1' error: this function is not supported by the connection driver: cannot update guest CPU for riscv64 architecture The error comes from virCPUUpdate(), via qemuProcessUpdateGuestCPU(), and it's caused by the absence of the 'update' API in the existing RISC-V driver. Add an 'update' API impl to the RISC-V driver to allow for CPU definitions to be declared in RISC-V domains. This API was copied from the ARM driver (virCPUarmUpdate()) since it's a good enough implementation to get us going. Signed-off-by: Daniel Henrique Barboza --- po/POTFILES | 1 + src/cpu/cpu_riscv64.c | 28 +++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/po/POTFILES b/po/POTFILES index b122f02818..5d6ec195b4 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -70,6 +70,7 @@ src/cpu/cpu.c src/cpu/cpu_arm.c src/cpu/cpu_map.c src/cpu/cpu_ppc64.c +src/cpu/cpu_riscv64.c src/cpu/cpu_s390.c src/cpu/cpu_x86.c src/datatypes.c diff --git a/src/cpu/cpu_riscv64.c b/src/cpu/cpu_riscv64.c index c44bdeb291..4cb795f849 100644 --- a/src/cpu/cpu_riscv64.c +++ b/src/cpu/cpu_riscv64.c @@ -46,6 +46,32 @@ virCPURiscv64ValidateFeatures(virCPUDef *cpu G_GNUC_UNUS= ED) } =20 =20 +static int +virCPURiscv64Update(virCPUDef *guest, + const virCPUDef *host, + bool relative) +{ + g_autoptr(virCPUDef) updated =3D virCPUDefCopyWithoutModel(guest); + + if (!relative || guest->mode !=3D VIR_CPU_MODE_HOST_MODEL) + return 0; + + if (!host) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("unknown host CPU model")); + return -1; + } + + updated->mode =3D VIR_CPU_MODE_CUSTOM; + virCPUDefCopyModel(updated, host, true); + + virCPUDefStealModel(guest, updated, false); + guest->mode =3D VIR_CPU_MODE_CUSTOM; + guest->match =3D VIR_CPU_MATCH_EXACT; + + return 0; +} + struct cpuArchDriver cpuDriverRiscv64 =3D { .name =3D "riscv64", .arch =3D archs, @@ -54,6 +80,6 @@ struct cpuArchDriver cpuDriverRiscv64 =3D { .decode =3D NULL, .encode =3D NULL, .baseline =3D NULL, - .update =3D NULL, + .update =3D virCPURiscv64Update, .validateFeatures =3D virCPURiscv64ValidateFeatures, }; --=20 2.40.0 From nobody Tue Sep 9 19:05:55 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1737559125825388.40714217724576; Wed, 22 Jan 2025 07:18:45 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 50E6E14DE; Wed, 22 Jan 2025 10:18:45 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 11435154E; Wed, 22 Jan 2025 10:17:26 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 9782F14B0; Wed, 22 Jan 2025 10:17:21 -0500 (EST) Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 98FF014A4 for ; Wed, 22 Jan 2025 10:17:14 -0500 (EST) Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-21670dce0a7so147393785ad.1 for ; Wed, 22 Jan 2025 07:17:14 -0800 (PST) Received: from grind.. ([191.202.238.10]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21c2d402f7dsm96059215ad.216.2025.01.22.07.17.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jan 2025 07:17:12 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1737559033; x=1738163833; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dioV+R7OCrp1cTWAB9ed5BFX9VGmEXOnujxMRizQsmw=; b=FGFiwqMdxtz43lkX7VB+/mjaoroO3SfO9u+P9wlNM0dEy75sOjjRoEhAaJbL6DMFVQ koy4/EtXqgwzuAM8EX2m+DjdT7LMV0DWoMJlZjH8No1WSfpcrZDOtPvXc6Iluw+FLCV9 Rypc5FfDvmMEc+rBCrKcX1evelIczezbSSfrVUqLHTsJb5npse7TUYVZnrB6wU7h74+X ARHFNzHzEiFjv/jr890y8TMEy0/b9rtVGF1HO+g6DnGa/IavWiqEHo01bmjmTZnA4kcd 8KzyUVHi8WoZQDZyJ3f68T4w8OYD4xTfySJbe2lH+dy/BAVdY4tz9GFCM8hPOmLXVJPS zOSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737559033; x=1738163833; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dioV+R7OCrp1cTWAB9ed5BFX9VGmEXOnujxMRizQsmw=; b=SkfEWivpwjiSWe8bcpB2mCDlZysn1TVbU/2y94WOlwkve8BZVBMJwEfiq+s0tMufqE QSqMY80KEpq2xaxkqoZpjVSm/XIrudjPn7La/64w4JSSDOvVnPpOC/9H3xYSQCGYmBNE dRpoBAUheaY2FcQ+SIQ/tgPmnIR85y1mA9symwYFjQdClqB6yjbvG/H0KjRJ6WMCcqqA qrbC8Sttyn87rr1OCSIXVhWl9yUQ/5tgh6VAMjHSJMH+V1a1LRlr5ogx+aQyG8kARGm9 adDHlpnZlKqWS1MOSlXzIxMoVxbk8vcsOyeJODBQgYPisWhhm63Pu1thBoJbbyccMk/X 1a8g== X-Gm-Message-State: AOJu0YxzlZCcebaBqqXzAPsQmvwDXKChgJ/OEJvushBzU1G61TuGt2SV KugHi5H70oGTfHsX09TFuV2Xu15CfhTtim9gn8Fk4nisqck1IKEUJLHWCNd22vZKCYlEsoHFTJF h X-Gm-Gg: ASbGncvH+BFh8jAHE+fU3brzZCpcJ3Sv0S7fqCAaNuQfjwV2m/eXyZx/nSR3F1oMmoo swekZypqpCUnpfkt+joSg/iSI8Trx6j2HGcNINIVo57hRvN+5YxeyVl+qMSSU3DtfDkLE1d5XSq wxb4if+C8H/qs8iMiK9uflNnFBHA7AIVVxIQRNgn3rdX9IN4zJ7qt5M48YYpvJC9f97WPJvMAkI zxiY6NOOdqT6B2OwcIJpGo4z3pyqgRK+EEIGulS3g+6Q6y02mp7r6ak+WkV4YTOpwNn1TiX X-Google-Smtp-Source: AGHT+IGDbEAGVGEijpTbfJcqOUIlkjDuMLgpFDYfHTSPbHH4gPPFkKQ//2i5ha6EgpFDbLx0cXwl+A== X-Received: by 2002:a17:902:e802:b0:212:615f:c1 with SMTP id d9443c01a7336-21c3540a0admr360074665ad.14.1737559033171; Wed, 22 Jan 2025 07:17:13 -0800 (PST) From: Daniel Henrique Barboza To: devel@lists.libvirt.org Subject: [PATCH v2 2/3] conf,qemu: implement RISC-V 'aia' virt domain feature Date: Wed, 22 Jan 2025 12:17:01 -0300 Message-ID: <20250122151702.95617-4-dbarboza@ventanamicro.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250122151702.95617-1-dbarboza@ventanamicro.com> References: <20250122151702.95617-1-dbarboza@ventanamicro.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: Y6K5EO4EBJPCVXGXEST2AVHIDITMQPHG X-Message-ID-Hash: Y6K5EO4EBJPCVXGXEST2AVHIDITMQPHG X-MailFrom: dbarboza@ventanamicro.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: dbarboza@ventanamicro.com X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1737559128452019000 Content-Type: text/plain; charset="utf-8" This feature is implemented as a string that can range from "none", "aplic" and "aplic-imsic". If the feature isn't present in the domain XML the hypervisor default will be used. For QEMU, at least up to 9.2, the default is "none". Signed-off-by: Daniel Henrique Barboza Reviewed-by: Martin Kletzander --- docs/formatdomain.rst | 8 +++++++ src/conf/domain_conf.c | 40 +++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 12 ++++++++++ src/conf/schemas/domaincommon.rng | 15 ++++++++++++ src/libvirt_private.syms | 2 ++ src/qemu/qemu_validate.c | 15 ++++++++++++ 6 files changed, 92 insertions(+) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 620daae9af..785b51bb4e 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -2043,6 +2043,7 @@ Hypervisors may allow certain CPU / machine features = to be toggled on/off. + ... =20 @@ -2290,6 +2291,13 @@ are: disable the emulation of a PS/2 controller used by ``ps2`` bus input de= vices. If the attribute is not defined, the hypervisor default will be used. :since:`Since 10.7.0` (QEMU only) +``aia`` + Configure aia (Advanced Interrupt Architecture) for RISC-V 'virt' + guests. Possible values for the ``value`` attribute are ``aplic`` (one + emulated APLIC device present per socket), ``aplic-imsic`` (one APLIC a= nd + one IMSIC device present per core), or ``none`` (no support for AIA). + If the attribute is not defined, the hypervisor default + will be used. :since:`Since 11.1.0` (QEMU/KVM and RISC-V guests only) =20 Time keeping ------------ diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 3f88a77a8f..5e7b9edf8f 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -186,6 +186,7 @@ VIR_ENUM_IMPL(virDomainFeature, "async-teardown", "ras", "ps2", + "aia", ); =20 VIR_ENUM_IMPL(virDomainCapabilitiesPolicy, @@ -1536,6 +1537,14 @@ VIR_ENUM_IMPL(virDomainPstoreBackend, "acpi-erst", ); =20 +VIR_ENUM_IMPL(virDomainAIA, + VIR_DOMAIN_AIA_LAST, + "default", + "none", + "aplic", + "aplic-imsic", +); + typedef enum { VIR_DOMAIN_NET_VHOSTUSER_MODE_NONE, VIR_DOMAIN_NET_VHOSTUSER_MODE_CLIENT, @@ -17171,6 +17180,18 @@ virDomainFeaturesDefParse(virDomainDef *def, break; } =20 + case VIR_DOMAIN_FEATURE_AIA: { + virDomainAIA value; + + if (virXMLPropEnumDefault(nodes[i], "value", virDomainAIATypeF= romString, + VIR_XML_PROP_NONZERO, &value, + VIR_DOMAIN_AIA_NONE) < 0) + return -1; + + def->features[val] =3D value; + break; + } + case VIR_DOMAIN_FEATURE_TCG: if (virDomainFeaturesTCGDefParse(def, ctxt, nodes[i]) < 0) return -1; @@ -21161,6 +21182,17 @@ virDomainDefFeaturesCheckABIStability(virDomainDef= *src, } break; =20 + case VIR_DOMAIN_FEATURE_AIA: + if (src->features[i] !=3D dst->features[i]) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("State of feature '%1$s' differs: source:= '%2$s=3D%3$s', destination: '%4$s=3D%5$s'"), + featureName, + "value", virDomainAIATypeToString(src->feat= ures[i]), + "value", virDomainAIATypeToString(dst->feat= ures[i])); + return false; + } + break; + case VIR_DOMAIN_FEATURE_MSRS: case VIR_DOMAIN_FEATURE_TCG: case VIR_DOMAIN_FEATURE_ASYNC_TEARDOWN: @@ -28219,6 +28251,14 @@ virDomainDefFormatFeatures(virBuffer *buf, virTristateBoolTypeToString(def->feature= s[i])); break; =20 + case VIR_DOMAIN_FEATURE_AIA: + if (def->features[i] =3D=3D VIR_DOMAIN_AIA_DEFAULT) + break; + + virBufferAsprintf(&childBuf, "\n", + virDomainAIATypeToString(def->features[i])); + break; + case VIR_DOMAIN_FEATURE_LAST: break; } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 9f7c28343f..ba1a495764 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2206,6 +2206,7 @@ typedef enum { VIR_DOMAIN_FEATURE_ASYNC_TEARDOWN, VIR_DOMAIN_FEATURE_RAS, VIR_DOMAIN_FEATURE_PS2, + VIR_DOMAIN_FEATURE_AIA, =20 VIR_DOMAIN_FEATURE_LAST } virDomainFeature; @@ -2423,6 +2424,17 @@ typedef enum { =20 VIR_ENUM_DECL(virDomainIBS); =20 +typedef enum { + VIR_DOMAIN_AIA_DEFAULT =3D 0, + VIR_DOMAIN_AIA_NONE, + VIR_DOMAIN_AIA_APLIC, + VIR_DOMAIN_AIA_APLIC_IMSIC, + + VIR_DOMAIN_AIA_LAST +} virDomainAIA; + +VIR_ENUM_DECL(virDomainAIA); + typedef struct _virDomainFeatureKVM virDomainFeatureKVM; struct _virDomainFeatureKVM { int features[VIR_DOMAIN_KVM_LAST]; diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index 7121519ca3..5848d3eaaf 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -6996,6 +6996,9 @@ + + + @@ -7294,6 +7297,18 @@ =20 + + + + + none + aplic + aplic-imsic + + + + + diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 33b93cbd3e..ee90fb2b84 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -229,6 +229,8 @@ virDiskNameParse; virDiskNameToBusDeviceIndex; virDiskNameToIndex; virDomainActualNetDefFree; +virDomainAIATypeFromString; +virDomainAIATypeToString; virDomainAudioDefFree; virDomainAudioFormatTypeFromString; virDomainAudioFormatTypeToString; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 086c66b602..0a086d9cf4 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -264,6 +264,21 @@ qemuValidateDomainDefFeatures(const virDomainDef *def, } break; =20 + case VIR_DOMAIN_FEATURE_AIA: + if (def->features[i] !=3D VIR_TRISTATE_SWITCH_ABSENT && + !qemuDomainIsRISCVVirt(def)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("aia feature is only supported with RISC-= V Virt machines")); + return -1; + } + if (def->features[i] !=3D VIR_TRISTATE_SWITCH_ABSENT && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_VIRT_AIA)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("aia feature is not available with this QE= MU binary")); + return -1; + } + break; + case VIR_DOMAIN_FEATURE_SMM: case VIR_DOMAIN_FEATURE_KVM: case VIR_DOMAIN_FEATURE_XEN: --=20 2.48.1 From nobody Tue Sep 9 19:05:55 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1737559156503980.0837569686308; Wed, 22 Jan 2025 07:19:16 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id ED53412D0; Wed, 22 Jan 2025 10:19:15 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 37FD7165A; Wed, 22 Jan 2025 10:17:34 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id D0BBB15F4; Wed, 22 Jan 2025 10:17:30 -0500 (EST) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 046D215B6 for ; Wed, 22 Jan 2025 10:17:18 -0500 (EST) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-21c2f1b610dso124483935ad.0 for ; Wed, 22 Jan 2025 07:17:17 -0800 (PST) Received: from grind.. ([191.202.238.10]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21c2d402f7dsm96059215ad.216.2025.01.22.07.17.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Jan 2025 07:17:14 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1737559036; x=1738163836; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GH75Ca+Cb2yr7TGbw9h1xQ7lauvGD6n7YyCa7+VNWQ4=; b=CM86Jer9vuvU4lPtiDSTgXNYWGdeNEbcfF1999OQZNJO/dWzBrH/NsbR+JIqkiaPxO 1XYXnYc3H4XHSPPjyhp6/Ye11bZK1aqXkwsKiOiNN7kbKiV81240sz7L8hk1a8tbIK2d zzPXtdWnKIiSd/fNoMA6eY9aBHf1tK4Mvfmu4JBBm/GTxsvMCUuoXJ8jPncXWG23jKIh 9NHUijdGEpfxAKgIKKH2iYCcMKD6p6lNYB7TEX7stzaWTtEgiLM3O2tMIXXvKsTFfSsh JRxOsucwvd2TU66UoTQsAS2VWiOup28Vc8GML0mVeSAVciAp6ORJB7CXH0/PYyAR2KcT IdJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737559036; x=1738163836; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GH75Ca+Cb2yr7TGbw9h1xQ7lauvGD6n7YyCa7+VNWQ4=; b=r7XXjBbc1h/2/8yreCGa6K7UbGXzMVR8JGsRc50iMSK0YsuncLRWh2EZah3VF0M+d3 E+N5VJK6tkCVxgszDtqOU2J7Q71gg8v1kx1Jpim1az3rc5mJTSudrCPtSyMW+6ScU+RZ qpfZLUXDgBN+/ge4JBiNyaR2IEORdDpSh6bwWXtsfcmaDdSkJlKaktDD50dqCfZK3ZMc uQuECWbXhxwJBkcDzLAec67T4d9I/Hw8Wfpb86rVlUMdDmCk8sepIO7KL9+JBtTcuUOD fX7CchVucgf7HhDkwq7T/n0Mp97eFjD/0p0oN/X2ueSLyImorXlAwRWP6aYgP4mA0yCf kRVg== X-Gm-Message-State: AOJu0YxSC8aQNwn48ROtehxn2cZMA2tnsLgk5oYg4dZ3ao5EIvzEJbb7 MCQ+Q8OKqzcB4mx+p/B2Mdr2BJiQSekD0GTfz2xeFBO9qJKy1W94749EVb7JROXrLRBJ/Df6rKq s X-Gm-Gg: ASbGncv6JUYQT/XKfX8VUjShU+ZGrChe9pmQRXmzx1BVTJ+a8nfPYPW497R5rgg/Wew A8kPAHzCluFx2rL+DGEF0BsjLQgozZUPWuMuPsuo5DjcXb1gvyguYyN7AHZ+7DU4mGg3tlxj4Gg m9MUW3OJoexs0ohYW0QezR47Gv1ILUSB57sXPdk/TlaJr6fumfOUvy7LuClLz4ZYRbVZfn3pI80 VIKQvRvZyZKQLkvyU0Agn1mIlIkf/1vUjIh8/F2ZVxxKjsDHjUg0+ugSbJP5nW4qE8W7RHA X-Google-Smtp-Source: AGHT+IFdPzl+/px4cMPM2ivTncgkZ3DwUORuoVhQZhNYR7+mXzH6+ZyOBQVPMREgFVs0FCtnFxJsZg== X-Received: by 2002:a17:902:e74a:b0:216:56c7:98a7 with SMTP id d9443c01a7336-21c35618995mr351780105ad.53.1737559034860; Wed, 22 Jan 2025 07:17:14 -0800 (PST) From: Daniel Henrique Barboza To: devel@lists.libvirt.org Subject: [PATCH v2 3/3] qemu: add RISC-V 'aia' command line Date: Wed, 22 Jan 2025 12:17:02 -0300 Message-ID: <20250122151702.95617-5-dbarboza@ventanamicro.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250122151702.95617-1-dbarboza@ventanamicro.com> References: <20250122151702.95617-1-dbarboza@ventanamicro.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: OEBKC6W2TJYSQAKUVIOBV7P52QCARMNE X-Message-ID-Hash: OEBKC6W2TJYSQAKUVIOBV7P52QCARMNE X-MailFrom: dbarboza@ventanamicro.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: dbarboza@ventanamicro.com X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1737559158528019000 Content-Type: text/plain; charset="utf-8" The 'aia' feature is added as a machine type option for the 'virt' RISC-V machine, e.g. "-machine virt,aia=3D". Signed-off-by: Daniel Henrique Barboza Reviewed-by: Martin Kletzander --- src/qemu/qemu_command.c | 5 +++ ...cv64-virt-features-aia.riscv64-latest.args | 31 +++++++++++++++++++ ...scv64-virt-features-aia.riscv64-latest.xml | 1 + .../riscv64-virt-features-aia.xml | 27 ++++++++++++++++ tests/qemuxmlconftest.c | 2 ++ 5 files changed, 66 insertions(+) create mode 100644 tests/qemuxmlconfdata/riscv64-virt-features-aia.riscv64= -latest.args create mode 120000 tests/qemuxmlconfdata/riscv64-virt-features-aia.riscv64= -latest.xml create mode 100644 tests/qemuxmlconfdata/riscv64-virt-features-aia.xml diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 1f28de6194..1f20189e89 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6741,6 +6741,11 @@ qemuAppendDomainFeaturesMachineParam(virBuffer *buf, virBufferAsprintf(buf, ",i8042=3D%s", str); } =20 + if (def->features[VIR_DOMAIN_FEATURE_AIA] !=3D VIR_DOMAIN_AIA_DEFAULT)= { + const char *str =3D virDomainAIATypeToString(def->features[VIR_DOM= AIN_FEATURE_AIA]); + virBufferAsprintf(buf, ",aia=3D%s", str); + } + return 0; } =20 diff --git a/tests/qemuxmlconfdata/riscv64-virt-features-aia.riscv64-latest= .args b/tests/qemuxmlconfdata/riscv64-virt-features-aia.riscv64-latest.args new file mode 100644 index 0000000000..0256026ba4 --- /dev/null +++ b/tests/qemuxmlconfdata/riscv64-virt-features-aia.riscv64-latest.args @@ -0,0 +1,31 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/var/lib/libvirt/qemu/domain--1-guest \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/var/lib/libvirt/qemu/domain--1-guest/.local/share \ +XDG_CACHE_HOME=3D/var/lib/libvirt/qemu/domain--1-guest/.cache \ +XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-guest/.config \ +/usr/bin/qemu-system-riscv64 \ +-name guest=3Dguest,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/va= r/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \ +-machine virt,usb=3Doff,aia=3Dnone,dump-guest-core=3Doff,memory-backend=3D= riscv_virt_board.ram,acpi=3Doff \ +-accel tcg \ +-cpu rv64 \ +-m size=3D4194304k \ +-object '{"qom-type":"memory-backend-ram","id":"riscv_virt_board.ram","siz= e":4294967296}' \ +-overcommit mem-lock=3Doff \ +-smp 4,sockets=3D4,cores=3D1,threads=3D1 \ +-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-boot strict=3Don \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxmlconfdata/riscv64-virt-features-aia.riscv64-latest= .xml b/tests/qemuxmlconfdata/riscv64-virt-features-aia.riscv64-latest.xml new file mode 120000 index 0000000000..1ab55fc10e --- /dev/null +++ b/tests/qemuxmlconfdata/riscv64-virt-features-aia.riscv64-latest.xml @@ -0,0 +1 @@ +riscv64-virt-features-aia.xml \ No newline at end of file diff --git a/tests/qemuxmlconfdata/riscv64-virt-features-aia.xml b/tests/qe= muxmlconfdata/riscv64-virt-features-aia.xml new file mode 100644 index 0000000000..60bbb82c74 --- /dev/null +++ b/tests/qemuxmlconfdata/riscv64-virt-features-aia.xml @@ -0,0 +1,27 @@ + + guest + 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 + 4194304 + 4194304 + 4 + + hvm + + + + + + + rv64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-riscv64 + + + diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c index 5c95a49116..34d38f2c4b 100644 --- a/tests/qemuxmlconftest.c +++ b/tests/qemuxmlconftest.c @@ -2930,6 +2930,8 @@ mymain(void) DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-tcg-q35-4.2", "x86_64"); DO_TEST_CAPS_ARCH_LATEST("x86_64-default-cpu-tcg-features", "x86_64"); =20 + DO_TEST_CAPS_ARCH_LATEST("riscv64-virt-features-aia", "riscv64"); + DO_TEST_CAPS_LATEST("virtio-9p-multidevs"); DO_TEST_CAPS_LATEST("virtio-9p-createmode"); =20 --=20 2.48.1