DPDK patches and discussions
 help / color / mirror / Atom feed
From: Shibin Koikkara Reeny <shibin.koikkara.reeny@intel.com>
To: dev@dpdk.org, ciara.loftus@intel.com, bruce.richardson@intel.com
Cc: qi.z.zhang@intel.com, john.mcnamara@intel.com,
	Shibin Koikkara Reeny <shibin.koikkara.reeny@intel.com>
Subject: [PATCH v3] net/af_xdp: fix missing UMEM feature
Date: Thu, 28 Sep 2023 09:25:53 +0000	[thread overview]
Message-ID: <20230928092553.339452-1-shibin.koikkara.reeny@intel.com> (raw)
In-Reply-To: <20230922093103.58541-1-shibin.koikkara.reeny@intel.com>

Shared UMEM feature is missing in the af_xdp driver build
after the commit 33d66940e9ba ("build: use C11 standard").

Runtime Error log while using Shared UMEM feature:
rte_pmd_af_xdp_probe(): Initializing pmd_af_xdp for net_af_xdp0
init_internals(): Shared UMEM feature not available. Check kernel
and libbpf version
rte_pmd_af_xdp_probe(): Failed to init internals
vdev_probe(): failed to initialize net_af_xdp0 device
EAL: Bus (vdev) probe failed.

Reason for the missing UMEM feature is because the C11 standard
doesn't include the GNU compiler extensions typeof and asm, used
by the libbpf and libxdp header files.

Meson error log:
 In file included from
dpdk/build/meson-private/tmpf74nkhqd/testfile.c:5:
/usr/local/include/bpf/xsk.h: In function 'xsk_prod_nb_free':
/usr/local/include/bpf/xsk.h:165:26: error: expected ';' before '___p1'
  165 |         r->cached_cons = libbpf_smp_load_acquire(r->consumer);
      |                          ^~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/bpf/xsk.h:165:26: error: 'asm' undeclared (first use
in this function)
...
/usr/local/include/bpf/xsk.h:199:9: error: unknown type name 'typeof'
  199 |         libbpf_smp_store_release(prod->producer, *prod->producer
      + nb);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~

Fix is to provide alternative keywords by using Option Controlling C
Dialect [1].

Fixes: 33d66940e9ba ("build: use C11 standard")

[1] https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html

v3: Used alternative keywords fix.
v2: Added original commit causing the issue.
Signed-off-by: Shibin Koikkara Reeny <shibin.koikkara.reeny@intel.com>
---
 drivers/net/af_xdp/meson.build | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/net/af_xdp/meson.build b/drivers/net/af_xdp/meson.build
index 9a8dbb4d49..9f33e57fa2 100644
--- a/drivers/net/af_xdp/meson.build
+++ b/drivers/net/af_xdp/meson.build
@@ -48,6 +48,14 @@ endif
 
 if build
   xsk_check_prefix = '''
+#ifndef typeof
+#define typeof __typeof__
+#endif
+
+#ifndef asm
+#define asm __asm__
+#endif
+
 #ifdef RTE_NET_AF_XDP_LIBXDP
 #include <xdp/xsk.h>
 #else
@@ -56,17 +64,17 @@ if build
   '''
 
   if cc.has_function('xsk_socket__create_shared', prefix : xsk_check_prefix,
-                     dependencies : ext_deps)
+                     dependencies : ext_deps, args: cflags)
       cflags += ['-DRTE_NET_AF_XDP_SHARED_UMEM']
   endif
   if cc.has_function('bpf_object__next_program',
                      prefix : '#include <bpf/libbpf.h>',
-                     dependencies : bpf_dep)
+                     dependencies : bpf_dep, args: cflags)
       cflags += ['-DRTE_NET_AF_XDP_LIBBPF_OBJ_OPEN']
   endif
   if cc.has_function('bpf_xdp_attach',
                      prefix : '#include <bpf/libbpf.h>',
-                     dependencies : bpf_dep)
+                     dependencies : bpf_dep, args: cflags)
       cflags += ['-DRTE_NET_AF_XDP_LIBBPF_XDP_ATTACH']
   endif
 endif
-- 
2.25.1


  reply	other threads:[~2023-09-28  9:26 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-21 10:29 [PATCH] net/af_xdp: pass cflags to appropriate build components Shibin Koikkara Reeny
2023-09-21 10:43 ` Bruce Richardson
2023-09-21 10:47 ` Bruce Richardson
2023-09-22  9:31 ` [PATCH v2] net/af_xdp: fix cflags to appropriate UMEM feature Shibin Koikkara Reeny
2023-09-28  9:25   ` Shibin Koikkara Reeny [this message]
2023-09-28  9:32     ` [PATCH v3] net/af_xdp: fix missing " Bruce Richardson
2023-09-29 11:45       ` Ferruh Yigit
2023-10-02 12:48     ` [PATCH v4] " Shibin Koikkara Reeny
2023-10-02 13:01       ` Bruce Richardson
2023-10-02 13:15         ` Ferruh Yigit
2023-10-02 13:23           ` Bruce Richardson
2023-10-03  9:36             ` Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230928092553.339452-1-shibin.koikkara.reeny@intel.com \
    --to=shibin.koikkara.reeny@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=ciara.loftus@intel.com \
    --cc=dev@dpdk.org \
    --cc=john.mcnamara@intel.com \
    --cc=qi.z.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).