On Mon, Apr 29, 2024 at 2:36 PM Kui-Feng Lee <thinker.li@xxxxxxxxx> wrote: > > Add epoll support to bpf struct_ops links to trigger EPOLLHUP event upon > detachment. > > Signed-off-by: Kui-Feng Lee <thinker.li@xxxxxxxxx> > --- > include/linux/bpf.h | 2 ++ > kernel/bpf/bpf_struct_ops.c | 14 ++++++++++++++ > kernel/bpf/syscall.c | 15 +++++++++++++++ > 3 files changed, 31 insertions(+) > > diff --git a/include/linux/bpf.h b/include/linux/bpf.h > index eeeed4b1bd32..a4550b927352 100644 > --- a/include/linux/bpf.h > +++ b/include/linux/bpf.h > @@ -1574,6 +1574,7 @@ struct bpf_link { > const struct bpf_link_ops *ops; > struct bpf_prog *prog; > struct work_struct work; > + wait_queue_head_t wait_hup; let's keep it struct_ops-specific, there is no need to pay for this for all existing BPF link types. We can always generalize later, if necessary. pw-bot: cr > }; > > struct bpf_link_ops { > @@ -1587,6 +1588,7 @@ struct bpf_link_ops { > struct bpf_link_info *info); > int (*update_map)(struct bpf_link *link, struct bpf_map *new_map, > struct bpf_map *old_map); > + __poll_t (*poll)(struct file *file, struct poll_table_struct *pts); > }; > > struct bpf_tramp_link { [...]