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 0EF62C77B7F for ; Tue, 16 May 2023 08:27:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 874FE900003; Tue, 16 May 2023 04:27:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 82541900002; Tue, 16 May 2023 04:27:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 73CC6900003; Tue, 16 May 2023 04:27:55 -0400 (EDT) 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 61988900002 for ; Tue, 16 May 2023 04:27:55 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 3781D1C6E91 for ; Tue, 16 May 2023 08:27:55 +0000 (UTC) X-FDA: 80795440110.11.019BF17 Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [78.32.30.218]) by imf11.hostedemail.com (Postfix) with ESMTP id 5AA6840016 for ; Tue, 16 May 2023 08:27:53 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=armlinux.org.uk header.s=pandora-2019 header.b=BHFwsbwT; spf=none (imf11.hostedemail.com: domain of "linux+linux-mm=kvack.org@armlinux.org.uk" has no SPF policy when checking 78.32.30.218) smtp.mailfrom="linux+linux-mm=kvack.org@armlinux.org.uk"; dmarc=pass (policy=none) header.from=armlinux.org.uk ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684225673; a=rsa-sha256; cv=none; b=a6/Y1h6Mig+DKkf4UTTh91MvAE06gB/vL+HdKkMkXrPAalQFg0dw3IqovOexabr0s9prl5 SkCc5YJI3uy9b8cgPKpPZUbkhgpIs1px0/3QHJKvcKAwwzb/kgdhxpmG8luLPlm5h2mGSq +nKYMbezi9U7g1MtpJPxoyQnIlH/q8Q= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=armlinux.org.uk header.s=pandora-2019 header.b=BHFwsbwT; spf=none (imf11.hostedemail.com: domain of "linux+linux-mm=kvack.org@armlinux.org.uk" has no SPF policy when checking 78.32.30.218) smtp.mailfrom="linux+linux-mm=kvack.org@armlinux.org.uk"; dmarc=pass (policy=none) header.from=armlinux.org.uk ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684225673; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=OKQ4a+tXa0/qXXguYvdG6Sogi4IalVeR1nXUDOINLjY=; b=D59rzMQ2gHuDtabxuFVXEVTBMGuhJiiVfWgG0Qext5npVR/eyA3lU+cnitXUmHbOnPOBRB nacIy8J1vHVUxaaYAulo3FHEnlgfoyfxVwcNeA39vSm0daFqd5PDOTiYyeatCtdhXe29G3 GH6vJMCHLTX5TbZXJEfm6oViIVnV4ww= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=OKQ4a+tXa0/qXXguYvdG6Sogi4IalVeR1nXUDOINLjY=; b=BHFwsbwTwcrvgsvEP912RaMDBz ozBvdyYkgc5efqFqhkFOPJIeFTPkXepcZKyBg1rwKt/olwVm/sdbbmWmoL4SLSaQelvT/UGrbuZVt 5iyUSVJjvGobnx/mYAVZNF8AeEnIsJXnBcnKhDpNHWAHauBji5slZWpFkF5iLtEUj0O/rjhsh9RZB ufK3IlqBOy+srXLnxkg5NhSb+cTUm1/62uCI6/5JAums+9hWAsJ8B290iwAATXMefZW29+qjq6VeM 0cVt4xQKO6YUpP7jonXrD6R22GNiMbn3b/tt0eImR+/Zbx0BgiaNSTJ+Hzy25bNht83GLC5t4tgpQ +RVh0ezQ==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:37336) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1pyq2A-0005Mn-EA; Tue, 16 May 2023 09:27:50 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1pyq28-0000eI-DM; Tue, 16 May 2023 09:27:48 +0100 Date: Tue, 16 May 2023 09:27:48 +0100 From: "Russell King (Oracle)" To: Thomas Gleixner Cc: Andrew Morton , linux-mm@kvack.org, Christoph Hellwig , Uladzislau Rezki , Lorenzo Stoakes , Peter Zijlstra , Baoquan He , John Ogness , linux-arm-kernel@lists.infradead.org, Mark Rutland , Marc Zyngier , x86@kernel.org Subject: Re: Excessive TLB flush ranges Message-ID: References: <87a5y5a6kj.ffs@tglx> <87353x9y3l.ffs@tglx> <87zg658fla.ffs@tglx> <87r0rg93z5.ffs@tglx> <87ilcs8zab.ffs@tglx> <87fs7w8z6y.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87fs7w8z6y.ffs@tglx> X-Rspam-User: X-Stat-Signature: dgkaobnqpgjdnzscru33tdm9ss1ra6xd X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 5AA6840016 X-HE-Tag: 1684225673-877993 X-HE-Meta: U2FsdGVkX19Wie1Wi5/xDV6xN12ci3F3is2NGqbM4zejDbnWywWhbd0vBM8hCdL0PG9zeGAUwiPhIlVuRCw0XQsI/QhJsKtZJphKHldq4wQt2GU2F6lZJNgh4l9Ib46dC2jnfs5CX91R20LGrMv0vaOdIEnvON6QAoVTOSDFCwQaa5hBijolIqkCwh5soqPWMe4l0oOvZGSOEHTW5qnvfWecelhX2pfrSo2l0dXJaoLm3UWVyHCT/7GYUMAxCw3O6eH+c9jTO2ycNLYq6IswNBgrym6GZaZdyiDN2McCGZdo5wNmEeqyMSpBaSEZR7jSbVTghnibswJCKHrfSe4iQNguip1mMofiHrBl+yElqinAiHJde50cD/Z7Ib/01D2VOs89f76yWMH8ajtuhNIuvJSGV/dzOcw6CwB8Gi6zpWFJ8htD1xCUIl0Cl6dsd3AqN+GAWiulEzDmo5BPZ7U/3nSqocQi0D4ruR0tiLridNGdIEtX5EspVlozrySroco1JcZ+hUJmt2RCvuUMTc9u1V6DKcYXIrFTAlRyPqELzHtIIRYJFpXf9SBz0K9N6tUB3+e2r9LJdFOs6JDvUCxVn4/zNBRRwC8E53WWPw0wXpjMpMgfOjpUCvVZNQxuc+Job2WeJr08M1q7Mr5JSHHN9mvU/IpgfMB8Jc4J4HJeTRg9iWZS1QXbINy5gCtuhp/OznQuNl8rXrRAyF5XzsT30V0sidxgvfFsyHV1M+2JQW9zPNehxc87n1/yj8YUoc0+Az/zBkEAylvFDd/4NBD7pY735Zr8yBu3fcTwAIvNuDgPZFkQtdL1SlNeHeWF9VWdMq1hDbsdi6Z7RQ7vxI3El4/6dZ/ZqCJ+M0eWQtUDmXyi0TGy7gD1ceEoKTVWOqP4Npui8JIiDFjBfI5ygHZ6npzjW64IjQ+lGqEeK4oeWc6phI6uGArf2+kSVFILrlGT02hTVpJvAXeRCp0WEXh vqho/2W3 lATgpWcphC4E5bxYYc/K/EH3sHphL+TqEJyN2zGHPgGL03ISejShCDi8NZff3fzS0fdFZdui4ZdmZUqOSXm4+uMf+vpwxhAOpuxD7J1+f/9E/eypMdXmQZunbqh2XWjTYmA8qdTA8/mAQC3eAsCeAucNPB/AhsUA1cUle6HYkEBYjnEXJEj6X13XobWGGA7/Fk012tBx7hFfzGIo20M3uPzCX3Govbid/YyY9/NqGAfl3gwZ6l3CU8si4hXQJ/NHGclekf/MZWcHAksEPZrdOp13BZ1FxiUe4h+48Q8eiy4HRaDGZW/CWEmjhc1u748gXPNsdz1rGXZgvH9HkDPohsvQAniSPpynqA2jWGNaGfxEgZkHf0yMCEtNppdbNc/Z0VRT0ot5UQAteEdni2rayMwHuXUfTm0mtaCnatEO/eOK2U1E1nn0FrVMmgooOlddBNplFAsLH1/HlCeVTDiHhrGjdtX4jfbW32UD1veA4YE4G+4q7ynnLSywf1YLsBwLKQXaR3niYglDkDIx37lDCdhtmUHYUnDyKv/+h45AxWX8jjdvQpC9pk4n+lQ== 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: On Tue, May 16, 2023 at 10:20:37AM +0200, Thomas Gleixner wrote: > On Tue, May 16 2023 at 10:18, Thomas Gleixner wrote: > > > On Tue, May 16 2023 at 08:37, Thomas Gleixner wrote: > >> On Mon, May 15 2023 at 22:31, Russell King wrote: > >>>> + list_for_each_entry(va, list, list) { > >>>> + /* flush range by one by one 'invlpg' */ > >>>> + for (addr = va->va_start; addr < va->va_end; addr += PAGE_SIZE) > >>>> + flush_tlb_one_kernel(addr); > >>> > >>> Isn't this just the same as: > >>> flush_tlb_kernel_range(va->va_start, va->va_end); > >> > >> Indeed. > > > > Actually not. At least not on x86 where it'd end up with 3 IPIs for that > > case again, instead of having one which walks the list on each CPU. > > ARM32 has the same problem when tlb_ops_need_broadcast() is true. If tlb_ops_need_broadcast() is true, then isn't it one IPI to other CPUs to flush the range, and possibly another for the Cortex-A15 erratum? I've no idea what flush_tlb_one_kernel() is. I can find no such implementation, there is flush_tlb_kernel_page() though, which I think is what you're referring to above. On ARM32, that will issue one IPI each time it's called, and possibly another IPI for the Cortex-A15 erratum. Given that, flush_tlb_kernel_range() is still going to be more efficient on ARM32 when tlb_ops_need_broadcast() is true than doing it page by page. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!