KVM: PPC: HV: Remove generic instruction emulation
authorAlexander Graf <agraf@suse.de>
Wed, 30 Jul 2014 13:25:48 +0000 (15:25 +0200)
committerAlexander Graf <agraf@suse.de>
Wed, 30 Jul 2014 13:25:49 +0000 (15:25 +0200)
Now that we have properly split load/store instruction emulation and generic
instruction emulation, we can move the generic one from kvm.ko to kvm-pr.ko
on book3s_64.

This reduces the attack surface and amount of code loaded on HV KVM kernels.

Signed-off-by: Alexander Graf <agraf@suse.de>
arch/powerpc/kvm/Makefile
arch/powerpc/kvm/trace_pr.h

index 1ccd7a1..2d590de 100644 (file)
@@ -48,6 +48,7 @@ kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HANDLER) := \
 
 kvm-pr-y := \
        fpu.o \
+       emulate.o \
        book3s_paired_singles.o \
        book3s_pr.o \
        book3s_pr_papr.o \
@@ -91,7 +92,6 @@ kvm-book3s_64-module-objs += \
        $(KVM)/kvm_main.o \
        $(KVM)/eventfd.o \
        powerpc.o \
-       emulate.o \
        emulate_loadstore.o \
        book3s.o \
        book3s_64_vio.o \
index e1357cd..a674f09 100644 (file)
@@ -291,6 +291,26 @@ TRACE_EVENT(kvm_unmap_hva,
        TP_printk("unmap hva 0x%lx\n", __entry->hva)
 );
 
+TRACE_EVENT(kvm_ppc_instr,
+       TP_PROTO(unsigned int inst, unsigned long _pc, unsigned int emulate),
+       TP_ARGS(inst, _pc, emulate),
+
+       TP_STRUCT__entry(
+               __field(        unsigned int,   inst            )
+               __field(        unsigned long,  pc              )
+               __field(        unsigned int,   emulate         )
+       ),
+
+       TP_fast_assign(
+               __entry->inst           = inst;
+               __entry->pc             = _pc;
+               __entry->emulate        = emulate;
+       ),
+
+       TP_printk("inst %u pc 0x%lx emulate %u\n",
+                 __entry->inst, __entry->pc, __entry->emulate)
+);
+
 #endif /* _TRACE_KVM_H */
 
 /* This part must be outside protection */