Re: [PATCH linux-next] mm/huge_memory: mark racy access on huge_anon_orders_always

From: David Hildenbrand
Date: Mon May 13 2024 - 12:05:54 EST


On 11.05.24 08:44, xu.xin16@xxxxxxxxxx wrote:
From: Ran Xiaokai <ran.xiaokai@xxxxxxxxxx>

huge_anon_orders_always and huge_anon_orders_always are accessed

"huge_anon_orders_always" mentioned twice.

lockless, it is better to use the READ_ONCE() wrapper.
This is not fixing any visible bug, hopefully this can cease some
KCSAN complains in the future.
Also do that for huge_anon_orders_madvise.

Signed-off-by: Ran Xiaokai <ran.xiaokai@xxxxxxxxxx>
---
include/linux/huge_mm.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h
index de0c89105076..6573430ea600 100644
--- a/include/linux/huge_mm.h
+++ b/include/linux/huge_mm.h
@@ -122,8 +122,8 @@ static inline bool hugepage_flags_enabled(void)
* So we don't need to look at huge_anon_orders_inherit.
*/
return hugepage_global_enabled() ||
- huge_anon_orders_always ||
- huge_anon_orders_madvise;
+ READ_ONCE(huge_anon_orders_always) ||
+ READ_ONCE(huge_anon_orders_madvise);

Don't mess up the alignment please.

}

static inline int highest_order(unsigned long orders)

Acked-by: David Hildenbrand <david@xxxxxxxxxx>

--
Cheers,

David / dhildenb