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 00C32C282CD for ; Mon, 3 Mar 2025 13:39:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8862B280001; Mon, 3 Mar 2025 08:39:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 836F96B0085; Mon, 3 Mar 2025 08:39:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6FDEE280001; Mon, 3 Mar 2025 08:39:26 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 52F036B0083 for ; Mon, 3 Mar 2025 08:39:26 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9867C80978 for ; Mon, 3 Mar 2025 13:39:25 +0000 (UTC) X-FDA: 83180346690.30.228B8EE Received: from smtp-out3.simply.com (smtp-out3.simply.com [94.231.106.210]) by imf22.hostedemail.com (Postfix) with ESMTP id A909DC0007 for ; Mon, 3 Mar 2025 13:39:23 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gaisler.com header.s=unoeuro header.b=RFhGDprU; spf=pass (imf22.hostedemail.com: domain of andreas@gaisler.com designates 94.231.106.210 as permitted sender) smtp.mailfrom=andreas@gaisler.com; dmarc=pass (policy=none) header.from=gaisler.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741009163; 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=/93h/VFBMXUYlK5HJY61WVbB5bIOZygI64XeIBe95nE=; b=8ozmr8tKlFh/pIKWYxc/kghtu9v8X7xP8NOKizk4CALJD54/8p48d4Fh9tHD4R5oCigBcS wJa5j1WV+8TVINkJ3CMGVFEJdbAKKblfIHgxuxhU1mGvFpe58P8Kl3jpekqdL9ZZ3iRna/ 6CFkCJL5KbCKOpkpzlXlBillAbNIM1w= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gaisler.com header.s=unoeuro header.b=RFhGDprU; spf=pass (imf22.hostedemail.com: domain of andreas@gaisler.com designates 94.231.106.210 as permitted sender) smtp.mailfrom=andreas@gaisler.com; dmarc=pass (policy=none) header.from=gaisler.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741009163; a=rsa-sha256; cv=none; b=0lUcAZiDbn7RBSpZZxQpSpylXKLxaxfu3CGfxIgxeUd9zGEd1rdvs5soablDgS4DCTEi+/ /m7jPORzPPwLUbYhfa13syhtrqpCrYJi7rwruSALSqzeIcF56OO2kjB5/PQtxQiGvQhpEa L0UEqP8WF31Nwn+BO77phPG+vv1TiXo= Received: from localhost (localhost [127.0.0.1]) by smtp.simply.com (Simply.com) with ESMTP id 4Z60KQ0fWkz1FbZy; Mon, 3 Mar 2025 14:39:22 +0100 (CET) Received: from [10.10.15.10] (h-98-128-223-123.NA.cust.bahnhof.se [98.128.223.123]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) by smtp.simply.com (Simply.com) with ESMTPSA id 4Z60KP1Hk1z1DDhC; Mon, 3 Mar 2025 14:39:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=unoeuro; t=1741009161; bh=/93h/VFBMXUYlK5HJY61WVbB5bIOZygI64XeIBe95nE=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=RFhGDprUngIX8B/WksXu5qCl6jvG6Ue2AZeNLU2uztLVehbOrf4Be7sdpXV7apQAV L5G/0zYDuoS1MZLUHtd9Cg4ltQmBCZYtoSFItZZTzSCMQlto/+shrAINuGubsl6a9Z zhVJuX2/VxHBfRJjuhyVJhRfswfIwjfgKGq1o31k= Message-ID: Date: Mon, 3 Mar 2025 14:39:20 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1 2/4] sparc/mm: Disable preemption in lazy mmu mode To: Ryan Roberts , Andrew Morton , "David S. Miller" , Juergen Gross , Boris Ostrovsky , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , "Matthew Wilcox (Oracle)" , Catalin Marinas Cc: linux-mm@kvack.org, sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org References: <20250302145555.3236789-1-ryan.roberts@arm.com> <20250302145555.3236789-3-ryan.roberts@arm.com> Content-Language: en-US From: Andreas Larsson In-Reply-To: <20250302145555.3236789-3-ryan.roberts@arm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Stat-Signature: 9mmw73jbkiaft3rn38dshzpjaxz5xjqu X-Rspamd-Queue-Id: A909DC0007 X-Rspamd-Server: rspam06 X-Rspam-User: X-HE-Tag: 1741009163-188850 X-HE-Meta: U2FsdGVkX1+nW8FQi6D2GajJwl2toGNM66mfbPZ9RTgphkBkLPP7XlO9ORxOoyu7GE8lImX/RMMJ+jl0OGGwkwRQ65TvShJpR2wLKkiVREzBLFUI+IBPsy/uJ2B3ZjcZxNWgOSp1WhSqEKN608X1LyGRQjI2OCIaOseeEcvdqTRhBEXOhxAu6yMMFg00cSuLbcYHb/YVw6OEQX6tANOcPj5uauRRGYtUa+bR6rwJyKYLarMLFMjdbfQ2OKSAaSo2jWJKbwiuBlRes59D5pFf8M/B1ADPpCoy+ScziXJG0E2Dlg32Tf+P/YrDWHIRUpsUcbUAAaiuXFYIFvmjoCQ8svbP+CESP2ElweX2YyWY6UhGg3rm2X5VIytDJoIWFkcpFxWTqtQMHlTccq1hpxtMRYtsMwEUZcBe4hsGwCrx5RVUYmhHbewO6UolvhyW9nYQxdhrMIBRezWE6LuG66KzFBXyEk0GnHqGwHHVg7bmNV/AHVEnDfmdTwCZ/YVCzWOH0MEiHIl986wwuBbkrgjHWfW+kqSkEJDVa2Ru7bgpBarGVsFIFIrYLslJh35rnLTNXbDEOSgj76ZCecgs35cqrEn2YsBWflxNSXqUobGueGz5HFMMKuVxNZ7HZNEqDnmyqHeQnkqcAmsd0jjBFIEkxdMHjsHQv2vZYLqNQfg55SlKPN0Jzm8V533DyRoT4X+paZk+cGNrAjmNjvGn9NiBucZSswBGtuBKQrgwoSQrntGOVdkLZXl4+GDQWWO6ezGkfJd8/H3UdkmfbR/tPlmL7TO3oI71oObNpmQvkPUY4snt1nw6i+HXx3SDjai84M6MT2R2M04tYvP45sCfxxDehzjO/+rd1E+LjklGk0coBfIk8BklsBYERaf/6Zc69W8gZiZafk2X/BeJJb2xoYulDJqmxKlOn4Zp3OGoo2XkNuKDbxLECjlU+onc5/uxrLoGP4CFrh6Mpg4y1Yn8UHr E3F/R+uZ 5v4S4NfZpAT4ZKBsMGZbQtDbBIgucCuhxZhCWhuebEmUjR77pKtOHsanzbO4n9WEHYgn+G4xZpaj47uq3jwdCv6IGrMUkojZRf3qI3v6GPSodi5/1/IH8rXGdAzIv/ruKHjXyUUw/WBo71E2I/6xgMxXT986kT7+US8HA8vYsCYmsTlooqdZcpBMr1rw065FEN/d0YoQflSnhtyk+XOjzXXIErA4JICVfvTSj+YPFprLN7zvb1lM19RVCddXWSPJBHnADIxmhJ0WPAzRPX6lFuPQp7N4y0642i7xfxBGsjrW8a0UCcdPD3h41Dzs9zwmNkbBE68hU53A6vCX6B4Vb0q7sFQwBZ0JtceeEB4KIW4d4uUMqh43GUK1meBw0C9o9GCCOmab4rSZ7iDn8UQEX5PdZIPWf+C8/Z4q0 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 2025-03-02 15:55, Ryan Roberts wrote: > Since commit 38e0edb15bd0 ("mm/apply_to_range: call pte function with > lazy updates") it's been possible for arch_[enter|leave]_lazy_mmu_mode() > to be called without holding a page table lock (for the kernel mappings > case), and therefore it is possible that preemption may occur while in > the lazy mmu mode. The Sparc lazy mmu implementation is not robust to > preemption since it stores the lazy mode state in a per-cpu structure > and does not attempt to manage that state on task switch. > > Powerpc had the same issue and fixed it by explicitly disabling > preemption in arch_enter_lazy_mmu_mode() and re-enabling in > arch_leave_lazy_mmu_mode(). See commit b9ef323ea168 ("powerpc/64s: > Disable preemption in hash lazy mmu mode"). > > Given Sparc's lazy mmu mode is based on powerpc's, let's fix it in the > same way here. > > Fixes: 38e0edb15bd0 ("mm/apply_to_range: call pte function with lazy updates") > Signed-off-by: Ryan Roberts > --- > arch/sparc/mm/tlb.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/arch/sparc/mm/tlb.c b/arch/sparc/mm/tlb.c > index 8648a50afe88..a35ddcca5e76 100644 > --- a/arch/sparc/mm/tlb.c > +++ b/arch/sparc/mm/tlb.c > @@ -52,8 +52,10 @@ void flush_tlb_pending(void) > > void arch_enter_lazy_mmu_mode(void) > { > - struct tlb_batch *tb = this_cpu_ptr(&tlb_batch); > + struct tlb_batch *tb; > > + preempt_disable(); > + tb = this_cpu_ptr(&tlb_batch); > tb->active = 1; > } > > @@ -64,6 +66,7 @@ void arch_leave_lazy_mmu_mode(void) > if (tb->tlb_nr) > flush_tlb_pending(); > tb->active = 0; > + preempt_enable(); > } > > static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr, Acked-by: Andreas Larsson Thanks, Andreas