From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CCF1AA034F; Sun, 21 Mar 2021 11:51:08 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5582E40042; Sun, 21 Mar 2021 11:51:08 +0100 (CET) Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) by mails.dpdk.org (Postfix) with ESMTP id EBED540041 for ; Sun, 21 Mar 2021 11:51:06 +0100 (CET) Received: by mail-io1-f50.google.com with SMTP id x16so10861647iob.1 for ; Sun, 21 Mar 2021 03:51:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=cFir6e0E4xR0agKMhjxgXzZ3oP9H13dQLTu951vIQTk=; b=ZNKq//fe4slPw+g7sK6h1Wh6/LiecyHdZUVHrjNGok9SPUnh0h1+juWevgc+p/j1l9 35EhQBPejiSO5UjtMsfleDZ8nb+3+Gugc2pinMOO0JDYZapjAwT6c21B8y1qZqKWFwj4 LrDCBBiZdp5p2UsAZT+SLFQZDoKa0G3HaP79qO2WflSUKuZOE2zAcWpxYTGocdSoO939 9+JJMs1YjeRzzRDIm5m5mNaAYk7wbAYZGS0jkYsemOUXkGcauSMqUMOie8ziYcpdWKRF OzP+KsGWG7PoWTadsyhy2Qqh7uPU0eSpY165jv4rF3LZRm2gBNP0qDNoW13YkXX8Eqnc jvdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=cFir6e0E4xR0agKMhjxgXzZ3oP9H13dQLTu951vIQTk=; b=Kucql1/Z43dpnDSDV5fP0d0tVdDaFgl7fT60xuVZrDWNJKdKevPtJtT0GSTqZ/QTx0 78vSO3n1GnP/HGD2qihXFWXKccmdCzYwNtIGY0QYSgz81SdIfxbYlwXFlcwji/fmDsRN LpdE9V/tHuM0h8tAdMsMIDDrdA/14A0YUM17qO0tVL4xJybV9+jozyeGdS6Gyp4lKUS4 jjr61DwI7zmovzHkB1yNttGpJgKiEpXsC3yeZptrrBZMlozPkqrwvFaUA/Rd7X9owLJj bE0N/cJHz+WKBfquuc7TYc2Tqcf/XC2rIg7HBDQGWb17/I5u9OL3GE5fPQmko+gvdTgf erwQ== X-Gm-Message-State: AOAM530zJQWTsoArrA+rIu8yM5wK4TZegf4w7xES4AS6EjyF76aMErsd Z/L6mihqaRPo+DltQdEFKBq3HWewquWVVNnAYmk= X-Google-Smtp-Source: ABdhPJyr/EDIjlNOcQV8LmuMMmDb26ajhFJb8QQ85CEjE7/Nmw1BIWc2ryuwptjPZegxVkwVwdLo+D5ERrjBDCdtEVA= X-Received: by 2002:a02:7f0e:: with SMTP id r14mr7278822jac.112.1616323866240; Sun, 21 Mar 2021 03:51:06 -0700 (PDT) MIME-Version: 1.0 References: <20210316221857.2254-1-timothy.mcdaniel@intel.com> In-Reply-To: <20210316221857.2254-1-timothy.mcdaniel@intel.com> From: Jerin Jacob Date: Sun, 21 Mar 2021 16:20:49 +0530 Message-ID: To: Timothy McDaniel Cc: dpdk-dev , Jerin Jacob , "Van Haaren, Harry" , Ray Kinsella , Neil Horman , Nikhil Rao , Erik Gabriel Carrillo , "Gujjar, Abhinandan S" , Pavan Nikhilesh , Hemant Agrawal , =?UTF-8?Q?Mattias_R=C3=B6nnblom?= , Peter Mccarthy Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [PATCH 00/25] Add Support for DLB v2.5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Wed, Mar 17, 2021 at 3:49 AM Timothy McDaniel wrote: > > This patch series adds support for DLB v2.5 to > the current DLB V2.0 PMD. The resulting PMD supports > both hardware versions. > > The main differences between the DLB v2.5 and v2.0 hardware > are: > - Number of queues/ports > - DLB v2.5 uses a combined credit pool, whereas DLB v2.0 > splits credits into 2 pools, a directed credit pool and a > load balanced credit pool. > - Different register maps, with different bit names and offsets > > In order to support both hardware versions with the same PMD, > and avoid code duplication, the file dlb2_resource.c required a > complete rewrite. This required some creative staging of the changes > in order to keep the individual patches relatively small, while > also meeting the requirement that all individual patches in the set > compile cleanly. > > To accomplish this, a few temporary files are used: > > dlb2_hw_types_new.h > dlb2_resources_new.h > dlb2_resources_new.c > > As dlb2_resources_new.c is populated with the new combined v2.0/v2.5 > low level logic, the corresponding old code is removed from > dlb2_resource.c, thus allowing both the original and new code to > continue to compile and link cleanly. Once all of the code has been > migrated to the new model, the old versions of the files are removed, > and the new versions are renamed, effectively replacing the old original > files. # Please make sure each patch compiles. It fails on the second patch[1] now with clang. # Please check each patch with ./devtools/test-meson-builds.sh. # Also, update the release notes for 2.5 HW support. [1] FAILED: drivers/libtmp_rte_event_dlb2.a.p/event_dlb2_pf_base_dlb2_resource_new.c.o ccache clang -Idrivers/libtmp_rte_event_dlb2.a.p -Idrivers -I../drivers -Idrivers/event/dlb2 -I../drivers/event/dlb2 -Ilib/librte_eventdev -I../lib/librte_eventdev -I. -I.. -Iconfig -I../config -Ilib/librte_eal/include -I../lib/librte_eal/i nclude -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 -Il ib/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 - Ilib/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 -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-missing-field-initializers -D_GNU_SOURCE -fPIC -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -MD -MQ drivers/libtmp_rte_event_dlb2.a.p/event_dlb2_pf_base_dlb2_resource _new.c.o -MF drivers/libtmp_rte_event_dlb2.a.p/event_dlb2_pf_base_dlb2_resource_new.c.o.d -o drivers/libtmp_rte_event_dlb2.a.p/event_dlb2_pf_base_dlb2_resource_new.c.o -c ../drivers/event/dlb2/pf/base/dlb2_resource_new.c ../drivers/event/dlb2/pf/base/dlb2_resource_new.c:44:20: error: unused function 'dlb2_flush_csr' [-Werror,-Wunused-function] static inline void dlb2_flush_csr(struct dlb2_hw *hw) ^ 1 error generated. [1976/2578] Compiling C ob > > As you review the code, you can ignore the code deletions from > dlb2_resource.c, as that file continues to shrink as the new > corresponding logic is added to dlb2_resource_new.c. > > Timothy McDaniel (25): > event/dlb2: add dlb v2.5 probe > event/dlb2: add DLB v2.5 probe-time hardware init > event/dlb2: add DLB v2.5 support to get_resources > event/dlb2: add DLB v2.5 support to create sched domain > event/dlb2: add DLB v2.5 support to domain reset > event/dlb2: add DLB V2.5 support to create ldb queue > event/dlb2: add DLB v2.5 support to create ldb port > event/dlb2: add DLB v2.5 support to create dir port > event/dlb2: add DLB v2.5 support to create dir queue > event/dlb2: add DLB v2.5 support to map qid > event/dlb2: add DLB v2.5 support to unmap queue > event/dlb2: add DLB v2.5 support to start domain > event/dlb2: add DLB v2.5 credit scheme > event/dlb2: Add DLB v2.5 support to get queue depth functions > event/dlb2: add DLB v2.5 finish map/unmap interfaces > event/dlb2: add DLB v2.5 sparse cq mode > event/dlb2: add DLB v2.5 support to sequence number management > event/dlb2: consolidate dlb resource header files into one file > event/dlb2: delete old dlb2_resource.c file > event/dlb2: move dlb_resource_new.c to dlb_resource.c > event/dlb2: remove temporary file, dlb_hw_types.h > event/dlb2: move dlb2_hw_type_new.h to dlb2_hw_types.h > event/dlb2: delete old register map file, dlb2_regs.h > event/dlb2: rename dlb2_regs_new.h to dlb2_regs.h > event/dlb2: update xstats for DLB v2.5 > > drivers/event/dlb2/dlb2.c | 430 +- > drivers/event/dlb2/dlb2_priv.h | 158 +- > drivers/event/dlb2/dlb2_user.h | 27 +- > drivers/event/dlb2/dlb2_xstats.c | 70 +- > drivers/event/dlb2/pf/base/dlb2_hw_types.h | 102 +- > drivers/event/dlb2/pf/base/dlb2_mbox.h | 1 - > drivers/event/dlb2/pf/base/dlb2_osdep.h | 3 + > drivers/event/dlb2/pf/base/dlb2_regs.h | 6063 +++++++++++++------- > drivers/event/dlb2/pf/base/dlb2_resource.c | 3277 ++++++----- > drivers/event/dlb2/pf/base/dlb2_resource.h | 28 +- > drivers/event/dlb2/pf/dlb2_main.c | 37 +- > drivers/event/dlb2/pf/dlb2_pf.c | 62 +- > 12 files changed, 6366 insertions(+), 3892 deletions(-) > > -- > 2.23.0 >