• Alexander Graf's avatar
    KVM: PPC: Implement 'skip instruction' mode · b4433a7c
    Alexander Graf authored
    To fetch the last instruction we were interrupted on, we enable DR in early
    exit code, where we are still in a very transitional phase between guest
    and host state.
    
    Most of the time this seemed to work, but another CPU can easily flush our
    TLB and HTAB which makes us go in the Linux page fault handler which totally
    breaks because we still use the guest's SLB entries.
    
    To work around that, let's introduce a second KVM guest mode that defines
    that whenever we get a trap, we don't call the Linux handler or go into
    the KVM exit code, but just jump over the faulting instruction.
    
    That way a potentially bad lwz doesn't trigger any faults and we can later
    on interpret the invalid instruction we fetched as "fetch didn't work".
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    b4433a7c
emulate.c 11.8 KB