From eff14f1d6356d9da60aab70a7905c57b3e576807 Mon Sep 17 00:00:00 2001 From: Florian Lehner Date: Thu, 15 Aug 2024 10:14:08 +0200 Subject: [PATCH] Off CPU profiling This is the code that backs https://github.com/open-telemetry/opentelemetry-ebpf-profiler/pull/144. It can be reused to add features like requested in https://github.com/open-telemetry/opentelemetry-ebpf-profiler/issues/33 and therefore can be an alternative to https://github.com/open-telemetry/opentelemetry-ebpf-profiler/pull/192. The idea that enables off CPU profiling is, that perf event and kprobe eBPF programs are quite similar and can be converted. This allows, with the dynamic rewrite of tail call maps, the reuse of existing eBPF programs and concepts. This proposal adds the new flag '-off-cpu-threshold' that enables off CPU profiling and attaches the two additional hooks, as discussed in Option B in https://github.com/open-telemetry/opentelemetry-ebpf-profiler/pull/144. Outstanding work: - [ ] Handle off CPU traces in the reporter package - [ ] Handle off CPU traces in the user space side Signed-off-by: Florian Lehner --- cli_flags.go | 9 + internal/controller/config.go | 1 + internal/controller/controller.go | 7 + support/ebpf/bpfdefs.h | 2 + support/ebpf/extmaps.h | 4 +- support/ebpf/integration_test.ebpf.c | 8 +- support/ebpf/interpreter_dispatcher.ebpf.c | 4 +- support/ebpf/native_stack_trace.ebpf.c | 218 +------------ support/ebpf/off_cpu.ebpf.c | 86 +++++ support/ebpf/tracemgmt.h | 217 ++++++++++++- support/ebpf/tracer.ebpf.release.amd64 | Bin 299160 -> 305864 bytes support/ebpf/types.h | 22 ++ support/types.go | 8 + tracer/ebpf_integration_test.go | 2 +- tracer/systemconfig.go | 3 +- tracer/tracer.go | 359 ++++++++++++++------- 16 files changed, 614 insertions(+), 336 deletions(-) create mode 100644 support/ebpf/off_cpu.ebpf.c diff --git a/cli_flags.go b/cli_flags.go index ac1ca806..724f1890 100644 --- a/cli_flags.go +++ b/cli_flags.go @@ -24,6 +24,7 @@ const ( defaultProbabilisticThreshold = tracer.ProbabilisticThresholdMax defaultProbabilisticInterval = 1 * time.Minute defaultArgSendErrorFrames = false + defaultOffCPUThreshold = tracer.OffCPUThresholdMax // This is the X in 2^(n + x) where n is the default hardcoded map size value defaultArgMapScaleFactor = 0 @@ -61,6 +62,11 @@ var ( "If zero, monotonic-realtime clock sync will be performed once, " + "on agent startup, but not periodically." sendErrorFramesHelp = "Send error frames (devfiler only, breaks Kibana)" + offCPUThresholdHelp = fmt.Sprintf("If set to a value between 1 and %d will enable "+ + "off cpu profiling: Every time an off-cpu entry point is hit, a random number between "+ + "0 and %d is chosen. If the given threshold is greater than this random number, the off "+ + "cpu trace is collected and reported.", + tracer.OffCPUThresholdMax-1, tracer.OffCPUThresholdMax-1) ) // Package-scope variable, so that conditionally compiled other components can refer @@ -114,6 +120,9 @@ func parseArgs() (*controller.Config, error) { fs.BoolVar(&args.VerboseMode, "verbose", false, verboseModeHelp) fs.BoolVar(&args.Version, "version", false, versionHelp) + fs.UintVar(&args.OffCPUThreshold, "off-cpu-threshold", + defaultOffCPUThreshold, offCPUThresholdHelp) + fs.Usage = func() { fs.PrintDefaults() } diff --git a/internal/controller/config.go b/internal/controller/config.go index 16daddc6..6885dc4a 100644 --- a/internal/controller/config.go +++ b/internal/controller/config.go @@ -30,6 +30,7 @@ type Config struct { Tracers string VerboseMode bool Version bool + OffCPUThreshold uint Reporter reporter.Reporter diff --git a/internal/controller/controller.go b/internal/controller/controller.go index 17f796ef..e6349da4 100644 --- a/internal/controller/controller.go +++ b/internal/controller/controller.go @@ -129,6 +129,13 @@ func (c *Controller) Start(ctx context.Context) error { } log.Info("Attached tracer program") + if c.config.OffCPUThreshold < tracer.OffCPUThresholdMax { + if err := trc.StartOffCPUProfiling(); err != nil { + return fmt.Errorf("failed to start off-cpu profiling: %v", err) + } + log.Printf("Enabled off-cpu profiling") + } + if c.config.ProbabilisticThreshold < tracer.ProbabilisticThresholdMax { trc.StartProbabilisticProfiling(ctx) log.Printf("Enabled probabilistic profiling") diff --git a/support/ebpf/bpfdefs.h b/support/ebpf/bpfdefs.h index 7171b3c2..1271f845 100644 --- a/support/ebpf/bpfdefs.h +++ b/support/ebpf/bpfdefs.h @@ -83,6 +83,8 @@ static int (*bpf_perf_event_output)(void *ctx, void *map, unsigned long long fla (void *)BPF_FUNC_perf_event_output; static int (*bpf_get_stackid)(void *ctx, void *map, u64 flags) = (void *)BPF_FUNC_get_stackid; +static unsigned long long (*bpf_get_prandom_u32)(void) = + (void *) BPF_FUNC_get_prandom_u32; __attribute__ ((format (printf, 1, 3))) static int (*bpf_trace_printk)(const char *fmt, int fmt_size, ...) = diff --git a/support/ebpf/extmaps.h b/support/ebpf/extmaps.h index 5922d9ed..56c58a67 100644 --- a/support/ebpf/extmaps.h +++ b/support/ebpf/extmaps.h @@ -6,8 +6,9 @@ #include "bpf_map.h" // References to map definitions in *.ebpf.c. -extern bpf_map_def progs; +extern bpf_map_def perf_progs; extern bpf_map_def per_cpu_records; +extern bpf_map_def kernel_stackmap; extern bpf_map_def pid_page_to_mapping_info; extern bpf_map_def metrics; extern bpf_map_def report_events; @@ -41,7 +42,6 @@ extern bpf_map_def exe_id_to_21_stack_deltas; extern bpf_map_def exe_id_to_22_stack_deltas; extern bpf_map_def exe_id_to_23_stack_deltas; extern bpf_map_def hotspot_procs; -extern bpf_map_def kernel_stackmap; extern bpf_map_def dotnet_procs; extern bpf_map_def perl_procs; extern bpf_map_def php_procs; diff --git a/support/ebpf/integration_test.ebpf.c b/support/ebpf/integration_test.ebpf.c index 510e72c6..dd01a060 100644 --- a/support/ebpf/integration_test.ebpf.c +++ b/support/ebpf/integration_test.ebpf.c @@ -80,10 +80,10 @@ void send_sample_traces(void *ctx, u64 pid, s32 kstack) { send_trace(ctx, trace); } -// tracepoint__sched_switch fetches the current kernel stack ID from kernel_stackmap and -// communicates it to userspace via kernel_stack_id map. -SEC("tracepoint/sched/sched_switch") -int tracepoint__sched_switch(void *ctx) { +// tracepoint_integration__sched_switch fetches the current kernel stack ID from +// kernel_stackmap and communicates it to userspace via kernel_stack_id map. +SEC("tracepoint/integration/sched_switch") +int tracepoint_integration__sched_switch(void *ctx) { u64 id = bpf_get_current_pid_tgid(); u64 pid = id >> 32; diff --git a/support/ebpf/interpreter_dispatcher.ebpf.c b/support/ebpf/interpreter_dispatcher.ebpf.c index fbc5c598..1589a60d 100644 --- a/support/ebpf/interpreter_dispatcher.ebpf.c +++ b/support/ebpf/interpreter_dispatcher.ebpf.c @@ -25,8 +25,8 @@ bpf_map_def SEC("maps") metrics = { .max_entries = metricID_Max, }; -// progs maps from a program ID to an eBPF program -bpf_map_def SEC("maps") progs = { +// perf_progs maps from a program ID to a perf eBPF program +bpf_map_def SEC("maps") perf_progs = { .type = BPF_MAP_TYPE_PROG_ARRAY, .key_size = sizeof(u32), .value_size = sizeof(u32), diff --git a/support/ebpf/native_stack_trace.ebpf.c b/support/ebpf/native_stack_trace.ebpf.c index 959099cb..53af3e4c 100644 --- a/support/ebpf/native_stack_trace.ebpf.c +++ b/support/ebpf/native_stack_trace.ebpf.c @@ -4,14 +4,6 @@ #include "tracemgmt.h" #include "stackdeltatypes.h" -#ifndef __USER32_CS - // defined in arch/x86/include/asm/segment.h - #define GDT_ENTRY_DEFAULT_USER32_CS 4 - #define GDT_ENTRY_DEFAULT_USER_DS 5 - #define __USER32_CS (GDT_ENTRY_DEFAULT_USER32_CS*8 + 3) - #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8 + 3) -#endif - // Macro to create a map named exe_id_to_X_stack_deltas that is a nested maps with a fileID for the // outer map and an array as inner map that holds up to 2^X stack delta entries for the given fileID. #define STACK_DELTA_BUCKET(X) \ @@ -607,156 +599,6 @@ static ErrorCode unwind_one_frame(u64 pid, u32 frame_idx, struct UnwindState *st #error unsupported architecture #endif -// Initialize state from pt_regs -static inline ErrorCode copy_state_regs(UnwindState *state, - struct pt_regs *regs, - bool interrupted_kernelmode) -{ -#if defined(__x86_64__) - // Check if the process is running in 32-bit mode on the x86_64 system. - // This check follows the Linux kernel implementation of user_64bit_mode() in - // arch/x86/include/asm/ptrace.h. - if (regs->cs == __USER32_CS) { - return ERR_NATIVE_X64_32BIT_COMPAT_MODE; - } - state->pc = regs->ip; - state->sp = regs->sp; - state->fp = regs->bp; - state->rax = regs->ax; - state->r9 = regs->r9; - state->r11 = regs->r11; - state->r13 = regs->r13; - state->r15 = regs->r15; - - // Treat syscalls as return addresses, but not IRQ handling, page faults, etc.. - // https://github.com/torvalds/linux/blob/2ef5971ff3/arch/x86/include/asm/syscall.h#L31-L39 - // https://github.com/torvalds/linux/blob/2ef5971ff3/arch/x86/entry/entry_64.S#L847 - state->return_address = interrupted_kernelmode && regs->orig_ax != -1; -#elif defined(__aarch64__) - // For backwards compatibility aarch64 can run 32-bit code. - // Check if the process is running in this 32-bit compat mod. - if (regs->pstate & PSR_MODE32_BIT) { - return ERR_NATIVE_AARCH64_32BIT_COMPAT_MODE; - } - state->pc = normalize_pac_ptr(regs->pc); - state->sp = regs->sp; - state->fp = regs->regs[29]; - state->lr = normalize_pac_ptr(regs->regs[30]); - state->r22 = regs->regs[22]; - - // Treat syscalls as return addresses, but not IRQ handling, page faults, etc.. - // https://github.com/torvalds/linux/blob/2ef5971ff3/arch/arm64/include/asm/ptrace.h#L118 - // https://github.com/torvalds/linux/blob/2ef5971ff3/arch/arm64/include/asm/ptrace.h#L206-L209 - // - // Note: We do not use `unwinder_mark_nonleaf_frame` here, - // because the frame is a leaf frame from the perspective of the user stack, - // regardless of whether we are in a syscall. - state->return_address = interrupted_kernelmode && regs->syscallno != -1; - state->lr_invalid = false; -#endif - - return ERR_OK; -} - -#ifndef TESTING_COREDUMP - -// Read the task's entry stack pt_regs. This has identical functionality -// to bpf_task_pt_regs which is emulated to support older kernels. -// Once kernel requirement is increased to 5.15 this can be replaced with -// the bpf_task_pt_regs() helper. -static inline -long get_task_pt_regs(struct task_struct *task, SystemConfig* syscfg) { - u64 stack_ptr = (u64)task + syscfg->task_stack_offset; - long stack_base; - if (bpf_probe_read_kernel(&stack_base, sizeof(stack_base), (void*) stack_ptr)) { - return 0; - } - return stack_base + syscfg->stack_ptregs_offset; -} - -// Determine whether the given pt_regs are from user-mode register context. -// This needs to detect also invalid pt_regs in case we its kernel thread stack -// without valid user mode pt_regs so is_kernel_address(pc) is not enough. -static inline -bool ptregs_is_usermode(struct pt_regs *regs) { -#if defined(__x86_64__) - // On x86_64 the user mode SS should always be __USER_DS. - if (regs->ss != __USER_DS) { - return false; - } - return true; -#elif defined(__aarch64__) - // Check if the processor state is in the EL0t what linux uses for usermode. - if ((regs->pstate & PSR_MODE_MASK) != PSR_MODE_EL0t) { - return false; - } - return true; -#else -#error add support for new architecture -#endif -} - -// Extract the usermode pt_regs for current task. Use context given pt_regs -// if it is usermode regs, or resolve it via struct task_struct. -// -// State registers are not touched (get_pristine_per_cpu_record already reset it) -// if something fails. has_usermode_regs is set to true if a user-mode register -// context was found: not every thread that we interrupt will actually have -// a user-mode context (e.g. kernel worker threads won't). -static inline ErrorCode get_usermode_regs(struct pt_regs *ctx, - UnwindState *state, - bool *has_usermode_regs) { - ErrorCode error; - - if (!ptregs_is_usermode(ctx)) { - u32 key = 0; - SystemConfig* syscfg = bpf_map_lookup_elem(&system_config, &key); - if (!syscfg) { - // Unreachable: array maps are always fully initialized. - return ERR_UNREACHABLE; - } - - // Use the current task's entry pt_regs - struct task_struct *task = (struct task_struct *) bpf_get_current_task(); - long ptregs_addr = get_task_pt_regs(task, syscfg); - - struct pt_regs regs; - if (!ptregs_addr || bpf_probe_read_kernel(®s, sizeof(regs), (void*) ptregs_addr)) { - increment_metric(metricID_UnwindNativeErrReadKernelModeRegs); - return ERR_NATIVE_READ_KERNELMODE_REGS; - } - - if (!ptregs_is_usermode(®s)) { - // No usermode registers context found. - return ERR_OK; - } - error = copy_state_regs(state, ®s, true); - } else { - // User mode code interrupted, registers are available via the ebpf context. - error = copy_state_regs(state, ctx, false); - } - if (error == ERR_OK) { - DEBUG_PRINT("Read regs: pc: %llx sp: %llx fp: %llx", state->pc, state->sp, state->fp); - *has_usermode_regs = true; - } - return error; -} - -#else // TESTING_COREDUMP - -static inline ErrorCode get_usermode_regs(struct pt_regs *ctx, - UnwindState *state, - bool *has_usermode_regs) { - // Coredumps provide always usermode pt_regs directly. - ErrorCode error = copy_state_regs(state, ctx, false); - if (error == ERR_OK) { - *has_usermode_regs = true; - } - return error; -} - -#endif - SEC("perf_event/unwind_native") int unwind_native(struct pt_regs *ctx) { PerCPURecord *record = get_per_cpu_record(); @@ -809,65 +651,11 @@ int unwind_native(struct pt_regs *ctx) { return -1; } -static inline -int collect_trace(struct pt_regs *ctx) { +SEC("perf_event/native_tracer_entry") +int native_tracer_entry(struct bpf_perf_event_data *ctx) { // Get the PID and TGID register. u64 id = bpf_get_current_pid_tgid(); u32 pid = id >> 32; u32 tid = id & 0xFFFFFFFF; - - if (pid == 0) { - return 0; - } - - u64 ktime = bpf_ktime_get_ns(); - - DEBUG_PRINT("==== do_perf_event ===="); - - // The trace is reused on each call to this function so we have to reset the - // variables used to maintain state. - DEBUG_PRINT("Resetting CPU record"); - PerCPURecord *record = get_pristine_per_cpu_record(); - if (!record) { - return -1; - } - - Trace *trace = &record->trace; - trace->pid = pid; - trace->tid = tid; - trace->ktime = ktime; - if (bpf_get_current_comm(&(trace->comm), sizeof(trace->comm)) < 0) { - increment_metric(metricID_ErrBPFCurrentComm); - } - - // Get the kernel mode stack trace first - trace->kernel_stack_id = bpf_get_stackid(ctx, &kernel_stackmap, BPF_F_REUSE_STACKID); - DEBUG_PRINT("kernel stack id = %d", trace->kernel_stack_id); - - // Recursive unwind frames - int unwinder = PROG_UNWIND_STOP; - bool has_usermode_regs = false; - ErrorCode error = get_usermode_regs(ctx, &record->state, &has_usermode_regs); - if (error || !has_usermode_regs) { - goto exit; - } - - if (!pid_information_exists(ctx, pid)) { - if (report_pid(ctx, pid, RATELIMIT_ACTION_DEFAULT)) { - increment_metric(metricID_NumProcNew); - } - return 0; - } - error = get_next_unwinder_after_native_frame(record, &unwinder); - -exit: - record->state.unwind_error = error; - tail_call(ctx, unwinder); - DEBUG_PRINT("bpf_tail call failed for %d in native_tracer_entry", unwinder); - return -1; -} - -SEC("perf_event/native_tracer_entry") -int native_tracer_entry(struct bpf_perf_event_data *ctx) { - return collect_trace((struct pt_regs*) &ctx->regs); + return collect_trace((struct pt_regs*) &ctx->regs, TRACE_SAMPLING, pid, tid, 0); } diff --git a/support/ebpf/off_cpu.ebpf.c b/support/ebpf/off_cpu.ebpf.c new file mode 100644 index 00000000..8132b148 --- /dev/null +++ b/support/ebpf/off_cpu.ebpf.c @@ -0,0 +1,86 @@ +#include "bpfdefs.h" +#include "types.h" +#include "tracemgmt.h" + +// kprobe_progs maps from a program ID to a kprobe eBPF program +bpf_map_def SEC("maps") kprobe_progs = { + .type = BPF_MAP_TYPE_PROG_ARRAY, + .key_size = sizeof(u32), + .value_size = sizeof(u32), + .max_entries = NUM_TRACER_PROGS, +}; + +// profile_off_cpu communicates scheduler tasks. +bpf_map_def SEC("maps") profile_off_cpu = { + .type = BPF_MAP_TYPE_LRU_PERCPU_HASH, + .key_size = sizeof(u64), // pid_tgid + .value_size = sizeof(u64), // time in ns + .max_entries = 256, +}; + +// tracepoint__sched_switch serves as entry point for off cpu profiling. +SEC("tracepoint/sched/sched_switch") +int tracepoint__sched_switch(void *ctx) { + u64 pid_tgid = bpf_get_current_pid_tgid(); + u32 pid = pid_tgid >> 32; + u32 tid = pid_tgid & 0xFFFFFFFF; + + if (pid == 0 || tid == 0) { + return 0; + } + + u32 key = 0; + SystemConfig* syscfg = bpf_map_lookup_elem(&system_config, &key); + if (!syscfg) { + // Unreachable: array maps are always fully initialized. + return ERR_UNREACHABLE; + } + + if (bpf_get_prandom_u32()%OFF_CPU_THRESHOLD_MAX > syscfg->off_cpu_threshold) { + return 0; + } + + u64 ts = bpf_ktime_get_ns(); + + if (bpf_map_update_elem(&profile_off_cpu, &pid_tgid, &ts, BPF_ANY)<0){ + return 0; + } + + return 0; +} + +// dummy is never loaded or called. It just makes sure kprobe_progs is referenced +// and make the compiler and linker happy. +SEC("kprobe/dummy") +int dummy(struct pt_regs *ctx) { + bpf_tail_call(ctx, &kprobe_progs,0); + return 0; +} + +// kp__finish_task_switch is triggered right after the scheduler updated +// the CPU registers. +SEC("kprobe/finish_task_switch") +int finish_task_switch(struct pt_regs *ctx) { + // Get the PID and TGID register. + u64 pid_tgid = bpf_get_current_pid_tgid(); + u32 pid = pid_tgid >> 32; + u32 tid = pid_tgid & 0xFFFFFFFF; + + if (pid == 0 || tid == 0) { + return 0; + } + + u64 ts = bpf_ktime_get_ns(); + + u64 *start_ts = bpf_map_lookup_elem(&profile_off_cpu, &pid_tgid); + if (!start_ts){ + // There is no information from the sched/sched_switch entry hook. + return 0; + } + + DEBUG_PRINT("==== finish_task_switch ===="); + + u64 diff = ts - *start_ts; + + return collect_trace(ctx, TRACE_OFF_CPU, pid, tid, diff); +} \ No newline at end of file diff --git a/support/ebpf/tracemgmt.h b/support/ebpf/tracemgmt.h index c0e08a45..2965635d 100644 --- a/support/ebpf/tracemgmt.h +++ b/support/ebpf/tracemgmt.h @@ -443,10 +443,10 @@ int get_next_unwinder_after_interpreter(const PerCPURecord *record) { // tail_call is a wrapper around bpf_tail_call() and ensures that the number of tail calls is not // reached while unwinding the stack. static inline __attribute__((__always_inline__)) -void tail_call(void *ctx, int next) { +void tail_call(void *ctx, int next) { PerCPURecord *record = get_per_cpu_record(); if (!record) { - bpf_tail_call(ctx, &progs, PROG_UNWIND_STOP); + bpf_tail_call(ctx, &perf_progs, PROG_UNWIND_STOP); // In theory bpf_tail_call() should never return. But due to instruction reordering by the // compiler we have to place return here to bribe the verifier to accept this. return; @@ -464,7 +464,218 @@ void tail_call(void *ctx, int next) { } record->tailCalls += 1 ; - bpf_tail_call(ctx, &progs, next); + bpf_tail_call(ctx, &perf_progs, next); +} + +#ifndef __USER32_CS + // defined in arch/x86/include/asm/segment.h + #define GDT_ENTRY_DEFAULT_USER32_CS 4 + #define GDT_ENTRY_DEFAULT_USER_DS 5 + #define __USER32_CS (GDT_ENTRY_DEFAULT_USER32_CS*8 + 3) + #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8 + 3) +#endif + +// Initialize state from pt_regs +static inline ErrorCode copy_state_regs(UnwindState *state, + struct pt_regs *regs, + bool interrupted_kernelmode) +{ +#if defined(__x86_64__) + // Check if the process is running in 32-bit mode on the x86_64 system. + // This check follows the Linux kernel implementation of user_64bit_mode() in + // arch/x86/include/asm/ptrace.h. + if (regs->cs == __USER32_CS) { + return ERR_NATIVE_X64_32BIT_COMPAT_MODE; + } + state->pc = regs->ip; + state->sp = regs->sp; + state->fp = regs->bp; + state->rax = regs->ax; + state->r9 = regs->r9; + state->r11 = regs->r11; + state->r13 = regs->r13; + state->r15 = regs->r15; + + // Treat syscalls as return addresses, but not IRQ handling, page faults, etc.. + // https://github.com/torvalds/linux/blob/2ef5971ff3/arch/x86/include/asm/syscall.h#L31-L39 + // https://github.com/torvalds/linux/blob/2ef5971ff3/arch/x86/entry/entry_64.S#L847 + state->return_address = interrupted_kernelmode && regs->orig_ax != -1; +#elif defined(__aarch64__) + // For backwards compatibility aarch64 can run 32-bit code. + // Check if the process is running in this 32-bit compat mod. + if (regs->pstate & PSR_MODE32_BIT) { + return ERR_NATIVE_AARCH64_32BIT_COMPAT_MODE; + } + state->pc = normalize_pac_ptr(regs->pc); + state->sp = regs->sp; + state->fp = regs->regs[29]; + state->lr = normalize_pac_ptr(regs->regs[30]); + state->r22 = regs->regs[22]; + + // Treat syscalls as return addresses, but not IRQ handling, page faults, etc.. + // https://github.com/torvalds/linux/blob/2ef5971ff3/arch/arm64/include/asm/ptrace.h#L118 + // https://github.com/torvalds/linux/blob/2ef5971ff3/arch/arm64/include/asm/ptrace.h#L206-L209 + // + // Note: We do not use `unwinder_mark_nonleaf_frame` here, + // because the frame is a leaf frame from the perspective of the user stack, + // regardless of whether we are in a syscall. + state->return_address = interrupted_kernelmode && regs->syscallno != -1; + state->lr_invalid = false; +#endif + + return ERR_OK; +} + +#ifndef TESTING_COREDUMP + +// Read the task's entry stack pt_regs. This has identical functionality +// to bpf_task_pt_regs which is emulated to support older kernels. +// Once kernel requirement is increased to 5.15 this can be replaced with +// the bpf_task_pt_regs() helper. +static inline +long get_task_pt_regs(struct task_struct *task, SystemConfig* syscfg) { + u64 stack_ptr = (u64)task + syscfg->task_stack_offset; + long stack_base; + if (bpf_probe_read_kernel(&stack_base, sizeof(stack_base), (void*) stack_ptr)) { + return 0; + } + return stack_base + syscfg->stack_ptregs_offset; +} + +// Determine whether the given pt_regs are from user-mode register context. +// This needs to detect also invalid pt_regs in case we its kernel thread stack +// without valid user mode pt_regs so is_kernel_address(pc) is not enough. +static inline +bool ptregs_is_usermode(struct pt_regs *regs) { +#if defined(__x86_64__) + // On x86_64 the user mode SS should always be __USER_DS. + if (regs->ss != __USER_DS) { + return false; + } + return true; +#elif defined(__aarch64__) + // Check if the processor state is in the EL0t what linux uses for usermode. + if ((regs->pstate & PSR_MODE_MASK) != PSR_MODE_EL0t) { + return false; + } + return true; +#else +#error add support for new architecture +#endif +} + +// Extract the usermode pt_regs for current task. Use context given pt_regs +// if it is usermode regs, or resolve it via struct task_struct. +// +// State registers are not touched (get_pristine_per_cpu_record already reset it) +// if something fails. has_usermode_regs is set to true if a user-mode register +// context was found: not every thread that we interrupt will actually have +// a user-mode context (e.g. kernel worker threads won't). +static inline ErrorCode get_usermode_regs(struct pt_regs *ctx, + UnwindState *state, + bool *has_usermode_regs) { + ErrorCode error; + + if (!ptregs_is_usermode(ctx)) { + u32 key = 0; + SystemConfig* syscfg = bpf_map_lookup_elem(&system_config, &key); + if (!syscfg) { + // Unreachable: array maps are always fully initialized. + return ERR_UNREACHABLE; + } + + // Use the current task's entry pt_regs + struct task_struct *task = (struct task_struct *) bpf_get_current_task(); + long ptregs_addr = get_task_pt_regs(task, syscfg); + + struct pt_regs regs; + if (!ptregs_addr || bpf_probe_read_kernel(®s, sizeof(regs), (void*) ptregs_addr)) { + increment_metric(metricID_UnwindNativeErrReadKernelModeRegs); + return ERR_NATIVE_READ_KERNELMODE_REGS; + } + + if (!ptregs_is_usermode(®s)) { + // No usermode registers context found. + return ERR_OK; + } + error = copy_state_regs(state, ®s, true); + } else { + // User mode code interrupted, registers are available via the ebpf context. + error = copy_state_regs(state, ctx, false); + } + if (error == ERR_OK) { + DEBUG_PRINT("Read regs: pc: %llx sp: %llx fp: %llx", state->pc, state->sp, state->fp); + *has_usermode_regs = true; + } + return error; +} + +#else // TESTING_COREDUMP + +static inline ErrorCode get_usermode_regs(struct pt_regs *ctx, + UnwindState *state, + bool *has_usermode_regs) { + // Coredumps provide always usermode pt_regs directly. + ErrorCode error = copy_state_regs(state, ctx, false); + if (error == ERR_OK) { + *has_usermode_regs = true; + } + return error; +} + +#endif // TESTING_COREDUMP + +static inline +int collect_trace(struct pt_regs *ctx, TraceOrigin origin, u32 pid, u32 tid, u64 off_cpu_time) { + if (pid == 0) { + return 0; + } + + u64 ktime = bpf_ktime_get_ns(); + + // The trace is reused on each call to this function so we have to reset the + // variables used to maintain state. + DEBUG_PRINT("Resetting CPU record"); + PerCPURecord *record = get_pristine_per_cpu_record(); + if (!record) { + return -1; + } + + Trace *trace = &record->trace; + trace->origin = origin; + trace->pid = pid; + trace->tid = tid; + trace->ktime = ktime; + trace->offtime = off_cpu_time; + if (bpf_get_current_comm(&(trace->comm), sizeof(trace->comm)) < 0) { + increment_metric(metricID_ErrBPFCurrentComm); + } + + // Get the kernel mode stack trace first + trace->kernel_stack_id = bpf_get_stackid(ctx, &kernel_stackmap, BPF_F_REUSE_STACKID); + DEBUG_PRINT("kernel stack id = %d", trace->kernel_stack_id); + + // Recursive unwind frames + int unwinder = PROG_UNWIND_STOP; + bool has_usermode_regs = false; + ErrorCode error = get_usermode_regs(ctx, &record->state, &has_usermode_regs); + if (error || !has_usermode_regs) { + goto exit; + } + + if (!pid_information_exists(ctx, pid)) { + if (report_pid(ctx, pid, RATELIMIT_ACTION_DEFAULT)) { + increment_metric(metricID_NumProcNew); + } + return 0; + } + error = get_next_unwinder_after_native_frame(record, &unwinder); + +exit: + record->state.unwind_error = error; + tail_call(ctx, unwinder); + DEBUG_PRINT("bpf_tail call failed for %d in native_tracer_entry", unwinder); + return -1; } #endif diff --git a/support/ebpf/tracer.ebpf.release.amd64 b/support/ebpf/tracer.ebpf.release.amd64 index 2a8cbb2fd2bc85674a9b2d3c2c6223fb9f4f06b1..3a2c8bb7153beaca6d9d813d5ba6c6471b305cd6 100644 GIT binary patch literal 305864 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 YiSQ9CAnh!g-M$Jf4{x|16Y!FB>(^b literal 299160 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