Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp5288812rwi; Mon, 17 Oct 2022 18:57:55 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4i49nK9YAEAPFSlH+FTOY09j/5Ii3zMAawCLa79swHHuIrxCJAIjEw6G8BfxHldi5vhpTe X-Received: by 2002:a05:6402:3592:b0:45c:fb8a:c57d with SMTP id y18-20020a056402359200b0045cfb8ac57dmr497251edc.290.1666058274962; Mon, 17 Oct 2022 18:57:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666058274; cv=none; d=google.com; s=arc-20160816; b=OyBscOM95ZwcCyM0RjUZsSpOf3+Y8ET+sqXvycRP97ul9SthW5xjTIiWwjKvE/MPXp cKdczVLP4v9YzIsSBOXwSD/05Tfuea2MF4+g2bF9peU7p6ad/R9erVk2nj79YhAmHEBi AVNEHfINa30I5cJ5xQCDN4V1eqITUxNGcKWNLX40rH7BN2GdTegkaOyhUGBsUCAKJaNn pk1NTAw8dZqWzECBxbCeAK/QQxcsKoEXcZ8VSNLsgZ+pUD2nhJKVAebx/YgDHqa0CWXp 8yIQzHVbtS/SHyctm6uRnfOwaEGVRy6MBPUTscf4WKWSh+cUrre2lRKj+MhTK1CpULav puuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=WW27PHINhmqz572mOzgv19LUc9CSwt2ngmBxIUlALDI=; b=Ht+GTHC3dD3waT612jps2ntQFLT8jKhRitCXLwpH+aYHObbaGDcsDwpTbyt5SuO30y 5XiFa38nnh49uqgO93owJM47EImQnEj7McdnHOdVSpGuppAWccUd46PVAzfPgFf2fNBP kP98yyC0EKDiGVImXcFXdlIOUMfAEUhwwNFF2fSadMqhE/nU+sqpISyVz55xR+DP0MiM CX5rKCEDJ+JyPY/K7V1xsHcLSGMxPsA69btwq5Qnqd28nC8RWFjOs4yv0C9Fz4mC7ZC8 KxEb3m4WjpDtlW+ieAShcZe8EVS9YdTWc122+CwWxY9/pcjPQOrce14a5A/Pi8rLt0w1 R9kQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="B9LbLcI/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dd17-20020a1709069b9100b0077cfec3a52fsi11377621ejc.839.2022.10.17.18.57.29; Mon, 17 Oct 2022 18:57:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="B9LbLcI/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230295AbiJRByH (ORCPT + 99 others); Mon, 17 Oct 2022 21:54:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48004 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229784AbiJRByF (ORCPT ); Mon, 17 Oct 2022 21:54:05 -0400 Received: from mail-oa1-x41.google.com (mail-oa1-x41.google.com [IPv6:2001:4860:4864:20::41]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B19D9726A5; Mon, 17 Oct 2022 18:54:04 -0700 (PDT) Received: by mail-oa1-x41.google.com with SMTP id 586e51a60fabf-1364357a691so15321511fac.7; Mon, 17 Oct 2022 18:54:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=WW27PHINhmqz572mOzgv19LUc9CSwt2ngmBxIUlALDI=; b=B9LbLcI/GWyvGFXVgyafDTUNgzSGSerULnta25D63wM5fGW9nKy99y/ISV9TXdaVDK 94kqihaM+fSRq6vAmoqk+cP9RxHFy3XoZK4/3loDDfVMRi0trJlXY7jyZ9oIejQGwmyx fw8ESLKWtH/5rz1GA7gPkUzDxieFvXgiIga4ilrBlZngBlBBPb/ouSkpQD8sViZPmvDx SPj1gyo/T+wpDdwDh7kbgyAEqmlgfQf/SXrEFrFJOWDkapgOvLSIZ2ZE6NI5OUNNzgQA AzpI5ZCUVAuIeDxrnGd8lLhHO6RkuGNRTwXri3hppLCKtk8xbNETVmeUw03cxEbr/Sba S5gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=WW27PHINhmqz572mOzgv19LUc9CSwt2ngmBxIUlALDI=; b=YTIc5Pnsu0Tl1W+OqqToEXNj2KVz2fe8tLAxcKKtiuxuI5lgmXi4I5Fs7g2jLfSobG ddy4bEqkz7tqeFccPfRpJ1k1TPd9EY+i3zwT69b0ROy/tB9VM9vXE8Pwdz6iJDoYgdeB vG/adPNH55YYffO6TopFqDCOSv0xeQw/7v3ua7kkT7BUYrax48y16Lj3AXpjRfos3C3T wGpeYr+n13d5X787UWDO6oSGEIL0t6zZCVK5ghI8hrgR1M28xb1Sdg99nYsNV2AHTlyq GF1J9sAKFaypqwd6ZN3weE8mJf/rET8rqfnktnE0ZUz2t07nPLaxCFwSrbMevMqLzAb9 94HA== X-Gm-Message-State: ACrzQf3/VwqT6lXatFO6+Iwszd4PjsFa5xHQmHBXEoz2cS7UY3QoGMCd GIJjicHniIkvBnW5ZdINka8pp0lQtXaQmC+/Sjk= X-Received: by 2002:a05:6870:178e:b0:126:7055:fc78 with SMTP id r14-20020a056870178e00b001267055fc78mr406594oae.58.1666058043995; Mon, 17 Oct 2022 18:54:03 -0700 (PDT) MIME-Version: 1.0 References: <20221014201427.2435461-1-void@manifault.com> <20221014201427.2435461-4-void@manifault.com> In-Reply-To: <20221014201427.2435461-4-void@manifault.com> From: Kumar Kartikeya Dwivedi Date: Tue, 18 Oct 2022 07:23:23 +0530 Message-ID: Subject: Re: [PATCH v3 3/3] bpf/selftests: Add selftests for new task kfuncs To: David Vernet Cc: bpf@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@linux.dev, song@kernel.org, yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org, sdf@google.com, haoluo@google.com, jolsa@kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com, tj@kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 15 Oct 2022 at 01:45, David Vernet wrote: > > A previous change added a series of kfuncs for storing struct > task_struct objects as referenced kptrs. This patch adds a new > task_kfunc test suite for validating their expected behavior. > > Signed-off-by: David Vernet > --- > [...] > + > +SEC("tp_btf/task_newtask") > +int BPF_PROG(task_kfunc_acquire_trusted_nested, struct task_struct *task, u64 clone_flags) > +{ > + struct task_struct *acquired; > + > + if (!is_test_kfunc_task()) > + return 0; > + > + /* Can't invoke bpf_task_acquire() on a trusted pointer at a nonzero offset. */ > + acquired = bpf_task_acquire(task->last_wakee); The comment is incorrect, that would be &task->last_wakee instead, this is PTR_TO_BTF_ID | PTR_NESTED. > + if (!acquired) > + return 0; > + bpf_task_release(acquired); > + > + return 0; > +} > + > [...] > + > +static int test_acquire_release(struct task_struct *task) > +{ > + struct task_struct *acquired; > + > + acquired = bpf_task_acquire(task); Unfortunately a side effect of this change is that now since PTR_TO_BTF_ID without ref_obj_id is considered trusted, the bpf_ct_* functions would begin working with tp_btf args. That probably needs to be fixed so that they reject them (ideally with a failing test case to make sure it doesn't resurface), probably with a new suffix __ref/or __owned as added here [0]. Alexei, since you've suggested avoiding adding that suffix, do you see any other way out here? It's questionable whether bpf_ct_set_timeout/status should work for CT not owned by the BPF program. [0]: https://lore.kernel.org/bpf/dfb859a6b76a9234baa194e795ae89cb7ca5694b.1662383493.git.lorenzo@kernel.org > + if (!acquired) { > + err = 1; > + return 0; > + } > + > + bpf_task_release(acquired); > + > + return 0; > +} > + > [...]