All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oliver Upton <oupton@kernel.org>
To: Fuad Tabba <fuad.tabba@linux.dev>
Cc: Marc Zyngier <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>,
	Steffen Eiden <seiden@linux.ibm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Zenghui Yu <yuzenghui@huawei.com>,
	Raghavendra Rao Ananta <rananta@google.com>,
	Eric Auger <eric.auger@redhat.com>, Will Deacon <will@kernel.org>,
	Fuad Tabba <tabba@google.com>,
	kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] KVM: arm64: vgic-v4: Don't allocate vPEs when userspace clears nASSGIcap
Date: Tue, 27 Oct 2026 15:53:11 -0700	[thread overview]
Message-ID: <auErVwVAwtT-y9Hf@kernel.org> (raw)
In-Reply-To: <20261027073634.440288-1-fuad.tabba@linux.dev>

On Tue, Oct 27, 2026 at 07:36:34AM +0000, Fuad Tabba wrote:
> diff --git a/arch/arm64/kvm/vgic/vgic-mmio-v3.c b/arch/arm64/kvm/vgic/vgic-mmio-v3.c
> index 5913a20d83019..a60697238a7a7 100644
> --- a/arch/arm64/kvm/vgic/vgic-mmio-v3.c
> +++ b/arch/arm64/kvm/vgic/vgic-mmio-v3.c
> @@ -48,7 +48,7 @@ bool vgic_has_its(struct kvm *kvm)
>  	return dist->has_its;
>  }
>  
> -bool vgic_supports_direct_msis(struct kvm *kvm)
> +bool vgic_supports_vpes(struct kvm *kvm)
>  {
>  	/*
>  	 * Deliberately conflate vLPI and vSGI support on GICv4.1 hardware,
> @@ -58,7 +58,12 @@ bool vgic_supports_direct_msis(struct kvm *kvm)
>  	if (system_supports_direct_sgis() && !vgic_supports_direct_sgis(kvm))
>  		return false;
>  
> -	return kvm_vgic_global_state.has_gicv4 && vgic_has_its(kvm);
> +	return kvm_vgic_global_state.has_gicv4 && vgic_is_v3(kvm);
> +}
> +
> +bool vgic_supports_direct_msis(struct kvm *kvm)
> +{
> +	return vgic_supports_vpes(kvm) && vgic_has_its(kvm);
>  }
>  
>  bool system_supports_direct_sgis(void)
> diff --git a/arch/arm64/kvm/vgic/vgic-v4.c b/arch/arm64/kvm/vgic/vgic-v4.c
> index ed236f083f0d7..0a4b9a74425b4 100644
> --- a/arch/arm64/kvm/vgic/vgic-v4.c
> +++ b/arch/arm64/kvm/vgic/vgic-v4.c
> @@ -248,7 +248,7 @@ int vgic_v4_init(struct kvm *kvm)
>  
>  	lockdep_assert_held(&kvm->arch.config_lock);
>  
> -	if (!kvm_vgic_global_state.has_gicv4)
> +	if (!vgic_supports_vpes(kvm))
>  		return 0; /* Nothing to see here... move along. */
>  
>  	if (dist->its_vm.vpes)
> diff --git a/arch/arm64/kvm/vgic/vgic.h b/arch/arm64/kvm/vgic/vgic.h
> index b71d486ae5145..7fc29a395a7db 100644
> --- a/arch/arm64/kvm/vgic/vgic.h
> +++ b/arch/arm64/kvm/vgic/vgic.h
> @@ -500,6 +500,7 @@ static inline bool vgic_host_has_gicv5(void)
>  }
>  
>  bool system_supports_direct_sgis(void);
> +bool vgic_supports_vpes(struct kvm *kvm);
>  bool vgic_supports_direct_msis(struct kvm *kvm);
>  bool vgic_supports_direct_sgis(struct kvm *kvm);
>  
> 
> Tested on the FVP (GICv4.0 and GICv4.1): KVM doesn't leak doorbells in
> either patch's case, a GICv3 VM still gets its vPEs when the ITS is
> created, and the reproducer above doesn't hit the WARN. Does that work
> for you? If so, I'll send it as v2.

Bugh... Thanks for de-crapifying my request.

Yes, this works perfectly for me.

Thanks,
Oliver

      reply	other threads:[~2026-10-27 22:53 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-26 15:26 [PATCH 0/2] KVM: arm64: vgic-v4: Don't allocate vPEs that a VM can't use Fuad Tabba
2026-10-26 15:26 ` [PATCH 1/2] KVM: arm64: vgic-v4: Don't allocate vPEs for a GICv2 VM Fuad Tabba
2026-10-26 19:12   ` Oliver Upton
2026-10-26 19:55     ` Marc Zyngier
2026-10-26 21:30       ` Oliver Upton
2026-10-27  7:37         ` Fuad Tabba
2026-10-26 15:26 ` [PATCH 2/2] KVM: arm64: vgic-v4: Don't allocate vPEs when userspace clears nASSGIcap Fuad Tabba
2026-10-26 19:39   ` Oliver Upton
2026-10-27  7:36     ` Fuad Tabba
2026-10-27 22:53       ` Oliver Upton [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=auErVwVAwtT-y9Hf@kernel.org \
    --to=oupton@kernel.org \
    --cc=eric.auger@redhat.com \
    --cc=fuad.tabba@linux.dev \
    --cc=joey.gouly@arm.com \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maz@kernel.org \
    --cc=rananta@google.com \
    --cc=seiden@linux.ibm.com \
    --cc=suzuki.poulose@arm.com \
    --cc=tabba@google.com \
    --cc=will@kernel.org \
    --cc=yuzenghui@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.