diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-03-01 13:32:32 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-03-01 13:32:32 -0800 |
| commit | e2bd1b136926f1ff65d4e0f87ac49b9a4621238c (patch) | |
| tree | 976051edd2999fbdb2920cb9c3ed933e9e743cc5 /Documentation/userspace-api/media/rc/rc-intro.rst | |
| parent | 5920da4455a393490309d6483636b9749ec785fd (diff) | |
| parent | fd3634312a04f336dcbfb481060219f0cd320738 (diff) | |
Merge tag 'core-debugobjects-2026-03-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tipHEADmaster
Pull debugobjects fix from Thomas Gleixner:
"A single fix for debugobjects.
The deferred page initialization prevents debug objects from
allocating slab pages until the initialization is complete. That
causes depletion of the pool and disabling of debugobjects.
The reason is that debugobjects uses __GFP_HIGH for allocations as it
might be invoked from arbitrary contexts. When PREEMPT_COUNT is
disabled there is no way to know whether the context is safe to set
__GFP_KSWAPD_RECLAIM.
This worked until v6.18. Since then allocations w/o a reclaim flag
cause new_slab() to end up in alloc_frozen_pages_nolock_noprof(),
which returns early when deferred page initialization has not yet
completed.
Work around that when PREEMPT_COUNT is enabled as the preempt counter
allows debugobjects to add __GFP_KSWAPD_RECLAIM to the GFP flags when
the context is preemtible. When PREEMPT_COUNT is disabled the context
is unknown and the reclaim bit can't be set because the caller might
hold locks which might deadlock in the allocator.
That makes debugobjects depend on PREEMPT_COUNT ||
!DEFERRED_STRUCT_PAGE_INIT, which limits the coverage slightly, but
keeps it functional for most cases"
* tag 'core-debugobjects-2026-03-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
debugobject: Make it work with deferred page initialization - again
Diffstat (limited to 'Documentation/userspace-api/media/rc/rc-intro.rst')
0 files changed, 0 insertions, 0 deletions
