vgic_v3_dispatch_sgi(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ vgic_v3_dispatch_sgi ✨

okay so bestie, welcome to the vgic_v3_dispatch_sgi page β€” it's a kernel API manual page (section 9), and it's literally all about handling SGI requests from VCPUs. no cap, that's the whole NAME vibe: handle SGI requests from VCPUs. πŸŽ€


🌸 SYNOPSIS 🌸

void vgic_v3_dispatch_sgi (struct kvm_vcpu *vcpu , u64 reg , bool
allow_group1 );

that's the whole signature, bestie β€” it returns void, so like, it does the thing and dips. πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • vcpu β€” the VCPU that's out here requesting a SGI. main character energy, honestly. πŸ‘‘
  • reg β€” the value that got written into ICC_{ASGI1,SGI0,SGI1}R by that VCPU. so like, whatever they scribbled into the sysreg, this is it. πŸ“
  • allow_group1 β€” does the sysreg access allow generation of G1 SGIs? yes/no bestie, that's the whole question. πŸ™ˆ

πŸ’– DESCRIPTION πŸ’–

so with GICv3 (and ARE=1), CPUs trigger SGIs by writing to a system register. that write will trap in sys_regs.c and call this function β€” like, "hi, someone touched the sysreg, come deal with it." 😭

this ICC_SGI1R_EL1 register contains the upper three affinity levels of the target processors as well as a bitmask of 16 Aff0 CPUs. both. at once. iconic. ✨

now, the branching, because of course there's branching:

  • if the interrupt routing mode bit is not set, we iterate over the Aff0 bits and signal the VCPUs matching the provided Aff{3,2,1}. one by one, cute little loop, slay. 🌈
  • if this bit is set, we signal all, but not the calling VCPU. like, everybody gets an invite except the one who sent them. sorry babes. πŸ’€
fr fr, that second case means the caller never signals itself β€” that's just how it is, don't come for me.

🫢 SEE ALSO 🫢

go read those too, they're lowkey required reading. πŸ“š


and that's the page, bestie! 🌟 this one lives at ./arch/arm64/kvm/vgic, dated October 2026, and it's vgic_v3_dispatch_sgi(9) all the way down. mwah, study safe, and remember: every single option stays, only the vibe changes πŸ’œπŸ§š

πŸ“¦ where this page comes from