linux_dsm_epyc7002/arch/s390/include/asm
Ingo Molnar c5905afb0e static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]()
So here's a boot tested patch on top of Jason's series that does
all the cleanups I talked about and turns jump labels into a
more intuitive to use facility. It should also address the
various misconceptions and confusions that surround jump labels.

Typical usage scenarios:

        #include <linux/static_key.h>

        struct static_key key = STATIC_KEY_INIT_TRUE;

        if (static_key_false(&key))
                do unlikely code
        else
                do likely code

Or:

        if (static_key_true(&key))
                do likely code
        else
                do unlikely code

The static key is modified via:

        static_key_slow_inc(&key);
        ...
        static_key_slow_dec(&key);

The 'slow' prefix makes it abundantly clear that this is an
expensive operation.

I've updated all in-kernel code to use this everywhere. Note
that I (intentionally) have not pushed through the rename
blindly through to the lowest levels: the actual jump-label
patching arch facility should be named like that, so we want to
decouple jump labels from the static-key facility a bit.

On non-jump-label enabled architectures static keys default to
likely()/unlikely() branches.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Jason Baron <jbaron@redhat.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: a.p.zijlstra@chello.nl
Cc: mathieu.desnoyers@efficios.com
Cc: davem@davemloft.net
Cc: ddaney.cavm@gmail.com
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/20120222085809.GA26397@elte.hu
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2012-02-24 10:05:59 +01:00
..
airq.h
appldata.h
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic.h atomic: cleanup asm-generic atomic*.h inclusion 2011-07-26 16:49:47 -07:00
auxvec.h [S390] introduce vdso on s390 2008-12-25 13:38:55 +01:00
bitops.h asm-generic: add another generic ext2 atomic bitops 2011-07-26 16:49:46 -07: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
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] net: provide architecture specific NET_SKB_PAD 2011-02-17 13:13:59 +01:00
cacheflush.h module: undo module RONX protection correctly. 2011-05-19 16:55:26 +09:30
ccwdev.h [S390] fix mismatch in summation of I/O IRQ statistics 2011-10-30 15:16:15 +01:00
ccwgroup.h [S390] ccwgroup_driver: remove duplicate members 2011-03-23 10:15:59 +01:00
checksum.h [S390] convert/optimize csum_fold() to C 2009-09-11 10:29:43 +02:00
chpid.h UAPI: Alter the S390 asm include guards to be recognisable by the UAPI splitter 2011-12-13 09:26:45 +00:00
chsc.h [S390] cio: move scsw helper functions to header file 2009-09-11 10:29:36 +02:00
cio.h Fix common misspellings 2011-03-31 11:26:23 -03:00
cmb.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
cmpxchg.h [S390] percpu: implement arch specific irqsafe_cpu_ops 2011-05-23 10:24:29 +02:00
compat.h [S390] cleanup psw related bits and pieces 2011-10-30 15:16:43 +01:00
cpcmd.h
cpu.h [S390] correct alignment of cpuid structure 2010-10-25 16:10:19 +02:00
cputime.h Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-01-06 08:44:54 -08:00
crw.h [S390] cio: wait for channel report 2010-02-26 22:37:29 +01:00
current.h
dasd.h [S390] dasd: Add support for raw ECKD access. 2011-01-05 12:47:30 +01:00
debug.h switch debugfs to umode_t 2012-01-03 22:54:56 -05:00
delay.h [S390] delay: implement ndelay 2011-05-26 09:48:25 +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
ebcdic.h
elf.h [S390] Do not clobber personality flags on exec 2011-09-26 16:40:50 +02:00
emergency-restart.h
errno.h
etr.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
extmem.h
fb.h
fcntl.h
fcx.h [S390] cio: update sac values 2008-12-25 13:39:06 +01:00
ftrace.h ftrace/s390: mcount offset calculation 2011-05-16 15:05:06 -04:00
futex.h futex: Sanitize futex ops argument types 2011-03-11 12:23:31 +01:00
hardirq.h [S390] time: move local_tick_enable()/disable() to timex.h 2011-01-05 12:47:24 +01:00
hugetlb.h [S390] Remove data execution protection 2011-05-23 10:24:28 +02:00
idals.h [S390] dasd: add High Performance FICON support 2009-03-26 15:24:05 +01:00
io.h
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] kdump backend code 2011-10-30 15:16:42 +01:00
irq_regs.h
irq.h [S390] irqstats: split IPI interrupt accounting 2011-10-30 15:16:47 +01:00
irqflags.h [S390] irqs: Do not trace arch_local_{*,irq_*} functions 2011-07-24 10:48:00 +02:00
isc.h [S390] zcrypt: Use of Thin Interrupts 2008-12-25 13:38:57 +01: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 kdump: define KEXEC_NOTE_BYTES arch specific for s390x 2012-01-23 08:38:48 -08:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h [S390] kprobes: jprobe save and restore 2011-01-05 12:47:24 +01:00
kvm_host.h KVM: s390: handle SIGP sense running intercepts 2011-11-17 16:25:46 +02:00
kvm_para.h KVM: Add __KERNEL__ guards to exported headers 2009-09-10 10:46:48 +03:00
kvm_virtio.h KVM: S390: Add virtio hotplug add support 2010-10-24 10:51:29 +02:00
kvm.h KVM: s390: Make psw available on all exits, not just a subset 2009-12-03 09:32:25 +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] entry[64].S improvements 2011-12-27 11:27:12 +01:00
mathemu.h
mman.h UAPI: Split trivial #if defined(__KERNEL__) && X conditionals 2011-12-13 15:07:49 +00:00
mmu_context.h [S390] Remove data execution protection 2011-05-23 10:24:28 +02:00
mmu.h [S390] kvm guest address space mapping 2011-07-24 10:48:21 +02:00
module.h
monwriter.h
msgbuf.h
mutex.h [S390] mutex: Introduce arch_mutex_cpu_relax() 2011-01-05 12:47:31 +01:00
nmi.h [S390] split/move machine check handler code 2009-03-26 15:24:10 +01:00
page.h [S390] sparse: fix sparse warnings about missing prototypes 2011-10-30 15:16:46 +01: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 percpu: Remove irqsafe_cpu_xxx variants 2011-12-22 10:40:20 -08:00
perf_event.h perf, arch: Rework perf_event_index() 2011-12-21 11:01:07 +01:00
pgalloc.h [S390] kvm guest address space mapping 2011-07-24 10:48:21 +02:00
pgtable.h [S390] add support for physical memory > 4TB 2011-12-27 11:27:10 +01:00
poll.h
posix_types.h [S390] asm-s390/posix_types.h: drop __USE_ALL usage 2009-01-09 12:15:04 +01:00
processor.h treewide: convert uses of ATTRIB_NORETURN to __noreturn 2012-01-12 20:13:03 -08:00
ptrace.h Audit: push audit success and retcode into arch ptrace.h 2012-01-17 16:16:56 -05:00
qdio.h [S390] qdio: fix kernel panic for zfcp 31-bit 2011-12-27 11:27:14 +01:00
qeth.h qeth: support ipv6 query arp cache for HiperSockets 2010-12-10 14:28:47 -08:00
reset.h [S390] kdump backend code 2011-10-30 15:16:42 +01:00
resource.h
rwsem.h rwsem: Move duplicate function prototypes to linux/rwsem.h 2011-01-27 12:30:39 +01: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
scsw.h [S390] cio: move scsw helper functions to header file 2009-09-11 10:29:36 +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] avoid STCKF if running in ESA mode 2011-11-14 11:19:09 +01:00
sfp-machine.h
sfp-util.h [S390] sparse: fix sparse warnings in math-emu 2011-10-30 15:16:46 +01:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
sigp.h [S390] outstanding interrupts vs. smp_send_stop 2011-12-27 11:27:13 +01:00
smp.h [S390] topology: get rid of ifdefs 2011-12-27 11:27:10 +01:00
socket.h net: add wireless TX status socket option 2011-11-09 16:01:02 -05:00
sockios.h [S390] use generic sockios.h header file 2009-12-07 12:51:37 +01:00
sparsemem.h [S390] add support for physical memory > 4TB 2011-12-27 11:27:10 +01:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock.h [S390] sparse: fix sparse warnings about missing prototypes 2011-10-30 15:16:46 +01:00
stat.h
statfs.h add f_flags to struct statfs(64) 2010-08-09 16:48:44 -04:00
string.h [S390] use compiler builtin versions of strlen/strcpy/strcat 2009-03-26 15:24:24 +01:00
swab.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
syscall.h [S390] cleanup trap handling 2011-12-27 11:27:12 +01:00
sysinfo.h [S390] topology: move topology sysinfo code 2010-10-25 16:10:21 +02:00
system.h [S390] sysctl: get rid of dead declaration 2011-12-27 11:27:14 +01:00
tape390.h
termbits.h [S390] use generic termbits.h header file 2009-12-07 12:51:37 +01:00
termios.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
thread_info.h freezer: remove now unused TIF_FREEZE 2011-11-21 12:32:25 -08:00
timer.h [S390] extend virtual timer interface by mod_virt_timer_periodic 2009-04-14 15:37:23 +02:00
timex.h [S390] avoid STCKF if running in ESA mode 2011-11-14 11:19:09 +01:00
tlb.h [S390] use generic RCU page-table freeing code 2011-06-06 14:14:56 +02:00
tlbflush.h [S390] add missing __tlb_flush_global() for !CONFIG_SMP 2011-10-30 15:16:47 +01:00
topology.h [S390] topology: increase poll frequency if change is anticipated 2011-12-27 11:27:12 +01:00
types.h consolidate umode_t declarations 2012-01-03 22:55:17 -05:00
uaccess.h [S390] uaccess: turn __access_ok() into a define 2011-05-26 09:48:25 +02:00
ucontext.h [S390] 64-bit register support for 31-bit processes 2009-10-06 10:35:10 +02:00
unaligned.h
unistd.h [S390] ipc: call generic sys_ipc demultiplexer 2011-12-27 11:27:13 +01:00
user.h
vdso.h [S390] vdso: use ntp adjusted clock multiplier 2010-04-22 17:17:19 +02:00
vtoc.h [S390] dasd: add large volume support 2009-03-26 15:24:05 +01:00
xor.h
zcrypt.h