tick_nohz_irq_exit(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… tick_nohz_irq_exit(9) β€” like, the Kernel API Manual, bestie ✨

okay so real talk: this is a page straight out of the Kernel API Manual, and it's about the function tick_nohz_irq_exit β€” the little "hey, we just left an IRQ" heads-up for the tick. short page, big vibes, let's go πŸŽ€


🌸 NAME 🌸

tick_nohz_irq_exit β€” notify the tick about IRQ exit. that's it, that's the whole job πŸ’–


✨ SYNOPSIS ✨

void tick_nohz_irq_exit (void );

🫢 ARGUMENTS 🫢

  • void β€” no arguments. none. zero. the function said "i need nothing from you" and honestly? iconic πŸ™ˆ

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the situation, bestie. a timer might have been added, modified, or deleted β€” and that could've happened either because of the current IRQ itself, or because of some other place that's using this IRQ as a notification. also possible: this IRQ updated the RCU callback list. point is, any of these events might mean the next tick needs a whole re-evaluation. and what happens next depends on the context, so let's break it down πŸ‘‡

  1. if the CPU is idle and there's no resched pending, then you just proceed with idle time accounting. easy. the next tick gets re-evaluated on the next idle loop iteration. no drama, no cap πŸ’…
  2. if the CPU is nohz_full:

2.1) if there's any tick dependency, restart the tick if it's stopped. like, wake it back up, it's needed πŸ”₯

2.2) if there's no tick dependency, then (re-)evaluate the next tick and stop/update it accordingly. read that again: stop/update it accordingly β€” that's the move ✨


πŸ‘‘ SEE ALSO πŸ‘‘

kernel file ./kernel/time/tick-sched.c, plus the whole squad:


ngl this one's short but it matters β€” miss the re-evaluation and the tick just sits there looking silly 😭 handle it, main character 🧚

aaand that's the page, bestie πŸ“ it lives in ./kernel/time, dated October 2026, and yes β€” the header up top said tick_nohz_irq_exit(9) and the footer said tick_nohz_irq_exit(9) again, because it ate and left no crumbs πŸ’œβ­πŸŒˆ

πŸ“¦ where this page comes from