zephyr/kernel
Andy Ross f2280d119d kernel/sched: Don't touch deadline values on queued threads
k_thread_deadline_set() would modify the thread's deadline and then,
if it was in the run queue, requeue it to put it at the right spot.
Sounds right, right?

It's wrong.  The deadline field is part of the thread priority, so
this results in a mis-ordered list.  For dlist backends, that's benign
as the removal works anyway, but if CONFIG_SCHED_SCALABLE=y we've now
broken the sorting order of an in-tree item and corrupted the rbtree!

Fixes #69935

Signed-off-by: Andy Ross <andyross@google.com>
2024-03-11 15:42:26 +01:00
..
include kernel: Remove unused z_pend_curr_irqlock() 2024-03-07 11:51:06 -05:00
paging kernel: mm: only include demand_paging.h if needed 2023-11-23 10:01:45 +01:00
atomic_c.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
banner.c kernel: banner: Allow for customising version 2023-08-21 10:09:46 +02:00
busy_wait.c kernel: Use k_us_to_cyc_ceil32 in k_busy_wait 2023-12-05 09:24:28 +01:00
CMakeLists.txt kernel: move float operations out of thread.c 2024-03-06 19:27:28 -05:00
compiler_stack_protect.c kernel: canaries: Allow using TLS to store it 2023-08-08 19:08:04 -04:00
condvar.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
cpu_mask.c kernel: rename scheduler spinlock variable and make it private 2024-03-06 19:27:28 -05:00
device.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
dynamic.c kernel: dynamic: reduce verbosity in degenerate case 2024-01-26 06:50:11 -05:00
dynamic_disabled.c kernel: dynamic: declare dynamic stubs when disabled 2023-07-24 12:59:43 -04:00
errno.c kernel: move syscall_handler.h to internal include directory 2023-11-03 11:46:52 +01:00
events.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
fatal.c kernel: fatal: remove LCOV exclusion 2023-12-21 09:18:44 +01:00
float.c kernel: move float operations out of thread.c 2024-03-06 19:27:28 -05:00
futex.c syscall: rename Z_SYSCALL_ to K_SYSCALL_ 2023-11-03 11:46:52 +01:00
idle.c kernel: fix spelling errors 2024-02-25 20:53:37 -05:00
init.c kernel: move z_init_static_threads to where it is being used 2024-03-06 19:27:28 -05:00
irq_offload.c kernel: split irq_offload ccode into own file 2024-03-06 19:27:28 -05:00
Kconfig kernel: split thread monitor 2024-03-06 19:27:28 -05:00
Kconfig.device kernel: reorg Kconfigs and split them 2024-03-06 19:27:28 -05:00
Kconfig.obj_core kernel: reorg Kconfigs and split them 2024-03-06 19:27:28 -05:00
Kconfig.smp kernel: reorg Kconfigs and split them 2024-03-06 19:27:28 -05:00
Kconfig.vm mm: introduce CONFIG_KERNEL_VM_USE_CUSTOM_MEM_RANGE_CHECK 2023-10-20 15:08:34 +02:00
kheap.c kernel: rename h -> heap 2024-03-06 19:27:28 -05:00
mailbox.c kernel: fix spelling errors 2024-02-25 20:53:37 -05:00
main_weak.c kernel: Switch main return type from void to int 2023-04-14 07:49:41 +09:00
mem_domain.c kernel: rename scheduler spinlock variable and make it private 2024-03-06 19:27:28 -05:00
mem_slab.c kernel: object: rename z_object_init to k_object_init 2023-11-03 11:46:52 +01:00
mempool.c kernel: Introduce a way to specify minimum system heap size 2023-12-20 11:01:42 +01:00
mmu.c kernel: mmu: no need to expose z_free_page_count 2023-12-12 18:46:21 +00:00
msg_q.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
mutex.c kernel: sched: z_set_prio -> z_thread_prio_set 2024-03-06 19:27:28 -05:00
obj_core.c kernel: Integrate object core statistics 2023-09-30 08:04:14 +03:00
pipes.c kernel: Apply const to k_pipe_put() parameter 2023-12-15 14:51:35 -05:00
poll.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
priority_queues.c kernel: move priority queue handling to own file/header 2024-03-02 15:06:45 +01:00
queue.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
sched.c kernel/sched: Don't touch deadline values on queued threads 2024-03-11 15:42:26 +01:00
sem.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
smp.c smp: fix a race when starting / resuming multiple CPUs 2024-02-16 07:27:04 +01:00
spinlock_validate.c kernel: move spinlock validation to own file 2024-03-06 19:27:28 -05:00
stack.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
system_work_q.c init: remove the need for a dummy device pointer in SYS_INIT functions 2023-04-12 14:28:07 +00:00
thread.c kernel: thread: use consistent thread parameter 2024-03-06 19:27:28 -05:00
thread_monitor.c kernel: split thread monitor 2024-03-06 19:27:28 -05:00
timeout.c kernel: timeout: optimize z_timeout_expires() 2024-03-08 18:05:10 +01:00
timer.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
usage.c kernel: Integrate object core statistics 2023-09-30 08:04:14 +03:00
userspace.c kernel/userspace: Fix dynamic thread stack allocation at userspace 2024-03-06 14:17:53 +01:00
userspace_handler.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
version.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
work.c sched: finalize_cancel_locked can early return 2024-03-07 19:40:51 -05:00
xip.c kernel: canaries: Allow using TLS to store it 2023-08-08 19:08:04 -04:00