KVM: s390: inject PER i-fetch events on applicable icpts
In case we have to emuluate an instruction or part of it (instruction, partial instruction, operation exception), we have to inject a PER instruction-fetching event for that instruction, if hardware told us to do so. In case we retry an instruction, we must not inject the PER event. Please note that we don't filter the events properly yet, so guest debugging will be visible for the guest. Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
此提交包含在:

提交者
Christian Borntraeger

父節點
196f20ca52
當前提交
5ffe466cd3
@@ -238,6 +238,8 @@ static inline void kvm_s390_forward_psw(struct kvm_vcpu *vcpu, int ilen)
|
||||
}
|
||||
static inline void kvm_s390_retry_instr(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
/* don't inject PER events if we re-execute the instruction */
|
||||
vcpu->arch.sie_block->icptstatus &= ~0x02;
|
||||
kvm_s390_rewind_psw(vcpu, kvm_s390_get_ilen(vcpu));
|
||||
}
|
||||
|
||||
@@ -377,6 +379,7 @@ int kvm_s390_import_bp_data(struct kvm_vcpu *vcpu,
|
||||
struct kvm_guest_debug *dbg);
|
||||
void kvm_s390_clear_bp_data(struct kvm_vcpu *vcpu);
|
||||
void kvm_s390_prepare_debug_exit(struct kvm_vcpu *vcpu);
|
||||
int kvm_s390_handle_per_ifetch_icpt(struct kvm_vcpu *vcpu);
|
||||
void kvm_s390_handle_per_event(struct kvm_vcpu *vcpu);
|
||||
|
||||
/* support for Basic/Extended SCA handling */
|
||||
|
新增問題並參考
封鎖使用者