[PATCH 21.11 0/2] Fix UNH CI af_xdp build errors.

Loftus, Ciara ciara.loftus at intel.com
Fri May 6 14:13:53 CEST 2022


> 
> UNH CI is reporting [0] build errors [1] for 21.11 branch on Arch Linux.
> 
> The cause is that libbpf 0.7.0 has been installed and now that af_xdp is
> being compiled with that version there are some deprecated calls being
> used.
> 
> This can be fixed by taking some patches from DPDK main branch to use
> libxdp.
> 
> It will be nice if we can keep it working for users who upgrade
> library versions, but the most important is to not cause regressions
> for users who do not.
> 
> Ciara, please let me know if you see any any issues with these patches
> for 21.11 branch?

Hi Kevin,

The patches look good to me and I ran them through a suite of tests on my platform and all passed.

Thanks,
Ciara


> 
> Reproduced compile failures on F35 with updated library versions without
> the patches and passing when patches applied.
> 
> Compile tested on F35 with new versions:
> Run-time dependency libxdp found: YES 1.2.2
> Run-time dependency libbpf found: YES 0.7.0
> 
> Also compile tested for regressions on F35 with packaged versions:
> Dependency libxdp found: NO found 1.1.0 but need: '>=1.2.2'
> Run-time dependency libxdp found: NO (tried pkgconfig)
> Run-time dependency libbpf found: YES 0.4.0
> 
> thanks,
> Kevin.
> 
> [0] https://dpdkdashboard.iol.unh.edu/results/dashboard/tarballs/19678/
> [1]
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:43:
> ../drivers/net/af_xdp/compat.h: In function ‘create_shared_socket’:
> ../drivers/net/af_xdp/compat.h:25:9: error: ‘xsk_socket__create_shared’ is
> deprecated: libbpf v0.7+: AF_XDP support deprecated and moved to libxdp
> [-Werror=deprecated-declarations]
>    25 |         return xsk_socket__create_shared(xsk_ptr, ifname, queue_id,
> umem, rx,
>       |         ^~~~~~
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:317:5: note: declared here
>   317 | int xsk_socket__create_shared(struct xsk_socket **xsk_ptr,
>       |     ^~~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c: In function ‘af_xdp_rx_zc’:
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:285:25: error: ‘xsk_socket__fd’ is
> deprecated: libbpf v0.7+: AF_XDP support deprecated and moved to libxdp
> [-Werror=deprecated-declarations]
>   285 |                         (void)recvfrom(xsk_socket__fd(rxq->xsk), NULL, 0,
>       |                         ^
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:257:5: note: declared here
>   257 | int xsk_socket__fd(const struct xsk_socket *xsk);
>       |     ^~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c: In function ‘kick_tx’:
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:470:17: error: ‘xsk_socket__fd’ is
> deprecated: libbpf v0.7+: AF_XDP support deprecated and moved to libxdp
> [-Werror=deprecated-declarations]
>   470 |                 while (send(xsk_socket__fd(txq->pair->xsk), NULL,
>       |                 ^~~~~
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:257:5: note: declared here
>   257 | int xsk_socket__fd(const struct xsk_socket *xsk);
>       |     ^~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c: In function ‘eth_stats_get’:
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:819:17: error: ‘xsk_socket__fd’ is
> deprecated: libbpf v0.7+: AF_XDP support deprecated and moved to libxdp
> [-Werror=deprecated-declarations]
>   819 |                 ret = getsockopt(xsk_socket__fd(rxq->xsk), SOL_XDP,
>       |                 ^~~
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:257:5: note: declared here
>   257 | int xsk_socket__fd(const struct xsk_socket *xsk);
>       |     ^~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c: In function ‘eth_dev_close’:
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:897:17: error: ‘xsk_socket__delete’
> is deprecated: libbpf v0.7+: AF_XDP support deprecated and moved to libxdp
> [-Werror=deprecated-declarations]
>   897 |                 xsk_socket__delete(rxq->xsk);
>       |                 ^~~~~~~~~~~~~~~~~~
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:330:6: note: declared here
>   330 | void xsk_socket__delete(struct xsk_socket *xsk);
>       |      ^~~~~~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:901:25: error: ‘xsk_umem__delete’
> is deprecated: libbpf v0.7+: AF_XDP support deprecated and moved to libxdp
> [-Werror=deprecated-declarations]
>   901 |                         (void)xsk_umem__delete(rxq->umem->umem);
>       |                         ^
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:328:5: note: declared here
>   328 | int xsk_umem__delete(struct xsk_umem *umem);
>       |     ^~~~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c: In function
> ‘xdp_umem_configure’:
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:1064:17: error:
> ‘xsk_umem__create’ is deprecated: libbpf v0.7+: AF_XDP support
> deprecated and moved to libxdp [-Werror=deprecated-declarations]
>  1064 |                 ret = xsk_umem__create(&umem->umem, base_addr,
> umem_size,
>       |                 ^~~
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:292:5: note: declared here
>   292 | int xsk_umem__create(struct xsk_umem **umem,
>       |     ^~~~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c: In function
> ‘load_custom_xdp_prog’:
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:1156:9: error:
> ‘bpf_prog_load_deprecated’ is deprecated: libbpf v0.7+: use
> bpf_object__open() and bpf_object__load() instead [-Werror=deprecated-
> declarations]
>  1156 |         ret = bpf_prog_load(prog_path, BPF_PROG_TYPE_XDP, &obj,
> &prog_fd);
>       |         ^~~
> In file included from /usr/include/bpf/xsk.h:20,
>                  from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/libbpf.h:850:16: note: declared here
>   850 | LIBBPF_API int bpf_prog_load_deprecated(const char *file, enum
> bpf_prog_type type,
>       |                ^~~~~~~~~~~~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c: In function
> ‘configure_preferred_busy_poll’:
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:1192:9: error: ‘xsk_socket__fd’ is
> deprecated: libbpf v0.7+: AF_XDP support deprecated and moved to libxdp
> [-Werror=deprecated-declarations]
>  1192 |         int fd = xsk_socket__fd(rxq->xsk);
>       |         ^~~
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:257:5: note: declared here
>   257 | int xsk_socket__fd(const struct xsk_socket *xsk);
>       |     ^~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c: In function ‘xsk_configure’:
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:1291:17: error:
> ‘xsk_socket__create’ is deprecated: libbpf v0.7+: AF_XDP support
> deprecated and moved to libxdp [-Werror=deprecated-declarations]
>  1291 |                 ret = xsk_socket__create(&rxq->xsk, internals->if_name,
>       |                 ^~~
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:310:5: note: declared here
>   310 | int xsk_socket__create(struct xsk_socket **xsk,
>       |     ^~~~~~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:1304:17: error: ‘xsk_socket__fd’ is
> deprecated: libbpf v0.7+: AF_XDP support deprecated and moved to libxdp
> [-Werror=deprecated-declarations]
>  1304 |                 fd = xsk_socket__fd(rxq->xsk);
>       |                 ^~
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:257:5: note: declared here
>   257 | int xsk_socket__fd(const struct xsk_socket *xsk);
>       |     ^~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:1338:9: error: ‘xsk_socket__delete’
> is deprecated: libbpf v0.7+: AF_XDP support deprecated and moved to libxdp
> [-Werror=deprecated-declarations]
>  1338 |         xsk_socket__delete(rxq->xsk);
>       |         ^~~~~~~~~~~~~~~~~~
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:330:6: note: declared here
>   330 | void xsk_socket__delete(struct xsk_socket *xsk);
>       |      ^~~~~~~~~~~~~~~~~~
> ../drivers/net/af_xdp/rte_eth_af_xdp.c: In function ‘eth_rx_queue_setup’:
> ../drivers/net/af_xdp/rte_eth_af_xdp.c:1390:9: error: ‘xsk_socket__fd’ is
> deprecated: libbpf v0.7+: AF_XDP support deprecated and moved to libxdp
> [-Werror=deprecated-declarations]
>  1390 |         rxq->fds[0].fd = xsk_socket__fd(rxq->xsk);
>       |         ^~~
> In file included from ../drivers/net/af_xdp/rte_eth_af_xdp.c:19:
> /usr/include/bpf/xsk.h:257:5: note: declared here
>   257 | int xsk_socket__fd(const struct xsk_socket *xsk);
>       |     ^~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> 
> Ciara Loftus (2):
>   net/af_xdp: use libxdp if available
>   net/af_xdp: make compatible with libbpf >= 0.7.0
> 
>  doc/guides/nics/af_xdp.rst          |  6 ++--
>  drivers/net/af_xdp/compat.h         | 45 ++++++++++++++++++++++++++++-
>  drivers/net/af_xdp/meson.build      | 44 +++++++++++++++++++++++-----
>  drivers/net/af_xdp/rte_eth_af_xdp.c | 10 +++----
>  4 files changed, 87 insertions(+), 18 deletions(-)
> 
> --
> 2.34.1



More information about the stable mailing list