On 5/22/19 9:38 AM, Stanislav Fomichev wrote: > On 05/21, Yonghong Song wrote: >> This patch tries to solve the following specific use case. >> >> Currently, bpf program can already collect stack traces >> through kernel function get_perf_callchain() >> when certain events happens (e.g., cache miss counter or >> cpu clock counter overflows). But such stack traces are >> not enough for jitted programs, e.g., hhvm (jited php). >> To get real stack trace, jit engine internal data structures >> need to be traversed in order to get the real user functions. >> >> bpf program itself may not be the best place to traverse >> the jit engine as the traversing logic could be complex and >> it is not a stable interface either. >> >> Instead, hhvm implements a signal handler, >> e.g. for SIGALARM, and a set of program locations which >> it can dump stack traces. When it receives a signal, it will >> dump the stack in next such program location. >> > > [..] >> This patch implements bpf_send_signal() helper to send >> a signal to hhvm in real time, resulting in intended stack traces. > Series looks good. One minor nit/question: maybe rename bpf_send_signal > to something like bpf_send_signal_to_current/bpf_current_send_signal/etc? > bpf_send_signal is too generic now that you send the signal > to the current process.. bpf_send_signal_to_current was Yonghong's original name and I asked him to rename it to bpf_send_signal :) I don't see bpf sending signals to arbitrary processes in the near future.