DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jerin Jacob <jerinjacobk@gmail.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: "Thomas Monjalon" <thomas@monjalon.net>,
	"Jerin Jacob" <jerinj@marvell.com>, dpdk-dev <dev@dpdk.org>,
	"Ferruh Yigit" <ferruh.yigit@intel.com>,
	"Ajit Khaparde" <ajit.khaparde@broadcom.com>,
	"Andrew Boyer" <aboyer@pensando.io>,
	"Andrew Rybchenko" <andrew.rybchenko@oktetlabs.ru>,
	"Beilei Xing" <beilei.xing@intel.com>,
	"Richardson, Bruce" <bruce.richardson@intel.com>,
	"Chas Williams" <chas3@att.com>,
	"Xia, Chenbo" <chenbo.xia@intel.com>,
	"Ciara Loftus" <ciara.loftus@intel.com>,
	"Devendra Singh Rawat" <dsinghrawat@marvell.com>,
	"Ed Czeck" <ed.czeck@atomicrules.com>,
	"Evgeny Schemeilin" <evgenys@amazon.com>,
	"Gaetan Rivet" <grive@u256.net>,
	"Gagandeep Singh" <g.singh@nxp.com>,
	"Guoyang Zhou" <zhouguoyang@huawei.com>,
	"Haiyue Wang" <haiyue.wang@intel.com>,
	"Harman Kalra" <hkalra@marvell.com>,
	heinrich.kuhn@corigine.com,
	"Hemant Agrawal" <hemant.agrawal@nxp.com>,
	"Hyong Youb Kim" <hyonkim@cisco.com>,
	"Igor Chauskin" <igorch@amazon.com>,
	"Igor Russkikh" <irusskikh@marvell.com>,
	"Jakub Grajciar" <jgrajcia@cisco.com>,
	"Jasvinder Singh" <jasvinder.singh@intel.com>,
	"Jian Wang" <jianwang@trustnetic.com>,
	"Jiawen Wu" <jiawenwu@trustnetic.com>,
	"Jingjing Wu" <jingjing.wu@intel.com>,
	"John Daley" <johndale@cisco.com>,
	"John Miller" <john.miller@atomicrules.com>,
	"John W. Linville" <linville@tuxdriver.com>,
	"Wiles, Keith" <keith.wiles@intel.com>,
	"Kiran Kumar K" <kirankumark@marvell.com>,
	"Lijun Ou" <oulijun@huawei.com>,
	"Liron Himi" <lironh@marvell.com>,
	"Long Li" <longli@microsoft.com>,
	"Marcin Wojtas" <mw@semihalf.com>,
	"Martin Spinler" <spinler@cesnet.cz>,
	"Matan Azrad" <matan@nvidia.com>,
	"Matt Peters" <matt.peters@windriver.com>,
	"Maxime Coquelin" <maxime.coquelin@redhat.com>,
	"Michal Krawczyk" <mk@semihalf.com>,
	"Min Hu (Connor" <humin29@huawei.com>,
	"Pradeep Kumar Nalla" <pnalla@marvell.com>,
	"Nithin Dabilpuram" <ndabilpuram@marvell.com>,
	"Qiming Yang" <qiming.yang@intel.com>,
	"Qi Zhang" <qi.z.zhang@intel.com>,
	"Radha Mohan Chintakuntla" <radhac@marvell.com>,
	"Rahul Lakkireddy" <rahul.lakkireddy@chelsio.com>,
	"Rasesh Mody" <rmody@marvell.com>,
	"Rosen Xu" <rosen.xu@intel.com>,
	"Sachin Saxena" <sachin.saxena@oss.nxp.com>,
	"Satha Koteswara Rao Kottidi" <skoteshwar@marvell.com>,
	"Shahed Shaikh" <shshaikh@marvell.com>,
	"Shai Brandes" <shaibran@amazon.com>,
	"Shepard Siegel" <shepard.siegel@atomicrules.com>,
	"Somalapuram Amaranath" <asomalap@amd.com>,
	"Somnath Kotur" <somnath.kotur@broadcom.com>,
	"Stephen Hemminger" <sthemmin@microsoft.com>,
	"Steven Webster" <steven.webster@windriver.com>,
	"Sunil Kumar Kori" <skori@marvell.com>,
	"Tetsuya Mukawa" <mtetsuyah@gmail.com>,
	"Veerasenareddy Burru" <vburru@marvell.com>,
	"Viacheslav Ovsiienko" <viacheslavo@nvidia.com>,
	"Xiao Wang" <xiao.w.wang@intel.com>,
	"Xiaoyun Wang" <cloud.wangxiaoyun@huawei.com>,
	"Yisen Zhuang" <yisen.zhuang@huawei.com>,
	"Yong Wang" <yongwang@vmware.com>,
	"Ziyang Xuan" <xuanziyang2@huawei.com>,
	"Prasun Kapoor" <pkapoor@marvell.com>,
	nadavh@marvell.com, "Satananda Burla" <sburla@marvell.com>,
	"Narayana Prasad" <pathreya@marvell.com>,
	"Akhil Goyal" <gakhil@marvell.com>,
	"Ray Kinsella" <mdr@ashroe.eu>,
	"Dmitry Kozlyuk" <dmitry.kozliuk@gmail.com>,
	"Anatoly Burakov" <anatoly.burakov@intel.com>,
	"Cristian Dumitrescu" <cristian.dumitrescu@intel.com>,
	"Honnappa Nagarahalli" <honnappa.nagarahalli@arm.com>,
	"Mattias Rönnblom" <mattias.ronnblom@ericsson.com>,
	"Ruifeng Wang (Arm Technology China)" <ruifeng.wang@arm.com>,
	"David Christensen" <drc@linux.vnet.ibm.com>,
	"Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
	"Olivier Matz" <olivier.matz@6wind.com>,
	"Jayatheerthan, Jay" <jay.jayatheerthan@intel.com>,
	"Ashwin Sekhar Thalakalath Kottilveetil" <asekhar@marvell.com>,
	"Pavan Nikhilesh" <pbhagavatula@marvell.com>,
	"Elena Agostini" <eagostini@nvidia.com>,
	"David Marchand" <david.marchand@redhat.com>,
	"Tom Herbert" <tom@herbertland.com>
Subject: Re: [dpdk-dev] [RFC PATCH 0/1] Dataplane Workload Accelerator library
Date: Wed, 20 Oct 2021 10:55:57 +0530	[thread overview]
Message-ID: <CALBAE1MSVunLK3L5dctpD=F+wCEbN=OpM07Br=sz6U8UuU-PyQ@mail.gmail.com> (raw)
In-Reply-To: <20211019134200.50322420@hermes.local>

On Wed, Oct 20, 2021 at 2:12 AM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> On Wed, 20 Oct 2021 01:06:10 +0530
> Jerin Jacob <jerinjacobk@gmail.com> wrote:
>
> > On Wed, Oct 20, 2021 at 12:38 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > >
> > > 19/10/2021 20:14, jerinj@marvell.com:
> > > > Definition of Dataplane Workload Accelerator
> > > > --------------------------------------------
> > > > Dataplane Workload Accelerator(DWA) typically contains a set of CPUs,
> > > > Network controllers and programmable data acceleration engines for
> > > > packet processing, cryptography, regex engines, baseband processing, etc.
> > > > This allows DWA to offload  compute/packet processing/baseband/
> > > > cryptography-related workload from the host CPU to save the cost and power.
> > > > Also to enable scaling the workload by adding DWAs to the Host CPU as needed.
> > > >
> > > > Unlike other devices in DPDK, the DWA device is not fixed-function
> > > > due to the fact that it has CPUs and programmable HW accelerators.
> > > > This enables DWA personality/workload to be completely programmable.
> > > > Typical examples of DWA offloads are Flow/Session management,
> > > > Virtual switch, TLS offload, IPsec offload, l3fwd offload, etc.
> > >
> > > If I understand well, the idea is to abstract the offload
> > > of some stack layers in the hardware.
> >
> > Yes. It may not just HW, For expressing the complicated workloads
> > may need CPU and/or other HW accelerators.
> >
> > > I am not sure we should give an API for such stack layers in DPDK.
> >
> > Why not
> This is the problem of should DPDK reinvent higher protocol layers?
> Given the myriad of other projects using DPDK that already provide these
> protocols; the de facto decision has been to not add higher layers.
>
> The boundary between DPDK and OVS, VPP, yastack, ... has stayed roughly
> the same for several years. If DPDK starts to overlap these other projects
> it makes life harder.

The intention is to NOT replace these projects, instead, the intention
is to use these projects in the accelerator.
There is a subtle difference between defining the workload vs
implementing the workload.
This RFC attempts the former.

I am trying to address the use case where the end-user needs to
offload a workload
to the accelerator, which contains a set of CPUs, Network controllers
and programmable data acceleration
engines for packet processing, cryptography, regex engines, baseband
processing, etc.

Offload is expressed in very high-level TLV messages. Accelerator
picks these messages,
and using the above technologies to implement it in acceleration HW.
This enables offloading the workloads from the Host CPU.

There are discrete attempts to solve this problem in isolation like
https://github.com/att/sessionOffload.
If you see the above workload the application cares for very
high-level messages for
AddSession, DeleteSession, GetSession, SendStats etc and leave the
accelerator for _implementing_ those workloads.

In order to enable the above use case, the following items need to be
sorted out:
1) Communication between Accelerator and host CPU application
2) Implement the workload in Accelerator

Since this is anyway discussed in today's TB meeting. I am sharing my
thoughts here.

IMO, There are two ways to do it:

Way 1:
1) Introduce libraries specific to accelerator communication like
gpudev, xpudev, dpudev etc
2) Implement the workload in accelerator specific fashion in the application.

Pros:

Cons:
- Need for introducing multiple libraries for specific accelerator
communication in DPDK
- Specific application needs to be written for each accelerator that
needs to be offloaded.


Way 2:
1) Introduce the generic library for accelerator communication.
2) Application express the workload in a non-accelator specific fashion and let
the accelerator implementation(Dont have the requirement to add it in
DPDK code base) implement
the functional model.


Pros:
-  The same DPDK application can use to offload various accelerator technologies
-  More contributors can use the library as it is no specific one type
of accelerator device

Cons:


















>
> If the HW support crosses over between projects it gets very complex.
>

  reply	other threads:[~2021-10-20  5:26 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-19 18:14 jerinj
2021-10-19 18:14 ` [dpdk-dev] [RFC PATCH 1/1] dwa: introduce dataplane workload accelerator subsystem jerinj
2021-10-19 19:08 ` [dpdk-dev] [RFC PATCH 0/1] Dataplane Workload Accelerator library Thomas Monjalon
2021-10-19 19:36   ` Jerin Jacob
2021-10-19 20:42     ` Stephen Hemminger
2021-10-20  5:25       ` Jerin Jacob [this message]
2021-10-19 20:42     ` Tom Herbert
2021-10-20  5:38       ` Jerin Jacob
2021-10-22 12:00     ` Elena Agostini
2021-10-22 13:39       ` Jerin Jacob
2021-10-25  7:35 ` Mattias Rönnblom
2021-10-25  9:03   ` Jerin Jacob
2021-10-29 11:57     ` Mattias Rönnblom
2021-10-29 15:51       ` Jerin Jacob
2021-10-31  9:18         ` Mattias Rönnblom
2021-10-31 14:01           ` Jerin Jacob
2021-10-31 19:34             ` Thomas Monjalon
2021-10-31 21:13               ` Jerin Jacob
2021-10-31 21:55                 ` Thomas Monjalon
2021-10-31 22:19                   ` Jerin Jacob

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CALBAE1MSVunLK3L5dctpD=F+wCEbN=OpM07Br=sz6U8UuU-PyQ@mail.gmail.com' \
    --to=jerinjacobk@gmail.com \
    --cc=aboyer@pensando.io \
    --cc=ajit.khaparde@broadcom.com \
    --cc=anatoly.burakov@intel.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=asekhar@marvell.com \
    --cc=asomalap@amd.com \
    --cc=beilei.xing@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=chas3@att.com \
    --cc=chenbo.xia@intel.com \
    --cc=ciara.loftus@intel.com \
    --cc=cloud.wangxiaoyun@huawei.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=dmitry.kozliuk@gmail.com \
    --cc=drc@linux.vnet.ibm.com \
    --cc=dsinghrawat@marvell.com \
    --cc=eagostini@nvidia.com \
    --cc=ed.czeck@atomicrules.com \
    --cc=evgenys@amazon.com \
    --cc=ferruh.yigit@intel.com \
    --cc=g.singh@nxp.com \
    --cc=gakhil@marvell.com \
    --cc=grive@u256.net \
    --cc=haiyue.wang@intel.com \
    --cc=heinrich.kuhn@corigine.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=hkalra@marvell.com \
    --cc=honnappa.nagarahalli@arm.com \
    --cc=humin29@huawei.com \
    --cc=hyonkim@cisco.com \
    --cc=igorch@amazon.com \
    --cc=irusskikh@marvell.com \
    --cc=jasvinder.singh@intel.com \
    --cc=jay.jayatheerthan@intel.com \
    --cc=jerinj@marvell.com \
    --cc=jgrajcia@cisco.com \
    --cc=jianwang@trustnetic.com \
    --cc=jiawenwu@trustnetic.com \
    --cc=jingjing.wu@intel.com \
    --cc=john.miller@atomicrules.com \
    --cc=johndale@cisco.com \
    --cc=keith.wiles@intel.com \
    --cc=kirankumark@marvell.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=linville@tuxdriver.com \
    --cc=lironh@marvell.com \
    --cc=longli@microsoft.com \
    --cc=matan@nvidia.com \
    --cc=matt.peters@windriver.com \
    --cc=mattias.ronnblom@ericsson.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=mdr@ashroe.eu \
    --cc=mk@semihalf.com \
    --cc=mtetsuyah@gmail.com \
    --cc=mw@semihalf.com \
    --cc=nadavh@marvell.com \
    --cc=ndabilpuram@marvell.com \
    --cc=olivier.matz@6wind.com \
    --cc=oulijun@huawei.com \
    --cc=pathreya@marvell.com \
    --cc=pbhagavatula@marvell.com \
    --cc=pkapoor@marvell.com \
    --cc=pnalla@marvell.com \
    --cc=qi.z.zhang@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=radhac@marvell.com \
    --cc=rahul.lakkireddy@chelsio.com \
    --cc=rmody@marvell.com \
    --cc=rosen.xu@intel.com \
    --cc=ruifeng.wang@arm.com \
    --cc=sachin.saxena@oss.nxp.com \
    --cc=sburla@marvell.com \
    --cc=shaibran@amazon.com \
    --cc=shepard.siegel@atomicrules.com \
    --cc=shshaikh@marvell.com \
    --cc=skori@marvell.com \
    --cc=skoteshwar@marvell.com \
    --cc=somnath.kotur@broadcom.com \
    --cc=spinler@cesnet.cz \
    --cc=stephen@networkplumber.org \
    --cc=steven.webster@windriver.com \
    --cc=sthemmin@microsoft.com \
    --cc=thomas@monjalon.net \
    --cc=tom@herbertland.com \
    --cc=vburru@marvell.com \
    --cc=viacheslavo@nvidia.com \
    --cc=xiao.w.wang@intel.com \
    --cc=xuanziyang2@huawei.com \
    --cc=yisen.zhuang@huawei.com \
    --cc=yongwang@vmware.com \
    --cc=zhouguoyang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).