All of lore.kernel.org
 help / color / mirror / Atom feed
From: "David Hildenbrand (Red Hat)" <david@kernel.org>
To: Ankur Arora <ankur.a.arora@oracle.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org
Cc: akpm@linux-foundation.org, bp@alien8.de,
	dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com,
	mjguzik@gmail.com, luto@kernel.org, peterz@infradead.org,
	acme@kernel.org, namhyung@kernel.org, tglx@linutronix.de,
	willy@infradead.org, raghavendra.kt@amd.com,
	boris.ostrovsky@oracle.com, konrad.wilk@oracle.com
Subject: Re: [PATCH v8 1/7] treewide: provide a generic clear_user_page() variant
Date: Tue, 18 Nov 2025 08:32:46 +0100	[thread overview]
Message-ID: <c96ff5f1-bc4b-462d-96ab-3aaa73ea334a@kernel.org> (raw)
In-Reply-To: <20251027202109.678022-2-ankur.a.arora@oracle.com>

On 27.10.25 21:21, Ankur Arora wrote:
> From: David Hildenbrand <david@redhat.com>
> 
> Let's drop all variants that effectively map to clear_page() and
> provide it in a generic variant instead.
> 
> We'll use __HAVE_ARCH_CLEAR_USER_PAGE, similar to
> __HAVE_ARCH_COPY_USER_HIGHPAGE, to indicate whether an architecture
> provides it's own variant.
> 
> We have to be a bit careful if an architecture provides a custom
> clear_user_highpage(), because then it's very likely that some special
> flushing magic is happening behind the scenes.
> 
> Maybe at some point these should be CONFIG_ options.
> 
> Note that for parisc, clear_page() and clear_user_page() map to
> clear_page_asm(), so we can just get rid of the custom clear_user_page()
> implementation. There is a clear_user_page_asm() function on parisc,
> that seems to be unused. Not sure what's up with that.
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>   arch/alpha/include/asm/page.h      |  1 -
>   arch/arc/include/asm/page.h        |  2 ++
>   arch/arm/include/asm/page-nommu.h  |  1 -
>   arch/arm64/include/asm/page.h      |  1 -
>   arch/csky/abiv1/inc/abi/page.h     |  1 +
>   arch/csky/abiv2/inc/abi/page.h     |  7 -------
>   arch/hexagon/include/asm/page.h    |  1 -
>   arch/loongarch/include/asm/page.h  |  1 -
>   arch/m68k/include/asm/page_mm.h    |  1 +
>   arch/m68k/include/asm/page_no.h    |  1 -
>   arch/microblaze/include/asm/page.h |  1 -
>   arch/mips/include/asm/page.h       |  1 +
>   arch/nios2/include/asm/page.h      |  1 +
>   arch/openrisc/include/asm/page.h   |  1 -
>   arch/parisc/include/asm/page.h     |  1 -
>   arch/powerpc/include/asm/page.h    |  1 +
>   arch/riscv/include/asm/page.h      |  1 -
>   arch/s390/include/asm/page.h       |  1 -
>   arch/sparc/include/asm/page_32.h   |  2 ++
>   arch/sparc/include/asm/page_64.h   |  1 +
>   arch/um/include/asm/page.h         |  1 -
>   arch/x86/include/asm/page.h        |  6 ------
>   arch/xtensa/include/asm/page.h     |  1 -
>   include/linux/mm.h                 | 22 ++++++++++++++++++++++
>   24 files changed, 32 insertions(+), 26 deletions(-)
> 
> diff --git a/arch/alpha/include/asm/page.h b/arch/alpha/include/asm/page.h
> index 5ec4c77e432e..d71ef845deca 100644
> --- a/arch/alpha/include/asm/page.h
> +++ b/arch/alpha/include/asm/page.h
> @@ -11,7 +11,6 @@
>   #define STRICT_MM_TYPECHECKS
>   
>   extern void clear_page(void *page);
> -#define clear_user_page(page, vaddr, pg)	clear_page(page)
>   
>   #define vma_alloc_zeroed_movable_folio(vma, vaddr) \
>   	vma_alloc_folio(GFP_HIGHUSER_MOVABLE | __GFP_ZERO, 0, vma, vaddr)
> diff --git a/arch/arc/include/asm/page.h b/arch/arc/include/asm/page.h
> index 9720fe6b2c24..cb4d69b473e6 100644
> --- a/arch/arc/include/asm/page.h
> +++ b/arch/arc/include/asm/page.h
> @@ -32,6 +32,8 @@ struct page;
>   
>   void copy_user_highpage(struct page *to, struct page *from,
>   			unsigned long u_vaddr, struct vm_area_struct *vma);
> +
> +#define __HAVE_ARCH_CLEAR_USER_PAGE

After talking to Linus, the preferred way here is using

#define clear_user_page clear_user_page

Can you adjust the patch (+description) to avoid 
__HAVE_ARCH_CLEAR_USER_PAGE? If you want me to do it, just let me know.

-- 
Cheers

David


  reply	other threads:[~2025-11-18  7:32 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-27 20:21 [PATCH v8 0/7] mm: folio_zero_user: clear contiguous pages Ankur Arora
2025-10-27 20:21 ` [PATCH v8 1/7] treewide: provide a generic clear_user_page() variant Ankur Arora
2025-11-18  7:32   ` David Hildenbrand (Red Hat) [this message]
2025-10-27 20:21 ` [PATCH v8 2/7] mm: introduce clear_pages() and clear_user_pages() Ankur Arora
2025-11-07  8:47   ` David Hildenbrand (Red Hat)
2025-11-18  7:34   ` David Hildenbrand (Red Hat)
2025-11-18 19:23     ` Ankur Arora
2025-10-27 20:21 ` [PATCH v8 3/7] mm/highmem: introduce clear_user_highpages() Ankur Arora
2025-11-07  8:48   ` David Hildenbrand (Red Hat)
2025-11-10  7:20     ` Ankur Arora
2025-10-27 20:21 ` [PATCH v8 4/7] x86/mm: Simplify clear_page_* Ankur Arora
2025-10-28 13:36   ` Borislav Petkov
2025-10-29 23:26     ` Ankur Arora
2025-10-30  0:17       ` Borislav Petkov
2025-10-30  5:21         ` Ankur Arora
2025-10-27 20:21 ` [PATCH v8 5/7] x86/clear_page: Introduce clear_pages() Ankur Arora
2025-10-28 13:56   ` Borislav Petkov
2025-10-28 18:51     ` Ankur Arora
2025-10-29 22:57       ` Borislav Petkov
2025-10-29 23:31         ` Ankur Arora
2025-10-27 20:21 ` [PATCH v8 6/7] mm, folio_zero_user: support clearing page ranges Ankur Arora
2025-11-07  8:59   ` David Hildenbrand (Red Hat)
2025-11-10  7:20     ` Ankur Arora
2025-11-10  8:57       ` David Hildenbrand (Red Hat)
2025-11-11  6:24         ` Ankur Arora
2025-10-27 20:21 ` [PATCH v8 7/7] mm: folio_zero_user: cache neighbouring pages Ankur Arora
2025-10-27 21:33 ` [PATCH v8 0/7] mm: folio_zero_user: clear contiguous pages Andrew Morton
2025-10-28 17:22   ` Ankur Arora
2025-11-07  5:33     ` Ankur Arora
2025-11-07  8:59       ` David Hildenbrand (Red Hat)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c96ff5f1-bc4b-462d-96ab-3aaa73ea334a@kernel.org \
    --to=david@kernel.org \
    --cc=acme@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=ankur.a.arora@oracle.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=mjguzik@gmail.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=raghavendra.kt@amd.com \
    --cc=tglx@linutronix.de \
    --cc=willy@infradead.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.