From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 77AD6C433ED for ; Sat, 15 May 2021 07:00:15 +0000 (UTC) Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8548361377 for ; Sat, 15 May 2021 07:00:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8548361377 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kernelnewbies-bounces@kernelnewbies.org Received: from localhost ([::1] helo=shelob.surriel.com) by shelob.surriel.com with esmtp (Exim 4.94.2) (envelope-from ) id 1lhoHB-0007E4-86; Sat, 15 May 2021 02:59:53 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by shelob.surriel.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1lhoH7-0007Cy-9Y for kernelnewbies@kernelnewbies.org; Sat, 15 May 2021 02:59:49 -0400 Received: by mail-pj1-x1031.google.com with SMTP id b13-20020a17090a8c8db029015cd97baea9so2354965pjo.0 for ; Fri, 14 May 2021 23:59:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=user-agent:from:to:subject:date:message-id:mime-version; bh=PvrJQus9AFNNzREKlCrnIx68ltPGy82GHnOsDXYiU6o=; b=eJABMV4YjdNKxYpHGPAA10hXWjkoReatfpliBCfu8vIyQ2APYWpgSij794Lrx4ShcS PQrakEP5WEEBRJZFmQPvpahx5lPGyvR5IXFGXam9PRSUn7SRL7yknH/7vIZNr6Egqsg+ mETuA5D0BIykIiFJLHEx4MiWd6SJaPPAhgiHk182D9goWakxByPgVs2mNgzm6WRuRKxM VYUiC20bmXaDpZU4MjA5EWINEDj11TETgfBet9j8SEtUj1Fx0Vjsq2pySsPy2kDjxR21 StjiDeHc9L8gukh2mnwm7631jRgC19bYxoqsxhEczb8oSXZ7sXxdBL5poyS5N8YCCGVk FDjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:user-agent:from:to:subject:date:message-id :mime-version; bh=PvrJQus9AFNNzREKlCrnIx68ltPGy82GHnOsDXYiU6o=; b=QNqZE0rI0RR6J+keNK62Q0quhHx1aeK3fIys950xbINoo95JeMuZk8BpUq7p7oG/Wt wMroedVejxReYR24XP0u1QOI8aAdG9fdlWfBJszcCtNtfxZSPCwqnD/qeyp/ulhpWi2T k1dw+TvbWejrF28JMky9fqCMRQ3OL+g5DM6TBbgoDnmM2M6K1uxB6CBeRcZlD9xHlBBJ ce8uVEJLLXLajJwvLSrrcWKRdDAUZ6AvOHJ80/ryiKj7RXdwPmA5ibrURozMPfzzte/b tsLW+2nIKp9ZfQ9ENQHC6Eu1labKPFZsGfJteO2g+fCSJID8hV6xQlQMCMEXKrnfnFN4 BH8A== X-Gm-Message-State: AOAM530QojBYzXCy2/pxW0R2+YHHZ0dlaWzMpK9+G/6lqjF8mLs4RdNg Z14jedRTTPui/tzTKgqNLebGno+470NbzA== X-Google-Smtp-Source: ABdhPJw8crG0Wha1/OA59Q+QpniSV+LNkVcA8EMFUo6Gs9TCWQ9KRDpncU3sVG4lp/8U47O8uNM0zQ== X-Received: by 2002:a17:902:e543:b029:ed:4852:5493 with SMTP id n3-20020a170902e543b02900ed48525493mr49749488plf.56.1621061986167; Fri, 14 May 2021 23:59:46 -0700 (PDT) Received: from pop-os ([1.234.154.110]) by smtp.gmail.com with ESMTPSA id kk13sm230045pjb.52.2021.05.14.23.59.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 May 2021 23:59:45 -0700 (PDT) User-agent: mu4e 1.5.7; emacs 28.0.50 From: Junyeong Jeong To: kernelnewbies@kernelnewbies.org Subject: How to make BPF program which is attached to kprobe keep working after process exits? Date: Sat, 15 May 2021 15:55:53 +0900 Message-ID: <874kf44h40.fsf@gmail.com> MIME-Version: 1.0 X-BeenThere: kernelnewbies@kernelnewbies.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Learn about the Linux kernel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: kernelnewbies-bounces@kernelnewbies.org Hello :) My BPF program is loaded by `bpf_load_program_xattr` of `libbpf` and then attached to kprobe event using `perf_event_open`, `ioctl(PERF_EVENT_IOC_SET_BPF)` and `ioctl(PERF_EVENT_IOC_ENABLE)`. Then the BPF program is working as I expected. And I wanted to make the BPF program keep working even though the userspace process exits. So I pinned it using `bpf_obj_pin()`. But unfortunately the BPF program is never called after the userspace process exits. I discovered the cause of the failure. The file descriptor of perf event is automatically closed when userspace process exits so objects related to perf event get destroyed. So I tried to find how to pin the fd of perf event, but I got to know that only BPF programs, BPF maps and BPF links are subject to pin. How can I make my BPF program which is attached to kprobe keep working after userspace process exits? regards, Junyeong _______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies