From nobody Fri Nov 21 10:16:49 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; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1763634032; cv=none; d=zohomail.com; s=zohoarc; b=X8rpqHKO+h9sPWuN75M3spY42JuDI1DizxKI+4vee+heM4O0gCOE8sjFBqdcoFtDrb+vOTH4l19bRRP30iDDU7FhMbElno/dyAgXeriZAPQ4fDTuyFXRAlixGnq5oalBxiDxdjwKna6HudNOlkU7g4ao48C3IkhuXYUljNMbk8Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763634032; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=4Q0iSHvrNGbav9HIjkH6oY1IZD43ZI1JGeQYAxsyhRc=; b=lNI+e1LtEfAy03wX/8OyMbwEQo0LULJy6rNRy7Nqqy+KhemyCIPxBGT2jHOIl0Og+lXGSJchGhvvRZ6dKPhv8xw0Kh73W5rDrSR5EyIA4DQGKOD8F7BXYDZWMOxStRdv2EArPVcIIbMWtgY7L0xENNh0USdRF3Vhg+Y/7xY9wl0= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1763634030976960.099241361827; Thu, 20 Nov 2025 02:20:30 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 8C79744194; Thu, 20 Nov 2025 05:20:27 -0500 (EST) Received: from [172.19.199.53] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 0E0BC44223; Thu, 20 Nov 2025 05:17:18 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 6A85C41B2F; Thu, 20 Nov 2025 05:15:04 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 95C9544105 for ; Thu, 20 Nov 2025 05:15:03 -0500 (EST) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-333-b1w24iroNG2ueTeJRgOerg-1; Thu, 20 Nov 2025 05:15:01 -0500 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9665F1954B0D for ; Thu, 20 Nov 2025 10:15:00 +0000 (UTC) Received: from toolbx.redhat.com (unknown [10.42.28.114]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 04F141800980; Thu, 20 Nov 2025 10:14:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1763633703; 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: in-reply-to:in-reply-to:references:references; bh=4Q0iSHvrNGbav9HIjkH6oY1IZD43ZI1JGeQYAxsyhRc=; b=XllNwubkBQKEnQxru0mUxCaevmIgHJO8vxU515pfCsNu4+N+9/hrOJuh75Uek8p367ZWz7 L6JCN66giBC9ODFeNmL8Z4wiJzgG94ORPTa7xEwC/Rsru84ndedgQsJXv3sZpS4BHa65Br 6uWXgVnuu7hh/xYUbtBAg05iHDahed4= X-MC-Unique: b1w24iroNG2ueTeJRgOerg-1 X-Mimecast-MFC-AGG-ID: b1w24iroNG2ueTeJRgOerg_1763633700 To: devel@lists.libvirt.org Subject: [PATCH 3/5] tools: inform user which CVM is found during validation Date: Thu, 20 Nov 2025 10:14:49 +0000 Message-ID: <20251120101451.3468378-4-berrange@redhat.com> In-Reply-To: <20251120101451.3468378-1-berrange@redhat.com> References: <20251120101451.3468378-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: WIPIHArCB7WnAe_rkZuJvM9rAMzWmGFw38wx2WFuFEg_1763633700 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 3N4DQQDHZT6MDK64ULW44DI5P54ROKUV X-Message-ID-Hash: 3N4DQQDHZT6MDK64ULW44DI5P54ROKUV X-MailFrom: berrange@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: =?utf-8?q?Daniel_P=2E_Berrang=C3=A9_via_Devel?= Reply-To: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1763634034507018900 From: Daniel P. Berrang=C3=A9 For AMD, the virt-host-validate 'secure guest' check reports support for SEV, and there are then further check results printed for SEV-ES/SEV-SNP which are overly verbose and the long lines break output alignment. This uses the new ability to report details with PASS results to concisely tell the user which out of SEV/SEV-ES/SEV-SNP are found. Only a single answer is neede, as SEV-SNP implies SEV & SEV-ES, and SEV-ES implies SEV. The TDX s390x PROT-VIRT checks also identify themselves. Signed-off-by: Daniel P. Berrang=C3=A9 Reviewed-by: Peter Krempa --- tools/virt-host-validate-common.c | 36 ++++++++----------------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-c= ommon.c index 6516d96484..344f9656e5 100644 --- a/tools/virt-host-validate-common.c +++ b/tools/virt-host-validate-common.c @@ -378,8 +378,7 @@ bool virHostKernelModuleIsLoaded(const char *module) =20 =20 static int -virHostValidateAMDSev(const char *hvname, - virValidateLevel level) +virHostValidateAMDSev(virValidateLevel level) { g_autofree char *mod_value =3D NULL; uint32_t eax, ebx; @@ -405,31 +404,14 @@ virHostValidateAMDSev(const char *hvname, return VIR_VALIDATE_FAILURE(level); } =20 - virValidatePass(); - - virValidateCheck(hvname, "%s", - _("Checking for AMD Secure Encrypted Virtualization-E= ncrypted State (SEV-ES)")); - virHostCPUX86GetCPUID(0x8000001F, 0, &eax, &ebx, NULL, NULL); =20 - if (eax & (1U << 3)) { - virValidatePass(); - } else { - virValidateFail(level, - "AMD SEV-ES is not supported"); - return VIR_VALIDATE_FAILURE(level); - } - - virValidateCheck(hvname, "%s", - _("Checking for AMD Secure Encrypted Virtualization-S= ecure Nested Paging (SEV-SNP)")); - - if (eax & (1U << 4)) { - virValidatePass(); - } else { - virValidateFail(level, - "AMD SEV-SNP is not supported"); - return VIR_VALIDATE_FAILURE(level); - } + if (eax & (1U << 4)) + virValidatePassDetails("SEV-SNP"); + else if (eax & (1U << 3)) + virValidatePassDetails("SEV-ES"); + else + virValidatePassDetails("SEV"); =20 return 1; } @@ -453,7 +435,7 @@ static int virHostValidateIntelTDX(virValidateLevel lev= el) return VIR_VALIDATE_FAILURE(level); } =20 - virValidatePass(); + virValidatePassDetails("TDX"); return 1; } =20 @@ -496,7 +478,7 @@ int virHostValidateSecureGuests(const char *hvname, G_N_ELEMENTS(kIBMValues), VIR_KERNEL_CMDLINE_FLAGS_SEARCH= _FIRST | VIR_KERNEL_CMDLINE_FLAGS_CMP_PR= EFIX)) { - virValidatePass(); + virValidatePassDetails("PROT-VIRT"); return 1; } else { virValidateFail(level, --=20 2.51.1