|
@@ -907,6 +907,18 @@ SError is pending, the architecture's 'Multiple SError interrupts' rules should
|
|
|
be followed. (2.5.3 of DDI0587.a "ARM Reliability, Availability, and
|
|
|
Serviceability (RAS) Specification").
|
|
|
|
|
|
+SError exceptions always have an ESR value. Some CPUs have the ability to
|
|
|
+specify what the virtual SError's ESR value should be. These systems will
|
|
|
+advertise KVM_CAP_ARM_SET_SERROR_ESR. In this case exception.has_esr will
|
|
|
+always have a non-zero value when read, and the agent making an SError pending
|
|
|
+should specify the ISS field in the lower 24 bits of exception.serror_esr. If
|
|
|
+the system supports KVM_CAP_ARM_SET_SERROR_ESR, but user-space sets the events
|
|
|
+with exception.has_esr as zero, KVM will choose an ESR.
|
|
|
+
|
|
|
+Specifying exception.has_esr on a system that does not support it will return
|
|
|
+-EINVAL. Setting anything other than the lower 24bits of exception.serror_esr
|
|
|
+will return -EINVAL.
|
|
|
+
|
|
|
struct kvm_vcpu_events {
|
|
|
struct {
|
|
|
__u8 serror_pending;
|
|
@@ -4664,3 +4676,17 @@ This capability indicates that KVM supports paravirtualized Hyper-V TLB Flush
|
|
|
hypercalls:
|
|
|
HvFlushVirtualAddressSpace, HvFlushVirtualAddressSpaceEx,
|
|
|
HvFlushVirtualAddressList, HvFlushVirtualAddressListEx.
|
|
|
+
|
|
|
+8.19 KVM_CAP_ARM_SET_SERROR_ESR
|
|
|
+
|
|
|
+Architectures: arm, arm64
|
|
|
+
|
|
|
+This capability indicates that userspace can specify (via the
|
|
|
+KVM_SET_VCPU_EVENTS ioctl) the syndrome value reported to the guest when it
|
|
|
+takes a virtual SError interrupt exception.
|
|
|
+If KVM advertises this capability, userspace can only specify the ISS field for
|
|
|
+the ESR syndrome. Other parts of the ESR, such as the EC are generated by the
|
|
|
+CPU when the exception is taken. If this virtual SError is taken to EL1 using
|
|
|
+AArch64, this value will be reported in the ISS field of ESR_ELx.
|
|
|
+
|
|
|
+See KVM_CAP_VCPU_EVENTS for more details.
|