handle_percpu_devid_irq(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… handle_percpu_devid_irq β€” from the Kernel API Manual, bestie

Okay so this one is from the Kernel API Manual and it is lowkey the per-CPU girlie of interrupt handlers. If you've ever been like "wait, which CPU's device id even is this??" β€” she heard you. Let's get into it πŸŽ€


✨ NAME ✨

handle_percpu_devid_irq β€” per CPU local irq handler with per cpu dev ids πŸ¦‹


🌸 SYNOPSIS 🌸

void handle_percpu_devid_irq (struct irq_desc *desc );

πŸ’œ ARGUMENTS πŸ’œ

  • desc β€” the interrupt description structure for this irq. That's the whole vibe: hand her the struct irq_desc * and she takes it from there 🫢

πŸ”₯ DESCRIPTION πŸ”₯

So background lore: per CPU interrupts on SMP machines that have no locking requirements. She's basically the same as handle_percpu_irq (the one "above" in the docs), but with these extras, no cap:

  • action->percpu_dev_id is a pointer to percpu variables which contain the real device id for the cpu on which this handler is called. Like, the id is per-CPU, it's giving "everyone gets their own" energy πŸ‘‘
  • She may be used for NMI interrupt lines, and so she may be called in IRQ or NMI context. Both. Either. She's flexible like that πŸ’…
⚠️ Bestie, read that second bullet again. NMI context is the serious one β€” this handler can run in NMI context, so don't go doing anything unserious in there. That's not me being dramatic, that's literally the contract.

🌈 SEE ALSO 🌈

Kernel file ./kernel/irq/chip.c β€” that's where the source lives, go say hi 🧚

the irq setup girlies ⭐

the handler crew (her sisters fr fr) πŸ”₯

the irq_chip parent squad πŸ‘‘

and the rest of the family πŸ“


That's the whole page, bestie, nothing skipped, everything kept πŸ’–

Sign-off time: this cutie comes from ./kernel/irq, dated October 2026. Go forth and handle those per-CPU interrupts responsibly, ily πŸŽ€βœ¨

πŸ“¦ where this page comes from