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 A68D6C02194 for ; Fri, 7 Feb 2025 14:28:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E1CBF280004; Fri, 7 Feb 2025 09:28:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DCC87280001; Fri, 7 Feb 2025 09:28:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CBB47280004; Fri, 7 Feb 2025 09:28:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id AB0AB280001 for ; Fri, 7 Feb 2025 09:28:46 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2EB464C5BA for ; Fri, 7 Feb 2025 14:28:46 +0000 (UTC) X-FDA: 83093379852.24.0AF7D78 Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by imf02.hostedemail.com (Postfix) with ESMTP id 2712380006 for ; Fri, 7 Feb 2025 14:28:43 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=nphvMa1A; spf=pass (imf02.hostedemail.com: domain of jackmanb@google.com designates 209.85.160.177 as permitted sender) smtp.mailfrom=jackmanb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738938524; a=rsa-sha256; cv=none; b=wQPqirXsqQdrrOPKvsktNfqpC7ibts2k52SJ95LNX7dzrWzMW/ibwwcldyxhyToMvusvGz R/U4ArtUsdfbs0gZXqtP9I6wUlaGTFhW56N6xMv1//NiqlN2JJgluym9iU/s1cY3Q+/FpJ 2aw1wyvdtQU4F16lGhvW+dAyZYv2UiM= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=nphvMa1A; spf=pass (imf02.hostedemail.com: domain of jackmanb@google.com designates 209.85.160.177 as permitted sender) smtp.mailfrom=jackmanb@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=1738938524; 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=1rexS5WS3OHSZZeEo18X8h4yuoDBRbHA45XPuN3amY8=; b=4mhb5gjIi9nHCc7TdCBAZBHU5O9OSv63w+Y1gCQXh6aix9WwQ3rLbbRxmlnBig13lAZT9s pkqnnInJ65U6kFSJ354RIAUbXo1qICG/QSvYSClnPOHE8X5mv+AJOsDBr+Jl4zsSBAmyQY frtFv1kux+lfsXDU8nQnWZ226W+8bts= Received: by mail-qt1-f177.google.com with SMTP id d75a77b69052e-4678c9310afso252571cf.1 for ; Fri, 07 Feb 2025 06:28:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1738938523; x=1739543323; 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=1rexS5WS3OHSZZeEo18X8h4yuoDBRbHA45XPuN3amY8=; b=nphvMa1Aol9fS2MX3sFdWlTCJ1U1e7jIxJfz5YzRZUp9jGnehaq74sColkRTrDfSCj SBOijUcZpsWYKIHgq++vTZzW+iezSCpWqrrBKa61oH4VB7gdy9NQKAPZh6Wp1tIr3UCu VephBKV+zBDdPV8jmrWEpHeWLZp6hbELabepFdEDOKe2ROocvaE2Doq5apNHBsYqQYhG 8/4mmuGEPRLBWoKaoFHD21L/NSLRMyHHPZvp9t2FPYcSb7yhT1jIpyI63rUr7UrDnRAd 1YLEqEKtluSgp072w0gvqFd1iNTslltQeJVdAeajhe6cX6bYio69y/cwvJ9apptOzH9b q+WA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738938523; x=1739543323; 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=1rexS5WS3OHSZZeEo18X8h4yuoDBRbHA45XPuN3amY8=; b=BYA7SK4xrzyEAF9KCIG5mwWfkVQuGou5SsyOyZVnK7PijqkFS/v7SKxhaPmKwoiw+4 1NTUYFHdwiScViBzhadaI0YmdL6XuoO2FwjBy/PKeNC2w44GmwZg6oIN7gqlMql1V9/8 m7Vjw+JYkmfpnM1J9pP7yJsprjjGFf3z0wyNAsy6DUlkutCN0JG1MVs6ukm7VvwWu+Vm V+6af8OspyCv1V+wd+7paG6ymbNmA42+WkroZfwNWjBO//8Ln7CorRznl4tPvBpAFYso WHkKTDoG29gKkcr45JQ7S3kBaSCkB2oi5dK53QsBJdaYhDlYDhbkJHGQAQV9SyaS679g a9YA== X-Forwarded-Encrypted: i=1; AJvYcCWbvI9nUyJI303aGkkwcnSx2judVcThpRT0+lFN7FjVm/H9qzODwrxIVAC1TkLwl94TGT7AHrKqXA==@kvack.org X-Gm-Message-State: AOJu0YwFwPUoaUbHrjLnZkxL82AR5tn9gmDwZsVAqtuYdqr7ZDiFxXQe fSFnnpZsBtrJ1FPACK2sk+dznh/Y5sN1pIc2LDjBiH9EFFmcwQSj9kx6LU0SI045eXY8Jbw+4we dFCBoAMNsFv7GHPcd1VpK/wGoPnjzfbIzBUK9 X-Gm-Gg: ASbGnctXbCTwbI82BupOl93xq5EY9PIitjxLLfS2dVdJaxoHYT8H5kw0FpwQgXEys/l D1eztPxRdyc3MK2slSE5nWNr9FZJTrUEQURL4wJYfFPRjRmjMkBvOaaJm3zJLvav5HJFJiAUOvt CMYjYE0ClNzkVMUCal1q85fz+0bfA= X-Google-Smtp-Source: AGHT+IFIy/IxSZaxwoz/qDlgIY4R9UtPhyTgiGBPb3DyRDFkqE2ug+PU7LD+LVqbQubD7czlGvLtOu9vozxN4sdeTOU= X-Received: by 2002:ac8:5a15:0:b0:466:90dd:19f3 with SMTP id d75a77b69052e-47169c9b938mr2645491cf.7.1738938523070; Fri, 07 Feb 2025 06:28:43 -0800 (PST) MIME-Version: 1.0 References: <20250206044346.3810242-1-riel@surriel.com> <20250206044346.3810242-2-riel@surriel.com> In-Reply-To: <20250206044346.3810242-2-riel@surriel.com> From: Brendan Jackman Date: Fri, 7 Feb 2025 15:28:31 +0100 X-Gm-Features: AWEUYZnhjPFckHJVpbtURfI6azwiA7ZfQgaxMPfiq7TlWaGFfSzT8QTgqpVPz3I Message-ID: Subject: Re: [PATCH v9 01/12] x86/mm: make MMU_GATHER_RCU_TABLE_FREE unconditional 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: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 2712380006 X-Stat-Signature: uwe1hr771fokafzxuirzgtt35k8fnp7w X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1738938523-348299 X-HE-Meta: U2FsdGVkX19XwbbODyrQ1DdM6f6/armDHRuqyaYy/cMBHz2r55IJZrwe5dJcteBB4tfPHyiSVzm2FEvG2S+eOkuPXsoTAceIuR6eGRiWMJHt5CUfyM8WPEFwKOKrfCeHBpru7Sj3ht9TyeF7QSCvuGOHpG5kl/RBMiK7m+KFq152MbW4OmdrdTdLcoS2/Fph81TaI0WilcOJTDVK0SS0S7mJZr9FHYstnO9VbEA9nVH6i2A97fXoS5nTiIvv5BIogfBL1JgcDeY2Vvkuul33cGBePitl6l2ybcN+8PwtN9txE0/78cFPZG+KA0q4KlusgYFzeeOyevrL8NrdFuaEQWqHxRadrLn3M2tNQVi/91G7b/euWXnFR5sFI3LfLUKa75naK3bqIVKlKnGztGjFFI8cM9k+FxeOIs4gIYgTst8keyO5lc8vknlGckFaIbCvhAa0kNkQhW8/ywtafRv47lPgNnG9OIf95LYYSL0xiWSdOTVWCHYm7HaidKZh6+XyfNkGvibfoo/OMg3puLnRYMgaOVKgFXetXd6axVXKmDmuiwEaz3DCTxC6tcB9mVAjWwbAqS3Pyvy7DOByHI4vovc1uSQHuO/w/3PrFWo/t2HiDthWDu3n+LeXbcIwFhLXhdoVfFMgvxznRkVvkJRV9355ZJyNb8TjogLDlx6b76tLc3oP7jIyGegWsMGFB+RQH27ptpOlicDetm9Vs2G3+jKqacX6IGzlbiSFtMnr/oIpzStqHTAUAQRPgTUTp4c4LJU5/RGO9ilZZwsx4beq9dbstUZpqkYu9ju4UU4KdakSh0qgwkDq/LtUEf6z6zTKU7WHrGBmWaAB03+p3kqp89odMjcqtyalCL98OPVet0mBuXWcoDp2TxSlupfNVQwF852ClFYneaoTipuSTVTFqGZLIs5sfoM3buEht45+udrcslS2A600gTYVrc3i0hhOLtM8QO+K2p5s+eQ9oln H/gtm+T/ FQXC49vvxPhX19oiaKwkeNMZsB6KuCjQ0NaIvFf+gNOyJk716YzdHAtfvUpTeIPenqtXo2alTlClT5NtKl5rg183NnYR2iWu1zucjOnTeDoU+3wEDGZUSSo/YzofqNSQc/b7vPf5qdDbGPSCW1g92aT/wIncOSK4D2vxLzKP4C9JjdZS+77m1LrhSdGIjjEFzG6ABVQmO8seestZUYLgpI/UbaxhLXQCF6i+eI2YetqWd+DIBjYh68Nr53OhnhYArkCnJU610FBwcnJiYZZK40LCiMbWhRB9zv1vq4hhyP+dR0kJ7YmdX5U10ggUX4toM4X9l8YNaBnm5yxaiptE6NCqjrrA9Xln5qpcW07MNM/sDRN5/RTASNkOxxQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000009, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Rik, On Thu, 6 Feb 2025 at 05:45, Rik van Riel wrote: > This is done because some paravirt TLB flush implementations > handle the TLB flush in the hypervisor, and will do the flush > even when the target CPU has interrupts disabled. > > Always handle page table freeing with MMU_GATHER_RCU_TABLE_FREE. > Using RCU synchronization between page table freeing and get_user_pages_fast() > allows bare metal to also do TLB flushing while interrupts are disabled. > > Various places in the mm do still block IRQs or disable preemption > as an implicit way to block RCU frees. > > That makes it safe to use INVLPGB on AMD CPUs. It would be nice to update the CONFIG_MMU_GATHER_RCU_TABLE_FREE comment in mm/mmu_gather.c to mention INVLPG alongside "Architectures that do not have this (PPC)" - and while that's being updated it would also be useful to note down the paravirt thing you explained above, IMO it's pretty helpful to have more examples of the concrete usecases for this logic.