mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
mm/page_alloc: treat RT tasks similar to __GFP_HIGH
[ Upstream commit c988dcbecf ]
RT tasks are allowed to dip below the min reserve but ALLOC_HARDER is
typically combined with ALLOC_MIN_RESERVE so RT tasks are a little
unusual. While there is some justification for allowing RT tasks access
to memory reserves, there is a strong chance that a RT task that is also
under memory pressure is at risk of missing deadlines anyway. Relax how
much reserves an RT task can access by treating it the same as __GFP_HIGH
allocations.
Note that in a future kernel release that the RT special casing will be
removed. Hard realtime tasks should be locking down resources in advance
and ensuring enough memory is available. Even a soft-realtime task like
audio or video live decoding which cannot jitter should be allocating both
memory and any disk space required up-front before the recording starts
instead of relying on reserves. At best, reserve access will only delay
the problem by a very short interval.
Link: https://lkml.kernel.org/r/20230113111217.14134-3-mgorman@techsingularity.net
Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: NeilBrown <neilb@suse.de>
Cc: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Stable-dep-of: 281dd25c1a01 ("mm/page_alloc: let GFP_ATOMIC order-0 allocs access highatomic reserves")
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
241398329a
commit
0d968ced73
@@ -4854,7 +4854,7 @@ gfp_to_alloc_flags(gfp_t gfp_mask)
|
||||
*/
|
||||
alloc_flags &= ~ALLOC_CPUSET;
|
||||
} else if (unlikely(rt_task(current)) && in_task())
|
||||
alloc_flags |= ALLOC_HARDER;
|
||||
alloc_flags |= ALLOC_MIN_RESERVE;
|
||||
|
||||
alloc_flags = gfp_to_alloc_flags_cma(gfp_mask, alloc_flags);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user