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 00201C76196 for ; Thu, 6 Apr 2023 08:20:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 66A8E6B0071; Thu, 6 Apr 2023 04:20:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 61A3A6B0074; Thu, 6 Apr 2023 04:20:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4E1706B0075; Thu, 6 Apr 2023 04:20:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 42DB66B0071 for ; Thu, 6 Apr 2023 04:20:01 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 079211A0EE6 for ; Thu, 6 Apr 2023 08:20:01 +0000 (UTC) X-FDA: 80650268202.18.DEE60A9 Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) by imf22.hostedemail.com (Postfix) with ESMTP id C8C6FC0015 for ; Thu, 6 Apr 2023 08:19:56 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=jRTi1DwZ; spf=none (imf22.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680769198; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=id3WiveMxpavuQmUN2xqspEpuvTQmvx1SGFNzOo5wiA=; b=qmWr2NKKY8zbUSEf8sV0t0ye6OwIlh+c5SKFWOt/8Yl+yOGNji0XkwFmrPp7WtyUlCM6lb kDWpwEoemUxet2J+uxziCpYiEm7+kDIT/t7+Cwb/TD8atc0ycm8RyFw9YQ7BdxJo+RdRQA S8Q/We/BIPVCvmaf9zlntjOAEcPP97Q= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=jRTi1DwZ; spf=none (imf22.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680769198; a=rsa-sha256; cv=none; b=ZUAziXj3mN0k8IC7xiYqyGpqGd4TzqHhz003DP3umobSNCAI2gat+ierOY/JoR8wawLEfK B4ykp5csyb6/szHXq9fWL56Jeot4fe/xp3QxEa7E6jn4DTTr8WxwAVgb6M3tLkmFk/A8w0 fEFBZp66xPxvnQ1vsyVvG4WrG92Zj8Y= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=id3WiveMxpavuQmUN2xqspEpuvTQmvx1SGFNzOo5wiA=; b=jRTi1DwZVd0WMNgzKzsSqgWOgX mgevkkX4j+u0pqlfWh/8Equk9WmT2PppXiV5rbqFmKveguoPapefX+P43HvkUR1xn8/X+0UmaWaMS ZDHt4LFQZiEmHDMkso2aS+2S3lr49/byLgi8ENYg2rUv4nD3e4fvEgeSRrS35Dmgc225qvMmWmyH0 Lp7+ATCpY6t9m0ZJ7ysLXR1QIVtoaqXhnb6yTa0iINm0CNJ9ov/aqhmHuOIjYdBoUbMVTMkY2jF/P a0UO34NTkt/7Lva7+j3XRC+By0oZxFi5RalaWIgvAaRGxtUO13RdOhsPG5lFv/GImJtWL4yNbVzga 2rH++C1w==; Received: from j130084.upc-j.chello.nl ([24.132.130.84] helo=noisy.programming.kicks-ass.net) by desiato.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux)) id 1pkKqI-00AT8F-0b; Thu, 06 Apr 2023 08:19:38 +0000 Received: from hirez.programming.kicks-ass.net (hirez.programming.kicks-ass.net [192.168.1.225]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id 8B63D3000DC; Thu, 6 Apr 2023 10:19:33 +0200 (CEST) Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000) id 7302824C025F0; Thu, 6 Apr 2023 10:19:33 +0200 (CEST) Date: Thu, 6 Apr 2023 10:19:33 +0200 From: Peter Zijlstra To: Ankur Arora Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org, luto@kernel.org, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, juri.lelli@redhat.com, willy@infradead.org, mgorman@suse.de, rostedt@goodmis.org, tglx@linutronix.de, vincent.guittot@linaro.org, jon.grimm@amd.com, bharata@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Subject: Re: [PATCH 4/9] x86/clear_page: parameterize clear_page*() to specify length Message-ID: <20230406081933.GD386572@hirez.programming.kicks-ass.net> References: <20230403052233.1880567-1-ankur.a.arora@oracle.com> <20230403052233.1880567-5-ankur.a.arora@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230403052233.1880567-5-ankur.a.arora@oracle.com> X-Rspamd-Queue-Id: C8C6FC0015 X-Stat-Signature: w4twqhbcaxgzkm7wzbw384mppd4hoo3u X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1680769196-501402 X-HE-Meta: U2FsdGVkX1/1XZvdN53EzrPCsH3sCZp1mCx5/0xGKpLHXSnbNmnjEP7kvm6K5UETehsrMwHbzoFuEZvAt1h8eEDzOICaocOuAZAmTCOM9nfshDj/mf/zc0djAJf1xha0oGD53DYWJsSboGn2Ml1mlnUV3Il2SvprD8t5FrArw3CswQ/2u9y6haOeWG+Wi2HKmJDaaQA2ToYQi6NmlJklyzHB21MuqmSj/d5Jnv01YJ9WeFNxVFkNTyGJ84+5YjilalxauHGUoR9egOsUVl3D4MPAcijHlKi+uz5ImH6/HMoi6+ZPh4nrELfrNEsuw7LuUugTdEy71oHI7dq99iD/rM5D79UD4Gryovgy/lut0uQkVyq0+FbfSAWBB9FxkajeOUydcZdKsWO+U6u5NfGEZXwBiXSudcxRW1SbNapVwAAf0m8ELFxNfsDHUqcHsDCAvPYYjaee/iHRvE/Vgl7BYhfM9SB+FwOLBEeX80VQgk3IoDzlZ5f8dh5c1CnA0eerZi6mrtA6GJEMdaUGkehxpfxIwauSK69qhgHOMnJ78I1MrC250FWb/5bAI1fJxJ/yyU2W5AkJtrNN8aR+zl3CqYg0OBpGcjtQYu6NcF0UwQhG4HP8zm4U5k1Xt/ZQLbwVQxieGTNRXK7WmSQCL+bzNjRZUMCxAX4x9DCYiY5AEgbBqrFUrTTLJKwdTiijk+eHVgwL3s4mhIDY/2rQvUxOA3Te/D0oQE/n0EsgCG7P/0Fu4X01n2/2kQ7yGVREy4aSdLezcEtNPbD4Y9MXmGobF/O4Ol9zWxbjTkrpmsM/T1pKcur9JO+x6jQ7If54VYg7UhimoJ10nrpnLuHxb1Us+kUSTsHg9mCJQYbREk9D+ZqLK3tWLzNFgBblEoxVhy/SHp/wg+luog/yIS2+kXrNEes2DM9pjUl886Q93xxrEL8krN95rF4/hIm+6KSUTkbNVY4oD3kaEv+4oHSnBow 9Pp+P+wd pxKxBfXq3tbZcZQQR0iKbPwuDwz/RGpDsi3V7QBVBaYSxR9BOCw1bh4yv8ltaLkSisJGIUyUjXpF36p2UOKDgL5IeJeAuzzaCGFaYgrPtbgE5M1bPlcPW+vu0VRMwJh6QH6D9Ai+Grs3i+ZngnDQJvsRm+XSh+B/4MPuYqN9oVzjMDbtImoEiMTIfiyLoO1ldNEIeGqZuVN97Qx0BDKS6qjuB5EwuZ8vUBU3hGv5vUI7l6Zxr3jf5gHNJwMA03K0CT4Wq 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 Sun, Apr 02, 2023 at 10:22:28PM -0700, Ankur Arora wrote: > Change clear_page*() to take a length parameter. > Rename to clear_pages_*(). > > Signed-off-by: Ankur Arora > diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S > index ecbfb4dd3b01..6069acf6072f 100644 > --- a/arch/x86/lib/clear_page_64.S > +++ b/arch/x86/lib/clear_page_64.S > @@ -2,6 +2,8 @@ > #include > #include > #include > +#include > +#include > > /* > * Most CPUs support enhanced REP MOVSB/STOSB instructions. It is > @@ -13,18 +15,30 @@ > /* > * Zero a page. > * %rdi - page > + * %esi - page-length > + * > + * Clobbers: %rax, %rcx > */ > -SYM_FUNC_START(clear_page_rep) > - movl $4096/8,%ecx > +SYM_FUNC_START(clear_pages_rep) > + movl %esi, %ecx > xorl %eax,%eax > + shrl $3,%ecx > rep stosq > RET > -SYM_FUNC_END(clear_page_rep) > -EXPORT_SYMBOL_GPL(clear_page_rep) > +SYM_FUNC_END(clear_pages_rep) > +EXPORT_SYMBOL_GPL(clear_pages_rep) > > -SYM_FUNC_START(clear_page_orig) > +/* > + * Original page zeroing loop. > + * %rdi - page > + * %esi - page-length > + * > + * Clobbers: %rax, %rcx, %rflags > + */ > +SYM_FUNC_START(clear_pages_orig) > + movl %esi, %ecx > xorl %eax,%eax > - movl $4096/64,%ecx > + shrl $6,%ecx > .p2align 4 > .Lloop: > decl %ecx > @@ -41,16 +55,23 @@ SYM_FUNC_START(clear_page_orig) > jnz .Lloop > nop > RET > -SYM_FUNC_END(clear_page_orig) > -EXPORT_SYMBOL_GPL(clear_page_orig) > +SYM_FUNC_END(clear_pages_orig) > +EXPORT_SYMBOL_GPL(clear_pages_orig) > > -SYM_FUNC_START(clear_page_erms) > - movl $4096,%ecx > +/* > + * Zero a page. > + * %rdi - page > + * %esi - page-length > + * > + * Clobbers: %rax, %rcx > + */ > +SYM_FUNC_START(clear_pages_erms) > + movl %esi, %ecx > xorl %eax,%eax > rep stosb > RET > -SYM_FUNC_END(clear_page_erms) > -EXPORT_SYMBOL_GPL(clear_page_erms) > +SYM_FUNC_END(clear_pages_erms) > +EXPORT_SYMBOL_GPL(clear_pages_erms) So it seems to me that clear_user_*() and clear_page_*() are now very similar; is there really no way to de-duplicate all that?