mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 04:47:05 +00:00
mm/page_alloc: treat RT tasks similar to __GFP_HIGH
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>
This commit is contained in:
parent
524c48072e
commit
c988dcbecf
1 changed files with 1 additions and 1 deletions
|
@ -4865,7 +4865,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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue