[bug report] GICv4.1: doorbell interrupts will be lost in a corner case

Kunkun Jiang jiangkunkun at huawei.com
Wed Jan 24 00:54:24 PST 2024


Hi all,

In chapter 8.5 ("Doorbells") of the GIC spec, the affinity of
doorbell interrupt is described like this:

> Doorbell interrupts target the Redistributor the vPE is
> currently mapped to, based on the previous VMAPP or VMOVP
> command for the vPE.
The doorbell interrupt here should refer to all types of
doorbell interrupt, right?

When GICv4.1 is enabled, the doorbell interrupt will be
truned on only when kvm handles WFI exit. There is a
corner case where will lost doorbell interrupt:
1. doorbell interrupt enabled
2. the cpu which the vPE is mapped to is manually offline
   through 'echo 0 > /sys/device/system/cpu/cpuX/online'
3. According to the description of chapter 8.5 ("Doorbells"),
   the doorbell interrupt coming at this time will still
   be sent to the offline cpu.Then the interrupt will be
   lost.

Should we add a cpu offline callback to handle the
doorbell interrupt mapped to this cpu?

If you have other solutions, please post them for discussion.

Looking forward to your reply.

Thanks,
Kunkun Jiang




More information about the linux-arm-kernel mailing list