All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/7] KVM: arm64: Normalize cache configuration
@ 2022-12-21 20:40 ` Akihiko Odaki
  0 siblings, 0 replies; 41+ messages in thread
From: Akihiko Odaki @ 2022-12-21 20:40 UTC (permalink / raw)
  Cc: Mark Brown, Marc Zyngier, linux-kernel, kvmarm, kvmarm,
	linux-arm-kernel, Mathieu Poirier, Oliver Upton,
	Suzuki K Poulose, Alexandru Elisei, James Morse, Will Deacon,
	Catalin Marinas, asahi, Alyssa Rosenzweig, Sven Peter,
	Hector Martin, Akihiko Odaki

Before this change, the cache configuration of the physical CPU was
exposed to vcpus. This is problematic because the cache configuration a
vcpu sees varies when it migrates between vcpus with different cache
configurations.

Fabricate cache configuration from the sanitized value, which holds the
CTR_EL0 value the userspace sees regardless of which physical CPU it
resides on.

V3 -> V4:
- Implemented UNKNOWN system register definition for CCSIDR_EL1
- Added a comment about the relation between CCSIDR_EL1 and FEAT_CCIDX
- Squashed "Normalize cache configuration" and "Allow user to set
  CCSIDR_EL1"
  The intermediate state between them did not make much sense.
- Introduced FIELD_GET to extract CCSIDR_EL1_LineSize.

V2 -> V3:
- Corrected message for patch "Normalize cache configuration"
- Split patch "Normalize cache configuration"
- Added handling for CSSELR_EL1.TnD
- Added code to ignore RES0 in CSSELR_EL1
- Replaced arm64_ftr_reg_ctrel0.sys_val with
  read_sanitised_ftr_reg(SYS_CTR_EL0)
- Fixed vcpu->arch.ccsidr initialziation
- Added CCSIDR_EL1 sanitization
- Added FWB check
- Added a comment for CACHE_TYPE_SEPARATE
- Added MTE tag cache creation code for CLIDR_EL1 fabrication
- Removed CLIDR_EL1 reset code for reset caused by guest
- Added a comment for CCSIDR2

V2: https://lore.kernel.org/lkml/20221211051700.275761-2-akihiko.odaki@daynix.com/
V1: https://lore.kernel.org/lkml/525ff263-90b3-5b12-da31-171b09f9ad1b@daynix.com/

Akihiko Odaki (6):
  arm64/sysreg: Convert CCSIDR_EL1 to automatic generation
  arm64/sysreg: Add CCSIDR2_EL1
  arm64/cache: Move CLIDR macro definitions
  KVM: arm64: Always set HCR_TID2
  KVM: arm64: Mask FEAT_CCIDX
  KVM: arm64: Normalize cache configuration

Marc Zyngier (1):
  arm64: Allow the definition of UNKNOWN system register fields

 arch/arm64/include/asm/cache.h             |   9 +
 arch/arm64/include/asm/kvm_arm.h           |   3 +-
 arch/arm64/include/asm/kvm_emulate.h       |   4 -
 arch/arm64/include/asm/kvm_host.h          |   6 +-
 arch/arm64/include/asm/sysreg.h            |   1 -
 arch/arm64/kernel/cacheinfo.c              |   5 -
 arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h |   2 -
 arch/arm64/kvm/reset.c                     |   1 +
 arch/arm64/kvm/sys_regs.c                  | 240 ++++++++++++---------
 arch/arm64/tools/gen-sysreg.awk            |  20 +-
 arch/arm64/tools/sysreg                    |  17 ++
 11 files changed, 196 insertions(+), 112 deletions(-)

-- 
2.38.1


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

end of thread, other threads:[~2023-01-05 23:28 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-21 20:40 [PATCH v4 0/7] KVM: arm64: Normalize cache configuration Akihiko Odaki
2022-12-21 20:40 ` Akihiko Odaki
2022-12-21 20:40 ` Akihiko Odaki
2022-12-21 20:40 ` Akihiko Odaki
2022-12-21 20:40 ` [PATCH v4 1/7] arm64: Allow the definition of UNKNOWN system register fields Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40 ` [PATCH v4 2/7] arm64/sysreg: Convert CCSIDR_EL1 to automatic generation Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-22 11:45   ` Mark Brown
2022-12-22 11:45     ` Mark Brown
2022-12-22 11:45     ` Mark Brown
2022-12-21 20:40 ` [PATCH v4 3/7] arm64/sysreg: Add CCSIDR2_EL1 Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40 ` [PATCH v4 4/7] arm64/cache: Move CLIDR macro definitions Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40 ` [PATCH v4 5/7] KVM: arm64: Always set HCR_TID2 Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40 ` [PATCH v4 6/7] KVM: arm64: Mask FEAT_CCIDX Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2023-01-05 20:48   ` Oliver Upton
2023-01-05 20:48     ` Oliver Upton
2023-01-05 20:48     ` Oliver Upton
2022-12-21 20:40 ` [PATCH v4 7/7] KVM: arm64: Normalize cache configuration Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-21 20:40   ` Akihiko Odaki
2022-12-25 13:45   ` Marc Zyngier
2022-12-25 13:45     ` Marc Zyngier
2022-12-25 13:45     ` Marc Zyngier

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.