Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp2877881rdb; Tue, 12 Sep 2023 15:18:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGuIZ8tbUZ+1MPPuDlAI+FTOWorXGzxLVJEle6zVyptXmx+YtSTyc1Vf2WUFkg6R6RzfUHF X-Received: by 2002:a17:90b:695:b0:267:eefe:d0b5 with SMTP id m21-20020a17090b069500b00267eefed0b5mr584270pjz.46.1694557123685; Tue, 12 Sep 2023 15:18:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694557123; cv=none; d=google.com; s=arc-20160816; b=Lgfu7ehcysLkZsvw+SutZ1sCDfIYz97Iiq85bL2bXI6Mj3mcXZ5xX1qQT2VUQQHDQD MxDatExGWYhejs+nCSAOWlG10435OSvutv9isBNQNYn2Hud/WxZvaP66ENCo4QkiHjSK kPehZ7hbjWZSGZ9uf3jd9/hb5P+34Pu7zflZZD4wckCIDGjxqRN9hXhA5l7ePsQKtBGU l/0rKsXsUwxTJIuF25xcWJ6fHC5gmQzz8jcGqjlmDxz4JjS1wxdvR7x0EG6mAu5JC3WF sXiXbu6sIZNR2zTNsLQ1u5eOFCoIW+hL+DfrItMZO9tCQHOT3XEIS36WEvMpMs3ZyJ9r fpaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:mime-version:date :dkim-signature:message-id; bh=I8O2Nscd47hkRROGFh80UDSBByNjzYNNhSIVk3mOdSU=; fh=g+vul0YVhtbHAh2Tb3s8g36s4y8K16+LZL0NPNaEEAY=; b=e4gZZz8tF75MNRouukaiHPTWnSFr4DVwgNOnNRKvSnGAknsvc2PER9UDR0SFMbJJny wgYyLq4wDYtzT0EsX6r9fg2Rfk9U+XBoLV4Lru1ZZBWaxPomvMFSE0GLlSTwDypnjapE 23W0qqqV+bolfjGJCbciniegX2jmBtbcSFpp4jMWsAtQY88yL4Jl4jmQGnLc96pNTfo+ KpXgQmE/OlYRO52sypQVvpQy+KuXACmD23lJcIXSTrdGKLlaQDXIglK+6UBu80Um328Y l3TI9S0DEbuOZvhbOMcI64jXqn7oN0ikCC3OdITXBG0S5VksOO5FY1+QSJmOm0nWr9Sc V4Sg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=NPxpvABM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id o7-20020a17090a5b0700b0026fb2c4c186si182267pji.1.2023.09.12.15.18.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 15:18:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=NPxpvABM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 772ED814C6B4; Tue, 12 Sep 2023 12:58:02 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233417AbjILT6C (ORCPT + 99 others); Tue, 12 Sep 2023 15:58:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38078 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229500AbjILT6B (ORCPT ); Tue, 12 Sep 2023 15:58:01 -0400 Received: from out-218.mta1.migadu.com (out-218.mta1.migadu.com [95.215.58.218]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 142B61AE for ; Tue, 12 Sep 2023 12:57:57 -0700 (PDT) Message-ID: <8b272d63-5dd7-13bd-7691-d061895fdbe1@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1694548674; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=I8O2Nscd47hkRROGFh80UDSBByNjzYNNhSIVk3mOdSU=; b=NPxpvABMTXZYABRLcfwsASp2EUogpYid24GMsBkMb4WxznmknrD7VDDnNsXtQJQ5Q6VCsF Qxebw4mdfJHig5Lgf4B1sjGQnCxeT9GAtgzBDAe6xlNX8y3vhYR3hGJQt7Yp8xyyxJXJpa AkluNAMk/4AEKPJCebJ0wgc7mxxc0zk= Date: Tue, 12 Sep 2023 12:57:47 -0700 MIME-Version: 1.0 Subject: Re: [PATCH bpf-next v2 2/6] bpf: Introduce css_task open-coded iterator kfuncs Content-Language: en-US To: Chuyi Zhou Cc: ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@kernel.org, tj@kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org References: <20230912070149.969939-1-zhouchuyi@bytedance.com> <20230912070149.969939-3-zhouchuyi@bytedance.com> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Martin KaFai Lau In-Reply-To: <20230912070149.969939-3-zhouchuyi@bytedance.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Migadu-Flow: FLOW_OUT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 12 Sep 2023 12:58:02 -0700 (PDT) X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email On 9/12/23 12:01 AM, Chuyi Zhou wrote: > +__bpf_kfunc int bpf_iter_css_task_new(struct bpf_iter_css_task *it, > + struct cgroup_subsys_state *css, unsigned int flags) > +{ > + struct bpf_iter_css_task_kern *kit = (void *)it; > + > + BUILD_BUG_ON(sizeof(struct bpf_iter_css_task_kern) != sizeof(struct bpf_iter_css_task)); > + BUILD_BUG_ON(__alignof__(struct bpf_iter_css_task_kern) != > + __alignof__(struct bpf_iter_css_task)); > + > + switch (flags) { > + case CSS_TASK_ITER_PROCS | CSS_TASK_ITER_THREADED: > + case CSS_TASK_ITER_PROCS: > + case 0: > + break; > + default: > + return -EINVAL; > + } > + > + kit->css_it = kzalloc(sizeof(struct css_task_iter), GFP_KERNEL); > + if (!kit->css_it) > + return -ENOMEM; > + css_task_iter_start(css, flags, kit->css_it); > + return 0; > +} > + > +static bool check_css_task_iter_allowlist(struct bpf_verifier_env *env) > +{ > + enum bpf_prog_type prog_type = resolve_prog_type(env->prog); > + > + switch (prog_type) { > + case BPF_PROG_TYPE_LSM: This will allow the non-sleepable lsm prog to call bpf_iter_css_task_new. The above kzalloc(GFP_KERNEL) in bpf_iter_css_task_new should trigger a lockdep error in the lsm selftest in patch 6. > + return true; > + case BPF_TRACE_ITER: > + return env->prog->aux->sleepable; > + default: > + return false; > + } > +}