Re: [PATCH] arm64: uprobes: Optimize cache flushes for xol slot

From: Oleg Nesterov
Date: Thu Sep 19 2024 - 10:18:59 EST


On 09/19, Liao Chang wrote:
>
> --- a/arch/arm64/kernel/probes/uprobes.c
> +++ b/arch/arm64/kernel/probes/uprobes.c
> @@ -17,12 +17,16 @@ void arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr,
> void *xol_page_kaddr = kmap_atomic(page);
> void *dst = xol_page_kaddr + (vaddr & ~PAGE_MASK);
>
> + if (!memcmp(dst, src, len))
> + goto done;

can't really comment, I know nothing about arm64...

but don't we need to change __create_xol_area()

- area->page = alloc_page(GFP_HIGHUSER);
+ area->page = alloc_page(GFP_HIGHUSER | __GFP_ZERO);

to avoid the false positives?

Oleg.