Lines Matching defs:sample
209 u64 (*integer)(struct tp_field *field, struct perf_sample *sample);
210 void *(*pointer)(struct tp_field *field, struct perf_sample *sample);
215 static u64 tp_field__u##bits(struct tp_field *field, struct perf_sample *sample) \
218 memcpy(&value, sample->raw_data + field->offset, sizeof(value)); \
228 static u64 tp_field__swapped_u##bits(struct tp_field *field, struct perf_sample *sample) \
231 memcpy(&value, sample->raw_data + field->offset, sizeof(value)); \
268 static void *tp_field__ptr(struct tp_field *field, struct perf_sample *sample)
270 return sample->raw_data + field->offset;
488 #define perf_evsel__sc_tp_uint(evsel, name, sample) \
490 fields->name.integer(&fields->name, sample); })
492 #define perf_evsel__sc_tp_ptr(evsel, name, sample) \
494 fields->name.pointer(&fields->name, sample); })
1607 union perf_event *event, struct perf_sample *sample)
1615 ret = machine__process_lost_event(machine, event, sample);
1618 ret = machine__process_event(machine, event, sample);
1627 struct perf_sample *sample,
1631 return trace__process_event(trace, machine, event, sample);
2125 struct perf_sample *sample);
2197 int id, struct perf_sample *sample, long err, bool errno_summary)
2217 if (ttrace->entry_time && sample->time > ttrace->entry_time)
2218 duration = sample->time - ttrace->entry_time;
2278 struct perf_sample *sample, struct thread *thread)
2283 double ts = (double)sample->time / NSEC_PER_MSEC;
2288 sample->pid, sample->tid, sample->cpu);
2294 static void *syscall__augmented_args(struct syscall *sc, struct perf_sample *sample, int *augmented_args_size, int raw_augmented_args_size)
2313 *augmented_args_size = sample->raw_size - args_size;
2315 augmented_args = sample->raw_data + args_size;
2330 struct perf_sample *sample)
2336 int id = perf_evsel__sc_tp_uint(evsel, id, sample), err = -1;
2345 thread = machine__findnew_thread(trace->host, sample->pid, sample->tid);
2350 trace__fprintf_sample(trace, evsel, sample, thread);
2352 args = perf_evsel__sc_tp_ptr(evsel, args, sample);
2373 augmented_args = syscall__augmented_args(sc, sample, &augmented_args_size, trace->raw_augmented_syscalls_args_size);
2374 ttrace->entry_time = sample->time;
2408 struct perf_sample *sample)
2412 int id = perf_evsel__sc_tp_uint(evsel, id, sample), err = -1;
2421 thread = machine__findnew_thread(trace->host, sample->pid, sample->tid);
2430 args = perf_evsel__sc_tp_ptr(evsel, args, sample);
2431 augmented_args = syscall__augmented_args(sc, sample, &augmented_args_size, trace->raw_augmented_syscalls_args_size);
2441 struct perf_sample *sample,
2451 if (machine__resolve(trace->host, &al, sample) < 0)
2454 err = thread__resolve_callchain(al.thread, cursor, evsel, sample, NULL, NULL, max_stack);
2460 static int trace__fprintf_callchain(struct trace *trace, struct perf_sample *sample)
2467 return sample__fprintf_callchain(sample, 38, print_opts, get_tls_callchain_cursor(), symbol_conf.bt_stop_list, trace->output);
2480 struct perf_sample *sample)
2486 int id = perf_evsel__sc_tp_uint(evsel, id, sample), err = -1, callchain_ret = 0, printed = 0;
2494 thread = machine__findnew_thread(trace->host, sample->pid, sample->tid);
2499 trace__fprintf_sample(trace, evsel, sample, thread);
2501 ret = perf_evsel__sc_tp_uint(evsel, ret, sample);
2504 thread__update_stats(thread, ttrace, id, sample, ret, trace->errno_summary);
2513 duration = sample->time - ttrace->entry_time;
2520 if (sample->callchain) {
2523 callchain_ret = trace__resolve_callchain(trace, evsel, sample, cursor);
2603 trace__fprintf_callchain(trace, sample);
2616 struct perf_sample *sample)
2618 struct thread *thread = machine__findnew_thread(trace->host, sample->pid, sample->tid);
2623 const char *filename = evsel__rawptr(evsel, sample, "pathname");
2677 struct perf_sample *sample)
2679 u64 runtime = evsel__intval(evsel, sample, "runtime");
2682 sample->pid,
2683 sample->tid);
2698 evsel__strval(evsel, sample, "comm"),
2699 (pid_t)evsel__intval(evsel, sample, "pid"),
2701 evsel__intval(evsel, sample, "vruntime"));
2730 struct perf_sample *sample)
2732 binary__fprintf(sample->raw_data, sample->raw_size, 8,
2737 static size_t trace__fprintf_tp_fields(struct trace *trace, struct evsel *evsel, struct perf_sample *sample,
2769 offset = format_field__intval(field, sample, evsel->needs_swap);
2776 val = (uintptr_t)(sample->raw_data + offset);
2778 val = format_field__intval(field, sample, evsel->needs_swap);
2811 struct perf_sample *sample)
2824 thread = machine__findnew_thread(trace->host, sample->pid, sample->tid);
2826 if (sample->callchain) {
2829 callchain_ret = trace__resolve_callchain(trace, evsel, sample, cursor);
2838 trace__fprintf_tstamp(trace, sample->time, trace->output);
2847 int id = perf_evsel__sc_tp_uint(evsel, id, sample);
2852 trace__fprintf_sys_enter(trace, evsel, sample);
2867 bpf_output__fprintf(trace, sample);
2870 trace__fprintf_sys_enter(trace, evsel, sample)) {
2872 event_format__fprintf(evsel->tp_format, sample->cpu,
2873 sample->raw_data, sample->raw_size,
2876 trace__fprintf_tp_fields(trace, evsel, sample, thread, NULL, 0);
2885 trace__fprintf_callchain(trace, sample);
2900 static void print_location(FILE *f, struct perf_sample *sample,
2914 fprintf(f, "0x%" PRIx64, sample->addr);
2920 struct perf_sample *sample)
2930 thread = machine__findnew_thread(trace->host, sample->pid, sample->tid);
2932 if (sample->callchain) {
2935 callchain_ret = trace__resolve_callchain(trace, evsel, sample, cursor);
2955 thread__find_symbol(thread, sample->cpumode, sample->ip, &al);
2957 trace__fprintf_entry_head(trace, thread, 0, true, sample->time, trace->output);
2963 print_location(trace->output, sample, &al, false, true);
2967 thread__find_symbol(thread, sample->cpumode, sample->addr, &al);
2970 thread__find_symbol(thread, sample->cpumode, sample->addr, &al);
2978 print_location(trace->output, sample, &al, true, false);
2983 trace__fprintf_callchain(trace, sample);
2998 struct perf_sample *sample)
3002 * and don't use sample->time unconditionally, we may end up having
3010 trace->base_time = sample->time;
3015 struct perf_sample *sample,
3025 thread = machine__findnew_thread(trace->host, sample->pid, sample->tid);
3029 trace__set_base_time(trace, evsel, sample);
3033 handler(trace, evsel, event, sample);
3171 static void trace__handle_event(struct trace *trace, union perf_event *event, struct perf_sample *sample)
3177 trace__process_event(trace, trace->host, event, sample);
3181 evsel = evlist__id2evsel(trace->evlist, sample->id);
3183 fprintf(trace->output, "Unknown tp ID %" PRIu64 ", skipping...\n", sample->id);
3190 trace__set_base_time(trace, evsel, sample);
3193 sample->raw_data == NULL) {
3194 fprintf(trace->output, "%s sample with no payload for tid: %d, cpu %d, raw_size=%d, skipping...\n",
3195 evsel__name(evsel), sample->tid,
3196 sample->cpu, sample->raw_size);
3199 handler(trace, evsel, event, sample);
3630 struct perf_sample sample;
3631 int err = evlist__parse_sample(evlist, event, &sample);
3634 fprintf(trace->output, "Can't parse sample, err = %d, skipping...\n", err);
3636 trace__handle_event(trace, event, &sample);
4125 trace->tool.sample = trace__process_sample;
4773 OPT_BOOLEAN(0, "print-sample", &trace.print_sample,