> -----Original Message----- > From: Jerin Jacob <jerinjac...@gmail.com> > Sent: Saturday, October 31, 2020 7:50 AM > To: McDaniel, Timothy <timothy.mcdan...@intel.com> > Cc: dpdk-dev <dev@dpdk.org>; Carrillo, Erik G <erik.g.carri...@intel.com>; > Eads, Gage <gage.e...@intel.com>; Van Haaren, Harry > <harry.van.haa...@intel.com>; Jerin Jacob <jer...@marvell.com>; Thomas > Monjalon <tho...@monjalon.net> > Subject: Re: [dpdk-dev] [PATCH v13 00/23] Add DLB PMD > > On Sat, Oct 31, 2020 at 7:41 AM Timothy McDaniel > <timothy.mcdan...@intel.com> wrote: > > > > The following patch series adds support for a new eventdev PMD. The DLB > > PMD adds support for the Intel Dynamic Load Balancer (DLB) hardware. > > The DLB is a PCIe device that provides load-balanced, prioritized > > scheduling of core-to-core communication. The device consists of > > queues and arbiters that connect producer and consumer cores, and > > implements load-balanced queueing features including: > > - Lock-free multi-producer/multi-consumer operation. > > - Multiple priority levels for varying traffic types. > > - 'Direct' traffic (i.e. multi-producer/single-consumer) > > - Simple unordered load-balanced distribution. > > - Atomic lock-free load balancing across multiple consumers. > > - Queue element reordering feature allowing ordered load-balanced > > distribution. > > > > The DLB hardware supports both load balanced and directed ports and > > queues. Unlike other eventdev devices already in the repo, not all > > DLB ports and queues are equally capable. In particular, directed > > ports are limited to a single link, and must be connected to a directed > > queue. > > Additionally, even though LDB ports may link multiple queues, the > > number of queues that may be linked is limited by hardware. Another > > difference is that DLB does not have a straightforward way of carrying > > the flow_id in the queue elements (QE) that the hardware operates on. > > > > While reviewing the code, please be aware that this PMD has full > > control over the DLB hardware. Intel will be extending the DLB PMD > > in the future (not as part of this first series) with a mode that we > > refer to as the bifurcated PMD. The bifurcated PMD communicates with a > > kernel driver to configure the device, ports, and queues, and memory > > maps device MMIO so datapath operations occur purely in user-space. > > > > The framework to support both the PF PMD and bifurcated PMD exists in > > this patchset, and is why the iface.[ch] layer is present. > > > > Major changes in V13 > > ==================== > > - removed now unused functions dlb_umwait and dlb_umonitor > > build error with clang at "event/dlb: add enqueue and its burst > variants" patch. Please make sure each patch builds to avoid delay in > merging the patch. > Also, address the David comment on the doc for the next version. > > > FAILED: drivers/libtmp_rte_event_dlb.a.p/event_dlb_dlb.c.o > ccache clang -Idrivers/libtmp_rte_event_dlb.a.p -Idrivers -I../drivers > -Idrivers/event/dlb -I../drivers/event/dlb -Ilib/librte_eventdev > -I../lib/librte_eventdev -I. -I.. -Iconfig -I../config > -Ilib/librte_eal/include -I../lib/librte_eal/incl > ude -Ilib/librte_eal/linux/include -I../lib/librte_eal/linux/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 -Ilib/librte_ethdev -I../lib/librte_ethdev > -Ilib/librte_net -I../lib/librte_net -Ilib/ > librte_mbuf -I../lib/librte_mbuf -Ilib/librte_mempool > -I../lib/librte_mempool -Ilib/librte_meter -I../lib/librte_meter > -Ilib/librte_hash -I../lib/librte_hash -Ilib/librte_rcu > -I../lib/librte_rcu -Ilib/librte_timer -I../lib/librte_timer -Ili > b/librte_cryptodev -I../lib/librte_cryptodev -Ilib/librte_pci > -I../lib/librte_pci -Idrivers/bus/pci -I../drivers/bus/pci > -I../drivers/bus/pci/linux -Xclang -fcolor-diagnostics -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 -Wwr > ite-strings -Wno-address-of-packed-member > -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=native > -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -MD -MQ > drivers/libtmp_rte_event_dlb.a.p/event_dlb_dlb.c.o -MF > drivers/libtmp_rte_even > t_dlb.a.p/event_dlb_dlb.c.o.d -o > drivers/libtmp_rte_event_dlb.a.p/event_dlb_dlb.c.o -c > ../drivers/event/dlb/dlb.c > ../drivers/event/dlb/dlb.c:2777:1: error: unused function > 'dlb_event_enqueue_delayed' [-Werror,-Wunused-function] > dlb_event_enqueue_delayed(void *event_port, > ^ > ../drivers/event/dlb/dlb.c:2762:1: error: unused function > 'dlb_event_enqueue_burst_delayed' [-Werror,-Wunused-function] > dlb_event_enqueue_burst_delayed(void *event_port, > ^ > ../drivers/event/dlb/dlb.c:2792:1: error: unused function > 'dlb_event_enqueue_new_burst_delayed' [-Werror,-Wunused-function] > dlb_event_enqueue_new_burst_delayed(void *event_port, > ^ > ../drivers/event/dlb/dlb.c:2808:1: error: unused function > 'dlb_event_enqueue_forward_burst_delayed' [-Werror,-Wunused-function] > dlb_event_enqueue_forward_burst_delayed(void *event_port, > ^ > ../drivers/event/dlb/dlb.c:2605:1: error: unused function > 'dlb_construct_token_pop_qe' [-Werror,-Wunused-function] > dlb_construct_token_pop_qe(struct dlb_port *qm_port, int idx) > ^ > ../drivers/event/dlb/dlb.c:2653:1: error: unused function > 'dlb_consume_qe_immediate' [-Werror,-Wunused-function] > dlb_consume_qe_immediate(struct dlb_port *qm_port, int num) > ^ > 6 errors generated. >
Took care of these in V14. Hoping it’s the last of the errors.