Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp3141877pxb; Sun, 31 Jan 2021 05:46:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJwBjZDSkPrmYCf4+wVf3AlgN0b5oNV3FCVR7ExwtmzaD5v2WobzjcqJyCtiNpnVRkdXvKQP X-Received: by 2002:a17:907:76c5:: with SMTP id kf5mr1767541ejc.534.1612100797802; Sun, 31 Jan 2021 05:46:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612100797; cv=none; d=google.com; s=arc-20160816; b=iPVZ6FGyAh9nG86RwfgY0kedl7GQu7BI0y3tgYwgYOmzRbmzbqe6nEOY726zSNwC0o EiigHW3bWuZuRLjWRhIBrwXf1WRYswhWbziWQkcl38HRCQxzJCEnqKs0FntIwplEue1m h4n323EE3xqKtjR+3uVGOtzsRESqz4gKoZ0Z6/0AP6f9XZW0Ob9QpnVkNUiC6DOn1EuH ZvJ1emckhlsikDBfEQRtrfRtTqKYw5301ysPO1XT/ZlbT2JH0igwjUO265b0cUyxWlh+ At3oOLOE7RU6qAI6noI8L0Q9HIzi36h6Y56dnbrpaeQvud1NTaApvkzP34JRjxb/N5Uy kPlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:to:subject:message-id:date:from:mime-version :dkim-signature; bh=M6FYv2E9knGDI0iH5735540Zhg7wHmzZM3kiJ0bDwD8=; b=jTxLxeXRamWJptN0JpMDn+dGHQJx6Nl4gQnkU3hIroOIBFghqSeM3D4jfuJ5gpdcFt vA8Bkt4FOQznM4p+EmIKmowC5jhPztpXYzKS7hchKJX8yyWU6rql8e7ExfGwTwutWNxT 2bLUNLlQouA8xkTrCmwxoMC3C5N4KHCJEesI2CNNm+mFu9QsJgBbGhQ+4A/IjXuD0cJ/ gmPSpQjjlkIlAoGTL5vpiELcnBlRiZ25ZIsGuH71FSYvNkuKbIr3DPWpVXCbw2GbjDpS wcU0icF5pUPuiAEX1/91Ew0Azz5dIiMlLLSstCOK2asNhzzX6iom1dq1mf4grJFY1GSe CJkg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=kdAJi0tt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t7si8632911ejr.383.2021.01.31.05.46.13; Sun, 31 Jan 2021 05:46:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=kdAJi0tt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231824AbhAaNlu (ORCPT + 99 others); Sun, 31 Jan 2021 08:41:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53398 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231473AbhAaLg6 (ORCPT ); Sun, 31 Jan 2021 06:36:58 -0500 Received: from mail-qv1-xf35.google.com (mail-qv1-xf35.google.com [IPv6:2607:f8b0:4864:20::f35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12EF3C061788 for ; Sun, 31 Jan 2021 03:14:15 -0800 (PST) Received: by mail-qv1-xf35.google.com with SMTP id l11so6799287qvt.1 for ; Sun, 31 Jan 2021 03:14:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=M6FYv2E9knGDI0iH5735540Zhg7wHmzZM3kiJ0bDwD8=; b=kdAJi0ttpQ2n0qnKhIK0PLMC+m6DJUNgxjpcbTKjTE6lM3zj0UL7zhRVEwgIAm4G34 ENbHTaggz1X9MPXhlyoGaH8PVPS9s1JMoE3nVw9Ez/Nf0GAdWmFy7VIeQs+LyAtED47U amEOHoXcK6qp/aEU3+9zbeLnjXedMYDHOj6+nA53IgrEHIV+xzZE9LI/MaEvCZBQAOBQ dX1I1bKCqcOAHPcCbf3mmwVUS3qXbG2kBzltodoEiaQ17i2N5LjyONOAVVPw92BOu3fF Y4n73EDxa81fXu2KoFaf0DTwopN9dj9SoVNDzbnbRyPi2DCnoAzxi6njPL3Zn7Z+qy9p GyWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=M6FYv2E9knGDI0iH5735540Zhg7wHmzZM3kiJ0bDwD8=; b=Qmf9jtDxaV94RVyw1YGRwHbn0UTQZ6MnBBw0DqaBKVlvGGpCQOYV3Jwnxc0FNXQ5mN j0nNwfA2B7Dee+o1Kp1+rw5Wzd6MsC/NllffuehfsS8yw7iN6k0Fbcgzk0vKl0aZEyYU ov3vzvWQBfrPvFa059R5YqWmOXQGyhgTCyLscXuTBpehm+uCbTaEVwjyFzLlBF0yNEo0 32E45aHhrw5QzDvStdnASP/smCn7kBwInwJAmP9R/MeCqsjtBfRe5qq5BCH7AF5qqEgC iz8pKxmZehyJ5udl8H+pryxK1TtQNGUj9a1FLH8Q58hLRhciHAn5/9SrWvLHzbUiMHu4 tK/w== X-Gm-Message-State: AOAM531hgNmppDvUyG72m9NyaSMPfg+5OUVEAbh3mguGR3rRznzcGNL7 9ex6Gp8IGoJ1PEK7VXTCSRIsigDZOKQtGaxGanjDIg== X-Received: by 2002:a0c:8304:: with SMTP id j4mr11269583qva.18.1612091653636; Sun, 31 Jan 2021 03:14:13 -0800 (PST) MIME-Version: 1.0 From: Dmitry Vyukov Date: Sun, 31 Jan 2021 12:14:02 +0100 Message-ID: Subject: extended bpf_send_signal_thread with argument To: Steven Rostedt , Ingo Molnar , Alexei Starovoitov , Daniel Borkmann , andrii@kernel.org, Martin KaFai Lau , David Miller , kpsingh@kernel.org, John Fastabend , netdev , bpf , LKML , Peter Zijlstra Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, I would like to send a signal from a bpf program invoked from a perf_event. There is: // kernel/trace/bpf_trace.c BPF_CALL_1(bpf_send_signal_thread, u32, sig) which is nice, but it does not allow me to pass any arguments. I can use a bpf map indexed by pid to "pass" some additional info, but it's messy and slow (and may cause some synchronization issues, I am not sure yet). Signals allow to pass additional arguments, it would be nice to expose this to bpf programs as well. Any objections? Do you see any potential issues with this? On the implementation side it seems to be almost trivial to add something like this: BPF_CALL_2(bpf_send_signal_thread_ex, u32, sig, uintptr_t sival) However, siginfo_t is way larger and allows to pass a whole lot of info, and the latest user-space APIs pidfd_send_signal just directly accepts siginfo_t (and rt_tgsigqueueinfo as well). But I am not sure how to expose it according to bpf rules. Could we do something like (pass whatever you want, it's your business)? BPF_CALL_2(bpf_send_signal_thread_ex, u32, sig, char siginfo[sizeof(siginfo_t)]) Does it make sense? If yes, what would be the best way to expose this? Thanks