kernel-ark/arch/s390/kernel
Heinz Graalfs b764bb1c50 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>
2013-06-17 17:10:23 +02:00
..
vdso32
vdso64
.gitignore
asm-offsets.c s390/kvm: Provide a way to prevent reentering SIE 2013-05-21 11:55:23 +03:00
audit.c
audit.h
base.S
bitmap.c
cache.c s390/cache: fix data/instruction cache output 2012-10-18 17:50:11 +02:00
compat_audit.c
compat_exec_domain.c
compat_linux.c merge compat sys_ipc instances 2013-03-03 23:00:27 -05:00
compat_linux.h merge compat sys_ipc instances 2013-03-03 23:00:27 -05:00
compat_ptrace.h
compat_signal.c s390/signal: Add BEA to compat signal handler parameters 2013-04-17 14:07:35 +02:00
compat_wrapper.S switch compat_sys_sysctl to COMPAT_SYSCALL_DEFINE 2013-05-09 14:53:20 -04:00
cpcmd.c
crash_dump.c s390/mem_detect: remove artificial kdump memory types 2013-05-03 14:21:15 +02:00
debug.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
diag.c
dis.c s390/dis: use explicit buf len 2013-04-17 14:07:25 +02:00
dumpstack.c dump_stack: unify debug information printed by show_regs() 2013-04-30 17:04:02 -07:00
early.c s390/mem_detect: limit memory detection loop to "mem=" parameter 2013-05-02 15:50:26 +02:00
ebcdic.c
entry64.S KVM: s390,perf: Detect if perf samples belong to KVM host or guest 2013-06-17 17:10:23 +02:00
entry.h s390/hibernate: Save and restore absolute zero pages 2013-04-17 14:07:30 +02:00
entry.S s390: system call path micro optimization 2013-04-26 09:07:05 +02:00
ftrace.c
head31.S s390/mm: let kernel text section always begin at 1MB 2012-10-09 14:16:59 +02:00
head64.S s390/mm: let kernel text section always begin at 1MB 2012-10-09 14:16:59 +02:00
head_kdump.S s390/kdump: Use 64 bit mode for 0x10000 entry point 2012-10-18 17:50:09 +02:00
head.S s390: add zEC12 code generation support 2012-11-23 11:14:31 +01:00
ipl.c s390/ipl: Implement diag308 loop for zfcpdump 2013-02-14 15:55:05 +01:00
irq.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-05-01 17:51:54 -07:00
jump_label.c
kprobes.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
lgr.c s390/sysinfo,stsi: change return code handling 2012-09-26 15:45:12 +02:00
machine_kexec.c s390/kdump: Add PM notifier for kdump 2013-04-15 13:34:44 +02:00
Makefile s390/mem_detect: move memory detection code to mm folder 2013-05-02 15:50:22 +02:00
mcount64.S
mcount.S
module.c s390/module: fix compile warning 2013-02-28 09:37:13 +01:00
nmi.c s390/time: rename tod clock access functions 2013-02-14 15:55:10 +01:00
os_info.c Include missing linux/slab.h inclusions 2013-04-29 15:42:01 -04:00
perf_cpum_cf.c s390/perf: cpum_cf: fallback to software sampling events 2013-02-14 15:55:15 +01:00
perf_event.c KVM: s390,perf: Detect if perf samples belong to KVM host or guest 2013-06-17 17:10:23 +02:00
pgm_check.S s390/traps: preinitialize program check table 2012-11-23 11:14:25 +01:00
process.c s390: Use generic idle loop 2013-04-08 17:39:27 +02:00
processor.c
ptrace.c s390/ptrace: add missing ifdef 2012-09-26 15:45:21 +02:00
reipl64.S
reipl.S
relocate_kernel64.S
relocate_kernel.S
runtime_instr.c s390/irq: remove split irq fields from /proc/stat 2013-01-08 10:57:07 +01:00
s390_ksyms.c KVM: s390,perf: Detect if perf samples belong to KVM host or guest 2013-06-17 17:10:23 +02:00
sclp.S s390/sclp: fix addressing mode clobber 2012-11-06 22:39:51 +01:00
setup.c s390/mem_detect: remove artificial kdump memory types 2013-05-03 14:21:15 +02:00
signal.c s390/uaccess: remove pointless access_ok() checks 2013-02-28 09:37:09 +01:00
smp.c Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-04-30 07:50:17 -07:00
stacktrace.c
suspend.c s390/hibernate: Save and restore absolute zero pages 2013-04-17 14:07:30 +02:00
swsusp_asm64.S s390/hibernate: Save and restore absolute zero pages 2013-04-17 14:07:30 +02:00
sys_s390.c teach SYSCALL_DEFINE<n> how to deal with long long/unsigned long long 2013-03-03 22:46:22 -05:00
syscalls.S switch compat_sys_sysctl to COMPAT_SYSCALL_DEFINE 2013-05-09 14:53:20 -04:00
sysinfo.c s390/sysinfo,stsi: change return code handling 2012-09-26 15:45:12 +02:00
time.c s390/time: rename tod clock access functions 2013-02-14 15:55:10 +01:00
topology.c s390/topology: export cpu_topology 2013-01-08 10:57:10 +01:00
traps.c s390/dumpstack: fix call chain walking 2013-04-17 14:07:28 +02:00
vdso.c
vmlinux.lds.S s390/linker skript: discard exit.data at runtime 2013-02-14 15:55:21 +01:00
vtime.c s390: Use generic idle loop 2013-04-08 17:39:27 +02:00