From nobody Fri May 3 01:05:50 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3AFE6C4321E for ; Mon, 5 Dec 2022 08:05:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231971AbiLEIF0 (ORCPT ); Mon, 5 Dec 2022 03:05:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231882AbiLEIEs (ORCPT ); Mon, 5 Dec 2022 03:04:48 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 84763140D7 for ; Mon, 5 Dec 2022 00:04:43 -0800 (PST) Received: from imap1.suse-dmz.suse.de (imap1.suse-dmz.suse.de [192.168.254.73]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 1513B21B30; Mon, 5 Dec 2022 08:04:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1670227482; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+9UFnWEsICEtCyId1TzW8C4ccar29YwckOATn38tDiw=; b=pO6y6QFUlTqijBrInKYHUEnIhEnSLLUc9IenM86QzWIn/AAPg95/z1L9PMUW/1jQHnkYXi GvuTTYnkXCfdpt4b+UqyQtJwhCKaji1r7Q3IHxcfKHO5pGMZSoqv9AeNAOq+KzBDbm1oBD QS1qlxF2qkQRFKYw1WHIhU53Z/oTulA= Received: from imap1.suse-dmz.suse.de (imap1.suse-dmz.suse.de [192.168.254.73]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap1.suse-dmz.suse.de (Postfix) with ESMTPS id B99EF1348F; Mon, 5 Dec 2022 08:04:41 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap1.suse-dmz.suse.de with ESMTPSA id rxn4KxmmjWNCNAAAGKfGzw (envelope-from ); Mon, 05 Dec 2022 08:04:41 +0000 From: Juergen Gross To: linux-kernel@vger.kernel.org, x86@kernel.org Cc: kirill@shutemov.name, Juergen Gross , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" Subject: [PATCH 1/2] x86/pat: fix TDX guest PAT initialization Date: Mon, 5 Dec 2022 09:04:32 +0100 Message-Id: <20221205080433.16643-2-jgross@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221205080433.16643-1-jgross@suse.com> References: <20221205080433.16643-1-jgross@suse.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" With the decoupling of PAT and MTRR initialization, PAT will be used even with MTRRs disabled. This seems to break booting up as TDX guest, as the recommended sequence to set the PAT MSR across CPUs can't work in TDX guests due to disabling caches via setting CR0.CD isn't allowed in TDX mode. This is an inconsistency in the Intel documentation between the SDM and the TDX specification. For now handle TDX mode the same way as Xen PV guest mode by just accepting the current PAT MSR setting without trying to modify it. Signed-off-by: Juergen Gross Acked-by: Kirill A. Shutemov --- arch/x86/mm/pat/memtype.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c index 9aab17d660cd..4e50add760ad 100644 --- a/arch/x86/mm/pat/memtype.c +++ b/arch/x86/mm/pat/memtype.c @@ -296,8 +296,12 @@ void __init pat_bp_init(void) /* * Xen PV doesn't allow to set PAT MSR, but all cache modes are * supported. + * When running as TDX guest setting the PAT MSR won't work either + * due to the requirement to set CR0.CD when doing so. Rely on + * firmware to have set the PAT MSR correctly. */ - if (pat_disabled || cpu_feature_enabled(X86_FEATURE_XENPV)) { + if (pat_disabled || cpu_feature_enabled(X86_FEATURE_XENPV) || + cpu_feature_enabled(X86_FEATURE_TDX_GUEST)) { init_cache_modes(pat_msr_val); return; } --=20 2.35.3 From nobody Fri May 3 01:05:50 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AD7E3C4321E for ; Mon, 5 Dec 2022 08:05:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231691AbiLEIFh (ORCPT ); Mon, 5 Dec 2022 03:05:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55728 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231969AbiLEIE6 (ORCPT ); Mon, 5 Dec 2022 03:04:58 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 05FE115FD1 for ; Mon, 5 Dec 2022 00:04:49 -0800 (PST) Received: from imap1.suse-dmz.suse.de (imap1.suse-dmz.suse.de [192.168.254.73]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id B8E091FE3B; Mon, 5 Dec 2022 08:04:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1670227487; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yMianIWALJeEq31IWXfqs8+ymd+X0ZqlQ5HivhuglU8=; b=O0TiN9vK31fNPKt8r4pZQ5mbZFzXECyGM25P8HGOrmC1GzxFUTz26b283hzdUJXe6TMtL1 p9MEznH483Zd26pK9SovhTX/vXVV4jZsh/PYocav+3+FiW/5NUrsXvqO6vxXK0JE2UszWN BZMPgguXzGB16djGyLpqfVMSt1Qer5U= Received: from imap1.suse-dmz.suse.de (imap1.suse-dmz.suse.de [192.168.254.73]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap1.suse-dmz.suse.de (Postfix) with ESMTPS id 7A6751348F; Mon, 5 Dec 2022 08:04:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap1.suse-dmz.suse.de with ESMTPSA id px+rHB+mjWNTNAAAGKfGzw (envelope-from ); Mon, 05 Dec 2022 08:04:47 +0000 From: Juergen Gross To: linux-kernel@vger.kernel.org, x86@kernel.org Cc: kirill@shutemov.name, Juergen Gross , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" Subject: [PATCH 2/2] x86/mtrr: make message for disabled MTRRs more descriptive Date: Mon, 5 Dec 2022 09:04:33 +0100 Message-Id: <20221205080433.16643-3-jgross@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20221205080433.16643-1-jgross@suse.com> References: <20221205080433.16643-1-jgross@suse.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Instead of just saying "Disabled" when MTRRs are disabled for any reason, tell what is disabled and why. Signed-off-by: Juergen Gross Acked-by: Kirill A. Shutemov --- arch/x86/kernel/cpu/mtrr/mtrr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.c b/arch/x86/kernel/cpu/mtrr/mtr= r.c index 6432abccbf56..94d5739758ba 100644 --- a/arch/x86/kernel/cpu/mtrr/mtrr.c +++ b/arch/x86/kernel/cpu/mtrr/mtrr.c @@ -630,6 +630,7 @@ int __initdata changed_by_mtrr_cleanup; void __init mtrr_bp_init(void) { u32 phys_addr; + const char *why =3D "(not available)"; =20 phys_addr =3D 32; =20 @@ -705,12 +706,13 @@ void __init mtrr_bp_init(void) changed_by_mtrr_cleanup =3D mtrr_cleanup(phys_addr); } else { mtrr_if =3D NULL; + why =3D "by BIOS"; } } } =20 if (!mtrr_enabled()) - pr_info("Disabled\n"); + pr_info("MTRRs disabled %s\n", why); } =20 /** --=20 2.35.3