On Thu, Apr 21, 2022 at 5:07 AM Zhengchao Shao <shaozhengchao@xxxxxxxxxx> wrote: > > When xdp_rxq_info_user program exits unexpectedly, it doesn't detach xdp > prog of device, and other xdp prog can't be attached to the device. So > call init_exit() to detach xdp prog when program exits unexpectedly. > > Signed-off-by: Zhengchao Shao <shaozhengchao@xxxxxxxxxx> > --- > samples/bpf/xdp_rxq_info_user.c | 21 +++++++++++++++------ > 1 file changed, 15 insertions(+), 6 deletions(-) > you are introducing a new compilation warning, please fix it /data/users/andriin/linux/samples/bpf/xdp_rxq_info_user.c: In function ‘options2str’: /data/users/andriin/linux/samples/bpf/xdp_rxq_info_user.c:153:1: warning: control reaches end of non-void function [-Wreturn-type] 153 | } | ^ It also would be good to instead use bpf_link-based XDP attachment that would be auto-detached automatically on process crash (bpf_link_create() FTW). Please consider also converting this sample to skeleton (and then bpf_program__attach_xdp() as high-level alternative to bpf_link_create()). > diff --git a/samples/bpf/xdp_rxq_info_user.c b/samples/bpf/xdp_rxq_info_user.c > index f2d90cba5164..6378007e085a 100644 > --- a/samples/bpf/xdp_rxq_info_user.c > +++ b/samples/bpf/xdp_rxq_info_user.c > @@ -18,7 +18,7 @@ static const char *__doc__ = " XDP RX-queue info extract example\n\n" > #include <getopt.h> > #include <net/if.h> > #include <time.h> [...]