Linear-address masking (LAM) [1], modifies the checking that is
applied to
*64-bit* linear addresses, allowing software to use of the untranslated
address bits for metadata and masks the metadata bits before using
them as
linear addresses to access memory.
When the feature is virtualized and exposed to guest, it can be used for
efficient
address sanitizers (ASAN) implementation and for optimizations in
JITs and
virtual machines.
The KVM patch series can be found in [2].
[1] Intel ISE https://cdrdv2.intel.com/v1/dl/getContent/671368
Chapter Linear Address Masking (LAM)
[2]
https://lore.kernel.org/kvm/20230913124227.12574-1-binbin.wu@linux.intel.com
---
Changelog
v4:
- Add a reviewed-by from Xiaoyao for patch 1.
- Mask out LAM bit on CR4 if vcpu doesn't support LAM in
cpu_x86_update_cr4() (Xiaoyao)
v3:
- https://lists.gnu.org/archive/html/qemu-devel/2023-07/msg04160.html
Binbin Wu (1):
target/i386: add control bits support for LAM
Robert Hoo (1):
target/i386: add support for LAM in CPUID enumeration
target/i386/cpu.c | 2 +-
target/i386/cpu.h | 9 ++++++++-
target/i386/helper.c | 4 ++++
3 files changed, 13 insertions(+), 2 deletions(-)
base-commit: f614acb7450282a119d85d759f27eae190476058