| /linux/tools/perf/util/intel-pt-decoder/ |
| H A D | intel-pt-insn-decoder.c | 29 enum intel_pt_insn_branch branch = INTEL_PT_BR_NO_BRANCH; in intel_pt_insn_decoder() local 37 intel_pt_insn->branch = INTEL_PT_BR_NO_BRANCH; in intel_pt_insn_decoder() 50 branch = INTEL_PT_BR_INDIRECT; in intel_pt_insn_decoder() 56 branch = INTEL_PT_BR_INDIRECT; in intel_pt_insn_decoder() 60 branch = INTEL_PT_BR_INDIRECT; in intel_pt_insn_decoder() 73 branch = INTEL_PT_BR_INDIRECT; in intel_pt_insn_decoder() 78 branch = INTEL_PT_BR_INDIRECT; in intel_pt_insn_decoder() 82 branch = INTEL_PT_BR_CONDITIONAL; in intel_pt_insn_decoder() 90 branch = INTEL_PT_BR_CONDITIONAL; in intel_pt_insn_decoder() 96 intel_pt_insn->branch = INTEL_PT_BR_INDIRECT; in intel_pt_insn_decoder() [all …]
|
| /linux/drivers/clk/nxp/ |
| H A D | clk-lpc18xx-ccu.c | 202 static void lpc18xx_ccu_register_branch_gate_div(struct lpc18xx_clk_branch *branch, in lpc18xx_ccu_register_branch_gate_div() argument 210 if (branch->flags & CCU_BRANCH_HAVE_DIV2) { in lpc18xx_ccu_register_branch_gate_div() 215 div->reg = branch->offset + reg_base; in lpc18xx_ccu_register_branch_gate_div() 224 branch->gate.reg = branch->offset + reg_base; in lpc18xx_ccu_register_branch_gate_div() 225 branch->gate.bit_idx = 0; in lpc18xx_ccu_register_branch_gate_div() 227 branch->clk = clk_register_composite(NULL, branch->name, &parent, 1, in lpc18xx_ccu_register_branch_gate_div() 230 &branch->gate.hw, &lpc18xx_ccu_gate_ops, 0); in lpc18xx_ccu_register_branch_gate_div() 231 if (IS_ERR(branch->clk)) { in lpc18xx_ccu_register_branch_gate_div() 233 pr_warn("%s: failed to register %s\n", __func__, branch->name); in lpc18xx_ccu_register_branch_gate_div() 238 switch (branch->offset) { in lpc18xx_ccu_register_branch_gate_div() [all …]
|
| /linux/tools/perf/util/ |
| H A D | intel-bts.c | 80 struct branch { struct 89 struct branch *branch; in intel_bts_dump() argument 90 size_t i, pos = 0, br_sz = sizeof(struct branch), sz; in intel_bts_dump() 109 branch = (struct branch *)buf; in intel_bts_dump() 111 le64_to_cpu(branch->from), in intel_bts_dump() 112 le64_to_cpu(branch->to), in intel_bts_dump() 113 le64_to_cpu(branch->misc) & 0x10 ? in intel_bts_dump() 239 for (; offs < len_a; offs += sizeof(struct branch)) { in intel_bts_find_overlap() 273 struct branch *branch) in intel_bts_synth_branch_sample() argument 285 sample.ip = le64_to_cpu(branch->from); in intel_bts_synth_branch_sample() [all …]
|
| H A D | annotate.c | 158 if (notes->branch && notes->branch->cycles_hist) { in symbol__annotate_zero_histograms() 159 memset(notes->branch->cycles_hist, 0, in symbol__annotate_zero_histograms() 269 if (notes->branch == NULL) in annotation__get_branch() 270 notes->branch = zalloc(sizeof(*notes->branch)); in annotation__get_branch() 272 return notes->branch; in annotation__get_branch() 279 struct annotated_branch *branch; in symbol__find_branch_hist() local 282 branch = annotation__get_branch(notes); in symbol__find_branch_hist() 283 if (branch == NULL) in symbol__find_branch_hist() 286 if (branch->cycles_hist == NULL) { in symbol__find_branch_hist() 287 branch->cycles_hist = calloc(size, sizeof(struct cyc_hist)); in symbol__find_branch_hist() [all …]
|
| /linux/drivers/clk/qcom/ |
| H A D | ecpricc-qdu1000.c | 925 .branch = { 949 .branch = { 973 .branch = { 997 .branch = { 1021 .branch = { 1063 .branch = { 1087 .branch = { 1111 .branch = { 1135 .branch = { 1177 .branch = { [all …]
|
| H A D | clk-branch.c | 141 struct clk_branch branch = mem_br->branch; in clk_branch2_mem_enable() local 145 regmap_assign_bits(branch.clkr.regmap, mem_br->mem_enable_reg, in clk_branch2_mem_enable() 148 ret = regmap_read_poll_timeout(branch.clkr.regmap, mem_br->mem_ack_reg, in clk_branch2_mem_enable() 151 WARN(1, "%s mem enable failed\n", clk_hw_get_name(&branch.clkr.hw)); in clk_branch2_mem_enable() 162 regmap_assign_bits(mem_br->branch.clkr.regmap, mem_br->mem_enable_reg, in clk_branch2_mem_disable()
|
| /linux/Documentation/admin-guide/hw-vuln/ |
| H A D | spectre.rst | 6 Spectre is a class of side channel attacks that exploit branch prediction 18 use branch prediction and speculative execution. 55 buffers, and branch predictors. Malicious software may be able to 70 of speculative execution that bypasses conditional branch instructions 92 The branch target injection attack takes advantage of speculative 94 branch predictors inside the processor used to guess the target of 103 branches in the victim to gadget code by poisoning the branch target 104 buffer of a CPU used for predicting indirect branch addresses. Such 106 with the address offset of the indirect branch under the attacker's 107 control. Since the branch prediction on impacted hardware does not [all …]
|
| /linux/tools/perf/tests/shell/ |
| H A D | test_brstack.sh | 2 # Check branch stack sampling 11 # skip the test if the hardware doesn't support branch stack sampling 13 if ! perf record -o- --no-buildid --branch-filter any,save_type,u -- true > /dev/null 2>&1 ; then 53 echo "Testing user branch stack sampling" 57 perf record -o "$TMPDIR/perf.data" --branch-filter any,save_type,u -- ${TESTPROG} > "$TMPDIR/record.txt" 2>&1 60 # example of branch entries: 92 echo "Testing user branch stack sampling [Failed kernel address found in user mode]" 95 # some branch types are still not being tested: 98 echo "Testing user branch stack sampling [Passed]" 101 echo "Testing user branch stac [all...] |
| /linux/Documentation/staging/ |
| H A D | static-keys.rst | 48 The static_branch_unlikely() branch will be generated into the code with as little 56 Currently, tracepoints are implemented using a conditional branch. The 78 the branch site to change the branch direction. 80 For example, if we have a simple branch that is disabled by default:: 83 printk("I am the true branch\n"); 87 straight-line code path. When the branch is 'flipped', we will patch the 89 out-of-line true branch. Thus, changing branch direction is expensive but 90 branch selection is basically 'free'. That is the basic tradeoff of this 138 The branch(es) can then be switched via reference counts:: 144 Thus, 'static_branch_inc()' means 'make the branch true', and [all …]
|
| /linux/Documentation/arch/riscv/ |
| H A D | zicfilp.rst | 11 to enable indirect branch tracking for user mode applications on RISC-V. 72 dependencies have been compiled with indirect branch support. Thus 73 it's left to the dynamic loader to enable indirect branch tracking for 79 Per-task indirect branch tracking state can be monitored and 91 ``zicfilp``, then the kernel will enable indirect branch tracking for 94 indirect branch tracking. 96 Indirect branch tracking state can also be locked once enabled. This 98 setting the bit :c:macro:`PR_CFI_LOCK` in arg. Either indirect branch 104 Indirect branch tracking can also be disabled for the task, assuming 108 :c:macro:`PR_CFI_DISABLE`. Disabling indirect branch tracking for the [all …]
|
| /linux/arch/parisc/include/asm/ |
| H A D | jump_label.h | 13 static __always_inline bool arch_static_branch(struct static_key *key, bool branch) in arch_static_branch() argument 22 : : "i" (&((char *)key)[branch]), "i" (sizeof(long)) in arch_static_branch() 30 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) in arch_static_branch_jump() argument 39 : : "i" (&((char *)key)[branch]), "i" (sizeof(long)) in arch_static_branch_jump()
|
| /linux/arch/csky/include/asm/ |
| H A D | jump_label.h | 13 bool branch) in arch_static_branch() argument 22 : : "i"(&((char *)key)[branch]) : : label); in arch_static_branch() 30 bool branch) in arch_static_branch_jump() argument 39 : : "i"(&((char *)key)[branch]) : : label); in arch_static_branch_jump()
|
| /linux/arch/s390/include/asm/ |
| H A D | jump_label.h | 26 static __always_inline bool arch_static_branch(struct static_key *key, bool branch) in arch_static_branch() argument 34 : : JUMP_LABEL_STATIC_KEY_CONSTRAINT (key), "i" (branch) : : label); in arch_static_branch() 40 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) in arch_static_branch_jump() argument 48 : : JUMP_LABEL_STATIC_KEY_CONSTRAINT (key), "i" (branch) : : label); in arch_static_branch_jump()
|
| /linux/arch/xtensa/include/asm/ |
| H A D | jump_label.h | 14 bool branch) in arch_static_branch() argument 21 : : "i" (&((char *)key)[branch]) : : l_yes); in arch_static_branch() 29 bool branch) in arch_static_branch_jump() argument 49 : : "i" (&((char *)key)[branch]) : : l_yes); in arch_static_branch_jump()
|
| /linux/arch/arc/include/asm/ |
| H A D | jump_label.h | 32 bool branch) in arch_static_branch() argument 40 : : "i" (&((char *)key)[branch]) : : l_yes); in arch_static_branch() 48 bool branch) in arch_static_branch_jump() argument 56 : : "i" (&((char *)key)[branch]) : : l_yes); in arch_static_branch_jump()
|
| /linux/arch/powerpc/include/asm/ |
| H A D | jump_label.h | 18 static __always_inline bool arch_static_branch(struct static_key *key, bool branch) in arch_static_branch() argument 26 : : "i" (&((char *)key)[branch]) : : l_yes); in arch_static_branch() 33 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) in arch_static_branch_jump() argument 41 : : "i" (&((char *)key)[branch]) : : l_yes); in arch_static_branch_jump()
|
| /linux/arch/arm/include/asm/ |
| H A D | jump_label.h | 20 static __always_inline bool arch_static_branch(struct static_key *key, bool branch) in arch_static_branch() argument 23 : : "i" (&((char *)key)[branch]) : : l_yes); in arch_static_branch() 30 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) in arch_static_branch_jump() argument 37 : : "i" (&((char *)key)[branch]) : : l_yes); in arch_static_branch_jump()
|
| /linux/arch/loongarch/include/asm/ |
| H A D | jump_label.h | 38 static __always_inline bool arch_static_branch(struct static_key * const key, const bool branch) in arch_static_branch() argument 42 : : "i"(&((char *)key)[branch]) : : l_yes); in arch_static_branch() 50 …atic __always_inline bool arch_static_branch_jump(struct static_key * const key, const bool branch) in arch_static_branch_jump() argument 55 : : "i"(&((char *)key)[branch]) : : l_yes); in arch_static_branch_jump()
|
| /linux/arch/riscv/include/asm/ |
| H A D | jump_label.h | 37 const bool branch) in arch_static_branch() argument 41 : : "i"(&((char *)key)[branch]) : : label); in arch_static_branch() 58 const bool branch) in arch_static_branch_jump() argument 62 : : "i"(&((char *)key)[branch]) : : label); in arch_static_branch_jump()
|
| /linux/arch/openrisc/include/asm/ |
| H A D | jump_label.h | 44 const bool branch) in arch_static_branch() argument 47 ::"i"(&((char *)key)[branch])::l_yes); in arch_static_branch() 61 arch_static_branch_jump(struct static_key *const key, const bool branch) in arch_static_branch_jump() argument 64 ::"i"(&((char *)key)[branch])::l_yes); in arch_static_branch_jump()
|
| /linux/tools/perf/arch/x86/tests/ |
| H A D | insn-x86.c | 103 int op, branch, ret; in test_data_item() local 120 branch = get_branch(dat->expected_branch_str); in test_data_item() 133 if ((int)intel_pt_insn.branch != branch) { in test_data_item() 135 intel_pt_insn.branch, branch, dat->asm_rep); in test_data_item()
|
| H A D | gen-insn-x86-dat.awk | 14 branch = "" 44 printf "}, %d, %s, \"%s\", \"%s\",", len, rel, op, branch 47 branch = "" 62 branch = $i
|
| /linux/arch/x86/include/asm/ |
| H A D | jump_label.h | 35 static __always_inline bool arch_static_branch(struct static_key * const key, const bool branch) in arch_static_branch() argument 38 : : "i" (key), "i" (branch) : : l_yes); in arch_static_branch() 45 …atic __always_inline bool arch_static_branch_jump(struct static_key * const key, const bool branch) in arch_static_branch_jump() argument 50 : : "i" (key), "i" (branch) : : l_yes); in arch_static_branch_jump()
|
| /linux/arch/mips/include/asm/ |
| H A D | jump_label.h | 40 static __always_inline bool arch_static_branch(struct static_key *key, bool branch) in arch_static_branch() argument 47 : : "i" (&((char *)key)[branch]) : : l_yes); in arch_static_branch() 54 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) in arch_static_branch_jump() argument 60 : : "i" (&((char *)key)[branch]) : : l_yes); in arch_static_branch_jump()
|
| /linux/tools/bootconfig/scripts/ |
| H A D | bconf2ftrace.sh | 184 branch=$1.$2.$3 198 xbc_get_val ${branch}.probes | while read line; do 203 run_cmd "echo '`compose_synth $3 ${branch}.fields`' >> $TRACEFS/synthetic_events" 207 set_value_of ${branch}.filter ${eventdir}/filter 208 set_array_of ${branch}.actions ${eventdir}/trigger 210 setup_histograms ${branch}.hist ${eventdir}/trigger 212 if xbc_has_key ${branch}.enable; then
|