Skip to contentSkip to conversation

lib/librte_mempool meson build error with gcc+debug on FreeBSD13.1-64/RHEL86-64

Bug 1136 [email protected] 1 participant 2 messages Nov 30, 2022 – Dec 1, 2022

lore
Share & tools
lore

[email protected]

author Reviewed-by Morten Brørup
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=1136

            Bug ID: 1136
           Summary: [stable 20.11.7-rc1] lib/librte_mempool meson build
                    error with gcc+debug on FreeBSD13.1-64/RHEL86-64
           Product: DPDK
           Version: 20.11
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: core
          Assignee: [email protected]
          Reporter: [email protected]

Target Milestone: ---

[Git log]
commit 849770ce78a1b1a4871871feafbfcd9c204ea625

Author: Luca Boccassi <[email protected]>
Date:   Mon Nov 28 10:21:36 2022 +0000

version: 20.11.7-rc1

[OS Env]

        RHEL86-64
        Kernel Version: 4.18.0-372.9.1.el8.x86_64
        GCC Version: gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-13)

        FreeBSD13-64
        Kernel Version: 13.1-RELEASE
        GCC Version: gcc (FreeBSD Ports Collection) 10.3.0

        CentOSLinux8Core
        Kernel Version:   4.18.0-193.el8.x86_64
        GCC Version:      gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)

        FreeBSD13.0-RELEASE
        Kernel Version:   13.0-RELEASE
        GCC Version:      gcc (FreeBSD Ports Collection) 10.3.0

[Test setup]
echo "#define RTE_LIBRTE_MEMPOOL_DEBUG 1" >> config/rte_config.h CC=gcc meson --werror -Denable_kmods=True -Dlibdir=lib -Dexamples=all --buildtype=debugoptimized --default-library=static x86_64-native-linuxapp-gcc+debug
ninja -j 10 -C x86_64-native-linuxapp-gcc+debug

[Bad commit]

26cb4c81b552594292f7c744afb904f01700dfe8 is the first bad commit commit 26cb4c81b552594292f7c744afb904f01700dfe8

Author: Morten Brørup <[email protected]>
Date:   Fri Oct 7 13:44:50 2022 +0300

mempool: fix get objects from mempool with cache

[ upstream commit a2833ecc5ea4adcbc3b77e7aeac2a6fd945da6a0 ]

A flush threshold for the mempool cache was introduced in DPDK version 1.3, but rte_mempool_do_generic_get() was not completely updated back then, and some inefficiencies were introduced.

Fix the following in rte_mempool_do_generic_get():

1. The code that initially screens the cache request was not updated with the change in DPDK version 1.3.
The initial screening compared the request length to the cache size, which was correct before, but became irrelevant with the introduction of the flush threshold. E.g. the cache can hold up to flushthresh objects, which is more than its size, so some requests were not served from the cache, even though they could be.
The initial screening has now been corrected to match the initial screening in rte_mempool_do_generic_put(), which verifies that a cache is present, and that the length of the request does not overflow the memory allocated for the cache.

This bug caused a major performance degradation in scenarios where the application burst length is the same as the cache size. In such cases, the objects were not ever fetched from the mempool cache, regardless if they could have been.
This scenario occurs e.g. if an application has configured a mempool with a size matching the application's burst size.

2. The function is a helper for rte_mempool_generic_get(), so it must behave according to the description of that function. Specifically, objects must first be returned from the cache, subsequently from the backend.
After the change in DPDK version 1.3, this was not the behavior when the request was partially satisfied from the cache; instead, the objects from the backend were returned ahead of the objects from the cache. This bug degraded application performance on CPUs with a small L1 cache, which benefit from having the hot objects first in the returned array. (This is probably also the reason why the function returns the objects in reverse order, which it still does.)
Now, all code paths first return objects from the cache, subsequently from the backend.

The function was not behaving as described (by the function using it) and expected by applications using it. This in itself is also a bug.

3. If the cache could not be backfilled, the function would attempt to get all the requested objects from the backend (instead of only the number of requested objects minus the objects available in the backend), and the function would fail if that failed.
Now, the first part of the request is always satisfied from the cache, and if the subsequent backfilling of the cache from the backend fails, only the remaining requested objects are retrieved from the backend.

The function would fail despite there are enough objects in the cache plus the common pool.

4. The code flow for satisfying the request from the cache was slightly inefficient:
The likely code path where the objects are simply served from the cache was treated as unlikely. Now it is treated as likely.

 lib/librte_mempool/rte_mempool.h | 84 +++++++++++++++++++++++++---------------
 1 file changed, 53 insertions(+), 31 deletions(-)

[Error log]
FAILED: lib/librte_mempool.a.p/librte_mempool_rte_mempool_ops.c.o gcc -Ilib/librte_mempool.a.p -Ilib -I../lib -Ilib/librte_mempool -I../lib/librte_mempool -I. -I.. -Iconfig -I../config -Ilib/librte_eal/include -I../lib/librte_eal/include -Ilib/librte_eal/freebsd/include -I../lib/librte_eal/freebsd/include -Ilib/librte_eal/x86/include -I../lib/librte_eal/x86/include -Ilib/librte_eal/common -I../lib/librte_eal/common -Ilib/librte_eal -I../lib/librte_eal -Ilib/librte_kvargs -I../lib/librte_kvargs -Ilib/librte_metrics -I../lib/librte_metrics -Ilib/librte_telemetry -I../lib/librte_telemetry -Ilib/librte_ring -I../lib/librte_ring -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -O2 -g -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-zero-length-bounds -D_GNU_SOURCE -D__BSD_VISIBLE -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -MD -MQ lib/librte_mempool.a.p/librte_mempool_rte_mempool_ops.c.o -MF lib/librte_mempool.a.p/librte_mempool_rte_mempool_ops.c.o.d -o lib/librte_mempool.a.p/librte_mempool_rte_mempool_ops.c.o -c ../lib/librte_mempool/rte_mempool_ops.c
In file included from ../lib/librte_mempool/rte_mempool_ops.c:10:
../lib/librte_mempool/rte_mempool.h: In function '__mempool_generic_get':
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_objs'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_bulk'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_objs'; did you mean 'get_success_objs'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_bulk'; did you mean 'get_success_bulk'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
[87/2051] Compiling C object lib/librte_mempool.a.p/librte_mempool_mempool_trace_points.c.o
FAILED: lib/librte_mempool.a.p/librte_mempool_mempool_trace_points.c.o gcc -Ilib/librte_mempool.a.p -Ilib -I../lib -Ilib/librte_mempool -I../lib/librte_mempool -I. -I.. -Iconfig -I../config -Ilib/librte_eal/include -I../lib/librte_eal/include -Ilib/librte_eal/freebsd/include -I../lib/librte_eal/freebsd/include -Ilib/librte_eal/x86/include -I../lib/librte_eal/x86/include -Ilib/librte_eal/common -I../lib/librte_eal/common -Ilib/librte_eal -I../lib/librte_eal -Ilib/librte_kvargs -I../lib/librte_kvargs -Ilib/librte_metrics -I../lib/librte_metrics -Ilib/librte_telemetry -I../lib/librte_telemetry -Ilib/librte_ring -I../lib/librte_ring -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -O2 -g -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-zero-length-bounds -D_GNU_SOURCE -D__BSD_VISIBLE -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -MD -MQ lib/librte_mempool.a.p/librte_mempool_mempool_trace_points.c.o -MF lib/librte_mempool.a.p/librte_mempool_mempool_trace_points.c.o.d -o lib/librte_mempool.a.p/librte_mempool_mempool_trace_points.c.o -c ../lib/librte_mempool/mempool_trace_points.c
In file included from ../lib/librte_mempool/rte_mempool_trace.h:18,
from ../lib/librte_mempool/mempool_trace_points.c:7:
../lib/librte_mempool/rte_mempool.h: In function '__mempool_generic_get':
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_objs'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_bulk'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_objs'; did you mean 'get_success_objs'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_bulk'; did you mean 'get_success_bulk'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
[88/2051] Compiling C object lib/librte_mempool.a.p/librte_mempool_rte_mempool.c.o
FAILED: lib/librte_mempool.a.p/librte_mempool_rte_mempool.c.o
gcc -Ilib/librte_mempool.a.p -Ilib -I../lib -Ilib/librte_mempool -I../lib/librte_mempool -I. -I.. -Iconfig -I../config -Ilib/librte_eal/include -I../lib/librte_eal/include -Ilib/librte_eal/freebsd/include -I../lib/librte_eal/freebsd/include -Ilib/librte_eal/x86/include -I../lib/librte_eal/x86/include -Ilib/librte_eal/common -I../lib/librte_eal/common -Ilib/librte_eal -I../lib/librte_eal -Ilib/librte_kvargs -I../lib/librte_kvargs -Ilib/librte_metrics -I../lib/librte_metrics -Ilib/librte_telemetry -I../lib/librte_telemetry -Ilib/librte_ring -I../lib/librte_ring -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -O2 -g -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-zero-length-bounds -D_GNU_SOURCE -D__BSD_VISIBLE -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -MD -MQ lib/librte_mempool.a.p/librte_mempool_rte_mempool.c.o -MF lib/librte_mempool.a.p/librte_mempool_rte_mempool.c.o.d -o lib/librte_mempool.a.p/librte_mempool_rte_mempool.c.o -c ../lib/librte_mempool/rte_mempool.c
In file included from ../lib/librte_mempool/rte_mempool.c:35:
../lib/librte_mempool/rte_mempool.h: In function '__mempool_generic_get':
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_objs'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_bulk'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_objs'; did you mean 'get_success_objs'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_bulk'; did you mean 'get_success_bulk'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
[89/2051] Compiling C object lib/librte_mbuf.a.p/librte_mbuf_rte_mbuf.c.o
FAILED: lib/librte_mbuf.a.p/librte_mbuf_rte_mbuf.c.o
gcc -Ilib/librte_mbuf.a.p -Ilib -I../lib -Ilib/librte_mbuf -I../lib/librte_mbuf -I. -I.. -Iconfig -I../config -Ilib/librte_eal/include -I../lib/librte_eal/include -Ilib/librte_eal/freebsd/include -I../lib/librte_eal/freebsd/include -Ilib/librte_eal/x86/include -I../lib/librte_eal/x86/include -Ilib/librte_eal/common -I../lib/librte_eal/common -Ilib/librte_eal -I../lib/librte_eal -Ilib/librte_kvargs -I../lib/librte_kvargs -Ilib/librte_metrics -I../lib/librte_metrics -Ilib/librte_telemetry -I../lib/librte_telemetry -Ilib/librte_mempool -I../lib/librte_mempool -Ilib/librte_ring -I../lib/librte_ring -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -O2 -g -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-zero-length-bounds -D_GNU_SOURCE -D__BSD_VISIBLE -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -MD -MQ lib/librte_mbuf.a.p/librte_mbuf_rte_mbuf.c.o -MF lib/librte_mbuf.a.p/librte_mbuf_rte_mbuf.c.o.d -o lib/librte_mbuf.a.p/librte_mbuf_rte_mbuf.c.o -c ../lib/librte_mbuf/rte_mbuf.c In file included from ../lib/librte_mbuf/rte_mbuf.c:26:
../lib/librte_mempool/rte_mempool.h: In function '__mempool_generic_get':
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_objs'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_bulk'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_objs'; did you mean 'get_success_objs'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_bulk'; did you mean 'get_success_bulk'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
[90/2051] Generating lib/ring.sym_chk with a custom command (wrapped by meson to capture output)
[91/2051] Compiling C object lib/librte_mempool.a.p/librte_mempool_rte_mempool_ops_default.c.o
FAILED: lib/librte_mempool.a.p/librte_mempool_rte_mempool_ops_default.c.o gcc -Ilib/librte_mempool.a.p -Ilib -I../lib -Ilib/librte_mempool -I../lib/librte_mempool -I. -I.. -Iconfig -I../config -Ilib/librte_eal/include -I../lib/librte_eal/include -Ilib/librte_eal/freebsd/include -I../lib/librte_eal/freebsd/include -Ilib/librte_eal/x86/include -I../lib/librte_eal/x86/include -Ilib/librte_eal/common -I../lib/librte_eal/common -Ilib/librte_eal -I../lib/librte_eal -Ilib/librte_kvargs -I../lib/librte_kvargs -Ilib/librte_metrics -I../lib/librte_metrics -Ilib/librte_telemetry -I../lib/librte_telemetry -Ilib/librte_ring -I../lib/librte_ring -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -O2 -g -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-zero-length-bounds -D_GNU_SOURCE -D__BSD_VISIBLE -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -MD -MQ lib/librte_mempool.a.p/librte_mempool_rte_mempool_ops_default.c.o -MF lib/librte_mempool.a.p/librte_mempool_rte_mempool_ops_default.c.o.d -o lib/librte_mempool.a.p/librte_mempool_rte_mempool_ops_default.c.o -c ../lib/librte_mempool/rte_mempool_ops_default.c
In file included from ../lib/librte_mempool/rte_mempool_ops_default.c:7:
../lib/librte_mempool/rte_mempool.h: In function '__mempool_generic_get':
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_objs'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_bulk'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_objs'; did you mean 'get_success_objs'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_bulk'; did you mean 'get_success_bulk'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
[92/2051] Compiling C object lib/librte_mbuf.a.p/librte_mbuf_rte_mbuf_ptype.c.o
FAILED: lib/librte_mbuf.a.p/librte_mbuf_rte_mbuf_ptype.c.o
gcc -Ilib/librte_mbuf.a.p -Ilib -I../lib -Ilib/librte_mbuf -I../lib/librte_mbuf -I. -I.. -Iconfig -I../config -Ilib/librte_eal/include -I../lib/librte_eal/include -Ilib/librte_eal/freebsd/include -I../lib/librte_eal/freebsd/include -Ilib/librte_eal/x86/include -I../lib/librte_eal/x86/include -Ilib/librte_eal/common -I../lib/librte_eal/common -Ilib/librte_eal -I../lib/librte_eal -Ilib/librte_kvargs -I../lib/librte_kvargs -Ilib/librte_metrics -I../lib/librte_metrics -Ilib/librte_telemetry -I../lib/librte_telemetry -Ilib/librte_mempool -I../lib/librte_mempool -Ilib/librte_ring -I../lib/librte_ring -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -O2 -g -include rte_config.h -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-zero-length-bounds -D_GNU_SOURCE -D__BSD_VISIBLE -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -MD -MQ lib/librte_mbuf.a.p/librte_mbuf_rte_mbuf_ptype.c.o -MF lib/librte_mbuf.a.p/librte_mbuf_rte_mbuf_ptype.c.o.d -o lib/librte_mbuf.a.p/librte_mbuf_rte_mbuf_ptype.c.o -c ../lib/librte_mbuf/rte_mbuf_ptype.c
In file included from ../lib/librte_mbuf/rte_mbuf.h:38,

                 from ../lib/librte_mbuf/rte_mbuf_ptype.c:7:

../lib/librte_mempool/rte_mempool.h: In function '__mempool_generic_get':
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_objs'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1432:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_bulk_bulk'; did you mean 'get_success_bulk'?

 1432 |   __MEMPOOL_STAT_ADD(mp, get_success_bulk, 1);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_objs'; did you mean 'get_success_objs'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:277:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
277 | mp->stats[__lcore_id].name##_objs += n; \
| ^~~~
../lib/librte_mempool/rte_mempool.h:1433:26: error: 'struct rte_mempool_debug_stats' has no member named 'get_success_objs_bulk'; did you mean 'get_success_bulk'?

 1433 |   __MEMPOOL_STAT_ADD(mp, get_success_objs, n);
      |                          ^~~~~~~~~~~~~~~~

../lib/librte_mempool/rte_mempool.h:278:26: note: in definition of macro '__MEMPOOL_STAT_ADD'
278 | mp->stats[__lcore_id].name##_bulk += 1; \
| ^~~~
[93/2051] Generating symbol file lib/librte_telemetry.so.21.0.p/librte_telemetry.so.21.0.symbols [94/2051] Compiling C object lib/librte_rcu.a.p/librte_rcu_rte_rcu_qsbr.c.o [95/2051] Generating lib/eal.sym_chk with a custom command (wrapped by meson to capture output)
ninja: build stopped

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.
#1 lore raw

[Bug 1136] [stable 20.11.7-rc1] lib/librte_mempool meson build error with gcc+debug on FreeBSD13.1-64/RHEL86-64/CentOSLinux8.2Core

https://bugs.dpdk.org/show_bug.cgi?id=1136

Luca Boccassi ([email protected]) changed:

What |Removed |Added
----------------------------------------------------------------------------

                 CC|                            |[email protected]
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |FIXED

--- Comment #1 from Luca Boccassi ([email protected]) --- The offending patch has been reverted on request of the author, closing

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.