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 8F2D3C47422 for ; Mon, 29 Jan 2024 08:28:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F06D66B0081; Mon, 29 Jan 2024 03:28:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EB6C66B0082; Mon, 29 Jan 2024 03:28:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D30A76B0083; Mon, 29 Jan 2024 03:28:45 -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 C04C96B0081 for ; Mon, 29 Jan 2024 03:28:45 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 882CE1205A9 for ; Mon, 29 Jan 2024 08:28:45 +0000 (UTC) X-FDA: 81731672610.24.91B96CC Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) by imf10.hostedemail.com (Postfix) with ESMTP id A8538C000D for ; Mon, 29 Jan 2024 08:28:43 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=FitQOREv; dmarc=none; spf=pass (imf10.hostedemail.com: domain of alexghiti@rivosinc.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=alexghiti@rivosinc.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706516923; 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=hd11WU3DwyoDiQmIHC9dAoBbMr9OMPEBjtClwqo3z+E=; b=sAw+oukSOx4YwUKKH8+AZzlxpMAnfvMty85kzzpnDkwcnoM6yZTWQQGQEWNo12A6BpHTtl 48VJS8aUr41YRlIFDn8GkVDSQP0GyMZp901EfSkUD4vVzWC+CZAOdJ59tUO555lYOBoTHE yN1icpmDxrHmnxbiG+fR0STChHEvvJI= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=FitQOREv; dmarc=none; spf=pass (imf10.hostedemail.com: domain of alexghiti@rivosinc.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=alexghiti@rivosinc.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706516923; a=rsa-sha256; cv=none; b=S6vk001Jp8MocCRDeDf1ku6qP8pAAjO8M5wpFW7VMjYqf3Y4egspzQTREB2GOcvEE469GY WXtR5+c0FcqrXjLHux268Eh2URW8vAj/F/Zi2lf/XsmpO5G6be7UXGzQSAh0rxD8Svylje HcvWGY0N2QnpUQqqAclb2gAsqHQuRi0= Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-554fe147ddeso2241147a12.3 for ; Mon, 29 Jan 2024 00:28:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1706516922; x=1707121722; 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=hd11WU3DwyoDiQmIHC9dAoBbMr9OMPEBjtClwqo3z+E=; b=FitQOREv37AGyG1EU7oV8UEgw7rBsLveeDVYOASOdN2mHfv18cFOh3TrMp4DRP4Y3q yo9GIUMeIGJS+1BXbD23RDQYccol074nWFkPOvKfRHdCnQxq5xWIN1Gwk01TOPuMe83V m1fAkZeTYPJ5uTg2waSNCqDkFul0khiZIbaLYUKBZGSgQ+LNhPS9+5/MnO0me3JEARUh DoMaS8MgkJeTomdluL4Miety+qH+ZWOUKVMuFsshOuETqbpR+608rnDa7zQbbPswDUJO Zry2wVLE7KWLvg6hIya1zlP13OZVM5hZmYzxEnQGrrFJtqhO3QBHFI+5QXo2gVQYTNSB KooA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706516922; x=1707121722; 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=hd11WU3DwyoDiQmIHC9dAoBbMr9OMPEBjtClwqo3z+E=; b=YjWCzqcQSYthcuutQ2ESN2jP2W/Rt1MlpYsIFDIpkfHMlPKWzY5W2TAvmmZDkWqpHm wSEVtoWmQH5AWJWiPGju3CPALMgHqTdeQrF6UxOHi9kGhUUmeJrNrN3CeCVSdzJSfgag jRP0Xpfly9kUr7kRpnM+LNd5y3HM8aNRqc2WSu6vDcvAGn6mPNcHEzRANYTDXUQ0gux8 U3X6b3vXbFZi69ddRTQpt0Fr722ggzw/hShYo36uyRFq1QDrdKUR1yhgZDhVUitqi3gr JkS9Os0dffPUGrTFBqTkxGcASLAsi7ypibJv/xJP1O5AcZEkkCMukNN6ux0mml7IYwMm gHSA== X-Gm-Message-State: AOJu0YyERleKDxkbPJwEmwY3Z6QZFtNgdTOIY4BSEFsZXvY7KLQSnu6S BRex46sGdvbNct6zoJaSW39WFagiNV5WONMLTRmYeJ6lr+phSkm6gjxZUK95ZvxpbGMC+U1yG9Q 9pcpl2klyvAX/JhiriJl1MNtTrE+aLasqr8ocWg== X-Google-Smtp-Source: AGHT+IFacY4fVBAqo3eoUiC3SDYNIryPK6IalhO4mwElYxnAhkKVJG35uT7HJpRO66DjFSDiv+wfUR6R4GBsWpAbKMc= X-Received: by 2002:a17:906:5fc6:b0:a35:edda:ca88 with SMTP id k6-20020a1709065fc600b00a35eddaca88mr192229ejv.66.1706516922072; Mon, 29 Jan 2024 00:28:42 -0800 (PST) MIME-Version: 1.0 References: <20240128120405.25876-1-alexghiti@rivosinc.com> In-Reply-To: From: Alexandre Ghiti Date: Mon, 29 Jan 2024 09:28:31 +0100 Message-ID: Subject: Re: [External] [PATCH -fixes] riscv: Flush the tlb when a page directory is freed To: yunhui cui Cc: Will Deacon , "Aneesh Kumar K . V" , Andrew Morton , Nick Piggin , Peter Zijlstra , Paul Walmsley , Palmer Dabbelt , Albert Ou , Samuel Holland , Andrew Jones , linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: A8538C000D X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: mn1uuesc76tgonbg85wzqztwjnw7bz3t X-HE-Tag: 1706516923-973796 X-HE-Meta: U2FsdGVkX19pSAU4wSiKvjPeNZSnQJXqZVicaeOspVCXZ5Tbg5CwLwZFMSPa/o8uTthkxK2Se8hZhnDUQstyLuPpoMemIMa/ZhljNK/Mkif6Di2PYnia+AAUOuHtxeWVnwxyOP7p/6bZZrT032mxvoBG9A1z+tfu3/tcLTopK3aQnR0Y/HKHlsfUvWlDmoK0akGOGo47jkJbWTNWXWjdShmVEo0jfYWJIvSb7CNDMy9/X0N353TEe9e9TeZxfuEOdHPjtUefZPX5gGXWHjiii9O4mzGqx+VfnYS9KKF6BEhUOd/0oaThkVN9nK60vnF8/jBijxDYNe1tXLrR708oBy7n9mTlmcvx1O16XVa5q4W6/H5zR3/Kx5G7Kr0pUt+a0k9UGnSQHVqeHLTPDSuedWN7QXXkx7IwOFySi+cGus6njBPoeodycS4gI9s5yFpuBt2lBjSmzjEKgPnU8ZfEaHBM5V/NGMmle0R8Pr6mSR4vfcCZtFgLvd3bGU1BBIzEOHBP7A6q2R+WMtngRiIwECs+x1BdL6ARN+NyB4Xi+7ujHy4Gh/SfR0Ylc9JNMN/4+17aCbBCDZwer393QEeIh/Sd276i8E1NN9tssyzQUcqy/NVke+YPVvY946I/qntKS++3egP6zLLMUV0PvpWrKghcTzD7QgClazoTHyz0ECrBHaV3vCPsbqUOvvxiYOgSLOqgRnl+Z1Zjmj80vfnsY2udLJg5Vogpc5lp4NiETVnln5bn91RFds2hJBrSoDBPQL87WwxoN6hTS6jf/Fn4xqP/JrxK/V/qjnZlSL1VaqCL77L88IJweIitnFTWHPszHF+7uRHJ/fiHItUi8gbAA4AsC0u1NuXtQu3LkpxgSpc6F9mRRZ2DnA03x2r3Y1d8ZiyRBdGdtlhU79CHoLS6B7E9ihN4gBzexsvYiOYreQE1fKzzSX9m5IKxhnJg/lDKTIjb4wrZtprdJ80HwR7 uuOAjWAO 08Caq4OmZaDLy2KNFB1dsdNGjuh4qA2rYhg7qSOTC2Cbh5Uj6WVGOF9NadZ+/rkn/YT2bPQeXYU0RTnIa2GGbF1T1jfY9eUsiFdZrA2IsM3HdYq1eL9SH1dnhVO1PaQbAZZlxfpNvtGrwcxzJWQkSRgWgoQv8NBgn/I7x3POsq1DdbsuzXyol93V67t/xZxrFqfyXEGdF4Uf7hrGFcfyRBRJixOMCYUt+Zs6a7yuxS7mH5WazxOXU/0iH2EvQ5bdp6XyXA20PluTivxEYgEykViTBRu76HFKr9I+eWTBWbWgTL0tl5P6jIVZwvzdOZH49kA1YWw9evN4L+knoiFbyNGN8CO8GzRhk6cFTjnZg/iFmoStWtPHM9P/7j2SAHnogXlQK+aILDDH3OkM= 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: Hi Yunhui, On Mon, Jan 29, 2024 at 4:07=E2=80=AFAM yunhui cui wrote: > > Hi Alexandre, > > On Sun, Jan 28, 2024 at 8:04=E2=80=AFPM Alexandre Ghiti wrote: > > > > The riscv privileged specification mandates to flush the TLB whenever a > > page directory is modified, so add that to tlb_flush(). > > > > Fixes: c5e9b2c2ae82 ("riscv: Improve tlb_flush()") > > Signed-off-by: Alexandre Ghiti > > --- > > arch/riscv/include/asm/tlb.h | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/arch/riscv/include/asm/tlb.h b/arch/riscv/include/asm/tlb.= h > > index 1eb5682b2af6..50b63b5c15bd 100644 > > --- a/arch/riscv/include/asm/tlb.h > > +++ b/arch/riscv/include/asm/tlb.h > > @@ -16,7 +16,7 @@ static void tlb_flush(struct mmu_gather *tlb); > > static inline void tlb_flush(struct mmu_gather *tlb) > > { > > #ifdef CONFIG_MMU > > - if (tlb->fullmm || tlb->need_flush_all) > > + if (tlb->fullmm || tlb->need_flush_all || tlb->freed_tables) > > flush_tlb_mm(tlb->mm); > > Why is it necessary to flush all TLB entries of the process? That's quite heavy but that's the only to flush any "intermediate" cache that would cache non-leaf PTEs, the specification mentions this: "If software modifies a non-leaf PTE, it should execute SFENCE.VMA with rs1=3Dx0. If any PTE along the traversal path had its G bit set, rs2 must be x0; otherwise, rs2 should be set to the ASID for which the translation is being modified." That was the behaviour before commit c5e9b2c2ae82 ("riscv: Improve tlb_flush()"). > > Thanks, > Yunhui