Patch "sched/deadline: Fix warning in migrate_enable for boosted tasks" 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/deadline: Fix warning in migrate_enable for boosted tasks

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-deadline-fix-warning-in-migrate_enable-for-boo.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 f20a5fb26b13eb73e6ca14d5e7afa61b92fd129d
Author: Wander Lairson Costa <wander@xxxxxxxxxx>
Date:   Wed Jul 24 11:22:47 2024 -0300

    sched/deadline: Fix warning in migrate_enable for boosted tasks
    
    [ Upstream commit 0664e2c311b9fa43b33e3e81429cd0c2d7f9c638 ]
    
    When running the following command:
    
    while true; do
        stress-ng --cyclic 30 --timeout 30s --minimize --quiet
    done
    
    a warning is eventually triggered:
    
    WARNING: CPU: 43 PID: 2848 at kernel/sched/deadline.c:794
    setup_new_dl_entity+0x13e/0x180
    ...
    Call Trace:
     <TASK>
     ? show_trace_log_lvl+0x1c4/0x2df
     ? enqueue_dl_entity+0x631/0x6e0
     ? setup_new_dl_entity+0x13e/0x180
     ? __warn+0x7e/0xd0
     ? report_bug+0x11a/0x1a0
     ? handle_bug+0x3c/0x70
     ? exc_invalid_op+0x14/0x70
     ? asm_exc_invalid_op+0x16/0x20
     enqueue_dl_entity+0x631/0x6e0
     enqueue_task_dl+0x7d/0x120
     __do_set_cpus_allowed+0xe3/0x280
     __set_cpus_allowed_ptr_locked+0x140/0x1d0
     __set_cpus_allowed_ptr+0x54/0xa0
     migrate_enable+0x7e/0x150
     rt_spin_unlock+0x1c/0x90
     group_send_sig_info+0xf7/0x1a0
     ? kill_pid_info+0x1f/0x1d0
     kill_pid_info+0x78/0x1d0
     kill_proc_info+0x5b/0x110
     __x64_sys_kill+0x93/0xc0
     do_syscall_64+0x5c/0xf0
     entry_SYSCALL_64_after_hwframe+0x6e/0x76
     RIP: 0033:0x7f0dab31f92b
    
    This warning occurs because set_cpus_allowed dequeues and enqueues tasks
    with the ENQUEUE_RESTORE flag set. If the task is boosted, the warning
    is triggered. A boosted task already had its parameters set by
    rt_mutex_setprio, and a new call to setup_new_dl_entity is unnecessary,
    hence the WARN_ON call.
    
    Check if we are requeueing a boosted task and avoid calling
    setup_new_dl_entity if that's the case.
    
    Fixes: 295d6d5e3736 ("sched/deadline: Fix switching to -deadline")
    Signed-off-by: Wander Lairson Costa <wander@xxxxxxxxxx>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
    Acked-by: Juri Lelli <juri.lelli@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20240724142253.27145-2-wander@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index aacd3bf9fa4e7..b9e99bc3b1cf2 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -1674,6 +1674,7 @@ enqueue_dl_entity(struct sched_dl_entity *dl_se, int flags)
 	} else if (flags & ENQUEUE_REPLENISH) {
 		replenish_dl_entity(dl_se);
 	} else if ((flags & ENQUEUE_RESTORE) &&
+		  !is_dl_boosted(dl_se) &&
 		  dl_time_before(dl_se->deadline,
 				 rq_clock(rq_of_dl_rq(dl_rq_of_se(dl_se))))) {
 		setup_new_dl_entity(dl_se);




[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