Re: [PATCH] irqchip/gic-v4.1: Disallow setting affinity for virtual SGIs

From: Marc Zyngier
Date: Sat Apr 11 2020 - 05:41:25 EST


Hi Zenghui,

On Sat, 11 Apr 2020 10:10:32 +0100,
Zenghui Yu <yuzenghui@xxxxxxxxxx> wrote:
>
> Running a guest on the GICv4.1-implemented board, we will get the
> following warning:
>
> [ 59.062120] genirq: irq_chip GICv4.1-sgi did not update eff. affinity mask of irq 46
>
> It may be caused by irqbalance (or other userspace tools) which tries to
> change the affinity of virtual SGIs on the host. One way to "fix" it is
> to update the effective_affinity value in irq_set_affinity callback. But
> as the comment above says, "There is no notion of affinity for virtual
> SGIs, at least not on the host", doing so only makes things confusing.
>
> Given the vSGIs are private to the specified vPE, changing the affinity
> on host is actually meaningless and achieves nothing. Let's just forbid
> it.
>
> Reported-by: Nianyao Tang <tangnianyao@xxxxxxxxxx>
> Signed-off-by: Zenghui Yu <yuzenghui@xxxxxxxxxx>
> ---
>
> Hi Marc,
>
> This just restores the behavior of your v5 [*]. I wonder that what's the
> reason to change it to 'return IRQ_SET_MASK_OK' in v6? What I've missed
> here?
>
> [*] https://lore.kernel.org/kvm/20200304203330.4967-9-maz@xxxxxxxxxx/

Not allowing the affinity move results in the kernel screaming when
playing with CPU hotplug (it really wants to move the interrupt
around). Which is why I dropped the -EINVAL, therefore introducing
another bug. I fixed it with this patch[1], which I was planning to
post after -rc1.

Let me know what you think

Thanks,

M.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/commit/?h=irq/gic-v4.1-fixes-5.7&id=26bf9895ebe8dbe4ff509aebc71b5990919a740d

--
Jazz is not dead, it just smells funny.