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 63883C021A0 for ; Wed, 12 Feb 2025 01:57:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CB8F26B0082; Tue, 11 Feb 2025 20:57:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C688A6B0083; Tue, 11 Feb 2025 20:57:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B08EE6B0085; Tue, 11 Feb 2025 20:57:10 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 93CD66B0082 for ; Tue, 11 Feb 2025 20:57:10 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 3C8CF1A1383 for ; Wed, 12 Feb 2025 01:57:10 +0000 (UTC) X-FDA: 83109629820.23.E72EDF0 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by imf06.hostedemail.com (Postfix) with ESMTP id 48D1518000D for ; Wed, 12 Feb 2025 01:57:08 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=evEK5OFx; spf=pass (imf06.hostedemail.com: domain of haoxing990@gmail.com designates 209.85.214.173 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=1739325428; 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=CdMWihQSQsDWc74NwIg2SLPMJIgQLgWgMHbGqiY+10A=; b=NFAQUdKwcWBGXcTJoIuy8Hp8DlzkGEKHwFU4V7jgFXlQsa6CuXTfjSbfwmgP27fVLkPmHF uQ2spO4jbJKVNJHVBbQpXHhdxkRWpJs50QN+haCpkbxC+smcFq6FD+BDpRsvS/1yzmOlX7 1GOeGPcBaR2BmslFalzYbcJb60JYUq0= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=evEK5OFx; spf=pass (imf06.hostedemail.com: domain of haoxing990@gmail.com designates 209.85.214.173 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=1739325428; a=rsa-sha256; cv=none; b=rQplb9BHfwp6KUxfA78bpCGjDMmahLBnqO/liDdQbNidt2JfrHmWSDXENDX2ih24+agLmJ giO7izwyLBz1eVXrDmGbaJot1EQX0wCVQiGQCqY9zu5fW0irjvo8zljJ5OdRw8WiyoNl/h falEc/GoWH6kZ5ea1j37K1uHhD8Iuw4= Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-21f2339dcfdso5814385ad.1 for ; Tue, 11 Feb 2025 17:57:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739325427; x=1739930227; darn=kvack.org; h=in-reply-to:from:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to; bh=CdMWihQSQsDWc74NwIg2SLPMJIgQLgWgMHbGqiY+10A=; b=evEK5OFxja4N4DMwEJ64MauS/nMxq0qU4iQBd2gA0ZOkuzHYGqP6iaAYbRvTh/XZgc mKLgA1n5b83Q3jUPfoeHLDKAKkxKUOJHZXL9SZSZPQvpkAZH0gnoKITyg6mRhV3UlWVB UCBVoIKVA9pxBj2sTAd5nYeVykJ1u7mbf7dQdCtCogGn4Royuhb1rViByRFFj+5mOr8o MLW6iJ0PjZFByVOGDwIBMgOZZs45ymadJT4QfogeDTWumxuaak1j3xEgRdKjE13PSfU7 NFXmlll5zJdm/Myq8Z9J0o40SHrqA7Bge9qI8xrLsKK9ktUTwW/bo1GA9SRiplN5o950 SZgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739325427; x=1739930227; h=in-reply-to:from:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=CdMWihQSQsDWc74NwIg2SLPMJIgQLgWgMHbGqiY+10A=; b=RpUxsEP3C3sHx7co2pYaRWmb6ZcW+0aFjmBTkerckYv50ELKlZH+A2nqM6vhumMfLo tR0DHf/6tun9B08yUGUBRPyG4vzLQH6cuz/iDscb0G3plgbGf2FA+LIaltURm8uKvqOL qYlZO6E/ziQbi2nHvEOrAiUet3gbidDqsj8VKpjKrQd58I+eWwVrbe5nPnGT3zKMeRkT H2XlnaLSX2aMp80CFdZ4aT5YJSMXtmNOH7BZbwYVYDg3Yxi0zv9IN7k4zZ6GGq1TSPsj iER2HlEbsiVm/eiPo+SKSnBX2A8Tt4ZZPy2wAKPnZJlMw9WQjcIZ8/nVJsTxzxBAxs5A Tdxg== X-Forwarded-Encrypted: i=1; AJvYcCU+/emD2Ie+jFOeZu993tbbmAEpx4f4PUERuDnsvtssq/Kw18qrGuM/eFXrR9dDmcMwVN5N3baqJg==@kvack.org X-Gm-Message-State: AOJu0YwmA2qBtwRVhSieV4ZBjW2rptWjTRaPZxo6Lb2JBVBbFaatqd70 q2wNmUVlTVnhIQ0ueVDZ9B3kj1ZdDKJpYJR5SVxNu0IZrFol6s9t X-Gm-Gg: ASbGnct55E3NpOQpzxOsQsdazV+f8GR8+1lY7W5fOCG9tgfkOAoAgy+yo43BsdIyy65 Ohdwi61DvXmDzWQ+oYe4DRu6dxJEHBdC5lE8xLPpXOnpiYgZ79Hzgxb9Nw6v52dQQcfv6+TJaiu oVJ2p36mSb8PLFT7XkVZqCHr4lsMzXJKZnylwgyoQXMa1vhmMITPoAhWNnAEmWaRnzy5/Cl+6W3 aIHkjH9HxatS2vtZ0FahlRS6lPJKuNpCGf8mpTVQr7PQoq8/eZDMGeGJDm+58h4ybOeLR2kqR0l YfnznkMoTmZ/IZZzthJZ25kxmiIXDt/c/5OcvKp6SKI= X-Google-Smtp-Source: AGHT+IHgKbmq8Pj52eQibO+zP1u+S3aN6rGz3G2a6ZvI15KPhhl/cKx/johkhSr7cDCPzHc7ae3lTw== X-Received: by 2002:a17:903:247:b0:215:44fe:163d with SMTP id d9443c01a7336-220bc262a14mr22021075ad.17.1739325426970; Tue, 11 Feb 2025 17:57:06 -0800 (PST) Received: from [192.168.255.10] ([43.132.141.20]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f8dc5de2csm47233645ad.161.2025.02.11.17.57.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 11 Feb 2025 17:57:06 -0800 (PST) Content-Type: multipart/alternative; boundary="------------5zV6XNeV5skG4KeNi0MZcD0M" Message-ID: <4f63d409-89c0-412b-8d69-371261f305ea@gmail.com> Date: Wed, 12 Feb 2025 09:57:01 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird 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 References: <20250206044346.3810242-1-riel@surriel.com> <20250206044346.3810242-5-riel@surriel.com> <281d6fd629a1965ee0065f99ac5d693bace9758b.camel@surriel.com> From: Vern Hao In-Reply-To: <281d6fd629a1965ee0065f99ac5d693bace9758b.camel@surriel.com> X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 48D1518000D X-Stat-Signature: fory1efweaaw6gw4h8474ej7nujxh4fx X-HE-Tag: 1739325428-938110 X-HE-Meta: U2FsdGVkX19cDecSWFKKfVV6NvQCYXouv9nSpA0bYDRghSmOai5KLjzZZ1muL2Mh+SHrUQ4bJi4yA7r3u870rOIaIC7doQ8LyrMgxZchPhrqo9dE3SzjqnZcZlGExbGPZCKBWaL1XlblrHpUDTK0lKtapXjqNDaHM2E1J0IjZUkYbyAp1X3VJhsvVzv43Gv8acgRwQ3hnCMPK1pAqmfPS7G4PTLGm+7tjEmZaSO2ZaN4XQ3CgM0AI0eufXct1WhIjdLZGFC6/ESWJqYGzrmbOUWPrPg5Ac7BOhwXSn00HL+G086tDOAMvOtw7tAdXjmuW4O8vcpya1qvmAfxqOCUI+MBaS0rflLIBBFKGUeP3gUwdIFVEaqptgZIG7c6HCfkKDZp2mS5N9wamjLP0uGVEual6215gI62EV17tiV0tdkutSnXsRmX40Gnql79m009pl0VZBxqMo0KIBlOq8ECBNgVfZQ5wfIEWhX1lceBK0cQaQXcOG46J+JPQG1WUrUSbQntSpO6+dM2qGjGjVYm0cv39bK7WCZXlhKfAB4rXdK3S3aXz9EB3IjqYZ1iofZKe9JT8dgS+acpesQJ3hJ0kIENIWFAEdt2C99L+bVQFJWeD1UhJ2DgrIAd1i+AT/Bt/3j0owtr+XqFQU1eRvRt5ZAn6mMxAM3g/cffWOkMIf4eky0L5/CVqT3TsmGhs5h93xJLK+PkgxSaUOiQmdpBZVvYAuoiLQHXvVsgcrtsrc8GYMYv6TMcvpf00om45sz83FN0Xsp2eNomv60dq3Q1E2/J4fmYPmEAJLd//4ZgaOyz+eaHvW5NPCw9ykgR4QqOqt0lI7Fmr1LgwHB7Tadg9Htlq6K5dD1g9a03xAuqPxdMLx9nBIKs0PWeEeZPprN6/JZ7Re6cIG+FEV1EMMEElu2pNWc4B8n+C8qaN9QzAU/dF0/XgR8a1aEpKZ4UaL9lrqO12oqq9Lb4/rw1HfQ o+oKKsCn w/Q18UFFMIn9UJ4wPubAXajoGkJ6jVElZybjUMbgN84sM5mnR2JMWvDppNkP5zCQ4mVB2azcFANDjs5O2o3OZss96EEBx0K7mP5MSRmNV+Ap8Vq3wbyoq7HNlvlkq0oC66bZ9XSitX0J95m1VVLDsc1/wdSk9Lz4lEQBkzxYVmutcV3Aawxgy3tOJbrJxGiXiFiqCLyCMyV45+XGe3xpifISHGG1D7eb/vQiz+6GSp3o3x/vq05R8C338lPxPgfzq6RZdkrAP1ECSAmBpZZ5j7ql20WQv3a50ajV0LCyR3q3nqlyxdf75u0aglprjaLDe1C+DVu5PX8P+FPKEZlDFIwhSMxd556XrjnnCBW3htJMFT7eDm+JCy2rHBGykkm7Hxg9A/Y2EtioetdxePTMch/NdXqfMRSuhlvaZvQatuLpjpIwI5nnyUj08HMMDRQdgJZ/bkJkHl33yJzkrM0VUBnPShtsBk5Qbt/SsrZfJzdWjOQ9EIAPnb1zT2vMeQUTBUvVyjY3M1fHkOa5jAaEd+Hj72fDvFCQaHoAWhJgaiHM1b6nLxumsiz9+uuLtKB1tTLzU7vjj+ssLWV7N/i2EqpnFfAdxArQBcSG+3I7gcNzXWemoBAsfakxf6g9Lk/xhgK/fgkl8BethvIdlCy/l/RWu9HWik+r4qF+YKEFLQoWbG5M+AnUIIWd4nVbvvKKUBrkM 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: This is a multi-part message in MIME format. --------------5zV6XNeV5skG4KeNi0MZcD0M Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 2025/2/11 00:48, Rik van Riel wrote: > 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? 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 = -               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 ? > > 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. > --------------5zV6XNeV5skG4KeNi0MZcD0M Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


On 2025/2/11 00:48, Rik van Riel wrote:
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?
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 =
-               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 ?


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.

--------------5zV6XNeV5skG4KeNi0MZcD0M--