Re: [PATCH] mm: avoid zeroing user movable page twice with init_on_alloc=1

From: Matthew Wilcox
Date: Wed Dec 04 2024 - 11:39:00 EST


On Wed, Dec 04, 2024 at 11:16:51AM -0500, Zi Yan wrote:
> > So maybe the clearing done as part of page allocator isn't enough here.
> >
> Basically, mips needs to flush data cache if kmap address is aliased to

People use "aliased" in contronym ways. Do you mean "has a
non-congruent alias" or "has a congruent alias"?

> userspace address. This means when mips has THP on, the patch below
> is not enough to fix the issue.
>
> In post_alloc_hook(), it does not make sense to pass userspace address
> in to determine whether to flush dcache or not.
>
> One way to fix it is to add something like arch_userpage_post_alloc()
> to flush dcache if kmap address is aliased to userspace address.
> But my questions are that
> 1) if kmap address will always be the same for two separate kmap_local() calls,

No. It just takes the next address in the stack.

> 2) how much overheads the additional kmap_local() and kunmap_local() have.

That's going to be a per-arch question ...