On Mon, 23 Mar 2020 at 11:32, Beata Michalska <beata.michalska@xxxxxxxxxx> wrote: > > On ARMv7 & ARMv8 some load/store instructions might trigger a data abort > exception with no valid ISS info to be decoded. The lack of decode info > makes it at least tricky to emulate those instruction which is one of the > (many) reasons why KVM will not even try to do so. > > Add support for handling those by requesting KVM to inject external > dabt into the quest. > > Signed-off-by: Beata Michalska <beata.michalska@xxxxxxxxxx> > --- > target/arm/cpu.h | 2 ++ > target/arm/kvm.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > target/arm/kvm_arm.h | 11 +++++++++++ > 3 files changed, 67 insertions(+) > > diff --git a/target/arm/cpu.h b/target/arm/cpu.h > index 4ffd991..4f834c1 100644 > --- a/target/arm/cpu.h > +++ b/target/arm/cpu.h > @@ -560,6 +560,8 @@ typedef struct CPUARMState { > uint64_t esr; > } serror; > > + uint8_t ext_dabt_pending; /* Request for injecting ext DABT */ I was trying to work out whether we need to migrate this state, and I'm not sure. Andrew, do you know? I think this comes down to "at what points in QEMU's kvm run loop can migration kick in", and specifically if we get a KVM_EXIT_ARM_NISV do we definitely go round the loop and KVM_RUN again without ever checking to see if we should do a migration ? thanks -- PMM _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm