From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BB918342539 for ; Mon, 30 Mar 2026 15:21:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774884063; cv=none; b=JV0KYnshR+YIXb6vGQFJs2eTZRgJbdIMe1IOeQEmGeQQDYC9pe6btNofDB6D2OdJukC/xziQ2HbseYdaZrRu/7/1ofGQKfNrfJR4Mck1BBtxtzw0Bn+iFL2D0xZfuYbKitVEHwiGfhFafs7jR3RXR7C5LrcN2L11mzk6BljCxWQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774884063; c=relaxed/simple; bh=dDsO5uf2WRZSDWmo+4MqP6v9u8prPHyFuGugSzJiXms=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=SOiq0M29OID21qnR0BEPi6gPudtRkd64HKTHEnFcY1yu56zNgtBNx0eH42qEKzr55Zzu3Qx/27YyD69TYmqYNo1VIFuhs/xWbTaBSm4+mlBK+f6CkjpS9wYOPzb8Th8rcWUgDHQNtg4oKU9nN7hfzuX83MpoexREHfsD497XtkQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=V4juGaDY; arc=none smtp.client-ip=209.85.221.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="V4juGaDY" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-439c56e822eso5062200f8f.2 for ; Mon, 30 Mar 2026 08:21:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774884060; x=1775488860; darn=vger.kernel.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=WlR8hdQRwntlpv8tuo2N0ezyr91wv9YgNBgco65NDoE=; b=V4juGaDY3c7eljcojk+PgfK2bI9WmRrM5/Lim8rxp+VArI7upsgdL8TYqCPbNCD+I5 UtwDRNtb6+QoXLBHv+M97MOML7Zlau3IZm9dcHxtHmoSLDK0vlIq8A7GCEOCl3DajzoM koGKi+kxsQpLa/y6VH50RyQ9HGHRahhhcY5G17oVe8D6kZ6RKcXPLBht0eopXuPHXROn hFhABuhoN1w4fZkPY3v/iCYjWCS0xOlYZX86/DSSC9W0/Bay/8BwB/D2NcYiB/5dUbaA ylHt13UuM7w1W3apABnig9whNtKy6UUo+lqMtmfkfFauqQeV78WswT59ncblH5bvx12V t/hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774884060; x=1775488860; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=WlR8hdQRwntlpv8tuo2N0ezyr91wv9YgNBgco65NDoE=; b=jhiyHcp1N8LCqQWJgbZjubbYNmSSCireazObHR7yU6rXJi8n6VS1uKbOdEvnFLg6B/ jbCbLAdxdQcXtPeRZKg5s6Xhumo5q+7IGDjlqy7d4vhjdGAAVden84fig9RzoFOrgvOu xfWnVPvQAeLN8gggwvwZlbEu7rK4qS2eCMLZz3f4FeadK7SyL+f/1moMnbNG/J4oVnKU Zic8elE3ZEljOwRgU3UfSusiMq/RSGq0rVIzRezCMN/MOB1wXqr7+68w9Sz1n6/GN7XO p/6EoQkxUReuSu7gbv18K+Cz2RZ8giWVVKKxy/C/NLTNpPhVe1EZcOlQYRoi7IDx7e/R vkaQ== X-Forwarded-Encrypted: i=1; AJvYcCWYJ8Spyk4ANCr1dsqIN7zVAfHwpQB72wi2gCHHW6oydMod8uxTe3UpSFxCZZ4l4AZ1lZ6RzBRoyCXOvs0=@vger.kernel.org X-Gm-Message-State: AOJu0YwP1REpnMs63ADU5ZcZCbx9FQ79nN80mId5lKTvRSimq/YBWxQj HPSACo1ut4MzEyG2J9VCzjYzVZwfpISB7d/bEZcV7bXKR8NRwuwzjE+o X-Gm-Gg: ATEYQzyhOBJfj7VRK2vP35JwotHUWl4zl9kLOMBgvw41DbZEgJlobc3NCf5cPk/Uy/t 9F+Nt14zDWy0Nd+uR0rOz6hN50AHu8erIyPfk71Qt70r+aSIBBrZ863MhJMx8aCBsfbBIacftv8 Sdstj+ysmqA+cA5tUaLVesUATb+4dHA7+klUvXodL1bOmsL/s+5CZFm98wCE79LoTW3w8Yod7xH Fisb5cBUhFUSn6RUNB/it4VEs2/SMQzskqLlR492a/Cx+kdYD+d66psx5BB5J91JW+aNvjcjiv4 elZINScLpZ1tse6yRs+cw3msBh1kUdfDeODPWy+KFx3yn/SG8QOtHy0zNBWnCdlKHX4mmzu2DCe qkA5hOPKNktF7pIIpbQxwBLTIAfAwbj12FQCmBWmInRMwwVOJfgBtB/1BE3yhAT+2uEyo2/Rjl8 USKWa+EdGjn3/8bR4= X-Received: by 2002:a5d:5d01:0:b0:43b:9c73:2933 with SMTP id ffacd0b85a97d-43b9ea34811mr22655564f8f.15.1774884056423; Mon, 30 Mar 2026 08:20:56 -0700 (PDT) Received: from localhost ([2620:10d:c092:500::4:4b08]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf21e2487sm20593730f8f.5.2026.03.30.08.20.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 08:20:55 -0700 (PDT) From: Mykyta Yatsenko To: Chengkaitao , martin.lau@linux.dev, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, eddyz87@gmail.com, song@kernel.org, yonghong.song@linux.dev, john.fastabend@gmail.com, kpsingh@kernel.org, sdf@fomichev.me, haoluo@google.com, jolsa@kernel.org, shuah@kernel.org, chengkaitao@kylinos.cn, linux-kselftest@vger.kernel.org Cc: bpf@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH bpf-next v9 1/9] bpf: refactor kfunc checks using table-driven approach in verifier In-Reply-To: <20260329140506.9595-2-pilgrimtao@gmail.com> References: <20260329140506.9595-1-pilgrimtao@gmail.com> <20260329140506.9595-2-pilgrimtao@gmail.com> Date: Mon, 30 Mar 2026 16:20:50 +0100 Message-ID: <87ikadgx7x.fsf@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain Chengkaitao writes: > From: Kaitao Cheng > > Replace per-kfunc btf_id chains check with btf_id_in_kfunc_table() and > static kfunc tables for easier maintenance. > > Prepare for future extensions to the bpf_list API family. > > Signed-off-by: Kaitao Cheng > --- I think old is_bpf_rbtree_api_kfunc(kfunc_btf_id) is more readable than new btf_id_in_kfunc_table(kfunc_btf_id, bpf_rbtree_api_kfuncs); Not sure if this change should be bundled with this series, it looks quite orthogonal. > kernel/bpf/verifier.c | 261 +++++++++++++++++++++++------------------- > 1 file changed, 144 insertions(+), 117 deletions(-) > > diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c > index 4fbacd2149cd..f2d9863bb290 100644 > --- a/kernel/bpf/verifier.c > +++ b/kernel/bpf/verifier.c > @@ -544,9 +544,6 @@ static bool is_async_callback_calling_kfunc(u32 btf_id); > static bool is_callback_calling_kfunc(u32 btf_id); > static bool is_bpf_throw_kfunc(struct bpf_insn *insn); > > -static bool is_bpf_wq_set_callback_kfunc(u32 btf_id); > -static bool is_task_work_add_kfunc(u32 func_id); > - > static bool is_sync_callback_calling_function(enum bpf_func_id func_id) > { > return func_id == BPF_FUNC_for_each_map_elem || > @@ -586,7 +583,7 @@ static bool is_async_cb_sleepable(struct bpf_verifier_env *env, struct bpf_insn > > /* bpf_wq and bpf_task_work callbacks are always sleepable. */ > if (bpf_pseudo_kfunc_call(insn) && insn->off == 0 && > - (is_bpf_wq_set_callback_kfunc(insn->imm) || is_task_work_add_kfunc(insn->imm))) > + is_async_callback_calling_kfunc(insn->imm)) > return true; > > verifier_bug(env, "unhandled async callback in is_async_cb_sleepable"); > @@ -11203,31 +11200,6 @@ static int set_task_work_schedule_callback_state(struct bpf_verifier_env *env, > return 0; > } > > ... > -- > 2.50.1 (Apple Git-155)