From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E4FCFA04D8; Mon, 21 Sep 2020 19:12:00 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 25BCA1C1D4; Mon, 21 Sep 2020 19:12:00 +0200 (CEST) Received: from mail-io1-f67.google.com (mail-io1-f67.google.com [209.85.166.67]) by dpdk.org (Postfix) with ESMTP id 671071C1AF for ; Mon, 21 Sep 2020 19:11:58 +0200 (CEST) Received: by mail-io1-f67.google.com with SMTP id r9so16277199ioa.2 for ; Mon, 21 Sep 2020 10:11:58 -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=1cQxyu/VTCOvKpEn9NCcq6MRUWhkjAylZWOe2SAegww=; b=mGz7gVUpX9+m8QK1zZxPTdUKsjFLuzoVYiZGjKOtoyerWyAojpBhiN1uUw21EdTgrf 8mvsQd0xnesGSXcYLFFmUrlo1pJvyA6rar8i6cMJUqxZwbBcmW853uxohdLBvsyIuxDR gtZc9/KEjBXZp7Ud6+LCUaK+UsMwKHWM0rAlO6ztj7dWLR0BDTBq2p8PAzUHF49FPbJx Vf0vJXLMorxJrC4TAl+utH96SDvl07+VbstZQc5RDxmn3sHQ7DymSD+Ww84zN7BsvaNi CztfejXaVtHOcCS5q0NwVJONecnZXw71mdrJ08snppRarG0Y+1EfvqLsysJffSCss6LF c9BQ== 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=1cQxyu/VTCOvKpEn9NCcq6MRUWhkjAylZWOe2SAegww=; b=IfnfwP2YFMla1XqS3DXXsNyUK+b8mtwUvt+82I2SwbBdQ6iS3K7aJjkBtDaw0iiM4n 28ggd1+xLzC3BIl6NzH31KbCyAphoMm8kbNDEqmrVQAwCRvrNAcP4xixXXFdUcUS5Id8 FEVQZcmefFqnz9AaW5bw0sQondpD6kMxqMyst7bwlmr2yIMcVjxQXHbLK0/2BHC5G0+e 07txKoSdGzR9ii+8Cn5aLXzqXPnjhJ5ffwPu4906kvWJ+T4Firr2DjhPPckrjDr0Lb/t 3BmTko98XvwQEL41uraNSzLT+mp6GSj83UgBhAQfbvN7geh259IgxhfrVvETn73OhM1Z Vv6Q== X-Gm-Message-State: AOAM533yZfIl0JaSfABRaVW7scNT1ylKt/XoLPteEcyadiT1Sa+8LCZ+ a6j9Ig2bJ8/cwIPOPhpp/GWjqr2CaWhy2TqpQc0= X-Google-Smtp-Source: ABdhPJwRWKkyqJUKEIQsBVprn6Xys0r5RRtRnKXamAA5afeohWrnsYtcG1VnRT+B+3V8Q8kDmi2lcWFbUc8dGR4I6i4= X-Received: by 2002:a05:6602:2c4d:: with SMTP id x13mr323981iov.94.1600708317560; Mon, 21 Sep 2020 10:11:57 -0700 (PDT) MIME-Version: 1.0 References: <1599855987-25976-1-git-send-email-timothy.mcdaniel@intel.com> In-Reply-To: <1599855987-25976-1-git-send-email-timothy.mcdaniel@intel.com> From: Jerin Jacob Date: Mon, 21 Sep 2020 22:41:41 +0530 Message-ID: To: Timothy McDaniel Cc: dpdk-dev , Erik Gabriel Carrillo , Gage Eads , "Van Haaren, Harry" , Jerin Jacob Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [PATCH 00/22] Add DLB2 PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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 Sat, Sep 12, 2020 at 2:00 AM Timothy McDaniel wrote: > > The following patch series adds support for a new eventdev PMD. The DLB2 > PMD adds support for the Intel Dynamic Load Balancer 2.0 (DLB2) > hardware. > The DLB2 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 DLB2 hardware supports both load balanced and directed ports and > queues. Unlike other eventdev devices already in the repo, not all > DLB2 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. > > While reviewing the code, please be aware that this PMD has full > control over the DLB2 hardware. Intel will be extending the DLB2 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. > Note that the DLB2 hardware is a successor of the DLB hardware, and > as such is structured similarly, both in terms of code layout and > implementation. > > The framework to support both the PF PMD and bifurcated PMD exists in > this patchset, and is why the iface.[ch] layer is present. > > Depends-on: patch-77466 ("eventdev: add PCI probe named convenience function") > Depends-on: series-12160 ("Eventdev ABI changes") > Depends-on: patch-77460 ("eal: add umonitor umwait to x86 cpuflags") > > Timothy McDaniel (22): There is two version of driver(DLB and DLB2)[1] Both are needed? Is two separate set of HW? http://patches.dpdk.org/project/dpdk/list/?submitter=826 > event/dlb2: add meson build infrastructure > event/dlb2: add dynamic logging > event/dlb2: add private data structures and constants > event/dlb2: add definitions shared with LKM or shared code > event/dlb2: add inline functions > event/dlb2: add probe > event/dlb2: add xstats > event/dlb2: add infos get and configure > event/dlb2: add queue and port default conf > event/dlb2: add queue setup > event/dlb2: add port setup > event/dlb2: add port link > event/dlb2: add port unlink and port unlinks in progress > event/dlb2: add eventdev start > event/dlb2: add enqueue and its burst variants > event/dlb2: add dequeue and its burst variants > event/dlb2: add eventdev stop and close > event/dlb2: add PMD's token pop public interface > event/dlb2: add PMD self-tests > event/dlb2: add queue and port release > event/dlb2: add timeout ticks entry point > doc: add new DLB2 eventdev driver to relnotes > > app/test/test_eventdev.c | 9 + > config/rte_config.h | 7 + > doc/guides/rel_notes/release_20_11.rst | 5 + > drivers/event/dlb2/dlb2.c | 4046 ++++++++++++++ > drivers/event/dlb2/dlb2_iface.c | 88 + > drivers/event/dlb2/dlb2_iface.h | 75 + > drivers/event/dlb2/dlb2_inline_fns.h | 85 + > drivers/event/dlb2/dlb2_log.h | 25 + > drivers/event/dlb2/dlb2_priv.h | 619 +++ > drivers/event/dlb2/dlb2_selftest.c | 1570 ++++++ > drivers/event/dlb2/dlb2_user.h | 883 +++ > drivers/event/dlb2/dlb2_xstats.c | 1269 +++++ > drivers/event/dlb2/meson.build | 16 + > drivers/event/dlb2/pf/base/dlb2_hw_types.h | 367 ++ > drivers/event/dlb2/pf/base/dlb2_mbox.h | 596 ++ > drivers/event/dlb2/pf/base/dlb2_osdep.h | 248 + > drivers/event/dlb2/pf/base/dlb2_osdep_bitmap.h | 447 ++ > drivers/event/dlb2/pf/base/dlb2_osdep_list.h | 131 + > drivers/event/dlb2/pf/base/dlb2_osdep_types.h | 31 + > drivers/event/dlb2/pf/base/dlb2_regs.h | 2527 +++++++++ > drivers/event/dlb2/pf/base/dlb2_resource.c | 6023 +++++++++++++++++++++ > drivers/event/dlb2/pf/base/dlb2_resource.h | 1913 +++++++ > drivers/event/dlb2/pf/dlb2_main.c | 692 +++ > drivers/event/dlb2/pf/dlb2_main.h | 107 + > drivers/event/dlb2/pf/dlb2_pf.c | 734 +++ > drivers/event/dlb2/rte_pmd_dlb2.c | 39 + > drivers/event/dlb2/rte_pmd_dlb2.h | 59 + > drivers/event/dlb2/rte_pmd_dlb2_event_version.map | 9 + > drivers/event/meson.build | 4 + > 29 files changed, 22624 insertions(+) > create mode 100644 drivers/event/dlb2/dlb2.c > create mode 100644 drivers/event/dlb2/dlb2_iface.c > create mode 100644 drivers/event/dlb2/dlb2_iface.h > create mode 100644 drivers/event/dlb2/dlb2_inline_fns.h > create mode 100644 drivers/event/dlb2/dlb2_log.h > create mode 100644 drivers/event/dlb2/dlb2_priv.h > create mode 100644 drivers/event/dlb2/dlb2_selftest.c > create mode 100644 drivers/event/dlb2/dlb2_user.h > create mode 100644 drivers/event/dlb2/dlb2_xstats.c > create mode 100644 drivers/event/dlb2/meson.build > create mode 100644 drivers/event/dlb2/pf/base/dlb2_hw_types.h > create mode 100644 drivers/event/dlb2/pf/base/dlb2_mbox.h > create mode 100644 drivers/event/dlb2/pf/base/dlb2_osdep.h > create mode 100644 drivers/event/dlb2/pf/base/dlb2_osdep_bitmap.h > create mode 100644 drivers/event/dlb2/pf/base/dlb2_osdep_list.h > create mode 100644 drivers/event/dlb2/pf/base/dlb2_osdep_types.h > create mode 100644 drivers/event/dlb2/pf/base/dlb2_regs.h > create mode 100644 drivers/event/dlb2/pf/base/dlb2_resource.c > create mode 100644 drivers/event/dlb2/pf/base/dlb2_resource.h > create mode 100644 drivers/event/dlb2/pf/dlb2_main.c > create mode 100644 drivers/event/dlb2/pf/dlb2_main.h > create mode 100644 drivers/event/dlb2/pf/dlb2_pf.c > create mode 100644 drivers/event/dlb2/rte_pmd_dlb2.c > create mode 100644 drivers/event/dlb2/rte_pmd_dlb2.h > create mode 100644 drivers/event/dlb2/rte_pmd_dlb2_event_version.map > > -- > 2.6.4 >