linux/arch/s390/include/asm
Jan Glauber e4b8b3f33f s390: add support for runtime instrumentation
Allow user-space threads to use runtime instrumentation (RI). To enable RI
for a thread there is a new s390 specific system call, sys_s390_runtime_instr,
that takes as parameter a realtime signal number. If the RI facility is
available the system call sets up a control block for the calling thread with
the appropriate permissions for the thread to modify the control block.

The user-space thread can then use the store and modify RI instructions to
alter the control block and start/stop the instrumentation via RION/RIOFF.

If the user specified program buffer runs full RI triggers an external
interrupt. The external interrupt is translated to a real-time signal that
is delivered to the thread that enabled RI on that CPU. The number of
the real-time signal is the number specified in the RI system call. So,
user-space can select any available real-time signal number in case the
application itself uses real-time signals for other purposes.

The kernel saves the RI control blocks on task switch only if the running
thread was enabled for RI. Therefore, the performance impact on task switch
should be negligible if RI is not used.

RI is only enabled for user-space mode and is disabled for the supervisor
state.

Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2012-09-26 15:45:02 +02:00
..
airq.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
appldata.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
auxvec.h
barrier.h s390/barrier: make use of fast-bcr facility 2012-05-16 14:42:45 +02:00
bitops.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bug.h panic: Allow warnings to set different taint flags 2010-05-19 08:36:48 +01:00
bugs.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cacheflush.h module: undo module RONX protection correctly. 2011-05-19 16:55:26 +09:30
ccwdev.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
ccwgroup.h s390/ccwgroup: remove unused ccwgroup_device member 2012-06-05 13:23:37 +02:00
checksum.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
chpid.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
chsc.h s390: add eadm facility bits 2012-09-26 15:44:57 +02:00
cio.h s390: add eadm related structures 2012-09-26 15:44:57 +02:00
cmb.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
cmpxchg.h s390/cmpxchg: fix sign extension bugs 2012-05-30 09:07:58 +02:00
compat.h compat: fix compile breakage on s390 2012-02-27 07:54:27 -08:00
cpcmd.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cpu_mf.h s390: add support for runtime instrumentation 2012-09-26 15:45:02 +02:00
cpu.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cputime.h s390/vtimer: rework virtual timer interface 2012-07-20 11:15:08 +02:00
crw.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
css_chars.h s390: add eadm facility bits 2012-09-26 15:44:57 +02:00
ctl_reg.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
current.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
dasd.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
debug.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
delay.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
device.h
diag.h [S390] replace diag10() with diag10_range() function 2011-05-10 17:13:43 +02:00
div64.h
dma.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
eadm.h s390: add scm notification 2012-09-26 15:44:59 +02:00
ebcdic.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
elf.h s390/32: Don't clobber personality flags on exec 2012-08-30 16:28:07 +02:00
emergency-restart.h
errno.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
etr.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
exec.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
extmem.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
facility.h [S390] Fix stfle() lowcore protection problem 2012-04-11 14:28:26 +02:00
fb.h
fcntl.h
fcx.h
ftrace.h ftrace/s390: mcount offset calculation 2011-05-16 15:05:06 -04:00
futex.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
hardirq.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
hugetlb.h s390/hugetlb: use direct TLB flushing for hugetlbfs pages 2012-09-06 10:40:37 +02:00
idals.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
io.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
ioctl.h
ioctls.h ioctl: Use asm-generic/ioctls.h on s390 (enables termiox) 2010-10-22 10:20:01 -07:00
ipcbuf.h
ipl.h [S390] kernel: Add z/VM LGR detection 2012-03-11 11:59:29 -04:00
irq_regs.h
irq.h s390: add support for runtime instrumentation 2012-09-26 15:45:02 +02:00
irqflags.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
isc.h s390/cio: add eadm subchannel driver 2012-09-26 15:45:00 +02:00
itcw.h UAPI: Alter the S390 asm include guards to be recognisable by the UAPI splitter 2011-12-13 09:26:45 +00:00
jump_label.h static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]() 2012-02-24 10:05:59 +01:00
Kbuild KVM: S390: Export kvm_virtio.h 2010-10-24 10:51:30 +02:00
kdebug.h [S390] cleanup trap handling 2011-12-27 11:27:12 +01:00
kexec.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
kmap_types.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
kprobes.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
kvm_host.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
kvm_para.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
kvm_virtio.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
kvm.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
linkage.h [S390] fix s390 assembler code alignments 2011-07-24 10:48:21 +02:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h
lowcore.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
mathemu.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
mman.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
mmu_context.h s390/mm: rename user_mode variable to addressing_mode 2012-07-30 11:03:11 +02:00
mmu.h [S390] Fix build errors (fallout from system.h disintegration) 2012-03-30 09:41:12 +02:00
module.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
monwriter.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
msgbuf.h
mutex.h [S390] mutex: Introduce arch_mutex_cpu_relax() 2011-01-05 12:47:31 +01:00
nmi.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
os_info.h s390/kernel: Remove OS info init function call and diag 308 for kdump 2012-05-23 17:06:50 +02:00
page.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
param.h [S390] Have param.h simply include <asm-generic/param.h>. 2010-01-04 09:05:58 +01:00
pci.h
percpu.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
perf_event.h [S390] perf: add support for s390x CPU counters 2012-03-23 11:13:25 +01:00
pgalloc.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
pgtable.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
poll.h
posix_types.h s390: Always use "long" for ssize_t to match size_t 2012-08-21 15:23:04 +02:00
processor.h s390: add support for runtime instrumentation 2012-09-26 15:45:02 +02:00
ptrace.h s390: add support for runtime instrumentation 2012-09-26 15:45:02 +02:00
qdio.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
qeth.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
reset.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
resource.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
runtime_instr.h s390: add support for runtime instrumentation 2012-09-26 15:45:02 +02:00
rwsem.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
scatterlist.h [S390] set ARCH_HAS_SG_CHAIN for s390 2010-10-25 16:10:15 +02:00
schid.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
sclp.h KVM updates for the 3.6 merge window 2012-07-24 12:01:20 -07:00
scsw.h s390: add eadm related structures 2012-09-26 15:44:57 +02:00
seccomp.h [S390] secure computing arch backend 2009-06-12 10:27:31 +02:00
sections.h
segment.h
sembuf.h
setup.h s390/mm: rename user_mode variable to addressing_mode 2012-07-30 11:03:11 +02:00
sfp-machine.h
sfp-util.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
shmbuf.h
shmparam.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
sigcontext.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
siginfo.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
signal.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
sigp.h KVM: s390: Fix sigp sense handling. 2012-07-03 14:55:37 -03:00
smp.h s390/smp: fix smp_find_processor_id() argument mismatch 2012-09-26 15:44:53 +02:00
socket.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
sockios.h [S390] use generic sockios.h header file 2009-12-07 12:51:37 +01:00
sparsemem.h s390/mm: remove MAX_PHYSADDR_BITS define 2012-08-08 07:32:55 -07:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
stat.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
statfs.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
string.h s390/string: provide asm lib functions for memcpy and memcmp 2012-09-26 15:44:50 +02:00
swab.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
switch_to.h s390: add support for runtime instrumentation 2012-09-26 15:45:02 +02:00
syscall.h s390/seccomp: add support for system call filtering using BPF 2012-08-08 07:32:56 -07:00
sysinfo.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
tape390.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
termbits.h [S390] use generic termbits.h header file 2009-12-07 12:51:37 +01:00
termios.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
thread_info.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
timex.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
tlb.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
tlbflush.h s390/mm: fix deadlock in unmap_hugepage_range() 2012-09-03 11:14:06 +02:00
topology.h [S390] topology: increase poll frequency if change is anticipated 2011-12-27 11:27:12 +01:00
types.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
uaccess.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
ucontext.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
unaligned.h
unistd.h s390: add support for runtime instrumentation 2012-09-26 15:45:02 +02:00
user.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
vdso.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
vtimer.h s390/vtimer: rework virtual timer interface 2012-07-20 11:15:08 +02:00
vtoc.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
xor.h
zcrypt.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00