Lines Matching refs:regs
6858 struct pt_regs *regs, u64 mask) in perf_output_sample_regs() argument
6867 val = perf_reg_value(regs, bit); in perf_output_sample_regs()
6873 struct pt_regs *regs) in perf_sample_regs_user() argument
6875 if (user_mode(regs)) { in perf_sample_regs_user()
6877 regs_user->regs = regs; in perf_sample_regs_user()
6879 perf_get_regs_user(regs_user, regs); in perf_sample_regs_user()
6882 regs_user->regs = NULL; in perf_sample_regs_user()
6887 struct pt_regs *regs) in perf_sample_regs_intr() argument
6889 regs_intr->regs = regs; in perf_sample_regs_intr()
6901 static u64 perf_ustack_task_size(struct pt_regs *regs) in perf_ustack_task_size() argument
6903 unsigned long addr = perf_user_stack_pointer(regs); in perf_ustack_task_size()
6913 struct pt_regs *regs) in perf_sample_ustack_size() argument
6918 if (!regs) in perf_sample_ustack_size()
6931 task_size = min((u64) USHRT_MAX, perf_ustack_task_size(regs)); in perf_sample_ustack_size()
6952 struct pt_regs *regs) in perf_output_sample_ustack() argument
6955 if (!regs) { in perf_output_sample_ustack()
6978 sp = perf_user_stack_pointer(regs); in perf_output_sample_ustack()
7409 data->regs_user.regs, in perf_output_sample()
7417 data->regs_user.regs); in perf_output_sample()
7441 data->regs_intr.regs, in perf_output_sample()
7609 perf_callchain(struct perf_event *event, struct pt_regs *regs) in perf_callchain() argument
7621 callchain = get_perf_callchain(regs, 0, kernel, user, in perf_callchain()
7633 struct pt_regs *regs) in perf_prepare_sample() argument
7660 data->ip = perf_instruction_pointer(regs); in perf_prepare_sample()
7665 perf_sample_save_callchain(data, event, regs); in perf_prepare_sample()
7680 perf_sample_regs_user(&data->regs_user, regs); in perf_prepare_sample()
7691 if (data->regs_user.regs) { in perf_prepare_sample()
7712 data->regs_user.regs); in perf_prepare_sample()
7751 perf_sample_regs_intr(&data->regs_intr, regs); in perf_prepare_sample()
7753 if (data->regs_intr.regs) { in perf_prepare_sample()
7820 struct pt_regs *regs) in perf_prepare_header() argument
7824 header->misc = perf_misc_flags(regs); in perf_prepare_header()
7840 struct pt_regs *regs, in __perf_event_output() argument
7853 perf_prepare_sample(data, event, regs); in __perf_event_output()
7854 perf_prepare_header(&header, data, event, regs); in __perf_event_output()
7872 struct pt_regs *regs) in perf_event_output_forward() argument
7874 __perf_event_output(event, data, regs, perf_output_begin_forward); in perf_event_output_forward()
7880 struct pt_regs *regs) in perf_event_output_backward() argument
7882 __perf_event_output(event, data, regs, perf_output_begin_backward); in perf_event_output_backward()
7888 struct pt_regs *regs) in perf_event_output() argument
7890 return __perf_event_output(event, data, regs, perf_output_begin); in perf_event_output()
9516 static inline bool sample_is_allowed(struct perf_event *event, struct pt_regs *regs) in sample_is_allowed() argument
9523 if (event->attr.exclude_kernel && !user_mode(regs)) in sample_is_allowed()
9535 struct pt_regs *regs) in __perf_event_overflow() argument
9568 bool valid_sample = sample_is_allowed(event, regs); in __perf_event_overflow()
9571 if (regs) in __perf_event_overflow()
9572 pending_id = hash32_ptr((void *)instruction_pointer(regs)) ?: 1; in __perf_event_overflow()
9598 READ_ONCE(event->overflow_handler)(event, data, regs); in __perf_event_overflow()
9610 struct pt_regs *regs) in perf_event_overflow() argument
9612 return __perf_event_overflow(event, 1, data, regs); in perf_event_overflow()
9662 struct pt_regs *regs) in perf_swevent_overflow() argument
9675 data, regs)) { in perf_swevent_overflow()
9688 struct pt_regs *regs) in perf_swevent_event() argument
9694 if (!regs) in perf_swevent_event()
9702 return perf_swevent_overflow(event, 1, data, regs); in perf_swevent_event()
9707 return perf_swevent_overflow(event, 1, data, regs); in perf_swevent_event()
9712 perf_swevent_overflow(event, 0, data, regs); in perf_swevent_event()
9716 struct pt_regs *regs) in perf_exclude_event() argument
9721 if (regs) { in perf_exclude_event()
9722 if (event->attr.exclude_user && user_mode(regs)) in perf_exclude_event()
9725 if (event->attr.exclude_kernel && !user_mode(regs)) in perf_exclude_event()
9736 struct pt_regs *regs) in perf_swevent_match() argument
9744 if (perf_exclude_event(event, regs)) in perf_swevent_match()
9802 struct pt_regs *regs) in do_perf_sw_event() argument
9814 if (perf_swevent_match(event, type, event_id, data, regs)) in do_perf_sw_event()
9815 perf_swevent_event(event, nr, data, regs); in do_perf_sw_event()
9838 void ___perf_sw_event(u32 event_id, u64 nr, struct pt_regs *regs, u64 addr) in ___perf_sw_event() argument
9842 if (WARN_ON_ONCE(!regs)) in ___perf_sw_event()
9846 do_perf_sw_event(PERF_TYPE_SOFTWARE, event_id, nr, &data, regs); in ___perf_sw_event()
9849 void __perf_sw_event(u32 event_id, u64 nr, struct pt_regs *regs, u64 addr) in __perf_sw_event() argument
9858 ___perf_sw_event(event_id, nr, regs, addr); in __perf_sw_event()
10120 struct pt_regs *regs) in perf_tp_event_match() argument
10127 if (event->attr.exclude_kernel && !user_mode(regs)) in perf_tp_event_match()
10138 struct pt_regs *regs, struct hlist_head *head, in perf_trace_run_bpf_submit() argument
10142 *(struct pt_regs **)raw_data = regs; in perf_trace_run_bpf_submit()
10148 perf_tp_event(call->event.type, count, raw_data, size, regs, head, in perf_trace_run_bpf_submit()
10154 struct pt_regs *regs, in __perf_tp_event_target_task() argument
10166 if (perf_tp_event_match(event, raw, regs)) { in __perf_tp_event_target_task()
10169 perf_swevent_event(event, count, data, regs); in __perf_tp_event_target_task()
10174 struct pt_regs *regs, in perf_tp_event_target_task() argument
10184 __perf_tp_event_target_task(count, record, regs, data, raw, event); in perf_tp_event_target_task()
10186 __perf_tp_event_target_task(count, record, regs, data, raw, sibling); in perf_tp_event_target_task()
10190 __perf_tp_event_target_task(count, record, regs, data, raw, event); in perf_tp_event_target_task()
10192 __perf_tp_event_target_task(count, record, regs, data, raw, sibling); in perf_tp_event_target_task()
10197 struct pt_regs *regs, struct hlist_head *head, int rctx, in perf_tp_event() argument
10213 if (perf_tp_event_match(event, &raw, regs)) { in perf_tp_event()
10224 perf_swevent_event(event, count, &data, regs); in perf_tp_event()
10241 perf_tp_event_target_task(count, record, regs, &data, &raw, ctx); in perf_tp_event()
10411 struct pt_regs *regs) in bpf_overflow_handler() argument
10420 ctx.regs = perf_arch_bpf_user_pt_regs(regs); in bpf_overflow_handler()
10426 perf_prepare_sample(data, event, regs); in bpf_overflow_handler()
10435 event->orig_overflow_handler(event, data, regs); in bpf_overflow_handler()
10591 struct pt_regs *regs = data; in perf_bp_event() local
10595 if (!bp->hw.state && !perf_exclude_event(bp, regs)) in perf_bp_event()
10596 perf_swevent_event(bp, 1, &sample, regs); in perf_bp_event()
11029 struct pt_regs *regs; in perf_swevent_hrtimer() local
11041 regs = get_irq_regs(); in perf_swevent_hrtimer()
11043 if (regs && !perf_exclude_event(event, regs)) { in perf_swevent_hrtimer()
11045 if (__perf_event_overflow(event, 1, &data, regs)) in perf_swevent_hrtimer()