From patchwork Thu Dec 28 08:46:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 13505702 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 64A63C3DA6E for ; Thu, 28 Dec 2023 08:59:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 00FAF6B009E; Thu, 28 Dec 2023 03:59:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F02646B00A0; Thu, 28 Dec 2023 03:59:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DCA366B00A2; Thu, 28 Dec 2023 03:59:26 -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 C9EE66B009E for ; Thu, 28 Dec 2023 03:59:26 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id AAA431A0839 for ; Thu, 28 Dec 2023 08:59:26 +0000 (UTC) X-FDA: 81615628332.21.DFC2BB8 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf09.hostedemail.com (Postfix) with ESMTP id 06FBC14001A for ; Thu, 28 Dec 2023 08:59:24 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=qX3ZXIVu; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf09.hostedemail.com: domain of jszhang@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=jszhang@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1703753965; a=rsa-sha256; cv=none; b=5wYMJ+pK0F9dgH05g/iL4ns6Q8/tOE/6eP5h0QsRl0AqPA99z+RGms9Lk0KH5ax3ox3wSI HflykkKKGWHUXjHFr/hHQaO9AdAViGG8ygQkO8doXIKf4tNd1ZU8sY2l9MiyEBy1Nf36bg Go4Q/4xLFrOO2iWoUiDCNB1Bh26hki4= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=qX3ZXIVu; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf09.hostedemail.com: domain of jszhang@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=jszhang@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1703753965; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=NLbvKBYCQA6HFCCFLb5FN0RRsLmdzpFNCcTnBGyntMY=; b=oJKHdIZw3KjGzEZl3KtHmsVZk5v/5ciOg/8nnVAbbkAjS00GfX7889hXAB0FMERxneKdzI xUHfnS51FP55/0C3PUNmper3BfAQ7h3tRPSIq/kHuMEVU4IgBr9d99zltDbZki5brwaKix aW+xDwA+tsvkWMuIzukJNz3W/KWjV7c= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by ams.source.kernel.org (Postfix) with ESMTP id 2AAAFB80B87; Thu, 28 Dec 2023 08:59:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B5CAFC433C8; Thu, 28 Dec 2023 08:59:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1703753962; bh=qac361aQfUYlqbOE3Dx+WRTyiGe1M4tfZJDFMVM+Hlg=; h=From:To:Cc:Subject:Date:From; b=qX3ZXIVuIgqjmnWmLCGIeKFAzN5+ULWtyxoREOb6AT0bMQ9Fv9tUR0fPxd8bAQHoU pyRvZh1oPfse8PUJCM7z9M/EPig3JCXg5znojjv37eq8A99ej39yt2FqtXM73KRciy avt6nUxBjQe9F0Fy2qvg/ZyG+AJ4OGJRBIEnwlsS2/+tQpM+f9yXIkxHmtqC4nQIqP vpwoUfR6TqZYM7Gk+VnYRKZBB475H5QW685Li+FYw3NEwltzrVrIbEr2FBzR4qCMyf A5tkjpJLm3yxEUSP4SUB76u3vF72cxxZocQLLoKcdZ3I8w+KuzZlATfEj535SChZ4I O9W6YEYkQ7hDw== From: Jisheng Zhang To: Will Deacon , "Aneesh Kumar K . V" , Andrew Morton , Nick Piggin , Peter Zijlstra , Catalin Marinas , Paul Walmsley , Palmer Dabbelt , Albert Ou , Arnd Bergmann Cc: linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org Subject: [PATCH 0/2] riscv: tlb: avoid tlb flushing on exit & execve Date: Thu, 28 Dec 2023 16:46:40 +0800 Message-Id: <20231228084642.1765-1-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 06FBC14001A X-Stat-Signature: sxgk383incm7yahqg6sg8ca7af4i8aqr X-HE-Tag: 1703753964-237437 X-HE-Meta: U2FsdGVkX1+SjoPNO9ovXT3z1o03bqyfF9Zi+ytVxA5l4uLwuXwoXyJAMp1TIrf1P2Y7z8cSmG0iAQFh/ngFgqswQy2cX2n45DsjKj5N8ujJaXHvnU2c6OwVt+t62TSs+bFyiyOLyCie9ph+/Gv+Z0NIqV8XV9QopbwNFCnmnyH4kX3FN5SD+4E0xA7Jp4IzxjluskMxeDgseHY585TD42Ee0fz2VjW1JJ1WQw9A+riZG0pMEgP6OYX2G80ZbQkohsbQzQzaM5wMwoSGc5B2D+LrFzT3SXNXp+Pjp1vRLBzUzNDW7mlcqPhst2d7FoxTig1p60Me4N9r9Zb3Ggct67o92F+zYJntalcHtcPAYcr5bG8ydoP0gEytkFkPWTh9avz+uX+wRwqoHoK9Q4VhPmzHT2v6Ht0nj+tMmwiWGa39JJkPhtY6yi9BifV6yVwe+dNX6Q+jTV7LcwNgs2Ex5cKdijpxpIVUVW+pxpk/kaHx0u5qBJjMuCiKg/H8DC+elloS6WU20tbydgNXaUOuH+qY1aXcawiHjqPufeI7YGeAX8SxbrdYGBN9pWTXZqY1f5aF+49VTqcc4WAixmiL1wiPUnHnzP1vEJbDSQy8CQVn02AHXiMmoqzN1i/I8S/3WSuQJBQbBHI0oKoFVItlr6OWMdZiT4/22hsSqayGMIa94Gv/uXxqzwuJmPXWwU6ocOpDR6dru08gOrB4S0qp8RlDr2RkiZaEHVxxP/2XMvThYEALIB8PZg3h9/QibBOiKShRtmf1ztQvqkwddw3WzG9TLMv9Qpkv+dPNQ8BAn3uVG0cppnkLc9kSJsVdgU2MWmso5TWxoJMSGjhGIsM1WTCawZDIrmJwyM5pUKy/vNDaCx5mJQQS8Qu6Hui2gOd75t/3sI61Ew+Q5UHiXFlIhdm2pXu0VyFgJ6E0AIlsPFe1zBFJnbyjSPuVTYVu++d1jv7jebj/VzvyxjFLkVR 55JHa8OA 5omvW0XN7jSXZMaDyXFikop9ZAzaRTn0Q5ZWTrD4/fF6SKdGiXb92Ef+JqzkjA4wXPv96OVZ1c0VCeR6W55w28sUcg1ETISum21mi+/j3snfs9BE6Zn4dtHj/jxgw01j4tMWM18K8o6mMjkVc0spDpt8hOupl93ggpUf0lyb2aogMM2F8j94MNweHiOjYVSVemmmOSFEbgIfSGXPgb+T8O2DUziv92BHD0i2+K4Kpl8yK8R8GOUJMpbb/3+4EbfN9TbnY 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: The mmu_gather code sets fullmm=1 when tearing down the entire address space for an mm_struct on exit or execve. So if the underlying platform supports ASID, the tlb flushing can be avoided because the ASID allocator will never re-allocate a dirty ASID. But currently, the tlb_finish_mmu() sets fullmm, when in fact it wants to say that the TLB should be fully flushed. So patch1 takes one of Nadav's patch from [1] to fix fullmm semantics. Compared with original patch from[1], the differences are: a. fixes the fullmm semantics in arm64 too b. bring back the fullmm optimization back on arm64. patch2 does the optimization on riscv. Use the performance of Process creation in unixbench on T-HEAD TH1520 platform is improved by about 4%. Link: https://lore.kernel.org/linux-mm/20210131001132.3368247-2-namit@vmware.com/ [1] Jisheng Zhang (1): riscv: tlb: avoid tlb flushing if fullmm == 1 Nadav Amit (1): mm/tlb: fix fullmm semantics arch/arm64/include/asm/tlb.h | 5 ++++- arch/riscv/include/asm/tlb.h | 9 +++++++++ include/asm-generic/tlb.h | 2 +- mm/mmu_gather.c | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-)