Re: ~90s reboot delay with v6.19 and PREEMPT_RT
From: Steven Rostedt
Date: Thu Feb 26 2026 - 12:05:59 EST
On Thu, 26 Feb 2026 14:24:34 +0100
Bert Karwatzki <spasswolf@xxxxxx> wrote:
> I think I've found the reason for the stall. I was looking at commit 9311e6c29b34
> ("cgroup: Fix sleeping from invalid context warning on PREEMPT_RT"),
> and noticed this:
>
> +static void __init cgroup_rt_init(void)
> +{
> + int cpu;
> +
> + for_each_possible_cpu(cpu) {
> + init_llist_head(per_cpu_ptr(&cgrp_dead_tasks, cpu));
> + per_cpu(cgrp_dead_tasks_iwork, cpu) =
> + IRQ_WORK_INIT_LAZY(cgrp_dead_tasks_iwork_fn);
> + }
>
> IRQ_WORK_INIT_LAZY() expands to __IRQ_WORK_INIT(_func, IRQ_WORK_LAZY):
> (in include/linux/irq_work.h)
> IRQ_WORK_LAZY is declare in include/linux/smp-types.h:
> IRQ_WORK_LAZY = 0x04, /* No IPI, wait for tick */
>
> The "wait for tick" gave me an idea as I'm also using
> CONFIG_NO_HZ_FULL=y
If you disable NO_HZ_FULL, does the problem also go away?
I wonder if you add irq events and trace a good and bad boot to see if it
definitely shows the delayed tick being an issue.
echo 1 > /sys/kernel/tracing/instances/boot_map/events/irq/enable
-- Steve