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 6AE49A0526; Wed, 22 Jul 2020 16:20:36 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1B2C91BFBA; Wed, 22 Jul 2020 16:20:35 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 92B3C255 for ; Wed, 22 Jul 2020 16:20:32 +0200 (CEST) IronPort-SDR: A6nICTxEAwjw84DpgnAvudw73Pz3b3b3KbV8bJ5fhg7PVCYiVX7SwY0l+X7Tr3QFD4nyk8Olre 05/0qAh9IsFw== X-IronPort-AV: E=McAfee;i="6000,8403,9689"; a="138413816" X-IronPort-AV: E=Sophos;i="5.75,383,1589266800"; d="scan'208";a="138413816" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jul 2020 07:20:30 -0700 IronPort-SDR: VpNqFy9qoPpjwhgKkccGYaG2ioSyVLHG725Y423WaEnxDIv3aOhcFq1BWTOik5RNr5qV1X+wQj 0fScXq/K75YA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,383,1589266800"; d="scan'208";a="328225287" Received: from orsmsx107.amr.corp.intel.com ([10.22.240.5]) by orsmga007.jf.intel.com with ESMTP; 22 Jul 2020 07:20:30 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by ORSMSX107.amr.corp.intel.com (10.22.240.5) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 22 Jul 2020 07:20:30 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.46) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 22 Jul 2020 07:20:30 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hLKisiZE+065O0Cvt/r6tJ78PM+Jtgw8XeqRp5YQyy2oeYvUJ4KtL4h3mYnrdZ57i7aBD9cnfrUEB/wufb27bSa7chhyX+/S1/kFx+OzO3pgjs8wJawvs1ENNERsqTDWfpCDCLITLVCdgBLpGGi/JA+GfI3GsE/ZHEhJNS62Cu8DHB2yBmAyKBJBfMWF0c1Ce2jg/yAyD2xHKjdUGJGYShm0mJZrmBLqVcESM/TOQftc0z/wS7BLBRb9G+XyDCeLdPWVXxr2gcGlvYgpBPcy0CqUoeDFmTZzm84N5FVoxyZEiKffDp6dKv06Q0hJBCO1NW44HZnHsYVhyFrrpnRt0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UHBfubzaD5c8jYF+InVrgflhfHPf6MnBqxV1RdnhPJ8=; b=dBR0m5cmPlRLzt0w6uFGiWKfKMh01MCkuhlSpzi9z/9+3qypVSUvfkumQcE/qfFW+QtA1UMzMkWuikHhav/tvlT3hP15R4cFoz69w4WCmzWv7CXj2AIgx3JzN4hBhIsBLbMdb/IYqRnchabDfRrwrfTq2A5MnT+sAm/JhCQhZmorpfAPrdyjmoTl93rQXz/tulE5bPcH9uq6HfylvbMDv8ivmR7llfh4rX4sSV9MgEyapaF8341zHCGpqOSxpIG8SjVfjY5zmlFAU4VO6KhlnlSGtfOffvwV3BRY8aMMDP8tP7mLftuAkxONVDac5/Vd+Qd1gvDZNrHJU1Jx1dZI2g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UHBfubzaD5c8jYF+InVrgflhfHPf6MnBqxV1RdnhPJ8=; b=YA0yx7r/0duILDgL2H+/wTiBlEqMrM43Lyj/BOT8rl0nLCjhra6/JkSBIfi5dhRUVmLnUp9IePVZgqcFcyhbezhJhhLqTqnFKJzL+lO24XacoZlni1J9qixjdIMT4e9AbgMEaQyOSvMBpS4oE6R8beBlAczSFnktCF/sldTmKf0= Received: from BL0PR11MB3316.namprd11.prod.outlook.com (2603:10b6:208:68::28) by MN2PR11MB4317.namprd11.prod.outlook.com (2603:10b6:208:179::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.22; Wed, 22 Jul 2020 14:20:29 +0000 Received: from BL0PR11MB3316.namprd11.prod.outlook.com ([fe80::b199:47b3:89d5:6d3d]) by BL0PR11MB3316.namprd11.prod.outlook.com ([fe80::b199:47b3:89d5:6d3d%6]) with mapi id 15.20.3195.026; Wed, 22 Jul 2020 14:20:29 +0000 From: "Kusztal, ArkadiuszX" To: Akhil Goyal , "dev@dpdk.org" CC: "Trahe, Fiona" , "thomas@monjalon.net" Thread-Topic: [PATCH v3 5/5] doc: add documentation for multi process crypto app Thread-Index: AQHWWr/KG4QLIyFix06Z00nm/wW/fqkI9ESAgAq1EwA= Date: Wed, 22 Jul 2020 14:20:28 +0000 Message-ID: References: <20200715155043.12476-1-arkadiuszx.kusztal@intel.com> <20200715155043.12476-6-arkadiuszx.kusztal@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.2.0.6 dlp-product: dlpe-windows x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZTI5OWMzOGEtNTkyNS00ZTM3LTkwYTAtZTJkZTA4MGRiYjNlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiclhuSWp0ajc0RmY5MExSd3I3cWJFSGttTExYN3lzUDN2TzF2R09wU2RIZXBtVWt3a1wvUE5NM0tJdWFuSzBNclwvIn0= authentication-results: nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.151.43] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f34553f0-5ac5-41bd-11de-08d82e4a62b0 x-ms-traffictypediagnostic: MN2PR11MB4317: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4941; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bBEulvMr3UuKQNYhocIHJMpGyxUBzksSEJLhnNA88YXQA/RZUk3aXw46xNQYeql8L+pLbS0pBgJv8kSJ6fP8ozMeNIXpVcHPEnbQaw5TpMP7dDJ71q0iuVjTgty9u/xvOlR3i5l8iT80pF8yUzQZafgqNhv74Okaiu8ODkgMvxDZ8EJYsK+bhfnFjHLi2cNae/W9p5faTKvkqU4qfzp9Oy+ejL7Ei4yyY5uacVInVNjx3dcIrc3UIF41chniU4nzcLebhxzIfrWD376xa07mQ2RHY+SjyhP7aXY2wkENLXpIY6upCdQddPdqgsr2/6Hii2XCWmlgDPYtfymVaKdLDQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR11MB3316.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(396003)(346002)(366004)(136003)(376002)(52536014)(4326008)(9686003)(478600001)(5660300002)(55016002)(33656002)(83380400001)(7696005)(71200400001)(30864003)(76116006)(8936002)(66556008)(66446008)(66476007)(64756008)(66946007)(26005)(54906003)(86362001)(316002)(6506007)(53546011)(110136005)(2906002)(8676002)(186003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: wwOf3pHwl+ffvP1SkO4+IvyWyyvYaOI4qX8yBPkrl4bJn8p4jl7K+6QEyK/vU75Ql6XEq9ON1SAMFcK1YxrzQm6BzC5D+kKi8RjihnWGVr1jHGlU2BkNCUGAjLTU87ZZJtf6ySoPj8zgNsFgK7ldjJm5bYSG+stFvRjK5pnBn0XFSMsjx1xWuFr/BiNSvOVhMFUeCWPBM7s1koxwoADqeQEoHjXGLbtfbSKsqHz3X7QDC0HsZYGEok5a165qdeLYoUX0mldfE1lXeYh0M+Q/cD01J9e5WTjiig/5E4HdkF91e3PhiZfU/ChwUvtftHMkOjXSjk98XLXPe9M27QL4oxyha2nRmAgFCEHoWSHVeaiZPD5tch+bIAMk/wL+11RUYGNTME608jNpBj5tVcKrWCRiW3bMzn4tgZOp2HJNlCCUt5pPbpv750q0614/feqOFJmjHeb0HM8RA2v/dGty9YmHn1K/sUZqbFLuQQJCad4fkylEkYD8Yu/3O/dFtY7I Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL0PR11MB3316.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f34553f0-5ac5-41bd-11de-08d82e4a62b0 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jul 2020 14:20:28.8670 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: aJALbAsQYGlpSstedS/oH4PUzWoaoENz9w6MemE+u27TehigVMexo7TCudAmG+gsFUvVbPoJ2ZCQ+L3Q1bjxqtOorAzJfW2Euzidn76ND2Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4317 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3 5/5] doc: add documentation for multi process crypto app 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" Hi Akhil, > -----Original Message----- > From: Akhil Goyal > Sent: Wednesday, July 15, 2020 8:22 PM > To: Kusztal, ArkadiuszX ; dev@dpdk.org > Cc: Trahe, Fiona ; thomas@monjalon.net > Subject: RE: [PATCH v3 5/5] doc: add documentation for multi process cryp= to > app >=20 > Hi Arek, >=20 > > Subject: [PATCH v3 5/5] doc: add documentation for multi process > > crypto app >=20 > Please do not make separate patches for documentation. > Your first patch description says more info can be found in mp_crypto.rst= . > But it is not there in that patch. >=20 > You should add the relevant documentation in the first patch so that peop= le > can review and understand the patchset before actually reviewing the patc= h. >=20 > You should split the documentation patch and add in the patches where the= y > are relevant. [AK] - sure, I will. >=20 > MAINTAINERS file update is also missing for this app. >=20 > > >=20 > > This commit adds documentation for multi process crypto test > > application. > > > > Signed-off-by: Arek Kusztal > > --- > > doc/guides/tools/index.rst | 1 + > > doc/guides/tools/mp_crypto.rst | 151 > > +++++++++++++++++++++++++++++++++++++++++ > > 2 files changed, 152 insertions(+) > > create mode 100644 doc/guides/tools/mp_crypto.rst > > > > diff --git a/doc/guides/tools/index.rst b/doc/guides/tools/index.rst > > index 4840cf4..a360307 100644 > > --- a/doc/guides/tools/index.rst > > +++ b/doc/guides/tools/index.rst > > @@ -17,3 +17,4 @@ DPDK Tools User Guides > > cryptoperf > > comp_perf > > testeventdev > > + mp-crypto > > diff --git a/doc/guides/tools/mp_crypto.rst > > b/doc/guides/tools/mp_crypto.rst new file mode 100644 index > > 0000000..201834f > > --- /dev/null > > +++ b/doc/guides/tools/mp_crypto.rst > > @@ -0,0 +1,151 @@ > > +.. SPDX-License-Identifier: BSD-3-Clause > > + Copyright(c) 2020 Intel Corporation. > > + > > +dpdk-test-mp-crypto Application > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > > + > > +The Multi-process Crypto application is a simple application that > > +allows to run crypto related operations in a multiple process > > +environment. It builds on the EAL primary/secondary process > infrastructure. > > + > > +The application allows a user to configure devices, setup > > +queue-pairs, create and init sessions and specify data-path flow > > +(enqueue/dequeue) in different processes. The app can help to check > > +if the PMD behaves correctly in scenarios like the following: > > + > > +* device is configured in primary process, queue-pairs are setup in > > +secondary > > process > > + > > +* queue pair is shared across processes, i.e. enqueue in one process > > +and > > dequeue in another > > + > > + > > +Compiling the Application > > +------------------------- > > + > > +To compile the sample application see :doc:`compiling`. > > + > > +The application is located in the ``app/test-mp_crypto`` directory. > > + > > +Running the Application > > +----------------------- > > + > > +App binary: dpdk-test-mp-crypto (in build/app) > > + > > +For running PRIMARY or SECONDARY process standard EAL options apply: > > + > > +.. code-block:: console > > + > > + ./dpdk-test-mp-crypto --proc-type primary > > + > > + ./dpdk-test-mp-crypto --proc-type secondary > > + > > +.. Note:: > > + > > + The same set of BDFs must be passed to all processes. >=20 > BDFs ?? Statement should be generic. Not all devices are PCI based. [Arek] Sure, will change. >=20 > > + > > +.. Note:: > > + The same crypto devices must be created in all processes, e.g. in qat > > + case if asym and sym devices are enabled in the primary process, > they > > + must be enabled in all secondary processes. > In all secondary processes as well. >=20 > > + > > +General help can by checked by running: > > + > > +. code-block:: console > > + > > + ./dpdk-test-mp-crypto -- -h > > + > > +The application has a number of command line options: > > + > > +.. code-block:: console > > + > > + ./dpdk-test-mp-crypto -- --devtype [dev-name] > > + > > +This option specifies which driver to use by its name (for example > "crypto_qat"). > > +The same name must be passed to all processes. > > + > > +.. code-block:: console > > + > > + ./dpdk-test-mp-crypto -- --config_dev [devA, devB,] > > + > > +This option specifies the list of devices that should be configured > > +by this > > process, > > +this results in a call to the ``rte_cryptodev_configure`` API. devX > > +is a positive integer (including zero), the value is according to > > +probe order (from the > > smallest > > +BDF number), not necessarily the cmdline order. >=20 > Isn't it better to have a cryptodev_mask instead of config_dev? Same as w= e > do in Ipsec-secgw and l2fwd-crypto. > Mask will specify the devices which will be configured in the current pro= cess. >=20 [AK] - actually we initially have done that, in code actually list is trans= lated to mask because of this. We though later list can be easier to use. >=20 > > + > > +Example command: > > + > > +.. code-block:: console > > + > > + ./dpdk-test-mp-crypto -w 03:01.2 -w 03:01.1 -w 03:01.3 > > + --config-dev 0,2 > > + > > ++will configure devices 03:01.1 and 03:01.3. > > + > > +.. code-block:: console > > + > > + ./dpdk-test-mp-crypto -- --qp-config=3D[devA]:[qp_A, > > + qp_B,];[devB]:[qp_A, > > qp_C]; > > + > > +devX - positive integer (including zero), as in config_dev command > > + > > ++qp_X - positive integer (including zero), specifies which queue pair > > ++should be > > setup > > + > > +This command specifies which queue pairs should be setup, resulting > > +in a call to ``rte_cryptodev_queue_pair_setup`` API. > > + > > +.. code-block:: console > > + > > + ./dpdk-test-mp-crypto -w 03:01.2 -w 03:01.1 -w 03:01.3 --qp- > > config=3D"0:0,1;1:1;2:0,1;" > > + > > +This command will configure queue pairs 0 and 1 on device 0 > > +(03:01.1), queue > > pair 1 > > +on device 1 (03:01.2), queue pairs 0 and 1 on device 2 (03:01.3). The > > +device in > > question > > +should be configured before that, though not necessarily by the same > process. > > + > > +.. code-block:: console > > + > > + ./dpdk-test-mp-crypto -- --enq=3D[devX]:[qpX]:[ops]:[vector_id] > > + ./dpdk-test-mp-crypto -- --deq=3D[devX]:[qpX]:[ops]:[vector_id] > > + > > +devX - positive integer (including zero), as in config_dev command > > + > > +qp_X - positive integer (including zero), as in qp-config command >=20 > qpX [Arek] Ok. >=20 > > + > > +ops - when positive integer - number of operations to > > +enqueue/dequeue, when > > 0 infinite loop >=20 > This should be an optional parameter and should not be part of enq/deq > configs And default value should be 0 [Arek] So something like (if vector number removed): --enq=3D0:0, -> dev 0, qp 0 , infinite loop --enq=3D0:0:5000, -> dev 0, qp 0, 5000 packets ? >=20 > > + > > +vector_id - positive integer (including zero), vector_id used by this > > +process >=20 > What is vector id? I do not see it changing in any of your examples. Do w= e > really need it? [Arek] - with current implementation it could be dropped, but initially it = was created for multiple vectors. Eventually may be bring back in future. >=20 > It looks that the dev id, qp_id are redundant in all three. We can probab= ly > squeeze it in a single config > --enq=3D(devA:qpX,qpY),(devB:qpX) > --deq=3D(devC:qpX,qpY),(devB:qpY,qpZ) [Arek] - comma separates processes here? So 3 processes for enqueue, 4 for = dequeue? >=20 > And remove config-dev and qp-config [Arek] - not sure about that, initially first use case we were targeting wa= s to do all config in one process and enq/deq in other process which can be= quite popular use case. >=20 > Cumulative sum of all the devices(dev - A,B,C)/queues(A->X,Y; B->X,Y,Z;C- > >X,Y) in enq and deq can be configured in that process. > This will be simple to configure from user perspective and will reduce th= e risk > of setting mismatch configuration. >=20 > And if the enq and deq are same, we should be able to skip either of the > configs and assume that it is same as the other one. >=20 > What say? >=20 > > + > > +This commands will enqueue/dequeue "ops" number of packets to qp_X > on > > devX. > > +Example usage: > > + > > +.. code-block:: console > > + > > + ./dpdk-test-mp-crypto -- --enq=3D2:0:0:0, --deq=3D2:0:0:0, > > + > > +Note. ',' comma character is necessary at the end due to some parser > > shortcomings. > > + > > +To close the application when running in an infinite loop a signal > > +handler is registered to catch interrupt signals i.e. ``ctrl-c`` > > +should be used. When used in primary process other processes will be > > +notified about exiting intention and will close after collecting remai= ning > packets (if dequeuing). > > + > > +Example commands > > +---------------- > > + > > +Use two different devices on 3 separate queues: > > + > > +.. code-block:: console > > + > > + ./dpdk-test-mp-crypto --proc-type primary -c 1 -w 03:01.1 -w > > + 03:01.2 -- -- > > devtype "crypto_qat" --config-dev 0,1 --qp-config=3D"0:0,1;1:0,1;" --= session- > > mask=3D0x3 --enq=3D0:0:0:0, --deq=3D0:0:0:0, --print-stats >=20 > You did not explain session-mask above. >=20 > > + ./dpdk-test-mp-crypto --proc-type secondary -c 2 -w 03:01.1 -w > > + 03:01.2 -- -- > > devtype "crypto_qat" --enq=3D0:1:0:0, --deq=3D0:1:0:0, --print-stats > > + ./dpdk-test-mp-crypto --proc-type secondary -c 4 -w 03:01.1 -w > > + 03:01.2 -- -- > > devtype "crypto_qat" --enq=3D1:0:0:0, --deq=3D1:0:0:0, --print-stats > > + > > +Use different processes to enqueue and dequeue to one queue pair: > > + > > +.. code-block:: console > > + > > + ./dpdk-test-mp-crypto --proc-type primary -c 1 -w 03:01.1 -- > > + --devtype > > "crypto_qat" --config-dev 0 --session-mask=3D0x3 --qp-config=3D"0:1;= " -- > > enq=3D0:1:0:0, --print-stats > > + ./dpdk-test-mp-crypto --proc-type secondary -c 2 -w 03:01.1 -- > > + --devtype > > "crypto_qat" --deq=3D0:1:0:0, --print-stats >=20 > We can probably add a sample print-stats output here [Arek] - Sure. >=20 > > + > > +Limitations > > +----------- > > + > > +Only one crypto vector and session type is possible to chose right > > +now and it is > > AES-GCM test case. > > + > > +Number of descriptors if set by default to 4096 >=20 > Number of descriptors is set by default to 4096 >=20 > > -- > > 2.1.0