[RFC 06/10] Reclaim memory from blocked kernel stacks

Peter Zijlstra peterz at infradead.org
Mon Aug 31 00:07:33 PDT 2026


On Mon, Aug 31, 2026 at 08:55:09AM +0200, Sebastian Andrzej Siewior wrote:
> (stack tracer running)
>         Depth    Size   Location    (60 entries)
>         -----    ----   --------
>   0)     8176      48   __css_rstat_updated+0x9/0x150
>   1)     8128       8   __cgroup_account_cputime+0x2f/0x50
>   2)     8120      48   update_se+0x10c/0x1b0
>   3)     8072      48   update_curr+0x31/0x180
>   4)     8024      56   put_prev_entity+0x153/0x1f0
>   5)     7968     136   pick_next_task_fair+0x684/0x8e0
>   6)     7832     120   __schedule+0x1ca/0x1130
>   7)     7712       8   preempt_schedule_irq+0x38/0x60
>   8)     7704      72   irqentry_exit+0x148/0x6b0
>   9)     7632     136   asm_sysvec_apic_timer_interrupt+0x1a/0x20
>  10)     7496     240   HUF_compress1X_usingCTable_internal_bmi2+0x12d2/0x1c40

> 
> Does this stack tracer distinguish between the kernel-stack and
> IRQ-stack? I would expect asm_sysvec_apic_timer_interrupt() on the
> IRQ-stack and not adding weight to the kernel stack.

This is the return from interrupt path, irqentry_exit() is right after
we switch back from the IRQ stack and are back on the task stack. We
have to be, in order to schedule the task and all that.



More information about the linux-arm-kernel mailing list