Thread (6 messages) read the whole thread 6 messages, 3 authors, 2023-03-09

Re: [PATCH v3 1/2] Revert "kasan: drop skip_kasan_poison variable in free_pages_prepare"

From: Peter Collingbourne <hidden>
Date: 2023-03-09 21:36:17
Also in: linux-mm, stable

On Wed, Mar 8, 2023 at 5:46 PM Andrew Morton [off-list ref] wrote:
On Tue, 28 Feb 2023 16:35:44 -0800 Peter Collingbourne [off-list ref] wrote:
quoted
This reverts commit 487a32ec24be819e747af8c2ab0d5c515508086a.

The should_skip_kasan_poison() function reads the PG_skip_kasan_poison
flag from page->flags. However, this line of code in free_pages_prepare():

page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP;

clears most of page->flags, including PG_skip_kasan_poison, before calling
should_skip_kasan_poison(), which meant that it would never return true
as a result of the page flag being set. Therefore, fix the code to call
should_skip_kasan_poison() before clearing the flags, as we were doing
before the reverted patch.
What are the user visible effects of this change?
quoted
Cc: <redacted> # 6.1
Especially if it's cc:stable.
This fixes a measurable performance regression introduced in the
reverted commit, where munmap() takes longer than intended if HW tags
KASAN is supported and enabled at runtime. Without this patch, we see
a single-digit percentage performance regression in a particular
mmap()-heavy benchmark when enabling HW tags KASAN, and with the
patch, there is no statistically significant performance impact when
enabling HW tags KASAN.

That can be added as a paragraph to the end of my commit message, or I
can send a v4 if you prefer.

Peter

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help