[RFC 0/7] vmallloc and non-blocking GFPs

Uladzislau Rezki (Sony)
2025-07-04T15:25:44Z

This is a small series tends to support non-blocking GFP flags
such as GFP_ATOMIC or GFP_NOWAIT. This is a draft version and
it should be improved or changed.

For example there are still hard-coded GFP flags in the:
kmsan_vmap_pages_range_noflush(addr, end, prot, pages, page_shift);

if the kernel is build with KMSAN support. There are other parts which
should be fixed. But i tested this series with a fresh non-block-alloc
test together with CONFIG_DEBUG_ATOMIC_SLEEP=y to track sleep in atomic
issues.

Based on:

VERSION = 6
PATCHLEVEL = 16
SUBLEVEL = 0
EXTRAVERSION = -rc1

Uladzislau Rezki (Sony) (7):
lib/test_vmalloc: Add non-block-alloc-test case
mm/vmalloc: Support non-blocking GFP flags in alloc_vmap_area()
mm/vmalloc: Avoid cond_resched() when blocking is not permitted
mm/kasan, mm/vmalloc: Respect GFP flags in kasan_populate_vmalloc()
mm/vmalloc: Defer freeing partly initialized vm_struct
mm/vmalloc: Support non-blocking GFP flags in __vmalloc_area_node()
mm: Drop __GFP_DIRECT_RECLAIM flag if PF_MEMALLOC is set

include/linux/kasan.h | 6 +--
include/linux/sched/mm.h | 7 ++-
lib/test_vmalloc.c | 27 ++++++++++++
mm/kasan/shadow.c | 22 +++++++---
mm/vmalloc.c | 93 +++++++++++++++++++++++++++++++++-------
5 files changed, 129 insertions(+), 26 deletions(-)

--
2.39.5