Patch "sched/numa: Move up the access pid reset logic" has been added to the 6.6-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

    sched/numa: Move up the access pid reset logic

to the 6.6-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:
     sched-numa-move-up-the-access-pid-reset-logic.patch
and it can be found in the queue-6.6 subdirectory.

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



commit 59f08aaa4f550d687dea3de6884abdc7c8e921c9
Author: Raghavendra K T <raghavendra.kt@xxxxxxx>
Date:   Tue Oct 10 09:31:41 2023 +0100

    sched/numa: Move up the access pid reset logic
    
    [ Upstream commit 2e2675db1906ac04809f5399bf1f5e30d56a6f3e ]
    
    Recent NUMA hinting faulting activity is reset approximately every
    VMA_PID_RESET_PERIOD milliseconds. However, if the current task has not
    accessed a VMA then the reset check is missed and the reset is potentially
    deferred forever. Check if the PID activity information should be reset
    before checking if the current task recently trapped a NUMA hinting fault.
    
    [ mgorman@xxxxxxxxxxxxxxxxxxx: Rewrite changelog ]
    
    Suggested-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Raghavendra K T <raghavendra.kt@xxxxxxx>
    Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20231010083143.19593-5-mgorman@xxxxxxxxxxxxxxxxxxx
    Stable-dep-of: f22cde4371f3 ("sched/numa: Fix the vma scan starving issue")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 7c5f6e94b3cdc..07363b73ccdcc 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -3335,16 +3335,7 @@ static void task_numa_work(struct callback_head *work)
 			continue;
 		}
 
-		/* Do not scan the VMA if task has not accessed */
-		if (!vma_is_accessed(vma)) {
-			trace_sched_skip_vma_numa(mm, vma, NUMAB_SKIP_PID_INACTIVE);
-			continue;
-		}
-
-		/*
-		 * RESET access PIDs regularly for old VMAs. Resetting after checking
-		 * vma for recent access to avoid clearing PID info before access..
-		 */
+		/* RESET access PIDs regularly for old VMAs. */
 		if (mm->numa_scan_seq &&
 				time_after(jiffies, vma->numab_state->pids_active_reset)) {
 			vma->numab_state->pids_active_reset = vma->numab_state->pids_active_reset +
@@ -3353,6 +3344,12 @@ static void task_numa_work(struct callback_head *work)
 			vma->numab_state->pids_active[1] = 0;
 		}
 
+		/* Do not scan the VMA if task has not accessed */
+		if (!vma_is_accessed(vma)) {
+			trace_sched_skip_vma_numa(mm, vma, NUMAB_SKIP_PID_INACTIVE);
+			continue;
+		}
+
 		do {
 			start = max(start, vma->vm_start);
 			end = ALIGN(start + (pages << PAGE_SHIFT), HPAGE_SIZE);




[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