On Wed, Aug 05, 2020 at 03:33:22PM +0100, James Morse wrote: > Hi Andrew, > > On 30/07/2020 16:18, Andrew Scull wrote: > > The ESB at the start of the vectors causes any SErrors to be consumed to > > DISR_EL1. If the exception came from the host and the ESB caught an > > SError, it would not be noticed until a guest exits and DISR_EL1 is > > checked. Further, the SError would be attributed to the guest and not > > the host. > > Yup, this happens because the world has moved underneath this code: That's understandable! > Previously any v8.2 RAS capable system would have been crazy to turn off VHE, so v8.0 and > v8.1 systems had a nop here instead, and v8.2 systems had VHE, so there were no 'from the > host' EL2 vectors. RAS with nVHE is a buildable config and we're being foolish enough to think about it so hopefully we can work something out :) > > To avoid these problems, use a different exception vector for the host > > that does not use an ESB but instead leaves any host SError pending. A > > guest will not be entered if an SError is pending so it will always be > > the host that will receive and handle it. > > > > Hyp initialization is now passed the vector that is used for the host > > and the vector for guests is stored in a percpu variable as > > kvm_get_hyp_vector() is not suitable for calling from nVHE hyp. > > > Fixes: 0e5b9c085dce ("KVM: arm64: Consume pending SError as early as possible") > > Surely this can only happen if you had turned VHE off? Correct, I'll make that clearer in the description. > Thanks, > > James _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm