[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM_iQpU5XSgOjdkKbj01p+-QZ5vUof9eZTWR8c0O_cHkHXVkwg@mail.gmail.com>
Date: Thu, 28 Jan 2021 21:57:59 -0800
From: Cong Wang <xiyou.wangcong@...il.com>
To: Alexei Starovoitov <alexei.starovoitov@...il.com>
Cc: Daniel Borkmann <daniel@...earbox.net>,
Linux Kernel Network Developers <netdev@...r.kernel.org>,
bpf <bpf@...r.kernel.org>, Jamal Hadi Salim <jhs@...atatu.com>,
Andrii Nakryiko <andrii@...nel.org>,
Alexei Starovoitov <ast@...nel.org>,
Martin KaFai Lau <kafai@...com>,
Cong Wang <cong.wang@...edance.com>,
Andrii Nakryiko <andrii.nakryiko@...il.com>,
Dongdong Wang <wangdongdong.6@...edance.com>
Subject: Re: [Patch bpf-next v5 1/3] bpf: introduce timeout hash map
On Thu, Jan 28, 2021 at 6:54 PM Alexei Starovoitov
<alexei.starovoitov@...il.com> wrote:
>
> I meant it would look like:
>
> noinline per_elem_callback(map, key, value, ...)
> {
> if (value->foo > ...)
> bpf_delete_map_elem(map, key);
> }
>
> noinline timer_callback(timer, ctx)
> {
> map = ctx->map;
> bpf_for_each_map_elem(map, per_elem_callback, ...);
> }
>
> int main_bpf_prog(skb)
> {
> bpf_timer_setup(my_timer, timer_callback, ...);
> bpf_mod_timer(my_timer, HZ);
> }
>
> The bpf_for_each_map_elem() work is already in progress. Expect patches to hit
> mailing list soon.
We don't want a per-element timer, we want a per-map timer but that
requires a way to iterate the whole map. If you or other can provide
bpf_for_each_map_elem(), we can certainly build our timeout map
on top of it.
> If you can work on patches for bpf_timer_*() it would be awesome.
Yeah, I will work on this, not only for timeout map, but also possibly for
the ebpf qdisc I plan to add soon.
Thanks.
Powered by blists - more mailing lists