Skip to content

Commit 06e0ae9

Browse files
Sebastian Andrzej SiewiorKAGA-KOKO
authored andcommitted
debugobjects: Allow to refill the pool before SYSTEM_SCHEDULING
The pool of free objects is refilled on several occasions such as object initialisation. On PREEMPT_RT refilling is limited to preemptible sections due to sleeping locks used by the memory allocator. The system boots with disabled interrupts so the pool can not be refilled. If too many objects are initialized and the pool gets empty then debugobjects disables itself. Refiling can also happen early in the boot with disabled interrupts as long as the scheduler is not operational. If the scheduler can not preempt a task then a sleeping lock can not be contended. Allow to additionally refill the pool if the scheduler is not operational. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://patch.msgid.link/20251127153652.291697-2-bigeasy@linutronix.de
1 parent ac3fd01 commit 06e0ae9

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

lib/debugobjects.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -714,7 +714,7 @@ static void debug_objects_fill_pool(void)
714714
* raw_spinlock_t are basically the same type and this lock-type
715715
* inversion works just fine.
716716
*/
717-
if (!IS_ENABLED(CONFIG_PREEMPT_RT) || preemptible()) {
717+
if (!IS_ENABLED(CONFIG_PREEMPT_RT) || preemptible() || system_state < SYSTEM_SCHEDULING) {
718718
/*
719719
* Annotate away the spinlock_t inside raw_spinlock_t warning
720720
* by temporarily raising the wait-type to WAIT_SLEEP, matching

0 commit comments

Comments
 (0)