[dpdk-dev] [PATCH v14 00/23] Add DLB PMD

David Marchand david.marchand at redhat.com
Sun Nov 1 10:16:18 CET 2020


On Sat, Oct 31, 2020 at 11:25 PM McDaniel, Timothy
<timothy.mcdaniel at intel.com> wrote:
> > I still see a build error with clang for unused stuff.
> >
> > There is no point in sending a new series unless the clang build is
> > fixed once and for all.
> >
> Where do I find the clang output? I followed the links in the 0-day email, and from patchwork clicking on the patches with the red failure indicator,
> but none of those seemed to lead me to any clang error output. My build server does not have clang, which presents a problem
> for me.  I've tried to use gcc -Wunused and it failed to catch anything. Is there a way for me to submit a clang job to a dpdk server.

I did not think that installing clang was such a hurdle...

You could check this with per patch compilation in Travis but that
would be a waste of cpu/time.

I guess the reason why gcc does not complain is because those symbols
are marked with inline.

"""
       -Wunused-function
           Warn whenever a static function is declared but not defined
or a non-inline static function is unused.  This warning is enabled by
-Wall.
"""

Please remove "inline" in all .c unless you have numbers showing it
has a beneficial impact.

Looking with the whole patchset applied:
$ git grep -w inline 'drivers/event/dlb/**.c'
drivers/event/dlb/dlb.c:static inline uint16_t
drivers/event/dlb/dlb.c:static inline uint16_t
drivers/event/dlb/dlb.c:static inline uint16_t
drivers/event/dlb/dlb.c:static inline uint16_t
drivers/event/dlb/dlb.c:static inline int
drivers/event/dlb/dlb.c:static inline void
drivers/event/dlb/dlb.c:static inline int
drivers/event/dlb/dlb.c:static inline int
drivers/event/dlb/dlb.c:static inline int
drivers/event/dlb/dlb.c:static inline void
drivers/event/dlb/dlb.c:static inline void
drivers/event/dlb/dlb.c:static inline void
drivers/event/dlb/dlb.c:static inline int
drivers/event/dlb/dlb.c:static inline uint16_t
drivers/event/dlb/dlb.c:static inline uint16_t
drivers/event/dlb/dlb.c:static inline uint16_t
drivers/event/dlb/dlb.c:static inline uint16_t
drivers/event/dlb/dlb.c:static inline uint16_t
drivers/event/dlb/dlb.c:static inline void
drivers/event/dlb/dlb.c:static inline int
drivers/event/dlb/dlb.c:static inline int
drivers/event/dlb/dlb.c:static inline int
drivers/event/dlb/dlb.c:static inline int16_t
drivers/event/dlb/dlb.c:static inline int16_t
drivers/event/dlb/dlb_selftest.c:static inline int
drivers/event/dlb/dlb_selftest.c:static inline int
drivers/event/dlb/dlb_selftest.c:static inline int
drivers/event/dlb/dlb_selftest.c:static inline int
drivers/event/dlb/dlb_selftest.c:static inline int
drivers/event/dlb/dlb_selftest.c:static inline int
drivers/event/dlb/pf/base/dlb_resource.c:static inline void
dlb_flush_csr(struct dlb_hw *hw)


Stopping at 84be92444bb9 ("event/dlb: add dequeue and its burst
variants"), then removing those inline tokens, the problem is
reproduced even with gcc:

FAILED: drivers/a715181@@tmp_rte_event_dlb at sta/event_dlb_dlb.c.o
ccache gcc -Idrivers/a715181@@tmp_rte_event_dlb at sta -Idrivers
-I../../dpdk/drivers -Idrivers/event/dlb
-I../../dpdk/drivers/event/dlb -Ilib/librte_eventdev
-I../../dpdk/lib/librte_eventdev -I. -I../../dpdk/ -Iconfig
-I../../dpdk/config -Ilib/librte_eal/include
-I../../dpdk/lib/librte_eal/include -Ilib/librte_eal/linux/include
-I../../dpdk/lib/librte_eal/linux/include -Ilib/librte_eal/x86/include
-I../../dpdk/lib/librte_eal/x86/include -Ilib/librte_eal/common
-I../../dpdk/lib/librte_eal/common -Ilib/librte_eal
-I../../dpdk/lib/librte_eal -Ilib/librte_kvargs
-I../../dpdk/lib/librte_kvargs
-Ilib/librte_telemetry/../librte_metrics
-I../../dpdk/lib/librte_telemetry/../librte_metrics
-Ilib/librte_telemetry -I../../dpdk/lib/librte_telemetry
-Ilib/librte_ring -I../../dpdk/lib/librte_ring -Ilib/librte_ethdev
-I../../dpdk/lib/librte_ethdev -Ilib/librte_net
-I../../dpdk/lib/librte_net -Ilib/librte_mbuf
-I../../dpdk/lib/librte_mbuf -Ilib/librte_mempool
-I../../dpdk/lib/librte_mempool -Ilib/librte_meter
-I../../dpdk/lib/librte_meter -Ilib/librte_hash
-I../../dpdk/lib/librte_hash -Ilib/librte_rcu
-I../../dpdk/lib/librte_rcu -Ilib/librte_timer
-I../../dpdk/lib/librte_timer -Ilib/librte_cryptodev
-I../../dpdk/lib/librte_cryptodev -Ilib/librte_pci
-I../../dpdk/lib/librte_pci -Idrivers/bus/pci
-I../../dpdk/drivers/bus/pci -I../../dpdk/drivers/bus/pci/linux
-I/home/dmarchan/intel-ipsec-mb/install/include
-fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
-Winvalid-pch -Werror -O2 -g -include rte_config.h -Wextra -Wcast-qual
-Wdeprecated -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 -D_GNU_SOURCE -fPIC -march=native
-DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation
-MD -MQ 'drivers/a715181@@tmp_rte_event_dlb at sta/event_dlb_dlb.c.o' -MF
'drivers/a715181@@tmp_rte_event_dlb at sta/event_dlb_dlb.c.o.d' -o
'drivers/a715181@@tmp_rte_event_dlb at sta/event_dlb_dlb.c.o' -c
../../dpdk/drivers/event/dlb/dlb.c
../../dpdk/drivers/event/dlb/dlb.c:2784:1: error:
‘dlb_event_enqueue_forward_burst_delayed’ defined but not used
[-Werror=unused-function]
 2784 | dlb_event_enqueue_forward_burst_delayed(void *event_port,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../dpdk/drivers/event/dlb/dlb.c:2768:1: error:
‘dlb_event_enqueue_new_burst_delayed’ defined but not used
[-Werror=unused-function]
 2768 | dlb_event_enqueue_new_burst_delayed(void *event_port,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../dpdk/drivers/event/dlb/dlb.c:2753:1: error:
‘dlb_event_enqueue_delayed’ defined but not used
[-Werror=unused-function]
 2753 | dlb_event_enqueue_delayed(void *event_port,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../../dpdk/drivers/event/dlb/dlb.c:2738:1: error:
‘dlb_event_enqueue_burst_delayed’ defined but not used
[-Werror=unused-function]
 2738 | dlb_event_enqueue_burst_delayed(void *event_port,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
ninja: build stopped: subcommand failed.


-- 
David Marchand



More information about the dev mailing list