From nobody Mon Jun 8 05:25:46 2026 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) (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 CF0D33939B2 for ; Tue, 2 Jun 2026 20:59:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780433965; cv=none; b=PkbpmHOkNReE1hiubr0/jFk+bfQfv1OM2vOv18tKVhKNMPaX7GLVgLRZhvrCVlrh8R5WWy6ZHz5H50WnrzC5tJopl1gkSsCmNjzDNToEV+7QqchqbbL6TDC/ixNquJAuEI+S7NZr7noVxLRzO5/TwkeY0LinCZGAR/IDzmwMFZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780433965; c=relaxed/simple; bh=OIL4u1059wQePR4fBxdtuuk+4+q2KWiT2f5tiuzz13M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sHkpkTBjMUB7T0OzBVW89TPmERcGI0CcFEZTfSn+cY5J1u+q3QFDjil8gvgVB+4uLVhQajHA00ep4kkmbhwLPQy5ei59Y2eloIRuFvYUWhlDC2pkpwEOog42qX5+BLcw8mwxlH41ammMTfb8vmMnSXoEjroZZPfd/qI1A6rBjyc= 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=X3rnsinv; arc=none smtp.client-ip=209.85.216.44 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="X3rnsinv" Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-36babe2c4bdso3035370a91.1 for ; Tue, 02 Jun 2026 13:59:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780433963; x=1781038763; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ea3yw5dmVH/Wal3jfG05beYzbzDpKpyYIVD2MX/4oR4=; b=X3rnsinvLeEIbf83NUNYYy7Bw6LQVHa4Gzuz18eiLNaRBPAOb0hxcZRtAxMmS82VoW VNt5SI0rXyKiZ8TzkU26gzdKqQt9zNCuVuiE1ohrQiLz45y5M8J6ow2CIOnFnaag8NIv idNygrWig9WQQQE8e+kJLtkXnjG6qTIvoq6kSzL3U1fan1UWimk5L8XlnD+9vUQurT75 LCrdFnZk8CDksdgOFEkYsmSdbJqowzHsWa7ZLzLQCwtDhCvUAV8aEwnmXmt3LkUhsUyP Zj3q5FP1eRY7plChpcPolE56iUyDNYvDt7J8haU54C9rjAV23qywgk9/iBL2/vozY2pC GN8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780433963; x=1781038763; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ea3yw5dmVH/Wal3jfG05beYzbzDpKpyYIVD2MX/4oR4=; b=ZNKwlnJ2ZAtOJk1j1h7lCp8U+4OCfvP8yRXsOjDDRJtMqSSlsWx0M3S4B6vZoO4QsL yI48ebL3djGnBVw8kIsbFnJYyPpyf1e45hpF9NEJkhfYETU1ugaGgJpdbwatS9EO+uTJ xJBZ0ItIlSLcP1vxqjlBLhtEjlkp/qLS3OzLbxP6dyBPDNeEXGzVnPZAVkbMgCOt636t e8lzOT66CiDfyWzk+9iQC+bRptfKRAeJfymVARyU3cJxXZ/fgSB6vk2JSu5Sr+Jaz3LD ptplWDDrMe09BshSw7iAjabfs1j9ztxTpb6YdFs3h+03KStej6OUVJ4K2W4xTbEj5J5W rwoQ== X-Forwarded-Encrypted: i=1; AFNElJ8GYlf5FHHROmWKPhyDso5Xc4vhnxyNeQXxBL4kW7b96G8CdHjxDXs79PbvcBOsoxU601B8S5aAHzOT09Q=@vger.kernel.org X-Gm-Message-State: AOJu0YxAV1wdEyzS/Imlm3l6zSUAObhprNTMDW5xh5tcf4HoRAyq8BBk 9U4Slf6zb6Fi99PjimiBSRLeY7EqMsK/JUUGKIgKA+XiengVRF0jvX1h X-Gm-Gg: Acq92OG5+VmaULiCQVUuyq8+5Qyg/Y6x1rzu0hEBUmaHhFxG7XLhDcuqvevZb9Iaww8 7qYKLao4ZEwtaFLnS47sSzqqOPYOszsbK593FEUlQDTQWzGt2u9C9glpbo99HwlPpJJE9fKsRde gIlreH/8EeSRX0jGMzrv36ymXrLmlWD5acgK06hGt9veu8afqe1SulHzrORyDoNXvGSCB3HiYro iUt5A6Nu+kKtKENMEg3hoJhIy/T+26N6G40B/bmzKQ/d+3UiNPQ0odZ2si0hNCdvYNtCSkPQGSP XKgQd+4uGwd4rSxT9dVLJXUeOaL4Jx6n6eaeFiay05Q9RrzRjq61G8spvrHTO/gbLAcUwcI7CSs hq3poLqP8VSnTbYJFvKKgQcFm2H3ABx2ISaLjPIZ9VJiCrWPmbowALbfsrYXAIl7yhSH4ZG+Yit TQEcADXETSkgNYAvUro4nvk4EKq2zOumHgaGIPC1ojHKCmoVndZ4xaFYQeV4jDVU+Zc9V53gEzu QJcVB3xFByaH1T6 X-Received: by 2002:a17:90a:b401:b0:36b:5b82:4834 with SMTP id 98e67ed59e1d1-36e30c213bfmr311928a91.7.1780433963026; Tue, 02 Jun 2026 13:59:23 -0700 (PDT) Received: from computer.goose-salary.ts.net ([2a09:bac5:3b4a:11cd::1c6:2]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c85df043223sm157354a12.8.2026.06.02.13.59.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 13:59:22 -0700 (PDT) From: Varun R Mallya To: bpf@vger.kernel.org, linux-riscv@lists.infradead.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, eddyz87@gmail.com, memxor@gmail.com, bjorn@kernel.org, pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, puranjay@kernel.org, menglong8.dong@gmail.com Cc: martin.lau@linux.dev, song@kernel.org, yonghong.song@linux.dev, jolsa@kernel.org, pulehui@huawei.com, alex@ghiti.fr, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, varunrmallya@gmail.com Subject: [PATCH bpf-next 1/2] selftests/bpf: use host CPU features in JIT disassembler Date: Wed, 3 Jun 2026 02:28:46 +0530 Message-ID: <20260602205847.102825-2-varunrmallya@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260602205847.102825-1-varunrmallya@gmail.com> References: <20260602205847.102825-1-varunrmallya@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Pass the host CPU name and feature string to LLVMCreateDisasmCPUFeatures() instead of using LLVMCreateDisasm(), so the disassembler correctly decodes CPU-specific instructions and extensions such as RISC-V compressed and vector instructions. Signed-off-by: Varun R Mallya Reviewed-by: Bj=C3=B6rn T=C3=B6pel --- tools/testing/selftests/bpf/jit_disasm_helpers.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/jit_disasm_helpers.c b/tools/testi= ng/selftests/bpf/jit_disasm_helpers.c index 364c557c5115..3558fe10e28c 100644 --- a/tools/testing/selftests/bpf/jit_disasm_helpers.c +++ b/tools/testing/selftests/bpf/jit_disasm_helpers.c @@ -96,10 +96,19 @@ static int disasm_one_func(FILE *text_out, uint8_t *ima= ge, __u32 len) __u32 *label_pc, pc; int i, cnt, err =3D 0; char buf[64]; + char *cpu, *features; =20 triple =3D LLVMGetDefaultTargetTriple(); - ctx =3D LLVMCreateDisasm(triple, &labels, 0, NULL, lookup_symbol); - if (!ASSERT_OK_PTR(ctx, "LLVMCreateDisasm")) { + + cpu =3D LLVMGetHostCPUName(); + features =3D LLVMGetHostCPUFeatures(); + + ctx =3D LLVMCreateDisasmCPUFeatures(triple, cpu, features, &labels, 0, NU= LL, lookup_symbol); + + LLVMDisposeMessage(cpu); + LLVMDisposeMessage(features); + + if (!ASSERT_OK_PTR(ctx, "LLVMCreateDisasmCPUFeatures")) { err =3D -EINVAL; goto out; } --=20 2.54.0 From nobody Mon Jun 8 05:25:46 2026 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 B35B439891D for ; Tue, 2 Jun 2026 20:59:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780433976; cv=none; b=t4FiVJ5A2GgBJCBqNjGKGzxt4kRC6POUzeTxYrtppRPHXG9ZQSeMkEuOs8cNIg9p7EG6LH/9qUAGuf5jPBxl0eApSwxY/FuYhCIbnyflDMoKCIAJXLrr03P0kGAmX8IwGBhBIKezBeDiWH/jRFvliU1ngTpJbNHgLKjiFGZOC1A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780433976; c=relaxed/simple; bh=40YuMegnizHDre5rP/J67ecYybi5tbv7U9hYJ5stFqg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CIWxnoNGMByjc33X2q/jVlqN4NtVGPgiPLqKVRLy1Y1UVVTWeNDV5Lcne+t3ykeZ7u8vhaqF/28ztpPU7q8huPku/IgPIdkN/cp8rMS7VLCimf5x2cL8rArZg0GfFSMeW2/cLw4tyGyLeqSMqKgjAOtmvKVEmeb4o5LMhtGK/ZE= 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=dBajUGmu; arc=none smtp.client-ip=209.85.214.180 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="dBajUGmu" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2bf30d530bdso45023575ad.3 for ; Tue, 02 Jun 2026 13:59:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780433974; x=1781038774; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FtyaF8m6RLOpOeiX8WoJduU1Pm23yBD2PG4I02qCKQE=; b=dBajUGmuXiduNnxYDigsK0NW+O8Y0gSoOAmVS3+WiUenfpr0m/M6EgXnWjAuEXMSze wvhmLXm0EpuZoCaNUut9lxp/bEN/iuHNxDDOcktz/V+Z1GrJHToBDWrAXEQJgvtgLZ4v R2liSxLhe0nXYad/K/tA2Sso0bBotJAE/AZIEbF9IKXxLCPjeDsLbmgIS1aFH+c7QbzV zLFlxTjvsuJCiJ0L6h0mM7uwdUMoXt+0FU/LvCbahl01MXA/TrQlVaeP7Gbqw9ooN/1D Xtw/ShTek/R/dcnrIumDF3X7BfakIIBsW/Tgxt7lmEhD/VkGWTsWv4Rvm1FAcGIs0OdV vF0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780433974; x=1781038774; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=FtyaF8m6RLOpOeiX8WoJduU1Pm23yBD2PG4I02qCKQE=; b=o0AXaYNjjdKXRcgG1hBShpLesdBBGEWzZuLfr+cR6/KVAw3oGxzIgVHB61Cz+b8sP5 pHJT1oZWmCZEDib3A7RNvzG5KxEjLJkE6MAbEaJyMDN+JSl+9SMkHmyCfJvOavtg0EaF Xa67gA5Ht+eOSmufo69EUgxcB0R/L17UAvY/PSb+7KRvaDzTMol1+WSh7Cjr6MUkhrLL zMZrXOShig7Tu/J/4JZmA9m19rQtUf4Bo5j9WWecY+cUzjCvfw7MAnKiZw3mHYT1BVK2 wKnXNNqdcfa+5RPrrI0uwx9EkkmFYlK5rOuDHpVzh4cChY1sE0AOxHtn4Vqk0DHkMaCb oSFQ== X-Forwarded-Encrypted: i=1; AFNElJ/Q3FduZnteOmTIJacITfA6yF442BHzCeJGRvo2mu62c6wrDkGB7yDJHOvfzntLVN21F4AWr2z8aJXwA/E=@vger.kernel.org X-Gm-Message-State: AOJu0Yxt22wj0us4Lk6nzXS/HhTkATk5AvJ34J4eAczdthbsdgbEI0N/ WLRRtstCb24WJja/DsKBcV1ypceYr171IbrYBW/nbU1M+1irRWnaz4Gj X-Gm-Gg: Acq92OH+1kirr7I6/VDsqkFPvZJkuP189W3JJ06tRH7pzKVs2ovqnImuQwzCPH3o96b DAGxFBf0R9SpUozOsx+qImlw1DIQDaVg86tM8EVIU9poi90wVpihBWSyCaAfnsh3YcXiUjzB0VA Dvy9qxwKXAwM8hEUunNjxBTkcDvsWgGcWOd0Clg3ANNK6GPFf6PGZwz3N7lsM09ro8frNVR3FZA m89ujcwsDT/WMZqXALLsmDDy4R9QUPZXgkgQyBjpll6Atp188/BjuMOcajAHUkd45iUnGOzSEP5 fIpTNDI3JG41ZSOIaHwWuZ03HBONu5oLuuYyT5+DvHwJx30A1DildF5EMKdjAd8tF75x4y043GE lfzBEq34N8D0A3CNjQIPM1KUZgN685OVsl7manAXziCv9V3xqS/zJsBAbN47IJf8WTn00MLtMhl 5WZ0McUD40mqf6JsC6n4FpMKmlAnRUPXdAGOIg/uwsGNa0uSOQAFoDJl/A7bAvUP4GR6uxm/FA/ QWii4STmCsBvJ2q X-Received: by 2002:a05:6a20:b598:b0:39c:126c:93b4 with SMTP id adf61e73a8af0-3b497449d82mr542621637.9.1780433973930; Tue, 02 Jun 2026 13:59:33 -0700 (PDT) Received: from computer.goose-salary.ts.net ([2a09:bac5:3b4a:11cd::1c6:2]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c85df043223sm157354a12.8.2026.06.02.13.59.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 13:59:33 -0700 (PDT) From: Varun R Mallya To: bpf@vger.kernel.org, linux-riscv@lists.infradead.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, eddyz87@gmail.com, memxor@gmail.com, bjorn@kernel.org, pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, puranjay@kernel.org, menglong8.dong@gmail.com Cc: martin.lau@linux.dev, song@kernel.org, yonghong.song@linux.dev, jolsa@kernel.org, pulehui@huawei.com, alex@ghiti.fr, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, varunrmallya@gmail.com Subject: [PATCH bpf-next 2/2] bpf, riscv: inline bpf_get_current_task() and bpf_get_current_task_btf() Date: Wed, 3 Jun 2026 02:28:47 +0530 Message-ID: <20260602205847.102825-3-varunrmallya@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260602205847.102825-1-varunrmallya@gmail.com> References: <20260602205847.102825-1-varunrmallya@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" On RISC-V, the current task pointer is stored in the thread pointer register (tp). Emit a single `mv a5, tp` instead of a full helper call for BPF_FUNC_get_current_task and BPF_FUNC_get_current_task_btf. Register bpf_jit_inlines_helper_call() entries for both helpers so the verifier treats them as inlined, and add the expected `mv a5, tp` annotation to the riscv64 selftests. The following show changes before and after this patch. Before patch: auipc t1,0x817a # load upper PC-relative address jalr -2004(t1) # call bpf_get_current_task helper mv a5,a0 # move return value to BPF_REG_0 After patch: mv a5,tp # directly: a5 =3D current (tp =3D thread pointer) Benchmark (bpf_prog_test_run wrapping bpf_get_current_task in loop, batch=3D100, 10s, QEMU RISC-V): | runs/sec | helper-calls/sec | ns/call -------------+-----------+------------------+--------- Before patch | 173,490 | 17,349,090 | 57 After patch | 320,497 | 32,049,780 | 31 -------------+-----------+------------------+--------- Improvement | +84.7% | +84.7% | -45.6% Signed-off-by: Varun R Mallya Acked-by: Bj=C3=B6rn T=C3=B6pel --- arch/riscv/net/bpf_jit_comp64.c | 9 +++++++++ tools/testing/selftests/bpf/progs/verifier_jit_inline.c | 2 ++ 2 files changed, 11 insertions(+) diff --git a/arch/riscv/net/bpf_jit_comp64.c b/arch/riscv/net/bpf_jit_comp6= 4.c index 2f1109dbf105..e2c70c70cca8 100644 --- a/arch/riscv/net/bpf_jit_comp64.c +++ b/arch/riscv/net/bpf_jit_comp64.c @@ -1808,6 +1808,13 @@ int bpf_jit_emit_insn(const struct bpf_insn *insn, s= truct rv_jit_context *ctx, break; } =20 + /* Implement helper call to bpf_get_current_task/_btf() inline */ + if (insn->src_reg =3D=3D 0 && (insn->imm =3D=3D BPF_FUNC_get_current_tas= k || + insn->imm =3D=3D BPF_FUNC_get_current_task_btf)) { + emit_mv(bpf_to_rv_reg(BPF_REG_0, ctx), RV_REG_TP, ctx); + break; + } + mark_call(ctx); ret =3D bpf_jit_get_func_addr(ctx->prog, insn, extra_pass, &addr, &fixed_addr); @@ -2138,6 +2145,8 @@ bool bpf_jit_inlines_helper_call(s32 imm) { switch (imm) { case BPF_FUNC_get_smp_processor_id: + case BPF_FUNC_get_current_task: + case BPF_FUNC_get_current_task_btf: return true; default: return false; diff --git a/tools/testing/selftests/bpf/progs/verifier_jit_inline.c b/tool= s/testing/selftests/bpf/progs/verifier_jit_inline.c index 885ff69a3a62..76d80605ec7f 100644 --- a/tools/testing/selftests/bpf/progs/verifier_jit_inline.c +++ b/tools/testing/selftests/bpf/progs/verifier_jit_inline.c @@ -10,6 +10,8 @@ __arch_x86_64 __jited(" addq %gs:{{.*}}, %rax") __arch_arm64 __jited(" mrs x8, SP_EL0") +__arch_riscv64 +__jited(" mv a5, tp") int inline_bpf_get_current_task(void) { bpf_get_current_task(); --=20 2.54.0