From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
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 <dev@dpdk.org>; Sun, 21 Mar 2021 11:51:06 +0100 (CET)
Received: by mail-io1-f50.google.com with SMTP id x16so10861647iob.1
 for <dev@dpdk.org>; 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 <jerinjacobk@gmail.com>
Date: Sun, 21 Mar 2021 16:20:49 +0530
Message-ID: <CALBAE1PvtLr3+5yovkexO3fUyz=LEjHY_V7z=oJb6QEeKRbAhQ@mail.gmail.com>
To: Timothy McDaniel <timothy.mcdaniel@intel.com>
Cc: dpdk-dev <dev@dpdk.org>, Jerin Jacob <jerinj@marvell.com>, 
 "Van Haaren, Harry" <harry.van.haaren@intel.com>, Ray Kinsella <mdr@ashroe.eu>,
 Neil Horman <nhorman@tuxdriver.com>, Nikhil Rao <nikhil.rao@intel.com>, 
 Erik Gabriel Carrillo <erik.g.carrillo@intel.com>, 
 "Gujjar, Abhinandan S" <abhinandan.gujjar@intel.com>,
 Pavan Nikhilesh <pbhagavatula@marvell.com>, 
 Hemant Agrawal <hemant.agrawal@nxp.com>, 
 =?UTF-8?Q?Mattias_R=C3=B6nnblom?= <mattias.ronnblom@ericsson.com>, 
 Peter Mccarthy <peter.mccarthy@intel.com>
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 <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

On Wed, Mar 17, 2021 at 3:49 AM Timothy McDaniel
<timothy.mcdaniel@intel.com> 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
>