• Yonghong Song's avatar
    bpf: Add bpf_send_signal_thread() helper · 8482941f
    Yonghong Song authored
    Commit 8b401f9e ("bpf: implement bpf_send_signal() helper")
    added helper bpf_send_signal() which permits bpf program to
    send a signal to the current process. The signal may be
    delivered to any threads in the process.
    
    We found a use case where sending the signal to the current
    thread is more preferable.
      - A bpf program will collect the stack trace and then
        send signal to the user application.
      - The user application will add some thread specific
        information to the just collected stack trace for
        later analysis.
    
    If bpf_send_signal() is used, user application will need
    to check whether the thread receiving the signal matches
    the thread collecting the stack by checking thread id.
    If not, it will need to send signal to another thread
    through pthread_kill().
    
    This patch proposed a new helper bpf_send_signal_thread(),
    which sends the signal to the thread corresponding to
    the current kernel task. This way, user space is guaranteed that
    bpf_program execution context and user space signal handling
    context are the same thread.
    Signed-off-by: default avatarYonghong Song <yhs@fb.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20200115035002.602336-1-yhs@fb.com
    8482941f
bpf_trace.c 44 KB