[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <235e7365-2fe3-4bfa-ab11-1dc955d70042@google.com>
Date: Mon, 2 Oct 2023 14:50:34 -0400
From: Barret Rhoden <brho@...gle.com>
To: Alexei Starovoitov <alexei.starovoitov@...il.com>
Cc: Matt Bobrowski <mattbobrowski@...gle.com>,
Toke Høiland-Jørgensen <toke@...hat.com>,
Daniel Borkmann <daniel@...earbox.net>, Alexei Starovoitov <ast@...nel.org>,
Martin KaFai Lau <kafai@...com>, Song Liu <songliubraving@...com>,
Yonghong Song <yhs@...com>, Marek Majkowski <marek@...udflare.com>,
Lorenz Bauer <lmb@...udflare.com>, Alan Maguire <alan.maguire@...cle.com>,
Jesper Dangaard Brouer <brouer@...hat.com>,
David Miller <davem@...emloft.net>,
Network Development <netdev@...r.kernel.org>, bpf <bpf@...r.kernel.org>
Subject: Re: bpf indirect calls
On 9/29/23 17:06, Alexei Starovoitov wrote:
> For certain cases like your example above it's relatively easy to add
> such support, but before we do that please describe the full use case
> that you wanted to implement with indirect calls.
I'll likely want some sort of indirect call for nesting schedulers in
sched_ext / ghost. Specifically, when we're running pick_next_task or
any thread event handler (e.g. wakeup), we're picturing having a
dispatch layer that picks which bpf agent to pass that off to, *and* get
a response from the call. Based on that response, we could possibly
call someone else.
In this scenario, there'd be a 'base layer' BPF prog that handles
pick_next_task from the kernel. That base layer would choose which
subprogram to query for its pick_next_task. Depending on whether or not
that subprogram has a task to run, the base layer may or may not want to
run some other BPF program.
I'm not sure if an indirect call is what I'm looking for here, but it
sounds somewhat related. The difference might be that I'd like to call
a function from a different BPF program, if that's possible.
Thanks,
Barret
Powered by blists - more mailing lists