handle_percpu_devid_irq(9)
π 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 thestruct 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_idis 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 β
irq_set_chip(9)irq_set_irq_type(9)irq_set_handler_data(9)irq_set_msi_desc_off(9)irq_set_msi_desc(9)irq_set_chip_data(9)irq_disable(9)
the handler crew (her sisters fr fr) π₯
handle_nested_irq(9)handle_simple_irq(9)handle_untracked_irq(9)handle_level_irq(9)handle_fasteoi_irq(9)handle_fasteoi_nmi(9)handle_edge_irq(9)handle_percpu_irq(9)irq_cpu_online(9)irq_cpu_offline(9)handle_fasteoi_ack_irq(9)handle_fasteoi_mask_irq(9)
the irq_chip parent squad π
irq_chip_set_parent_state(9)irq_chip_get_parent_state(9)irq_chip_shutdown_parent(9)irq_chip_startup_parent(9)irq_chip_enable_parent(9)irq_chip_disable_parent(9)irq_chip_ack_parent(9)irq_chip_mask_parent(9)irq_chip_mask_ack_parent(9)irq_chip_unmask_parent(9)irq_chip_eoi_parent(9)irq_chip_set_affinity_parent(9)irq_chip_set_type_parent(9)irq_chip_retrigger_hierarchy(9)irq_chip_set_vcpu_affinity_parent(9)irq_chip_set_wake_parent(9)irq_chip_request_resources_parent(9)irq_chip_release_resources_parent(9)
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms