Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp6329830rdb; Mon, 1 Jan 2024 19:38:52 -0800 (PST) X-Google-Smtp-Source: AGHT+IG8rLttz5e+GfFP8cEJyBdPb6CQIEw+fz5nWoPYTKdyclWNJ2+eB7ehcTOs4In9Q1Kr0Rwj X-Received: by 2002:a05:6870:a11d:b0:204:991:a15 with SMTP id m29-20020a056870a11d00b0020409910a15mr22339762oae.105.1704166732748; Mon, 01 Jan 2024 19:38:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704166732; cv=none; d=google.com; s=arc-20160816; b=ZteYifiWc72Ba97bOeHhlThLSfE2kB8CqdHvy1l3PPOPxd2fYUxf+jNQDGtNJ4vSfG rGiGWxkEPq7m0PtlhueKpi99gth4lJVCZbOpBnSQteu3RPMxHFJfWZm3G+Wo3Pn9bohz eCh/2j3k35sgmAoaU/U0LTB+KawxkkDMKgQPO7AL/vyn3JPL9Rxr19odDE2XpTbn28v/ 44HG83ql2oZkN4+b/Yl4PGvno55EnGhu891weu3tXHeNgNBY6f2hkHQTohgKfdsF8ePS Dpj3Jo+yPK4WZCe+en9d87l0/IKGJ+rjDKJduG8hCG2ihlOOs0gwv0OwV8jzeVeFuoWW dyoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date:dkim-signature; bh=kcTdkEAbGCppfv+ACYR8FvNGo0MMHUvFLqTzw3QX8ZQ=; fh=ORVm8y6VCa2S0l1ZiBUwRfWDAsAD5oy55ki2NMG6BRs=; b=Ij6/wPJoJk4+N0r5VnbatQQ3BKipelSIM2hOsHRs8Z/PnV5xlJ5gtlSpb6l/9lqL6s xK9fBm+kqWTszQNNBX72J/lQDCvdHCR2qLSlPvrmZeMl9FWujtkWMwQeyuUV1Rri8W5+ lvnbEv8Bk3NQUshgHVf29eZRYKRH0tUhCWxDjm6Kl0wTqVYBZ/nzU+Z9Ig68PxIVk/HE TapqnSkeY6hzfYCx2MGjcDvAy9jeTq4ubSvLgDoJIH8rqC5XWN1a2Rv9cOO0xNsRmYjK ElKWt4KHQC1QMnut/8V2hzaIyqZQui6U2qdAb3L3Sa8wbdQwPGS05NfGwczuf4b9PilO R/uA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="DbN/lWB+"; spf=pass (google.com: domain of linux-kernel+bounces-13999-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-13999-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id v62-20020a632f41000000b005c65e697bb3si19034593pgv.518.2024.01.01.19.38.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jan 2024 19:38:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-13999-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="DbN/lWB+"; spf=pass (google.com: domain of linux-kernel+bounces-13999-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-13999-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 9BE68B20F8E for ; Tue, 2 Jan 2024 03:38:49 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 16500ED6; Tue, 2 Jan 2024 03:38:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DbN/lWB+" X-Original-To: linux-kernel@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 441B5EBC; Tue, 2 Jan 2024 03:38:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8AB25C433C8; Tue, 2 Jan 2024 03:38:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1704166719; bh=sqjF+WOs+/Ej1dm+kRiv34bMwdUQi5o86nzg58LpkDc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=DbN/lWB+mMNkcDOyfAmuvldxhZoz4+kmWPEmLA5B/1PxsWD+5Xj9PbHL/KBycP2s7 MbSOthA8nrqgEAtFNpFEVqdPKCLGdpuXc5yrseVEOo8mywulDkMIwrtjFRLZ5Z0ow6 +dG4bf9OIEIhFG8PZqpj2Ot0E2qYPmEPF6uxR7qV+wvk+6Yc+KBGZ8F0USKJ6ug7+G fb6Wftzh6J+fChGZOY7FDMItIJNS7+qUpEkZRH6THKmgmAILrvooJ27F1waBhFNnHl f0/EiSV4Uox/QrDzrFAniIXnpNTapL7vWjUpw/uTFe3s3lHIKEXedq+RFWmB6jNZ/9 Vs4F5EdGiP8Ew== Date: Tue, 2 Jan 2024 11:25:57 +0800 From: Jisheng Zhang To: Alexandre Ghiti Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , Will Deacon , "Aneesh Kumar K . V" , Andrew Morton , Nick Piggin , Peter Zijlstra , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH 4/4] riscv: enable HAVE_FAST_GUP if MMU Message-ID: References: <20231219175046.2496-1-jszhang@kernel.org> <20231219175046.2496-5-jszhang@kernel.org> <3d36ca3c-9a91-41a7-9e68-288982c2c8a8@ghiti.fr> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <3d36ca3c-9a91-41a7-9e68-288982c2c8a8@ghiti.fr> On Sun, Dec 31, 2023 at 07:37:33AM +0100, Alexandre Ghiti wrote: > On 19/12/2023 18:50, Jisheng Zhang wrote: > > Activate the fast gup for riscv mmu platforms. Here are some > > GUP_FAST_BENCHMARK performance numbers: > > > > Before the patch: > > GUP_FAST_BENCHMARK: Time: get:53203 put:5085 us > > > > After the patch: > > GUP_FAST_BENCHMARK: Time: get:17711 put:5060 us > > > On which platform did you run this benchmark? T-HEAD th1520(cpufreq isn't enabled since the clk/pll isn't upstreamed, so cpu is running at the default freq set by u-boot) > > > > > > The get time is reduced by 66.7%! IOW, 3x get speed! > > > Well done! > > Thanks, > > Alex > > > > > > Signed-off-by: Jisheng Zhang > > --- > > arch/riscv/Kconfig | 1 + > > arch/riscv/include/asm/pgtable.h | 6 ++++++ > > 2 files changed, 7 insertions(+) > > > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > > index d3555173d9f4..04df9920282d 100644 > > --- a/arch/riscv/Kconfig > > +++ b/arch/riscv/Kconfig > > @@ -119,6 +119,7 @@ config RISCV > > select HAVE_FUNCTION_GRAPH_RETVAL if HAVE_FUNCTION_GRAPH_TRACER > > select HAVE_FUNCTION_TRACER if !XIP_KERNEL && !PREEMPTION > > select HAVE_EBPF_JIT if MMU > > + select HAVE_FAST_GUP if MMU > > select HAVE_FUNCTION_ARG_ACCESS_API > > select HAVE_FUNCTION_ERROR_INJECTION > > select HAVE_GCC_PLUGINS > > diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h > > index ab00235b018f..c6eb214139e6 100644 > > --- a/arch/riscv/include/asm/pgtable.h > > +++ b/arch/riscv/include/asm/pgtable.h > > @@ -673,6 +673,12 @@ static inline int pmd_write(pmd_t pmd) > > return pte_write(pmd_pte(pmd)); > > } > > +#define pud_write pud_write > > +static inline int pud_write(pud_t pud) > > +{ > > + return pte_write(pud_pte(pud)); > > +} > > + > > static inline int pmd_dirty(pmd_t pmd) > > { > > return pte_dirty(pmd_pte(pmd));