diff options
| author | Emil Tsalapatis <emil@etsalapatis.com> | 2026-10-02 10:52:17 +0000 |
|---|---|---|
| committer | Alexei Starovoitov <ast@kernel.org> | 2026-10-02 13:00:59 +0000 |
| commit | 23290213e1abfc71731a6491ca278141e8cbbf3b (patch) | |
| tree | 407a1a4c11747b9249b597059ad63fc098adb9d7 /include/linux/timerqueue.h | |
| parent | baf4e66f038fb1181dd0b1085c6b0913399c289f (diff) | |
| download | linux-next-23290213e1abfc71731a6491ca278141e8cbbf3b.tar.gz linux-next-23290213e1abfc71731a6491ca278141e8cbbf3b.zip | |
bpf: Support per-call-site kfunc specialization
specialize_kfunc() currently updates the canonical kfunc descriptor in
place. Different call sites therefore cannot select different
specializations of the same kfunc, and the selected target depends on
verification order.
Keep canonical descriptors unchanged for verifier lookups. Specialize a
copy for each call site, then reuse or append an immutable target
descriptor and store its index in the finalized call instruction.
Allow space for one canonical and one specialized target per kfunc. This
is conservative because most kfuncs do not specialize. Adding specialized
kfunc versions does not require resorting the array because lookups are
only used for deduplication and func_model lookup. Deduplication for
specialized kfuncs is handled by the specialization process itself,
while all specializations of a function share the same proto and
func_model.
Signed-off-by: Emil Tsalapatis <emil@etsalapatis.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://patch.msgid.link/20261002105218.6171-7-emil@etsalapatis.com
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions
