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 43C4AE7719A for ; Sun, 12 Jan 2025 02:40:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7B5146B0089; Sat, 11 Jan 2025 21:40:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7649F6B0092; Sat, 11 Jan 2025 21:40:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 653C86B0093; Sat, 11 Jan 2025 21:40:24 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 483EA6B0089 for ; Sat, 11 Jan 2025 21:40:24 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id D0C2DA16E3 for ; Sun, 12 Jan 2025 02:40:23 +0000 (UTC) X-FDA: 82997245926.18.AAC2F4C Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) by imf30.hostedemail.com (Postfix) with ESMTP id 3D77180012 for ; Sun, 12 Jan 2025 02:40:22 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf30.hostedemail.com: domain of riel@shelob.surriel.com designates 96.67.55.147 as permitted sender) smtp.mailfrom=riel@shelob.surriel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736649622; h=from:from:sender: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=w1/j+N7AbDszmqKo5YYAlvuxKZI52OsziPdgQ4hPWu0=; b=u3RLej8MV+dMTc1mOprqW/fY1v1sDM6wX8X6VghT+uWkom17fEsqy8QpdeIpjh3gGUIhhe vNBYz4yWHdsBjGycExucmJs4KLt1lrwu5vEE8PRQqaX9Df8oDgmmT6qCR4VEzkRvpY3ROp P5hfccqAzH9jBFYZnH2bT040oiT/Y8U= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf30.hostedemail.com: domain of riel@shelob.surriel.com designates 96.67.55.147 as permitted sender) smtp.mailfrom=riel@shelob.surriel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736649622; a=rsa-sha256; cv=none; b=7eCyGGXUxZiQHgmQVCg5x1cL313JdaTrvS+B6C0lRmpCBouSamgG0YDpIz5p+psiKI7r1P IbTpJd2iWUu2dAqh4uAu1AraL9z+FVjpUANRsgHJ16PTu3QvQ4iV7rcVXfNUxkQsVJCe11 gnbxRSI9rWypsWgRkivB9qgED6f/Qa8= Received: from fangorn.home.surriel.com ([10.0.13.7]) by shelob.surriel.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.97.1) (envelope-from ) id 1tWnt4-000000000Xg-2nVa; Sat, 11 Jan 2025 21:39:38 -0500 Message-ID: <3ebac012ccc6da2ec700fa14e6193cbf5ca98951.camel@surriel.com> Subject: Re: [PATCH 12/12] x86/mm: only invalidate final translations with INVLPGB From: Rik van Riel To: Jann Horn Cc: x86@kernel.org, linux-kernel@vger.kernel.org, kernel-team@meta.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, hpa@zytor.com, akpm@linux-foundation.org, nadav.amit@gmail.com, zhengqi.arch@bytedance.com, linux-mm@kvack.org Date: Sat, 11 Jan 2025 21:39:38 -0500 In-Reply-To: References: <20241230175550.4046587-1-riel@surriel.com> <20241230175550.4046587-13-riel@surriel.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.54.1 (3.54.1-1.fc41) MIME-Version: 1.0 X-Rspamd-Queue-Id: 3D77180012 X-Rspamd-Server: rspam12 X-Stat-Signature: zgd78daf41tyw1zhkrocsqgpok4dooe4 X-Rspam-User: X-HE-Tag: 1736649622-575939 X-HE-Meta: U2FsdGVkX19M4ie8vCIGVm/B314mSIefQ+PXcYwOSuctGhD5kn19951j2PODrcXCmMKM+pyXlFG31I4bWGIztf5Bw6ine6KJdZ+xmzPI74aCALzeJPNU94jzcE8Z6Zxp2Z+iYJBbR+UpsYCwEhANIZArgEOuJ9+zYAlQpnAQF49BQ88iXdUWbfKIfT8SzB5CG+ryYFORwQLHb7RpfkXBq5l0e6iXc7+fEiFoEPLKQj/QZ5KlXl4dqkaULjvf5rpKuBdpvCh3UMJzT+E7YcN1/XWwfB/XU2gWBemGUhFzMMfh2+F55HLu5M7WDHOwCq2mr4L/LXIEocJvX54NOnPODqLKaufuV30WTED0XcAIiwVzmIRd8oZExQJzXQMc7eV9rMt3T/dwltQjtDDh6jEdK9w31RwBkusleC0Jthw3kS6wbKpfqBYxk46Uu9fmF9bWumLqRmL9M7s1K/by4/96WTYKPu/Db49M8pMS/jdCXzBQMpbk0jLZy6qPRMg/+KkQn16QoeAozzqzhBh62d0RjGFlUxI3BYqUdf48pdj6lRMsDDj+f3hqzJFhs98XxW7KNjcG6KRxvyn4iiIkPVQxEbvOa//KcRi4CvQ8tR6NQRU99751mMh1d8DQFkfRp0l10bpo0RA0TCP6o/ItqVNUXRmybXNOg/4u7sD0KVMEHhoClUjNRipR1jDdqSBwyqrt9HYJ0auiht91Ohmnsqd216n2km0ibUDKIEdfyv5Z4tjUe28XOc3/anRkcKTz1oKVymTYI1Jhe8nZE8gzCRk2k+JSShMf7rT8CPrarOH6Dht5eQpJQ6gOMufrFDXg/MwPBrWv2PB1HlJbr3GxqnD61kxW0qIKgLtKHqEB5zdLKA0PLgqxz3HklUhQTqOP/PlUGSEE9VB1R1T64AU4L1cApdg12ca8sZSIfEeIAsqUvjojREwvVHyOICLG6WCnRltHaLSDDSUh1SVKqVGeIVO VKZNdH9i rW8qpgr/v55SpWU4TDkqm3+NOaMrOtOyw+od1MM6JWqDAuxPLGg9gk+kS0gMp+PvVfCCWyrhW05sL2BpOg0RnaW4Wv7rlm8X+ePUN+RPohgdONCGd3ErumIw8sAj7cyOtwIcpr4mXgrzCcaw9xeIla5DFfsI1uZyoFFoTj643wDuCtO9TgqFmCrH+jeqfW9QPrH/AJl+/GYoE28687IY6jcNJluG+/Vo/A+LOpKhURXvLGJ51f3NuDSNqAd4gwTisIDHoLFqfLecfZWdYiQD9T9fGMZnUK7AwMOqS10v1d2wwPC1xCX9dzJVo+3ca7Fexjzetyctf1JZnWnSNZMk14w+mhMkOoRl9JezCELbnC7BsW85xuk9pu8w760zYZXcEIAKxGxjMReh/FIJ7/d+H502midsIB8QaNPUcojfNO2lJ4tV6DSNXLo11X/1mDYD/JnZQ 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: On Fri, 2025-01-03 at 19:40 +0100, Jann Horn wrote: > On Mon, Dec 30, 2024 at 6:53=E2=80=AFPM Rik van Riel > wrote: > >=20 > > +++ b/arch/x86/include/asm/invlpgb.h > > @@ -51,7 +51,7 @@ static inline void invlpgb_flush_user(unsigned > > long pcid, > > =C2=A0static inline void invlpgb_flush_user_nr(unsigned long pcid, > > unsigned long addr, > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 int nr, bool pmd_stride) > > =C2=A0{ > > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __invlpgb(0, pcid, addr, nr - 1, = pmd_stride, INVLPGB_PCID | > > INVLPGB_VA); > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 __invlpgb(0, pcid, addr, nr - 1, = pmd_stride, INVLPGB_PCID | > > INVLPGB_VA | INVLPGB_FINAL_ONLY); > > =C2=A0} >=20 > Please note this final-only behavior in a comment above the function > and/or rename the function to make this clear. >=20 > I think this currently interacts badly with pmdp_collapse_flush(), > which is used by retract_page_tables(). pmdp_collapse_flush() removes I've added a freed_tables argument to invlpgb_flush_user_nr_nosync > a PMD entry pointing to a page table with pmdp_huge_get_and_clear(), > then calls flush_tlb_range(), which on x86 calls flush_tlb_mm_range() > with the "freed_tables" parameter set to false. But that's really a > preexisting bug, not something introduced by your series. I've sent a > patch for that, see > < > https://lore.kernel.org/r/20250103-x86-collapse-flush-fix-v1-1-3c521856cf= a6@google.com > >. >=20 With your change, I believe the next version of my patch series should handle this case correctly, too. --=20 All Rights Reversed.