> On May 19, 2021, at 7:13 AM, Pavel Begunkov <asml.silence@xxxxxxxxx> wrote: > > [de]register BPF programs through io_uring_register() with new > IORING_ATTACH_BPF and IORING_DETACH_BPF commands. > > Signed-off-by: Pavel Begunkov <asml.silence@xxxxxxxxx> > --- > fs/io_uring.c | 81 +++++++++++++++++++++++++++++++++++ > include/uapi/linux/io_uring.h | 2 + > 2 files changed, 83 insertions(+) > > diff --git a/fs/io_uring.c b/fs/io_uring.c > index 882b16b5e5eb..b13cbcd5c47b 100644 > --- a/fs/io_uring.c > +++ b/fs/io_uring.c > @@ -78,6 +78,7 @@ > #include <linux/task_work.h> > #include <linux/pagemap.h> > #include <linux/io_uring.h> > +#include <linux/bpf.h> > > #define CREATE_TRACE_POINTS > #include <trace/events/io_uring.h> > @@ -103,6 +104,8 @@ > #define IORING_MAX_RESTRICTIONS (IORING_RESTRICTION_LAST + \ > IORING_REGISTER_LAST + IORING_OP_LAST) > > +#define IORING_MAX_BPF_PROGS 100 Is 100 a realistic number here? > + > #define SQE_VALID_FLAGS (IOSQE_FIXED_FILE|IOSQE_IO_DRAIN|IOSQE_IO_LINK| \ > IOSQE_IO_HARDLINK | IOSQE_ASYNC | \ > IOSQE_BUFFER_SELECT) > @@ -266,6 +269,10 @@ struct io_restriction { > bool registered; > }; > [...]