public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH 0/6] KVM: arm64: ... and FWB for all
@ 2026-01-19 10:56 Marc Zyngier
  2026-01-19 10:56 ` [PATCH 1/6] arm64: Add MT_S2{,_FWB}_AS_S1 encodings Marc Zyngier
                   ` (8 more replies)
  0 siblings, 9 replies; 20+ messages in thread
From: Marc Zyngier @ 2026-01-19 10:56 UTC (permalink / raw)
  To: kvmarm, linux-arm-kernel
  Cc: Joey Gouly, Suzuki K Poulose, Oliver Upton, Zenghui Yu,
	Will Deacon, Quentin Perret, Fuad Tabba

[Yes, you can tell what I was listening to]

Today, running in protected mode puts the host under it's own S2 with
FWB=0, even if the rest of the guests are running with FWB=1. The
rationale for this special-casing of the host is that we want the
combined attributes to actually reflect the ones exposed by S1.

We therefore use NormalCacheable (which is the weakest memory type) as
the default attributes at S2 so that S1 can only strengthen the final
memory type.

But there is no reason why we cannot achieve the same effect with
FWB. We normally use FWB to enforce cacheable memory from S2,
irrespective of S1. But it is possible to configure the S2 attributes
as "pass-through", so that the S1 attributes are always used.

This small series implements that change, adding a flag that actually
describes what we are trying to do (instead of the NOFWB flag which is
pretty obscure), and fixes an interesting gotcha with CMOs.
Interestingly, CMOs never actually worked with NOFWB on an FWB-aware
platform...

Patches on top of 6.19-rc5.

Marc Zyngier (6):
  arm64: Add MT_S2{,_FWB}_AS_S1 encodings
  KVM: arm64: Add KVM_PGTABLE_S2_AS_S1 flag
  KVM: arm64: Make stage2_pte_cacheable() return false when S2_AS_S1 is
    set
  KVM: arm64: Switch pKVM host S2 over to KVM_PGTABLE_S2_AS_S1
  KVM: arm64: Kill KVM_PGTABLE_S2_NOFWB
  KVM: arm64: Simplify PAGE_S2_MEMATTR

 arch/arm64/include/asm/kvm_pgtable.h  |  7 +++---
 arch/arm64/include/asm/memory.h       | 11 ++++++---
 arch/arm64/include/asm/pgtable-prot.h |  4 ++--
 arch/arm64/kvm/hyp/nvhe/mem_protect.c |  4 +++-
 arch/arm64/kvm/hyp/pgtable.c          | 32 +++++++++++++++++++--------
 5 files changed, 39 insertions(+), 19 deletions(-)

-- 
2.47.3



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2026-01-23 15:17 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-19 10:56 [PATCH 0/6] KVM: arm64: ... and FWB for all Marc Zyngier
2026-01-19 10:56 ` [PATCH 1/6] arm64: Add MT_S2{,_FWB}_AS_S1 encodings Marc Zyngier
2026-01-22 15:07   ` Fuad Tabba
2026-01-19 10:56 ` [PATCH 2/6] KVM: arm64: Add KVM_PGTABLE_S2_AS_S1 flag Marc Zyngier
2026-01-22 15:08   ` Fuad Tabba
2026-01-22 17:05     ` Will Deacon
2026-01-19 10:56 ` [PATCH 3/6] KVM: arm64: Make stage2_pte_cacheable() return false when S2_AS_S1 is set Marc Zyngier
2026-01-22 15:04   ` Will Deacon
2026-01-23 13:21     ` Marc Zyngier
2026-01-19 10:56 ` [PATCH 4/6] KVM: arm64: Switch pKVM host S2 over to KVM_PGTABLE_S2_AS_S1 Marc Zyngier
2026-01-22 15:09   ` Fuad Tabba
2026-01-19 10:56 ` [PATCH 5/6] KVM: arm64: Kill KVM_PGTABLE_S2_NOFWB Marc Zyngier
2026-01-22 15:09   ` Fuad Tabba
2026-01-19 10:56 ` [PATCH 6/6] KVM: arm64: Simplify PAGE_S2_MEMATTR Marc Zyngier
2026-01-22 15:03   ` Will Deacon
2026-01-21 16:23 ` [PATCH 0/6] KVM: arm64: ... and FWB for all Joey Gouly
2026-01-21 18:13 ` Fuad Tabba
2026-01-23 12:22 ` Alexandru Elisei
2026-01-23 12:37   ` Marc Zyngier
2026-01-23 15:17     ` Alexandru Elisei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox