Patch "rcu/tasks-trace: Handle new PF_IDLE semantics" 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

    rcu/tasks-trace: Handle new PF_IDLE semantics

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:
     rcu-tasks-trace-handle-new-pf_idle-semantics.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 37bac3338e531e5b238010f691ed5a9a7f436938
Author: Frederic Weisbecker <frederic@xxxxxxxxxx>
Date:   Fri Oct 27 16:40:49 2023 +0200

    rcu/tasks-trace: Handle new PF_IDLE semantics
    
    [ Upstream commit a80712b9cc7e57830260ec5e1feb9cdb59e1da2f ]
    
    The commit:
    
            cff9b2332ab7 ("kernel/sched: Modify initial boot task idle setup")
    
    has changed the semantics of what is to be considered an idle task in
    such a way that the idle task of an offline CPU may not carry the
    PF_IDLE flag anymore.
    
    However RCU-tasks-trace tests the opposite assertion, still assuming
    that idle tasks carry the PF_IDLE flag during their whole lifecycle.
    
    Remove this assumption to avoid spurious warnings but keep the initial
    test verifying that the idle task is the current task on any offline
    CPU.
    
    Reported-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>
    Fixes: cff9b2332ab7 ("kernel/sched: Modify initial boot task idle setup")
    Suggested-by: Joel Fernandes <joel@xxxxxxxxxxxxxxxxx>
    Suggested-by: Paul E . McKenney" <paulmck@xxxxxxxxxx>
    Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
    Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index b5dc1e5d78c83..65e000ca332cc 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -1548,7 +1548,7 @@ static int trc_inspect_reader(struct task_struct *t, void *bhp_in)
 	} else {
 		// The task is not running, so C-language access is safe.
 		nesting = t->trc_reader_nesting;
-		WARN_ON_ONCE(ofl && task_curr(t) && !is_idle_task(t));
+		WARN_ON_ONCE(ofl && task_curr(t) && (t != idle_task(task_cpu(t))));
 		if (IS_ENABLED(CONFIG_TASKS_TRACE_RCU_READ_MB) && ofl)
 			n_heavy_reader_ofl_updates++;
 	}




[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