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 5A920C7618D for ; Thu, 6 Apr 2023 08:23:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E56CA6B0071; Thu, 6 Apr 2023 04:23:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DE1656B0074; Thu, 6 Apr 2023 04:23:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CA9226B0075; Thu, 6 Apr 2023 04:23:16 -0400 (EDT) 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 BBBB86B0071 for ; Thu, 6 Apr 2023 04:23:16 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 8F7A1120D0C for ; Thu, 6 Apr 2023 08:23:16 +0000 (UTC) X-FDA: 80650276392.24.43332C5 Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) by imf13.hostedemail.com (Postfix) with ESMTP id DA21A20024 for ; Thu, 6 Apr 2023 08:23:14 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=VaxrVS3n; dmarc=none; spf=none (imf13.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680769395; 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=6yY7l0LhH0k7pjrVFUW8Mv8NnQNaUV8gs7w0W3YY6DA=; b=UjiZSSx+YpSZHIr5YuL1NXNmDnKRNUq+BO5hj2AUq/UXNZX8XEL1kDnatET2TBJs7TZ6M0 fyuj30p3jCveU4Wn53iPI+cVqyRKukEOZVcBP0vPTxTN9NXdQ8kCeb/J4qa3WRUeDNwooA yYrYAsfLS2xReMmUXpZz/81bCge6Uug= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=VaxrVS3n; dmarc=none; spf=none (imf13.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680769395; a=rsa-sha256; cv=none; b=l/c8nS8gWRwEUG2qQ+BQdmwEVW3SnUPYoWC7BQD4Hm7nHeus4X5jrtZvKX5zw1vQpT8Xlf 4LXlKL/7e+qZy4mBy7otOm5RflH+m7hlmxiVixHJv0XqXY2mcNsdwl56DlJNT4pj3pe6XK Lz4VDgysAkVLF3DxIVKJGk/j9LU1nGE= 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=6yY7l0LhH0k7pjrVFUW8Mv8NnQNaUV8gs7w0W3YY6DA=; b=VaxrVS3njXraoPYywtixGMcp1y j2aQjwTOOI7JYZDNvWsObgMRKQvGINrYOYr4rLE6eKogI++AEkUTWOlAHDHe6UJxDUaXe1WpZzhwY t7lW5HwxMmKLADUSmIUxcvKL0mQX/3A0SbWtj3sYW/vxEEzicTXA3qOnH+Fo1nhOCKdIbl5ZBy2zd GCCouvgk76nMGawbr/VRL7P1QsYG3luFCf84Rb//Zxt3v8SsuVcHLzZYqb85UDRtJDdkUEenmCexo rmv+HaSMz0F5lWhQ2VTCJDpXfI2g/9eyPb7lhQKe2p50pyJGIGRux/ljBa0+7eRufzLf9cHvrriag qOptZ3Tg==; 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 1pkKtd-00ATEE-2A; Thu, 06 Apr 2023 08:23:08 +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 337BF30008D; Thu, 6 Apr 2023 10:23:04 +0200 (CEST) Received: by hirez.programming.kicks-ass.net (Postfix, from userid 1000) id C7F8C24C025F1; Thu, 6 Apr 2023 10:23:04 +0200 (CEST) Date: Thu, 6 Apr 2023 10:23:04 +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 5/9] x86/clear_pages: add clear_pages() Message-ID: <20230406082304.GE386572@hirez.programming.kicks-ass.net> References: <20230403052233.1880567-1-ankur.a.arora@oracle.com> <20230403052233.1880567-6-ankur.a.arora@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230403052233.1880567-6-ankur.a.arora@oracle.com> X-Rspamd-Queue-Id: DA21A20024 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: 9kyctje5re7gmefiyy7atrkkwpbojx8k X-HE-Tag: 1680769394-435419 X-HE-Meta: U2FsdGVkX18Q7s7U0z44g6dwLNgA20VTaRiBMjQtrdzbmn5IdSifTd6qVHNzviirwupJ1WlaKX80f3HFBwjM9+MUgXQ+Zk6O91vQSA6SeIaW/p/IyNbbVBQxur4L31ovQBJQJBteudfbqc54Utx7XKHEP/KkxNitHeJ71Rkefjq8p+1Xf5jCudtFgyIjNa238M64sMn6L7OC2oJ5toKAcQD73fR3ijGF/gdqnDQWIORCdXbt5F62y3PbTWU/4HccsI/KftT1zMW+NR8mbjpo77eCLAAA8/qIVCWvVUCoPtV/3yKy2vz54wGJBT/NTq4MnC4UfHCnORaWMv6/GpSve6F0/W+PoP9LKPd397Dc5BBrbOUfr6g90MqezCRfoSVwgpCtj9GSkC7B9IZloGJbRRisFZbROUFRnbFB0AwgPkovvYUj/l7xN9mWrYYGg8+OV99vlfBw8fTopYJuQY1YdOQcreY4dmRoUli+76WBH6JnTvZ+BZlLX5j7nY8yb7lBiu6BMZhx03o/7r+dueq9vJjgB+wGtxFHP3yBLEXC4WLMrnUDEgOA4toWaODSIhodWa/Y2T4JMi7ph/IPT/agh5RTqDQLaV/jGJmuIvSqjgmhoCQIfY/E4t/PAO0shtvnREhBGnR5HGauU0KdT4NUn+i+jKIY7J9r42BmAU4UuZ4fOf8fCs2UYZzVlv5QDvLt4ePlAsjMiqEqIdKbCcDH3CuDWh0MA06YXdW3wIqewe59n/SSrojBZTABkUfpGDuTWS0TDYVzZ9mGMxirjp34j8JOPy3IIYJc7kgOVMHXOgi2nUEWG5DPQHvvpk//IVvLf7VV3rLfmRjqsZQjXXpkkiwyuRY9vKlfPhZrGeHPp5yQOz6ztCNES9Ne8c3afQ23VTc3UgMlNqZBxqNkt5B4ovDQUQ+f9HIhLNn9oZhOpCMDoNSULdxsKRJsc11mDDX/5zJAQZXdLZAARYD9iPD HqDiGsKF kjsFLtqA0SrwRBfzp9mlxwITuAGe3zYhLY2rkIk5GGbZStu1COvtg+NXtR+kAaAVV9WyWSW7gkDYjN+x5wqHdyi1/ktr3rMvZDnwMGxXU5hjxApwZrrg2b9GcQq89yUW1hCL9kUqCjyKNVdT/WKXZE0nq4QhWqQedEeb1ecaxA7lhJUk90MaiASwgeEiqa+GQAbcLpt6FjiqNSdlREs21DIBDjYb6nK9sK28X 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:29PM -0700, Ankur Arora wrote: > Add clear_pages() and define the ancillary clear_user_pages(). > > Signed-off-by: Ankur Arora > --- > arch/x86/include/asm/page.h | 6 ++++++ > arch/x86/include/asm/page_32.h | 6 ++++++ > arch/x86/include/asm/page_64.h | 9 +++++++-- > 3 files changed, 19 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h > index d18e5c332cb9..03e3c69fc427 100644 > --- a/arch/x86/include/asm/page.h > +++ b/arch/x86/include/asm/page.h > @@ -28,6 +28,12 @@ static inline void clear_user_page(void *page, unsigned long vaddr, > clear_page(page); > } > > +static inline void clear_user_pages(void *page, unsigned long vaddr, > + struct page *pg, unsigned int nsubpages) > +{ > + clear_pages(page, nsubpages); > +} This seems dodgy, clear_user* has slightly different semantics. It needs the access_ok() and stac/clac thing on at the very least. > + > static inline void copy_user_page(void *to, void *from, unsigned long vaddr, > struct page *topage) > { > diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h > index 580d71aca65a..3523d1150cfc 100644 > --- a/arch/x86/include/asm/page_32.h > +++ b/arch/x86/include/asm/page_32.h > @@ -22,6 +22,12 @@ static inline void clear_page(void *page) > memset(page, 0, PAGE_SIZE); > } > > +static inline void clear_pages(void *page, unsigned int nsubpages) > +{ > + for (int i = 0; i < nsubpages; i++) > + clear_page(page + i * PAGE_SIZE); cond_resched() ? > +} > + > static inline void copy_page(void *to, void *from) > { > memcpy(to, from, PAGE_SIZE);