From 453423dce2785b8e22077e3b3eeecb4f60fe3470 Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Tue, 25 Mar 2008 18:47:29 +0100 Subject: KVM: s390: intercepts for privileged instructions This patch introduces in-kernel handling of some intercepts for privileged instructions: handle_set_prefix() sets the prefix register of the local cpu handle_store_prefix() stores the content of the prefix register to memory handle_store_cpu_address() stores the cpu number of the current cpu to memory handle_skey() just decrements the instruction address and retries handle_stsch() delivers condition code 3 "operation not supported" handle_chsc() same here handle_stfl() stores the facility list which contains the capabilities of the cpu handle_stidp() stores cpu type/model/revision and such handle_stsi() stores information about the system topology Acked-by: Martin Schwidefsky Signed-off-by: Christian Borntraeger Signed-off-by: Heiko Carstens Signed-off-by: Carsten Otte Signed-off-by: Avi Kivity --- include/asm-s390/kvm_host.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'include') diff --git a/include/asm-s390/kvm_host.h b/include/asm-s390/kvm_host.h index 4fe19305888a..2eaf6fede025 100644 --- a/include/asm-s390/kvm_host.h +++ b/include/asm-s390/kvm_host.h @@ -119,6 +119,15 @@ struct kvm_vcpu_stat { u32 deliver_restart_signal; u32 deliver_program_int; u32 exit_wait_state; + u32 instruction_stidp; + u32 instruction_spx; + u32 instruction_stpx; + u32 instruction_stap; + u32 instruction_storage_key; + u32 instruction_stsch; + u32 instruction_chsc; + u32 instruction_stsi; + u32 instruction_stfl; }; struct io_info { @@ -188,6 +197,10 @@ struct kvm_vcpu_arch { unsigned int guest_acrs[NUM_ACRS]; struct local_interrupt local_int; struct timer_list ckc_timer; + union { + cpuid_t cpu_id; + u64 stidp_data; + }; }; struct kvm_vm_stat { -- cgit v1.2.3