Lines Matching refs:branch
42 The static_branch_unlikely() branch will be generated into the code with as little
49 Currently, tracepoints are implemented using a conditional branch. The
70 the branch site to change the branch direction.
72 For example, if we have a simple branch that is disabled by default:
75 printk("I am the true branch\n");
79 straight-line code path. When the branch is 'flipped', we will patch the
81 out-of-line true branch. Thus, changing branch direction is expensive but
82 branch selection is basically 'free'. That is the basic tradeoff of this
129 The branch(es) can then be switched via reference counts:
135 Thus, 'static_branch_inc()' means 'make the branch true', and
136 'static_branch_dec()' means 'make the branch false' with appropriate
138 static_branch_dec(), will switch the branch to false. And a subsequent
139 static_branch_inc(), will change the branch back to true. Likewise, if the
140 key is initialized false, a 'static_branch_inc()', will change the branch to
141 true. And then a 'static_branch_dec()', will again make the branch false.
155 * __always_inline bool arch_static_branch(struct static_key *key, bool branch), see:
158 * __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch),
174 As an example, let's add the following branch to 'getppid()', such that the
182 + printk("I am the true branch\n");
246 really can be a 2-byte no-op since we can reach the branch with a 2-byte jmp.
267 5,569,188 branch-misses # 2.67% of all branches ( +- 0.54% )
284 4,884,119 branch-misses # 2.36% of all branches ( +- 0.85% )
289 'branch-misses'. This is where we would expect to get the most savings, since