From mboxrd@z Thu Jan 1 00:00:00 1970 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2E590C0219B for ; Wed, 12 Feb 2025 01:18:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AE73B6B0082; Tue, 11 Feb 2025 20:18:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A96006B0083; Tue, 11 Feb 2025 20:18:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 95E016B0085; Tue, 11 Feb 2025 20:18:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 78F936B0082 for ; Tue, 11 Feb 2025 20:18:40 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 0CF2C1C8E4F for ; Wed, 12 Feb 2025 01:18:40 +0000 (UTC) X-FDA: 83109532800.03.6C3D293 Received: from mail-oo1-f42.google.com (mail-oo1-f42.google.com [209.85.161.42]) by imf06.hostedemail.com (Postfix) with ESMTP id 35D63180002 for ; Wed, 12 Feb 2025 01:18:38 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=f1myawdV; spf=pass (imf06.hostedemail.com: domain of haoxing990@gmail.com designates 209.85.161.42 as permitted sender) smtp.mailfrom=haoxing990@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739323118; a=rsa-sha256; cv=none; b=Y8p44fLqvSjsAdbGlDtgGOcsvuARwrWmOVLj5MF+3FTa5gl8dIwCLhHi6ck8Xj03Jn8MU/ 72Mj26K2IYWyKM9WlHiQhEFgZ+fN5/hEmOGbihoblQDt4qQ6OF12X5ysXzA+/1+py7zgTy 263j/QATntsVpop4nTbGPxEiZ5535JI= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=f1myawdV; spf=pass (imf06.hostedemail.com: domain of haoxing990@gmail.com designates 209.85.161.42 as permitted sender) smtp.mailfrom=haoxing990@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739323118; h=from:from:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gWQV5Hoxz3cZ+OgTLWgpITgyaV1nbQO+Bm57UUIPaIc=; b=uD92Us9IAoW3osk0dn1S4SW0YMYrJp54jHKd3dKrGzJaHa3BIWzcRCv5ifih/sQNpF1o2b TIhVbkM46pIbTRdMDkVIjXZ5ksHbd0qYj8iIKDowvLWmDJQ1KPB2GmvTcuCNAcOZbMKs1F jqYc5BZhJf/0lTfhQkOcaedIRACkJNE= Received: by mail-oo1-f42.google.com with SMTP id 006d021491bc7-5fc6cd89f85so1840391eaf.1 for ; Tue, 11 Feb 2025 17:18:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739323117; x=1739927917; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=gWQV5Hoxz3cZ+OgTLWgpITgyaV1nbQO+Bm57UUIPaIc=; b=f1myawdVaRCrLHejkdJ7Xg1bIUtP3fbGnWrjJ1tfLssDLaMax3D5HztzotFS94dSH2 9OG5EuX8fxqDIZqKSrbdpvucjXfPyN3jqkhHZwrX1M3A/4m5sbrEsAwSbJBxywkfoJ6M UYu3Yd2+WCqW/BRRgdztp5K4V/Tz23X1iHlYbAJPA0ZcB/xlk6R0xRnU5vzXZPqAr4gt Lzs7iNynyMutGkK0gxtE5VslXnmb6SQ8/toMFUTTif9YS+IEO5AYLlVn5MYm8A3wO6bG TUNGMRmpOpm+xk2J8BqRyFyolblTIlz2DcLLqvRkd4qexmP5+yaohb9N6Hra/fFEj2Xb hmww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739323117; x=1739927917; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=gWQV5Hoxz3cZ+OgTLWgpITgyaV1nbQO+Bm57UUIPaIc=; b=lTS8Z1wv+vnenQfqCCXQNPsi23nrAe9UALypn2Zl8WQDFLjz7tDGlCQTbA8G9SnH0h dFdi0u6gqpbjhXqfrIBEuhNzJ0JrwIzhDneDi0vz/kNAIC1ZRub8XLD9LjkODxhXk5lA wdH9RNef3gDjP3bguBrX6PL662ZntfTA1kFuMvOX+sZf1p7Y5ffBp7GP9t4zW5DvwJ+X wCipmiRGx7amtoS0lkSqpHSUvj3Ons99mZqHrLg4GHJOBysLOBWUpWIFes6YUKx2nWNB rMKpw2tccjmViqvwou8Hg/OoNBLTr/OX385Ro2dB453cnYDtg5zoeC4+C/XZ9EOnDEIN PrrA== X-Forwarded-Encrypted: i=1; AJvYcCUvNNTM6WW7OTlwcDwJ/ooj+XBntBrmCkakDY8nrQ0/KanupqQ6+JPvBSMszcTZ8+0vB91uVmXeCg==@kvack.org X-Gm-Message-State: AOJu0YyWiaHptR1m8Q2T8Td1cE920VjLx8U66vcsNlc9RLduPdjkzjWu kjxp5d3wxS7MsCmy8JWp7S7Ahk789Bz6u1UjNF96GMYv1GvPZOchUvVktfB1QA8uFHmaBt2uhdB K9GTIgWYtLun+egsuzaJ2xbp1G3E= X-Gm-Gg: ASbGnctfn/2tkB7PRHIni5BmvFrrCTICRkW/VhpDxyGlNrao3USq6E++bexSsKEf4Zn yeI7FH9C1HOjKX157VdwPga9x0L36W2BJg7NXN6sp1c+qszB9tqdl2AALGVGdwLfg2jLt9SJX X-Google-Smtp-Source: AGHT+IExRKdFecO1idtXse3/DBBfPccI2nxWHgOgAt/YKmAOvNHZ/A5TWqbLuLi0yJS0JXGA+onHrlpcLj+ZTbylB9A= X-Received: by 2002:a05:6870:330f:b0:29e:5f1f:152d with SMTP id 586e51a60fabf-2b8d646f6a8mr1058625fac.8.1739323117047; Tue, 11 Feb 2025 17:18:37 -0800 (PST) MIME-Version: 1.0 References: <20250206044346.3810242-1-riel@surriel.com> <20250206044346.3810242-5-riel@surriel.com> <281d6fd629a1965ee0065f99ac5d693bace9758b.camel@surriel.com> In-Reply-To: <281d6fd629a1965ee0065f99ac5d693bace9758b.camel@surriel.com> From: Vern Hao Date: Wed, 12 Feb 2025 09:18:25 +0800 X-Gm-Features: AWEUYZm-DLEiD71J1WxtexJdy8XCNJ1kRC4fiFjoe49eNc6dsNRcWy08lw3WknI Message-ID: Subject: Re: [PATCH v9 04/12] x86/mm: get INVLPGB count max from CPUID To: Rik van Riel Cc: x86@kernel.org, linux-kernel@vger.kernel.org, bp@alien8.de, peterz@infradead.org, dave.hansen@linux.intel.com, zhengqi.arch@bytedance.com, nadav.amit@gmail.com, thomas.lendacky@amd.com, kernel-team@meta.com, linux-mm@kvack.org, akpm@linux-foundation.org, jannh@google.com, mhklinux@outlook.com, andrew.cooper3@citrix.com, Manali Shukla Content-Type: multipart/alternative; boundary="0000000000008a9880062de7b83e" X-Rspamd-Queue-Id: 35D63180002 X-Stat-Signature: nfppppsaeogzan3yg5bxyea8nmzunmtx X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1739323118-782159 X-HE-Meta: U2FsdGVkX1+EXuxWAyIYTSDdKCePTpI8qxINwPtB+p++gA29gqYqM2soj2T8tYMcDff9CUSy5X/kdl0IUwDihD2vuSVFLT2ibzNtr3UQ858P7mSAQs7n3tIC3sukD6fuAyfhdY3G32q3UlA5SgxTs25ZUBFjP/Xv67bL0AirBgVskbZ0lhZYRnIAxdpAxISsPkEbrTMX5VdvcTvvaHD+spbnfED6gxyo4GISADhaTNQvYBV1nMScLrusNKQRsWtN6M1oGPRbtCOZYCjuSH+x7UT0aqGzwNcodN4C3EQfNSnRisHPunNEJLtGSE0EVHZ460oR7S8skUNTk0LsIyBBhOY4wy8CKeHJPdOwVv/W+Y6E2mVxhKEdGoCuyVpa7lqEJW3s28i2w3r+1pj1QmbDgg0t+wdAvuoaMm2tgRJ7XQlAcE6iW2/lgx1qa0Yrciz4xKX5MEwe5ryl2FQ0+xV1YmASaZx1HCLGn2yFaMS6Gil1XnOz0kASZew6L+yrydRckrS+Dx6MBjY03Dzp0BDIn3jdsCUybfl9HbOYKevzdRKFd6GhcsY37KkwheZwnZbSe2rBX3aF2ksKOSfuY8hKrbA1muKfyyg0mW1ejRTtLKZIyP4mvJvrDB0vwibGBNiFer8SU4zFCXdwV04namuBcHW52u1CjgS7GJNuTI26b1VMNRsMaiYJ+ZU7fOsWpZsqa+nwNgeWAXWYqcb8IBzrnc3qUSCwvyhMcRBPKsObdm18hKRp7KWBIHWk+CqJ9bVS/Ww9D5hXvHW6nOPLB/UFb6R0olflQBdcwUAp1olzZl0LZqRy6ch5jXKrbfw/Y1pHh570pK7BSRPJdN5Oypc3iaHcNP3Q/+5PHcYW6w4xydJ5kTMc+Z9j/OwEhNRm0DqmZL1Y3dojqKlhSyCuk5rjJ2QOthMSyUQEoXBnij7hNFUVOAMIHkfSUfrHEvL1SSsb5z2QTX6EIsfkMWgGnNI Dzyb8v9r qTJiTwKFhuVT9a9R4a8TZkYjXlTCtecKr3fgHPHfWJa9/M9RPA6bpIYTDsM7/LwHAx6gzXJVHz01hxEi0X7P0M3pe0wcw3zKazIS/z+gWCXWaqXoPK0pKOluj/NCy3XZIyJWxsEro9OVO1InSa+t3gmA/diqsbd6M7V+0v+i+7AS84tEAniHLUgl7k5I4UJLhb7lJ0yj3QYmLSwfu8AStc6QHeuWSxYdJw1tQaW/fvc6SV1E1/8jDWdE6MLsBMuHqVBVQP0x9qTmD2uyiY2udu6Aj7wiO1mjOrA8EhHSkmZaM5v49Da8fctYuuCPfFWdBmxdgvXvoRO2eh5GDsv9X142mVPPVTTD3JmjGm7VUxE4mIKzIfZAqwvLiJCBBAu529AAhdDfwodVRogXYvDg46mYP9KqXe2FuWHTEZn0OWIZYMIbiZ7fplB9D0cnaSUWcTQ1mGggOMCz2VlPERTnkDLQk1j/GsH0aEr6s50dICoEq6YLy8xEF0CRG6bBTN5cYwkpxpsO/0G7GbRJiJ2vegQ6VNBKlsEKTRplHIP7XYa6+SA51Cyxe/JJ0VA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: --0000000000008a9880062de7b83e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable i support these patches in host and guest, and add this patch to support cpuid flags in kvm. diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c index db3838667466..fd21d9438137 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c @@ -488,7 +488,7 @@ static inline int __do_cpuid_func(struct kvm_cpuid_entry2 *entry, u32 function, /* cpuid 0x80000008.ebx */ const u32 kvm_cpuid_8000_0008_ebx_x86_features =3D - F(CLZERO) | F(XSAVEERPTR) | + F(CLZERO) | F(XSAVEERPTR) | F(INVLPGB) | F(WBNOINVD) | F(AMD_IBPB) | F(AMD_IBRS) | F(AMD_SSBD) | F(VIRT_SSBD) | F(AMD_SSB_NO) | F(AMD_STIBP) | F(AMD_STIBP_ALWAYS_ON); But in guest, use lscpu cmd, i still can not see invlpgb, so i just wonder where is wrong ? Best Regards! Thanks Rik van Riel =E4=BA=8E2025=E5=B9=B42=E6=9C=8811=E6=97=A5= =E5=91=A8=E4=BA=8C 00:50=E5=86=99=E9=81=93=EF=BC=9A > On Mon, 2025-02-10 at 15:30 +0800, Vern Hao wrote: > > I do some test on my Machine with AMD EPYC 7K83, these patches work > > on my host, but failed on my guest with qemu. > > > > in host, use lscpu cmd, you can see invlpgb in flags, but in guest > > no. > > > > So are you plan to support it in guest? > > How exactly did it fail in the guest? > > Did the guest simply not use INVLPGB because that > CPUID flag was not presented in the CPUID that > qemu shows to the guest, or did things crash somehow? > > My understanding is that while INVLPGB can work > in guests, actually implementing that is a whole > other can of worms, and definitely not something > we should try to tackle at the same time as bare > metal support. > > A TLB flush hypercall, with IRQ-less flushing on > the hypervisor side will probably get us 90% of > the way there, potentially with less overall > complexity than actually supporting INVLPGB in > the guest. > > -- > All Rights Reversed. > --0000000000008a9880062de7b83e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
i support these patches in host and guest, and add th= is patch to support cpuid flags in kvm.

diff --git= a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index db3838667466..fd21d= 9438137 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c<= br>@@ -488,7 +488,7 @@ static inline int __do_cpuid_func(struct kvm_cpuid_e= ntry2 *entry, u32 function,

=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* cpuid 0x8= 0000008.ebx */
=C2=A0 =C2=A0 =C2=A0 =C2=A0 const u32 kvm_cpuid_8000_0008= _ebx_x86_features =3D
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= F(CLZERO) | F(XSAVEERPTR) |
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 F(CLZERO) | F(XSAVEERPTR) | F(INVLPGB) |
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 F(WBNOINVD) | F(AMD_IBPB) | F(AMD_IBRS) = | F(AMD_SSBD) | F(VIRT_SSBD) |
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 F(AMD_SSB_NO) | F(AMD_STIBP) | F(AMD_STIBP_ALWAYS_ON);

But=C2=A0 in guest,=C2=A0 use lscpu cmd, i still ca= n not see=C2=A0=C2=A0invlpgb,=C2=A0 so=C2=A0 i just wonder where is wrong ?=

Best Regards!
Thanks


Rik van Riel <riel@surriel.com> =E4=BA=8E2025=E5=B9=B42=E6= =9C=8811=E6=97=A5=E5=91=A8=E4=BA=8C 00:50=E5=86=99=E9=81=93=EF=BC=9A
On Mon, 2025-02-10 at = 15:30 +0800, Vern Hao wrote:
> I do some test=C2=A0on my=C2=A0=C2=A0Machine with=C2=A0AMD EPYC 7K83,= =C2=A0 these patches=C2=A0work
> on my host,=C2=A0 but failed on my guest=C2=A0with qemu.
>
> in host, use lscpu cmd, you can see=C2=A0=C2=A0invlpgb=C2=A0in flags,= =C2=A0 but in guest
> no.
>
> So are you plan=C2=A0to support it in guest?

How exactly did it fail in the guest?

Did the guest simply not use INVLPGB because that
CPUID flag was not presented in the CPUID that
qemu shows to the guest, or did things crash somehow?

My understanding is that while INVLPGB can work
in guests, actually implementing that is a whole
other can of worms, and definitely not something
we should try to tackle at the same time as bare
metal support.

A TLB flush hypercall, with IRQ-less flushing on
the hypervisor side will probably get us 90% of
the way there, potentially with less overall
complexity than actually supporting INVLPGB in
the guest.

--
All Rights Reversed.
--0000000000008a9880062de7b83e--