Optimize very unlikely/likely branches

modulename: jump_label.ko

configname: CONFIG_JUMP_LABEL

Linux Kernel Configuration
└─>Optimize very unlikely/likely branches
In linux kernel since version 2.6.37 (release Date: 2011-01-04)  
This option enables a transparent branch optimization that
makes certain almost-always-true or almost-always-false branch
conditions even cheaper to execute within the kernel.

Certain performance-sensitive kernel code, such as trace points,
scheduler functionality, networking code and KVM have such
branches and include support for this optimization technique.

If it is detected that the compiler has support for "asm goto",
the kernel will compile such branches with just a nop
instruction. When the condition flag is toggled to true, the
nop will be converted to a jump instruction to execute the
conditional block of instructions.

This technique lowers overhead and stress on the branch prediction
of the processor and generally makes the kernel faster. The update
of the condition is slower, but those are always very rare.

( On 32-bit x86, the necessary options added to the compiler
flags may increase the size of the kernel slightly. )

source code:
selects

CONFIG_OBJTOOL

depends
CONFIG_HAVE_ARCH_JUMP_LABEL or CONFIG_CC_HAS_ASM_GOTO or &

is depended by
CONFIG_PREEMPT_DYNAMIC