Re: [PATCH v3 3/4] KVM: arm64: Introduce attribute to control GICD_TYPER2.nASSGIcap
From: Oliver Upton
Date: Mon Jun 23 2025 - 04:41:25 EST
On Sat, Jun 21, 2025 at 09:50:48AM +0100, Marc Zyngier wrote:
> On Fri, 13 Jun 2025 16:52:37 +0100, Raghavendra Rao Ananta <rananta@xxxxxxxxxx> wrote:
> > @@ -683,8 +714,14 @@ static int vgic_v3_has_attr(struct kvm_device *dev,
> > return 0;
> > case KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES:
> > return 0;
> > + default:
> > + return -ENXIO;
> > }
> > + case KVM_DEV_ARM_VGIC_GRP_FEATURES:
> > + return attr->attr != KVM_DEV_ARM_VGIC_FEATURE_nASSGIcap ?
> > + -ENXIO : 0;
>
> Do we really want to advertise KVM_DEV_ARM_VGIC_FEATURE_nASSGIcap even
> when we don't have GICv4.1? This seems rather odd. My take on this API
> is that this should report whether the feature is configurable, making
> it backward compatible with older versions of KVM.
So this was because of me, as I wanted nASSGIcap to behave exactly like
the ID registers. I do think exposing the capability unconditionally is
useful, as otherwise there's no way to definitively say whether or not
the underlying platform supports GICv4.1.
KVM_HAS_DEVICE_ATTR can't be used alone for probing since old kernels
use GICv4.1 but don't expose the attribute.
Does that make sense?
Thanks,
Oliver