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 64CAFE77188 for ; Fri, 3 Jan 2025 18:41:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CBBBA6B0089; Fri, 3 Jan 2025 13:41:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C6B9D6B008C; Fri, 3 Jan 2025 13:41:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B32E76B0092; Fri, 3 Jan 2025 13:41:19 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 962716B0089 for ; Fri, 3 Jan 2025 13:41:19 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 36F15AF418 for ; Fri, 3 Jan 2025 18:41:19 +0000 (UTC) X-FDA: 82967008278.11.1D85F48 Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) by imf30.hostedemail.com (Postfix) with ESMTP id 4684C80007 for ; Fri, 3 Jan 2025 18:41:17 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=rexpxkS3; spf=pass (imf30.hostedemail.com: domain of jannh@google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=jannh@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1735929677; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=2YDlfxEzH1L9utu92FEyX4MrOIQsvQ6jxX+d/yCH4Ec=; b=Z6nrZkY/Y7KAP0pAz3yhD+xVZcRkAvgY0AgMg1HPaeVnf9gSMNr8LxpUziJd2pz+UBCwfP s8WtH0/mm7yD6lW5t4zQm053GADBghz8SXoeNF7+Ywc908YbCCOQAdKvp8rlPROj+R/otB FdDjbEOmHf0PTQGXzTc63hvtm+jSE0U= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1735929677; a=rsa-sha256; cv=none; b=pRom7Vns+tmJpt/30s2cHW4w8cd8+7vXOk7bSZCMHXe4JkOmGOiYQHtqxYkkPneMEdHsTs kwegVJF8cIwfxcQCPGACVP0ZDZ6lxt474ikA81HnoDofJfZqkBpSd8rBQwuqfm9LWjTQWr FN8fawxrcQVXxxZ0BkwKcHxbpMkCico= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=rexpxkS3; spf=pass (imf30.hostedemail.com: domain of jannh@google.com designates 209.85.208.52 as permitted sender) smtp.mailfrom=jannh@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ed1-f52.google.com with SMTP id 4fb4d7f45d1cf-5d3cfdc7e4fso571a12.0 for ; Fri, 03 Jan 2025 10:41:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1735929676; x=1736534476; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=2YDlfxEzH1L9utu92FEyX4MrOIQsvQ6jxX+d/yCH4Ec=; b=rexpxkS3J3n+USgjz46VcCopEHMcLbWZL3P4qbFjX3EhM/8u4ZABlpWRisx8VtzhD8 /jr3qV24Beb/uAWgGgxdKMfqpMyi5HSaF8ISN+FY/Yu8tFiLJzS1hnxNu0dlSvfEq5o9 mOFSqw+djv7HSmOv1z4Y8DBv5+KSPHRL8NPzN8b/8HUHuJnf2MRtMtuvTp5u8KKXJuqD g111qhyqlKD20dpGh9aPceDK2QGN9262QA/YWWt7JK9zJH8Y+H1cYDinskAHtxba8eN3 4IqrdQ4HifWgiS6fSUfCj+tLJmjC6cQjVoQ+E0KEmHXK7lrit0vfQkwkzefd9X8QVWBZ DDAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735929676; x=1736534476; h=content-transfer-encoding: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=2YDlfxEzH1L9utu92FEyX4MrOIQsvQ6jxX+d/yCH4Ec=; b=QHAnq0F6lxgRR1mGzFcKiPPueo97Owq6F49YmM5mCyRF/jE4Idl6dWUbzxNIvB34OI 7Hj9L0hBZdDuIBiHoDKwrivmCZKgOB0bKsRlua2sAcvIxE9c2iq2Avj34rXVsyX4Zzwh nt5gXlxONUcTMZV4L3uOVdNza8QOFvgqOErRy1pHaH1oZCZNrYP2jRqfputVCjY8ASC4 txuOYxdC4pOPWUSX6jHiCdc5wrAsUs0zWlG32ANSEOsFtIxig+z78lss0pfOv6of8L/0 bIM8DL06zc+4JyO10G3WR4z3nJR0pZq3Pn3UHoyg3Q8dwIR+59gQ8NkG8RokBIEBtAZv sa7g== X-Forwarded-Encrypted: i=1; AJvYcCWUsK0eMCY9mcTUPPSy7lDoJzJv4LY9I4vZ4q/UEBs6tZZHdE8Y4vpjjs/KnNOG9ifImb5CTOT8CA==@kvack.org X-Gm-Message-State: AOJu0YzkxMMcQzkVHN7wkA6u3pNTPOX8gnikPoVNZfI2kNpqS3658aDd MemppvWMkUiAUS3a+cEZe7hORzbqGdcNgj9z82v8QHvwIxjPABKTNmw1XSS/3CrDLRspzL7N3hM RZWXCK2QkWz7V4ciqk4AqNPIfFK4VY4es6IGE X-Gm-Gg: ASbGncvuGNU4T3cl6dW/UiJpaIGC6ehyElI0zZE9STL6DsPW0ipmmO0j/eMl4cpJQhD 6tjzC2f1dd5zdYKUjEipJgLvw6KR+aF6Ci9/gmVzOETrHFl4Sw0FtUec+wbYaSKZ2WA== X-Google-Smtp-Source: AGHT+IEs/sdj4tMWxbM89valdPK+IbJvmzHWhsBokqqU4tN7+eVg/1fAGHOUH4XcBpSQmNUg3a/M0Y7d5VYxVVWcogE= X-Received: by 2002:a50:931e:0:b0:5d0:d7ca:7bf4 with SMTP id 4fb4d7f45d1cf-5d929d2c982mr574a12.0.1735929674971; Fri, 03 Jan 2025 10:41:14 -0800 (PST) MIME-Version: 1.0 References: <20241230175550.4046587-1-riel@surriel.com> <20241230175550.4046587-13-riel@surriel.com> In-Reply-To: <20241230175550.4046587-13-riel@surriel.com> From: Jann Horn Date: Fri, 3 Jan 2025 19:40:39 +0100 X-Gm-Features: AbW1kvb3ralK-5C2DZbRaSH27G2ACobrLOwdSKVrVhQaJQHhffU-OusbyNEzN9Q Message-ID: Subject: Re: [PATCH 12/12] x86/mm: only invalidate final translations with INVLPGB To: Rik van Riel 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 4684C80007 X-Stat-Signature: 6jnsp948kc6hyzqkayosne4ooewsu59f X-Rspam-User: X-HE-Tag: 1735929677-837300 X-HE-Meta: U2FsdGVkX1+uhTd/nqwtyvyTy1J0rQJWki7hfaRbvnRpzllN7UTSz+tczHFeF1qSQDUm37lD9hGdS3H715ob59r2FMI4c/fQbwchNKkdla3vZVIhTA3TyfVbjf7PFdPfQEGMgHCjeceyrLlaCxvd716mZnF+pKohI1bJwYBVVFnkHxXknX0deqxS4hsQ4k4zr+45VZsvbjAfVSb3AJ6HuLFpfcIze3zBLktd+RxsjHD4KyyZCoUPIE6tU75lXcFdP+o8jsMwElDG52/ka4bgKJkeRWIS3/O2n/534Z2k+ghaB0ds5zPqAwaAeS5wLOFKlVIM1MW86WQLTgl+J073zAaTX/UbPXS5RnGJ37Jqq8hYQ1mNQVcVFV6cZk+KiOR32OhPO8Hkxi78KDKo2zMpg4WJYHQJCLZoOUdV+L0jvzIa+tCvkLSQYCNPQsL4l/rt6HqUXzJ0hPw4luQ9RlQmr6f4mv3HUtNlY2/o7jj4lYq4TaB5ZpOBAjiwsTlG06SsSRZJmDHk/RKNm9pujdbIcSXHycfMBLLrBnpt6DWPacea94mGRyB6qMiBt7lqCN9SPKIRz294nJJQkX42Ok3+pJ28klv83BQngcTwwwYxFyqIsL/GtDOEbnziyr/DzUbjZEBkdPr6hL6jt+eiWdj9h3jK8u5kVwtmnQ2XDv460rnyh8S2HoOYFCKNac2b7Ui5Slj/CUGwTRkdEdip6FapIbAm5r2U2kGMSflxYdH8ZTmyV7KFiURLlTeSz9CyA3+vRe4ZFdDdwPflczLTWs57lz1kXju8vdTGnmSaL+KhN9+qVfQLc8BUivMlyH6lK8T2acaZIIQN9yiePfQcAxkqDVlSOum/bsJbJC2H94gq7r7aMRocY+m8uOsba88yffQiGyy+gn8POhTIVGMGRRB7g7M0FsK3lr+a54iAvQdzxL4yJ5n4eK6EMoB4Zg8mUFCBE6RPNyf2qchQqOPckDN qLqApwm2 9E9LLFcGwdxfXBI4qmqhUJ3toVej2pt4Cstn5hLEbYaEdRZ3HIuTovar2mSoijE+Cr+g8dZ/xIbfXqx4ppAFBXVxYOPhi4KOEUBQMqUTTfnRz/7My4xF+YhM0KxsQyJ77VSVWnoKg5qwg52HY6hAnYT/9qN8MAXwV5hAbB/qI297J4ePmV0oshLDEWWUHPGkSSg0JQx6bJsXnUbN8dW1JdsLQf26LpniSe2Ze7MDIS0+07PT8l7x51C6DvmvrX0kjEI3tCJRST+KfogfRqM+Yn1GgSiv+SHNeGRbKpdXNcmqPsKmbYJDyfiLfnwpkJWGUELZvrR6eGNKI33fQPLBpV8MRG5+j4KM1lMNjwXB7Mhl+ixU5OIfssQw2fw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000132, 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 Mon, Dec 30, 2024 at 6:53=E2=80=AFPM Rik van Riel wro= te: > Use the INVLPGB_FINAL_ONLY flag when invalidating mappings with INVPLGB. > This way only leaf mappings get removed from the TLB, leaving intermediat= e > translations cached. > > On the (rare) occasions where we free page tables we do a full flush, > ensuring intermediate translations get flushed from the TLB. > > Signed-off-by: Rik van Riel > --- > arch/x86/include/asm/invlpgb.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/include/asm/invlpgb.h b/arch/x86/include/asm/invlpg= b.h > index 862775897a54..2669ebfffe81 100644 > --- a/arch/x86/include/asm/invlpgb.h > +++ b/arch/x86/include/asm/invlpgb.h > @@ -51,7 +51,7 @@ static inline void invlpgb_flush_user(unsigned long pci= d, > static inline void invlpgb_flush_user_nr(unsigned long pcid, unsigned lo= ng addr, > int nr, bool pmd_stride) > { > - __invlpgb(0, pcid, addr, nr - 1, pmd_stride, INVLPGB_PCID | INVLP= GB_VA); > + __invlpgb(0, pcid, addr, nr - 1, pmd_stride, INVLPGB_PCID | INVLP= GB_VA | INVLPGB_FINAL_ONLY); > } Please note this final-only behavior in a comment above the function and/or rename the function to make this clear. I think this currently interacts badly with pmdp_collapse_flush(), which is used by retract_page_tables(). pmdp_collapse_flush() removes 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 .