* [PATCH] KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT
@ 2026-10-20 10:41 Gustavo Romero
2026-10-20 10:53 ` sashiko-bot
2026-10-20 12:45 ` Sascha Bischoff
0 siblings, 2 replies; 7+ messages in thread
From: Gustavo Romero @ 2026-10-20 10:41 UTC (permalink / raw)
To: gromero, kvmarm, fuad.tabba, Sascha.Bischoff
Cc: maz, oupton, eric.auger, seott
Currently, kvm_vcpu_load_fgt() returns early when the CPU lacks FEAT_FGT,
so the per-vCPU ICH_HFGRTR_EL2, ICH_HFGWTR_EL2 and ICH_HFGITR_EL2 values
are never computed and stay 0, meaning any access to several GICv5
registers will trap, like an access to ICC_PPI_PRIORITYR0_EL1.
On the other hand, __activate_traps_ich_hfgxtr() is gated only on the
GICv5 CPU interface and writes them on every guest entry, which is
correct.
Returning early when the CPU lacks FEAT_FGT and leaving the GICv5 traps
enabled can lead to a KVM "Unsupported guest access at" error when a
GICv5 register access by the guest traps to KVM, because the register
has no emulation handler.
A real machine with no FEAT_FGT and with GICv5 support enabled is
unlikely to exist, but such a setup can happen on some simulators, like
FVP with the following flags:
-C cluster0.has_arm_v8-5=1
-C bp.is_gicv5_used=1
Hence, because the ICH trap registers are part of FEAT_GCIE, not part of
FEAT_FGT, compute them before the FGT check, making this computation
independent of FEAT_FGT.
Fixes: 9d6d9514c08f ("KVM: arm64: gic-v5: Support GICv5 FGTs & FGUs")
Signed-off-by: Gustavo Romero <gromero@redhat.com>
---
arch/arm64/kvm/config.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/arch/arm64/kvm/config.c b/arch/arm64/kvm/config.c
index 1053676551af..8a526704af59 100644
--- a/arch/arm64/kvm/config.c
+++ b/arch/arm64/kvm/config.c
@@ -1744,6 +1744,12 @@ static void __compute_ich_hfgwtr(struct kvm_vcpu *vcpu)
void kvm_vcpu_load_fgt(struct kvm_vcpu *vcpu)
{
+ if (cpus_have_final_cap(ARM64_HAS_GICV5_CPUIF)) {
+ __compute_ich_hfgrtr(vcpu);
+ __compute_ich_hfgwtr(vcpu);
+ __compute_fgt(vcpu, ICH_HFGITR_EL2);
+ }
+
if (!cpus_have_final_cap(ARM64_HAS_FGT))
return;
@@ -1761,10 +1767,4 @@ void kvm_vcpu_load_fgt(struct kvm_vcpu *vcpu)
__compute_fgt(vcpu, HDFGRTR2_EL2);
__compute_fgt(vcpu, HDFGWTR2_EL2);
}
-
- if (cpus_have_final_cap(ARM64_HAS_GICV5_CPUIF)) {
- __compute_ich_hfgrtr(vcpu);
- __compute_ich_hfgwtr(vcpu);
- __compute_fgt(vcpu, ICH_HFGITR_EL2);
- }
}
--
2.47.3
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH] KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT 2026-10-20 10:41 [PATCH] KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT Gustavo Romero @ 2026-10-20 10:53 ` sashiko-bot 2026-10-20 12:33 ` Gustavo Romero 2026-10-20 12:45 ` Sascha Bischoff 1 sibling, 1 reply; 7+ messages in thread From: sashiko-bot @ 2026-10-20 10:53 UTC (permalink / raw) To: Gustavo Romero, kvmarm; +Cc: Oliver Upton, Marc Zyngier Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [High] KVM: arm64: populate_nv_trap_config() skips GICv5 FGTs when FEAT_FGT is absent -- commit 78d2daa299df3d77e7dfa794f19cd0a1eee7919c Author: Gustavo Romero <gromero@redhat.com> KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT This commit moves the computation of ICH_HFGRTR_EL2, ICH_HFGWTR_EL2, and ICH_HFGITR_EL2 in kvm_vcpu_load_fgt() ahead of the ARM64_HAS_FGT check so that GICv5 trap register values are computed whenever ARM64_HAS_GICV5_CPUIF is present, even if the CPU lacks FEAT_FGT. > diff --git a/arch/arm64/kvm/config.c b/arch/arm64/kvm/config.c > index e93919cadf860..0833453efe4bb 100644 > --- a/arch/arm64/kvm/config.c > +++ b/arch/arm64/kvm/config.c > @@ -1744,6 +1744,12 @@ static void __compute_ich_hfgwtr(struct kvm_vcpu *vcpu) > > void kvm_vcpu_load_fgt(struct kvm_vcpu *vcpu) > { > + if (cpus_have_final_cap(ARM64_HAS_GICV5_CPUIF)) { > + __compute_ich_hfgrtr(vcpu); > + __compute_ich_hfgwtr(vcpu); > + __compute_fgt(vcpu, ICH_HFGITR_EL2); > + } > + > if (!cpus_have_final_cap(ARM64_HAS_FGT)) > return; [Severity: High] Does populate_nv_trap_config() in arch/arm64/kvm/emulate-nested.c also need to be updated to store the ICH_HFGRTR_GROUP and ICH_HFGITR_GROUP entries into sr_forward_xa when ARM64_HAS_GICV5_CPUIF is present but ARM64_HAS_FGT is absent? Currently, populate_nv_trap_config() skips storing any entry into sr_forward_xa when ARM64_HAS_FGT is not supported: arch/arm64/kvm/emulate-nested.c:populate_nv_trap_config() { ... for_each_encoding_in(enc, fgt->encoding, fgt->end) { ... if (!cpus_have_final_cap(ARM64_HAS_FGT)) continue; prev = xa_store(&sr_forward_xa, enc, xa_mk_value(tc.val), GFP_KERNEL); ... } } Because of that, on a system with ARM64_HAS_GICV5_CPUIF and !ARM64_HAS_FGT, the GICv5 entries in sr_forward_xa are left with tc.fgt == __NO_FGT_GROUP__ (populated only with tc.sri by populate_sysreg_config() for registers in sys_reg_descs[], or left at 0 for all other GICv5 registers and instructions). When a guest running without FEAT_GCIE (for example, a GICv3 guest in compatibility mode, or a VM where ID_AA64PFR2_EL1.GCIE was cleared) executes a GICv5 system register or instruction access, kvm_vcpu_load_fgt() has cleared the trap bits in ICH_HFGRTR_EL2, ICH_HFGWTR_EL2, and ICH_HFGITR_EL2 from kvm->arch.fgu[], so the access traps to kvm_handle_sys_reg() -> triage_sysreg_trap(): arch/arm64/kvm/emulate-nested.c:triage_sysreg_trap() { ... if (tc.fgt != __NO_FGT_GROUP__ && (vcpu->kvm->arch.fgu[tc.fgt] & BIT(tc.bit))) { kvm_inject_undefined(vcpu); return true; } ... } With tc.fgt == __NO_FGT_GROUP__, this FGU check is bypassed instead of injecting an UNDEF: - A guest read of SYS_ICC_PPI_ENABLER0_EL1 or SYS_ICC_PPI_ENABLER1_EL1 dispatches to access_gicv5_ppi_enabler() in arch/arm64/kvm/sys_regs.c with !p->is_write, triggering WARN_ON_ONCE(!p->is_write). - A guest write to SYS_ICC_PPI_ENABLER0_EL1 dispatches to access_gicv5_ppi_enabler() and writes to vcpu->arch.vgic_cpu.vgic_v5.vgic_ppi_enabler, which shares a union with vgic_v3 in struct vgic_cpu. - Guest reads of SYS_ICC_IDR0_EL1 or SYS_ICC_IAFFIDR_EL1 execute access_gicv5_idr0() or access_gicv5_iaffid() instead of injecting UNDEF. - Guest accesses to other GICv5 registers or instructions fall through to the local label with !tc.sri and log "Unsupported guest access at:" on the host before injecting UNDEF. > > @@ -1761,10 +1767,4 @@ void kvm_vcpu_load_fgt(struct kvm_vcpu *vcpu) > __compute_fgt(vcpu, HDFGRTR2_EL2); > __compute_fgt(vcpu, HDFGWTR2_EL2); > } > - > - if (cpus_have_final_cap(ARM64_HAS_GICV5_CPUIF)) { > - __compute_ich_hfgrtr(vcpu); > - __compute_ich_hfgwtr(vcpu); > - __compute_fgt(vcpu, ICH_HFGITR_EL2); > - } > } -- Sashiko AI review · https://sashiko.dev/#/patchset/20261020104138.2641586-1-gromero@redhat.com?part=1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT 2026-10-20 10:53 ` sashiko-bot @ 2026-10-20 12:33 ` Gustavo Romero 0 siblings, 0 replies; 7+ messages in thread From: Gustavo Romero @ 2026-10-20 12:33 UTC (permalink / raw) To: sashiko-reviews; +Cc: kvmarm, Oliver Upton, Marc Zyngier Hi robot, On Tue, Oct 20, 2026 at 10:53:22AM +0000, sashiko-bot@kernel.org wrote: > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: > - [High] KVM: arm64: populate_nv_trap_config() skips GICv5 FGTs when FEAT_FGT is absent > -- > > commit 78d2daa299df3d77e7dfa794f19cd0a1eee7919c > Author: Gustavo Romero <gromero@redhat.com> > > KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT > > This commit moves the computation of ICH_HFGRTR_EL2, ICH_HFGWTR_EL2, and > ICH_HFGITR_EL2 in kvm_vcpu_load_fgt() ahead of the ARM64_HAS_FGT check so > that GICv5 trap register values are computed whenever ARM64_HAS_GICV5_CPUIF > is present, even if the CPU lacks FEAT_FGT. > > > diff --git a/arch/arm64/kvm/config.c b/arch/arm64/kvm/config.c > > index e93919cadf860..0833453efe4bb 100644 > > --- a/arch/arm64/kvm/config.c > > +++ b/arch/arm64/kvm/config.c > > @@ -1744,6 +1744,12 @@ static void __compute_ich_hfgwtr(struct kvm_vcpu *vcpu) > > > > void kvm_vcpu_load_fgt(struct kvm_vcpu *vcpu) > > { > > + if (cpus_have_final_cap(ARM64_HAS_GICV5_CPUIF)) { > > + __compute_ich_hfgrtr(vcpu); > > + __compute_ich_hfgwtr(vcpu); > > + __compute_fgt(vcpu, ICH_HFGITR_EL2); > > + } > > + > > if (!cpus_have_final_cap(ARM64_HAS_FGT)) > > return; > > [Severity: High] > Does populate_nv_trap_config() in arch/arm64/kvm/emulate-nested.c also need > to be updated to store the ICH_HFGRTR_GROUP and ICH_HFGITR_GROUP entries into > sr_forward_xa when ARM64_HAS_GICV5_CPUIF is present but ARM64_HAS_FGT is > absent? I guess you're right but it was already addressed by Fuad's patch: https://lore.kernel.org/all/20260929090031.3829185-2-fuad.tabba@linux.dev/ that is already in the mainline: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4bdd2b3a708c1feb701cb8b62feb8ad2fd77bb07 Maybe you're looking at some branch that doesn't have this fix? Cheers, Gustavo > Currently, populate_nv_trap_config() skips storing any entry into > sr_forward_xa when ARM64_HAS_FGT is not supported: > > arch/arm64/kvm/emulate-nested.c:populate_nv_trap_config() { > ... > for_each_encoding_in(enc, fgt->encoding, fgt->end) { > ... > if (!cpus_have_final_cap(ARM64_HAS_FGT)) > continue; > > prev = xa_store(&sr_forward_xa, enc, > xa_mk_value(tc.val), GFP_KERNEL); > ... > } > } > > Because of that, on a system with ARM64_HAS_GICV5_CPUIF and !ARM64_HAS_FGT, > the GICv5 entries in sr_forward_xa are left with tc.fgt == __NO_FGT_GROUP__ > (populated only with tc.sri by populate_sysreg_config() for registers in > sys_reg_descs[], or left at 0 for all other GICv5 registers and instructions). > > When a guest running without FEAT_GCIE (for example, a GICv3 guest in > compatibility mode, or a VM where ID_AA64PFR2_EL1.GCIE was cleared) executes > a GICv5 system register or instruction access, kvm_vcpu_load_fgt() has > cleared the trap bits in ICH_HFGRTR_EL2, ICH_HFGWTR_EL2, and ICH_HFGITR_EL2 > from kvm->arch.fgu[], so the access traps to kvm_handle_sys_reg() -> > triage_sysreg_trap(): > > arch/arm64/kvm/emulate-nested.c:triage_sysreg_trap() { > ... > if (tc.fgt != __NO_FGT_GROUP__ && > (vcpu->kvm->arch.fgu[tc.fgt] & BIT(tc.bit))) { > kvm_inject_undefined(vcpu); > return true; > } > ... > } > > With tc.fgt == __NO_FGT_GROUP__, this FGU check is bypassed instead of > injecting an UNDEF: > > - A guest read of SYS_ICC_PPI_ENABLER0_EL1 or SYS_ICC_PPI_ENABLER1_EL1 > dispatches to access_gicv5_ppi_enabler() in arch/arm64/kvm/sys_regs.c with > !p->is_write, triggering WARN_ON_ONCE(!p->is_write). > > - A guest write to SYS_ICC_PPI_ENABLER0_EL1 dispatches to > access_gicv5_ppi_enabler() and writes to > vcpu->arch.vgic_cpu.vgic_v5.vgic_ppi_enabler, which shares a union with > vgic_v3 in struct vgic_cpu. > > - Guest reads of SYS_ICC_IDR0_EL1 or SYS_ICC_IAFFIDR_EL1 execute > access_gicv5_idr0() or access_gicv5_iaffid() instead of injecting UNDEF. > > - Guest accesses to other GICv5 registers or instructions fall through to the > local label with !tc.sri and log "Unsupported guest access at:" on the host > before injecting UNDEF. > > > > > @@ -1761,10 +1767,4 @@ void kvm_vcpu_load_fgt(struct kvm_vcpu *vcpu) > > __compute_fgt(vcpu, HDFGRTR2_EL2); > > __compute_fgt(vcpu, HDFGWTR2_EL2); > > } > > - > > - if (cpus_have_final_cap(ARM64_HAS_GICV5_CPUIF)) { > > - __compute_ich_hfgrtr(vcpu); > > - __compute_ich_hfgwtr(vcpu); > > - __compute_fgt(vcpu, ICH_HFGITR_EL2); > > - } > > } > > -- > Sashiko AI review · https://sashiko.dev/#/patchset/20261020104138.2641586-1-gromero@redhat.com?part=1 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT 2026-10-20 10:41 [PATCH] KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT Gustavo Romero 2026-10-20 10:53 ` sashiko-bot @ 2026-10-20 12:45 ` Sascha Bischoff 2026-10-20 14:03 ` Gustavo Romero 1 sibling, 1 reply; 7+ messages in thread From: Sascha Bischoff @ 2026-10-20 12:45 UTC (permalink / raw) To: Gustavo Romero, kvmarm, fuad.tabba; +Cc: maz, oupton, eric.auger, seott Hi Gustavo, On 20/10/2026 11:41, Gustavo Romero wrote: > Currently, kvm_vcpu_load_fgt() returns early when the CPU lacks FEAT_FGT, > so the per-vCPU ICH_HFGRTR_EL2, ICH_HFGWTR_EL2 and ICH_HFGITR_EL2 values > are never computed and stay 0, meaning any access to several GICv5 > registers will trap, like an access to ICC_PPI_PRIORITYR0_EL1. This is never a valid configuration for GICv5 on a system that has EL2, i.e., one that supports KVM. * FEAT_GCIE (GICv5) is optional from v9.3. * FEAT_FGT is mandatory from v8.6, if an implementation has EL2 or EL3. * v9.1 must be v8.6 compliant. * If we are running KVM, we must have EL2. There's no way to legally have GICv5 without also having support for FEAT_FGT. FWIW, Marc caught me making the same mistake: https://lore.kernel.org/all/86o6o3oehl.wl-maz@kernel.org/ > > On the other hand, __activate_traps_ich_hfgxtr() is gated only on the > GICv5 CPU interface and writes them on every guest entry, which is > correct. > > Returning early when the CPU lacks FEAT_FGT and leaving the GICv5 traps > enabled can lead to a KVM "Unsupported guest access at" error when a > GICv5 register access by the guest traps to KVM, because the register > has no emulation handler. > > A real machine with no FEAT_FGT and with GICv5 support enabled is > unlikely to exist Given the above, very unlikely. I hope... :) > , but such a setup can happen on some simulators, like > FVP with the following flags: > > -C cluster0.has_arm_v8-5=1 > -C bp.is_gicv5_used=1 Even if the simulator allows it, it isn't a valid configuration. You want v9.3 or greater here. Moreover, we shouldn't be writing code to support architecturally invalid configurations. Thanks, Sascha > > Hence, because the ICH trap registers are part of FEAT_GCIE, not part of > FEAT_FGT, compute them before the FGT check, making this computation > independent of FEAT_FGT. > > Fixes: 9d6d9514c08f ("KVM: arm64: gic-v5: Support GICv5 FGTs & FGUs") > Signed-off-by: Gustavo Romero <gromero@redhat.com> > --- > arch/arm64/kvm/config.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/arch/arm64/kvm/config.c b/arch/arm64/kvm/config.c > index 1053676551af..8a526704af59 100644 > --- a/arch/arm64/kvm/config.c > +++ b/arch/arm64/kvm/config.c > @@ -1744,6 +1744,12 @@ static void __compute_ich_hfgwtr(struct kvm_vcpu *vcpu) > > void kvm_vcpu_load_fgt(struct kvm_vcpu *vcpu) > { > + if (cpus_have_final_cap(ARM64_HAS_GICV5_CPUIF)) { > + __compute_ich_hfgrtr(vcpu); > + __compute_ich_hfgwtr(vcpu); > + __compute_fgt(vcpu, ICH_HFGITR_EL2); > + } > + > if (!cpus_have_final_cap(ARM64_HAS_FGT)) > return; > > @@ -1761,10 +1767,4 @@ void kvm_vcpu_load_fgt(struct kvm_vcpu *vcpu) > __compute_fgt(vcpu, HDFGRTR2_EL2); > __compute_fgt(vcpu, HDFGWTR2_EL2); > } > - > - if (cpus_have_final_cap(ARM64_HAS_GICV5_CPUIF)) { > - __compute_ich_hfgrtr(vcpu); > - __compute_ich_hfgwtr(vcpu); > - __compute_fgt(vcpu, ICH_HFGITR_EL2); > - } > } ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT 2026-10-20 12:45 ` Sascha Bischoff @ 2026-10-20 14:03 ` Gustavo Romero 2026-10-20 14:15 ` Marc Zyngier 0 siblings, 1 reply; 7+ messages in thread From: Gustavo Romero @ 2026-10-20 14:03 UTC (permalink / raw) To: Sascha Bischoff; +Cc: kvmarm, fuad.tabba, maz, oupton, eric.auger, seott Hi Sascha, On Tue, Oct 20, 2026 at 01:45:43PM +0100, Sascha Bischoff wrote: > Hi Gustavo, > > On 20/10/2026 11:41, Gustavo Romero wrote: > > Currently, kvm_vcpu_load_fgt() returns early when the CPU lacks FEAT_FGT, > > so the per-vCPU ICH_HFGRTR_EL2, ICH_HFGWTR_EL2 and ICH_HFGITR_EL2 values > > are never computed and stay 0, meaning any access to several GICv5 > > registers will trap, like an access to ICC_PPI_PRIORITYR0_EL1. > > This is never a valid configuration for GICv5 on a system that has EL2, > i.e., one that supports KVM. > > * FEAT_GCIE (GICv5) is optional from v9.3. > * FEAT_FGT is mandatory from v8.6, if an implementation has EL2 or EL3. > * v9.1 must be v8.6 compliant. > * If we are running KVM, we must have EL2. > > There's no way to legally have GICv5 without also having support for > FEAT_FGT. > > FWIW, Marc caught me making the same mistake: > > https://lore.kernel.org/all/86o6o3oehl.wl-maz@kernel.org/ oh, so you've been there already :) Thanks a lot for pointing me to that discussion. > > > > On the other hand, __activate_traps_ich_hfgxtr() is gated only on the > > GICv5 CPU interface and writes them on every guest entry, which is > > correct. > > > > Returning early when the CPU lacks FEAT_FGT and leaving the GICv5 traps > > enabled can lead to a KVM "Unsupported guest access at" error when a > > GICv5 register access by the guest traps to KVM, because the register > > has no emulation handler. > > > > A real machine with no FEAT_FGT and with GICv5 support enabled is > > unlikely to exist > > Given the above, very unlikely. I hope... :) > > > , but such a setup can happen on some simulators, like > > FVP with the following flags: > > > > -C cluster0.has_arm_v8-5=1 > > -C bp.is_gicv5_used=1 > > Even if the simulator allows it, it isn't a valid configuration. You want > v9.3 or greater here. Moreover, we shouldn't be writing code to support > architecturally invalid configurations. Yeah, I agree. Now I also see the code has the assumption that FEAT_GCIE always imply FEAT_FGT, but FEAT_FGT does not imply FEAT_GCIE, so indeed these two features are, in that sense, not totally independent. BTW, the output in the thread you pointed out: (FEAT_GCIE ==> v9Ap3) (FEAT_FGT ==> v8Ap5) (v9Ap3 ==> (v9Ap2 && v8Ap8)) seems some form of processed AARCHMRS. Are you folks using any script to digest it? Cheers, Gustavo > Thanks, > Sascha > > > > > Hence, because the ICH trap registers are part of FEAT_GCIE, not part of > > FEAT_FGT, compute them before the FGT check, making this computation > > independent of FEAT_FGT. > > > > Fixes: 9d6d9514c08f ("KVM: arm64: gic-v5: Support GICv5 FGTs & FGUs") > > Signed-off-by: Gustavo Romero <gromero@redhat.com> > > --- > > arch/arm64/kvm/config.c | 12 ++++++------ > > 1 file changed, 6 insertions(+), 6 deletions(-) > > > > diff --git a/arch/arm64/kvm/config.c b/arch/arm64/kvm/config.c > > index 1053676551af..8a526704af59 100644 > > --- a/arch/arm64/kvm/config.c > > +++ b/arch/arm64/kvm/config.c > > @@ -1744,6 +1744,12 @@ static void __compute_ich_hfgwtr(struct kvm_vcpu *vcpu) > > void kvm_vcpu_load_fgt(struct kvm_vcpu *vcpu) > > { > > + if (cpus_have_final_cap(ARM64_HAS_GICV5_CPUIF)) { > > + __compute_ich_hfgrtr(vcpu); > > + __compute_ich_hfgwtr(vcpu); > > + __compute_fgt(vcpu, ICH_HFGITR_EL2); > > + } > > + > > if (!cpus_have_final_cap(ARM64_HAS_FGT)) > > return; > > @@ -1761,10 +1767,4 @@ void kvm_vcpu_load_fgt(struct kvm_vcpu *vcpu) > > __compute_fgt(vcpu, HDFGRTR2_EL2); > > __compute_fgt(vcpu, HDFGWTR2_EL2); > > } > > - > > - if (cpus_have_final_cap(ARM64_HAS_GICV5_CPUIF)) { > > - __compute_ich_hfgrtr(vcpu); > > - __compute_ich_hfgwtr(vcpu); > > - __compute_fgt(vcpu, ICH_HFGITR_EL2); > > - } > > } > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT 2026-10-20 14:03 ` Gustavo Romero @ 2026-10-20 14:15 ` Marc Zyngier 2026-10-20 14:32 ` Gustavo Romero 0 siblings, 1 reply; 7+ messages in thread From: Marc Zyngier @ 2026-10-20 14:15 UTC (permalink / raw) To: Gustavo Romero Cc: Sascha Bischoff, kvmarm, fuad.tabba, oupton, eric.auger, seott On Tue, 20 Oct 2026 15:03:24 +0100, Gustavo Romero <gromero@redhat.com> wrote: > > BTW, the output in the thread you pointed out: > > (FEAT_GCIE ==> v9Ap3) > (FEAT_FGT ==> v8Ap5) > (v9Ap3 ==> (v9Ap2 && v8Ap8)) > > seems some form of processed AARCHMRS. Are you folks using any script to digest > it? See the tooling branch in [1]. You can point the scripts at any of the commits to pick the version of the JSON you want. M. [1] git://git.kernel.org/pub/scm/linux/kernel/git/maz/AARCHMRS -- Without deviation from the norm, progress is not possible. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT 2026-10-20 14:15 ` Marc Zyngier @ 2026-10-20 14:32 ` Gustavo Romero 0 siblings, 0 replies; 7+ messages in thread From: Gustavo Romero @ 2026-10-20 14:32 UTC (permalink / raw) To: Marc Zyngier Cc: Sascha Bischoff, kvmarm, fuad.tabba, oupton, eric.auger, seott On Tue, Oct 20, 2026 at 03:15:43PM +0100, Marc Zyngier wrote: > On Tue, 20 Oct 2026 15:03:24 +0100, > Gustavo Romero <gromero@redhat.com> wrote: > > > > BTW, the output in the thread you pointed out: > > > > (FEAT_GCIE ==> v9Ap3) > > (FEAT_FGT ==> v8Ap5) > > (v9Ap3 ==> (v9Ap2 && v8Ap8)) > > > > seems some form of processed AARCHMRS. Are you folks using any script to digest > > it? > > See the tooling branch in [1]. You can point the scripts at any of the > commits to pick the version of the JSON you want. Thanks, Marc! Cheers, Gustavo > M. > > [1] git://git.kernel.org/pub/scm/linux/kernel/git/maz/AARCHMRS > > -- > Without deviation from the norm, progress is not possible. > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-10-20 14:32 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-10-20 10:41 [PATCH] KVM: arm64: Decouple computation of the GICv5 trap registers from FEAT_FGT Gustavo Romero 2026-10-20 10:53 ` sashiko-bot 2026-10-20 12:33 ` Gustavo Romero 2026-10-20 12:45 ` Sascha Bischoff 2026-10-20 14:03 ` Gustavo Romero 2026-10-20 14:15 ` Marc Zyngier 2026-10-20 14:32 ` Gustavo Romero
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.