Patch "mm/page_alloc: treat RT tasks similar to __GFP_HIGH" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    mm/page_alloc: treat RT tasks similar to __GFP_HIGH

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     mm-page_alloc-treat-rt-tasks-similar-to-__gfp_high.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit a0507ad4ef8d62903a10c963660969828cc572d9
Author: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Date:   Fri Jan 13 11:12:13 2023 +0000

    mm/page_alloc: treat RT tasks similar to __GFP_HIGH
    
    [ Upstream commit c988dcbecf3fd5430921eaa3fe9054754f76d185 ]
    
    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@xxxxxxxxxxxxxxxxxxx
    Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
    Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
    Acked-by: Michal Hocko <mhocko@xxxxxxxx>
    Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx>
    Cc: NeilBrown <neilb@xxxxxxx>
    Cc: Thierry Reding <thierry.reding@xxxxxxxxx>
    Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
    Stable-dep-of: 281dd25c1a01 ("mm/page_alloc: let GFP_ATOMIC order-0 allocs access highatomic reserves")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 4e9e9cb98f336..72835cf4034bc 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -4725,7 +4725,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);
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux