Lines Matching refs:bp

63 int arch_install_hw_breakpoint(struct perf_event *bp)  in arch_install_hw_breakpoint()  argument
65 struct arch_hw_breakpoint *info = counter_arch_bp(bp); in arch_install_hw_breakpoint()
68 *slot = bp; in arch_install_hw_breakpoint()
74 if (current->thread.last_hit_ubp != bp) in arch_install_hw_breakpoint()
89 void arch_uninstall_hw_breakpoint(struct perf_event *bp) in arch_uninstall_hw_breakpoint() argument
93 if (*slot != bp) { in arch_uninstall_hw_breakpoint()
106 void arch_unregister_hw_breakpoint(struct perf_event *bp) in arch_unregister_hw_breakpoint() argument
113 if (bp->ctx && bp->ctx->task) in arch_unregister_hw_breakpoint()
114 bp->ctx->task->thread.last_hit_ubp = NULL; in arch_unregister_hw_breakpoint()
120 int arch_check_bp_in_kernelspace(struct perf_event *bp) in arch_check_bp_in_kernelspace() argument
122 struct arch_hw_breakpoint *info = counter_arch_bp(bp); in arch_check_bp_in_kernelspace()
142 int arch_validate_hwbkpt_settings(struct perf_event *bp) in arch_validate_hwbkpt_settings() argument
145 struct arch_hw_breakpoint *info = counter_arch_bp(bp); in arch_validate_hwbkpt_settings()
147 if (!bp) in arch_validate_hwbkpt_settings()
151 if (bp->attr.bp_type & HW_BREAKPOINT_R) in arch_validate_hwbkpt_settings()
153 if (bp->attr.bp_type & HW_BREAKPOINT_W) in arch_validate_hwbkpt_settings()
158 if (!(bp->attr.exclude_user)) in arch_validate_hwbkpt_settings()
160 if (!(bp->attr.exclude_kernel)) in arch_validate_hwbkpt_settings()
162 if (!(bp->attr.exclude_hv)) in arch_validate_hwbkpt_settings()
164 info->address = bp->attr.bp_addr; in arch_validate_hwbkpt_settings()
165 info->len = bp->attr.bp_len; in arch_validate_hwbkpt_settings()
177 if ((bp->attr.bp_addr >> 10) != in arch_validate_hwbkpt_settings()
178 ((bp->attr.bp_addr + bp->attr.bp_len - 1) >> 10)) in arch_validate_hwbkpt_settings()
211 struct perf_event *bp; in hw_breakpoint_handler() local
229 bp = __this_cpu_read(bp_per_reg); in hw_breakpoint_handler()
230 if (!bp) in hw_breakpoint_handler()
232 info = counter_arch_bp(bp); in hw_breakpoint_handler()
240 if (bp->overflow_handler == ptrace_triggered) { in hw_breakpoint_handler()
241 perf_bp_event(bp, regs); in hw_breakpoint_handler()
253 if (!((bp->attr.bp_addr <= dar) && in hw_breakpoint_handler()
254 (dar - bp->attr.bp_addr < bp->attr.bp_len))) in hw_breakpoint_handler()
259 current->thread.last_hit_ubp = bp; in hw_breakpoint_handler()
277 perf_event_disable(bp); in hw_breakpoint_handler()
285 perf_bp_event(bp, regs); in hw_breakpoint_handler()
299 struct perf_event *bp = NULL; in single_step_dabr_instruction() local
302 bp = current->thread.last_hit_ubp; in single_step_dabr_instruction()
307 if (!bp) in single_step_dabr_instruction()
310 info = counter_arch_bp(bp); in single_step_dabr_instruction()
317 perf_bp_event(bp, regs); in single_step_dabr_instruction()
363 void hw_breakpoint_pmu_read(struct perf_event *bp) in hw_breakpoint_pmu_read() argument