diff options
author | Heinz Graalfs <graalfs@linux.vnet.ibm.com> | 2013-06-12 15:54:56 +0400 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2013-06-17 19:10:23 +0400 |
commit | b764bb1c50c279b95a486d338418f7fda74fff71 (patch) | |
tree | 3437841e26cc513f55f6366aebf533f57bbaea6e /arch/s390/kernel/s390_ksyms.c | |
parent | d0321a24bf10e2299a997c4747b924f79f70a232 (diff) | |
download | linux-b764bb1c50c279b95a486d338418f7fda74fff71.tar.xz |
KVM: s390,perf: Detect if perf samples belong to KVM host or guest
This patch is based on an original patch of David Hildenbrand.
The perf core implementation calls architecture specific code in order
to ask for specific information for a particular sample:
perf_instruction_pointer()
When perf core code asks for the instruction pointer, architecture
specific code must detect if a KVM guest was running when the sample
was taken. A sample can be associated with a KVM guest when the PSW
supervisor state bit is set and the PSW instruction pointer part
contains the address of 'sie_exit'.
A KVM guest's instruction pointer information is then retrieved via
gpsw entry pointed to by the sie control-block.
perf_misc_flags()
perf code code calls this function in order to associate the kernel
vs. user state infomation with a particular sample. Architecture
specific code must also first detectif a KVM guest was running
at the time the sample was taken.
Signed-off-by: Heinz Graalfs <graalfs@linux.vnet.ibm.com>
Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/s390/kernel/s390_ksyms.c')
-rw-r--r-- | arch/s390/kernel/s390_ksyms.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/s390_ksyms.c b/arch/s390/kernel/s390_ksyms.c index 9bdbcef1da9e..3bac589844a7 100644 --- a/arch/s390/kernel/s390_ksyms.c +++ b/arch/s390/kernel/s390_ksyms.c @@ -7,6 +7,7 @@ EXPORT_SYMBOL(_mcount); #endif #if defined(CONFIG_KVM) || defined(CONFIG_KVM_MODULE) EXPORT_SYMBOL(sie64a); +EXPORT_SYMBOL(sie_exit); #endif EXPORT_SYMBOL(memcpy); EXPORT_SYMBOL(memset); |