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 113B9A04B5; Wed, 9 Sep 2020 18:21:50 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E4C601C0C9; Wed, 9 Sep 2020 18:21:49 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 19AE31B9B7 for ; Wed, 9 Sep 2020 18:21:47 +0200 (CEST) IronPort-SDR: N5mNoqi1xGD1jshmtIE6wXcCrifANnfUuAFPFNKwsF/2P/JP8dY/M0aaoRpLCtcC7Y16K9Cw0H jCrUFdzHfgmA== X-IronPort-AV: E=McAfee;i="6000,8403,9739"; a="243174636" X-IronPort-AV: E=Sophos;i="5.76,409,1592895600"; d="scan'208";a="243174636" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Sep 2020 09:21:33 -0700 IronPort-SDR: m4VgPo3znCtRd3w9LR+BN/HnSDens6ZteZJov+5lKPh8yBEJ+V67U95tSMuCp0qvbnyEKopsaH 77siqQpVhCtQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,409,1592895600"; d="scan'208";a="449258889" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga004.jf.intel.com with ESMTP; 09 Sep 2020 09:21:32 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 9 Sep 2020 09:21:30 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 9 Sep 2020 09:21:30 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 9 Sep 2020 09:21:30 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.175) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 9 Sep 2020 09:21:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZOCdFKHuapshItDG3AZgxic6wDvfEDwTYol0Uc4DnAab1QEyCIiH5c5N6NkyE08MFlBHDvv6pfnVCdVzizEsM6DR5osDab6oD3ghAmR63Mn/jL9ASoHZZ1s5yAZAtcfo7mYoDPLJtek/pX+SZxs76N1EJqQ1zpcwnip8iVH69OpZf/X54qD6fgdJwtvBHo06bUApJw25g4AUZu8DGGZclRJ2Vjzj8nWzY938aXefKAT31A7uxzVmc6RimcY3MPOjn0w9k6INTaIKBZ9fyFgXx4X42KLmwtE8njr5NHybXRyM+LMvk65Ku/taaOOgXXxGzdarxHmVEKLAniUoT3t5Eg== 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=fVpG0JKAozbvMZgvpcAwrmyQFV7Xz6HUC2V1O5QzRFQ=; b=e9SG8VP7Qek8H1nWGRdRvrewcj+j6TQF9XIKhgM4JAK4puw+q2pSqzdg0WTnn5Oz1gUhYe1XHiWQZgyX1x2ww4a56f548AAualWHW1C911DTXXORAvuCvUU//018q8uWQxz6m9l+7ZGk8nG52n6eG7FD0AXYIGvPkJ8fdk6e7WESHS7afN/vj3C77lDcimaWBixLynA3I8stPkKycwmlNuS1V3ydkmrM0RkZaW6iOz/ubIGk0D5/ql9taUkiPWGww4O9WonldfOtYrRAUhsML1GjRm0XXPHmPWujshJEjy5XP2VL1kIMV/AfQZ3ALp6RMFprYS3zqZUs7GZsWWqNyw== 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=fVpG0JKAozbvMZgvpcAwrmyQFV7Xz6HUC2V1O5QzRFQ=; b=SLEC+23kR0RXATA94jYTdF5x4HMC6sUt6U2Lptg6uWIk3MCdF+A6k+UCbMBIMPNaIBoHCVZPbHpCe3G5YD1tH/imsvvQlvS9+11nilAoicsOaAu5k982dgbjTf4Z+Nv+jLrc6+eymd93W8xcWNzomREj4uKOftPvdLl3a3ao/JU= Received: from MWHPR11MB1838.namprd11.prod.outlook.com (2603:10b6:300:10c::11) by MWHPR1101MB2077.namprd11.prod.outlook.com (2603:10b6:301:4d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.16; Wed, 9 Sep 2020 16:21:26 +0000 Received: from MWHPR11MB1838.namprd11.prod.outlook.com ([fe80::34c5:6550:a098:209f]) by MWHPR11MB1838.namprd11.prod.outlook.com ([fe80::34c5:6550:a098:209f%12]) with mapi id 15.20.3348.019; Wed, 9 Sep 2020 16:21:26 +0000 From: "Gujjar, Abhinandan S" To: "dev@dpdk.org" CC: "Doherty, Declan" , "jerinj@marvell.com" , "akhil.goyal@nxp.com" , "Vangati, Narender" , Honnappa Nagarahalli , "Ananyev, Konstantin" Thread-Topic: [v2 2/2] test: add testcase for crypto enqueue callback Thread-Index: AQHWhsTe1Af8thqYBEWrNgxXpShJpqlgfOrg Date: Wed, 9 Sep 2020 16:21:26 +0000 Message-ID: References: <1599549061-195091-1-git-send-email-abhinandan.gujjar@intel.com> In-Reply-To: <1599549061-195091-1-git-send-email-abhinandan.gujjar@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=intel.com; x-originating-ip: [103.5.135.70] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3f81a36d-77f5-4b38-d6d7-08d854dc66d6 x-ms-traffictypediagnostic: MWHPR1101MB2077: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2887; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: I0ApBONRmVDcuElHly9fSpdWD0Enb5zJOdlStx3jU3bCUOiBexMbczgKXmKpuwJWSs8eGQeDBshMfs8gxYBjJ11WZifKFFqqgxff0zMCG53CoeSYX0hIBPpKv5A44OLSeVH/9MIgKv1yLSrW1GjMZNird597SncGEKsZyhEJCPdQ2k1hf9yp6YdRGDqlS4G2hWRcpAORqWNqewoDaZ7/521wee5XqYySZx3wiQ8/xXb1pSC74I8RGCGCZY8aKl9XPXgD+0KrCJ47in96PkRYOApJQKuhVw7DZwvskblj/4OtsGm7b+YaKOvFIK0k2CMT x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR11MB1838.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(136003)(376002)(366004)(346002)(39860400002)(186003)(316002)(53546011)(26005)(55236004)(6506007)(4326008)(55016002)(9686003)(33656002)(6916009)(8676002)(2906002)(54906003)(107886003)(8936002)(7696005)(71200400001)(52536014)(66446008)(83380400001)(86362001)(66476007)(66946007)(5660300002)(66556008)(478600001)(64756008)(76116006); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: F8wQiB9tEfp6EKk1uj881ZGux6LGyPeSPdTaF4xX7Rc/89mVPB+IHbb0olS/iKWOMf+PCrkBQTXSCDS82+TXMhBLY1mqgIzD/Oj+ajI+lNn/kYXQpJ2odxwzbfACe+yJnV/YOmN+OQlB8gEw36/o4nqDQKfRd9HBdtjiq5NHlQ5hUnU1Bq3/2m4hJ14bWt0MzevnP1b/2L/3fo2d1rp5y3J3EyUSZmf0jAAUV61qgLIpd62azQf7djWjzDezdqTtv5GyqWSOIUeALTw+Z82ycoH7nHkXmtqfUwmermb9MKQQiA974ZVUg5O2Z0aauQb+p/KzgBV+PO5GWVDT73yJdGS09dBB+1FpRzC5BBnfaEgnwM1T+oVTTba8Y6D7BEapNgO8tvh7XlUrW8Afw4d+RS3oTOLmZJgKALnCGX+gFiJaJq2dFOpIZ1TKYW5o5uAZmWCbPb70UZTJ+lE1wMv9DoE06nalPyHL4GRQyblO+lpCALcq8haHwPQfbdjlk0a99AMu9qnFn+h52zBZUu+nn0x4kfzvW99TDb9QWnp0AXzZukegRXTfsTER2RS83MgrdaAadKrfN7H6zABDShiPCCcgSK+fq/yLnd702sEQ9WsK0OlfE9OFH39p/2wLY+fg1gBwPCU3lNdawgwvsmJELA== 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: MWHPR11MB1838.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f81a36d-77f5-4b38-d6d7-08d854dc66d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Sep 2020 16:21:26.5770 (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: xbD9A8wIsCVFOqvH6vRisulzSPDGjl0urQMkCzXJM3CovZSlhBTS5rn5jr9EvIKGtvXZbG2QeQYfwZ+2jxEJHKPIClnLWpqgkgcrRH3cPdc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2077 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [v2 2/2] test: add testcase for crypto enqueue callback 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" +Konstantin & Honnappa > -----Original Message----- > From: Gujjar, Abhinandan S > Sent: Tuesday, September 8, 2020 12:41 PM > To: dev@dpdk.org > Cc: Doherty, Declan ; jerinj@marvell.com; > akhil.goyal@nxp.com; Vangati, Narender ; > Gujjar, Abhinandan S > Subject: [v2 2/2] test: add testcase for crypto enqueue callback >=20 > The purpose of this testcase is to showcase the cryptodev enqueue callbac= k > usage with RCU support. >=20 > Signed-off-by: Abhinandan Gujjar > --- > app/test/test_cryptodev.c | 123 > +++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 122 insertions(+), 1 deletion(-) >=20 > diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index > 70bf6fe..735f501 100644 > --- a/app/test/test_cryptodev.c > +++ b/app/test/test_cryptodev.c > @@ -17,6 +17,7 @@ > #include > #include > #include > +#include >=20 > #ifdef RTE_LIBRTE_PMD_CRYPTO_SCHEDULER > #include > @@ -11889,6 +11890,123 @@ struct test_crypto_vector { > return 0; > } >=20 > +#ifdef RTE_CRYPTODEV_CALLBACKS > +static uint16_t > +test_enq_callback(uint16_t dev_id, uint16_t qp_id, struct rte_crypto_op > **ops, > + uint16_t nb_ops, void *user_param) { > + RTE_SET_USED(dev_id); > + RTE_SET_USED(qp_id); > + RTE_SET_USED(ops); > + RTE_SET_USED(user_param); > + > + return nb_ops; > +} > + > +/* > + * Thread using enqueue callback with RCU. > + */ > +static int > +test_enq_callback_rcu_thread(void *arg) { > + uint16_t thread_id =3D 1; > + struct rte_rcu_qsbr *qsbr =3D arg; > + > + /* Register this thread to report quiescent state */ > + rte_rcu_qsbr_thread_register(qsbr, thread_id); > + rte_rcu_qsbr_thread_online(qsbr, thread_id); > + > + > + /* DP thread calls rte_cryptodev_enqueue_burst() and > + * invokes enqueue callback. > + */ > + test_null_burst_operation(); > + > + /* Update quiescent state */ > + rte_rcu_qsbr_quiescent(qsbr, thread_id); > + > + rte_rcu_qsbr_thread_offline(qsbr, thread_id); > + rte_rcu_qsbr_thread_unregister(qsbr, thread_id); > + > + return 0; > +} > + > +static int > +test_enq_callback_setup(void) > +{ > + struct crypto_testsuite_params *ts_params =3D &testsuite_params; > + struct rte_cryptodev_info dev_info; > + struct rte_cryptodev_qp_conf qp_conf =3D { > + .nb_descriptors =3D MAX_NUM_OPS_INFLIGHT > + }; > + > + struct rte_cryptodev_enq_callback *cb; > + uint16_t max_threads =3D 2; > + uint16_t qp_id =3D 0; > + struct rte_rcu_qsbr *qsbr; > + size_t size; > + > + /* Stop the device in case it's started so it can be configured */ > + rte_cryptodev_stop(ts_params->valid_devs[0]); > + > + rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); > + > + TEST_ASSERT_SUCCESS(rte_cryptodev_configure(ts_params- > >valid_devs[0], > + &ts_params->conf), > + "Failed to configure cryptodev %u", > + ts_params->valid_devs[0]); > + > + qp_conf.nb_descriptors =3D MAX_NUM_OPS_INFLIGHT; > + qp_conf.mp_session =3D ts_params->session_mpool; > + qp_conf.mp_session_private =3D ts_params->session_priv_mpool; > + > + TEST_ASSERT_SUCCESS(rte_cryptodev_queue_pair_setup( > + ts_params->valid_devs[0], qp_id, &qp_conf, > + rte_cryptodev_socket_id(ts_params- > >valid_devs[0])), > + "Failed test for " > + "rte_cryptodev_queue_pair_setup: num_inflights " > + "%u on qp %u on cryptodev %u", > + qp_conf.nb_descriptors, qp_id, > + ts_params->valid_devs[0]); > + > + cb =3D rte_cryptodev_add_enq_callback(ts_params->valid_devs[0], > + qp_id, test_enq_callback, NULL); > + TEST_ASSERT_NOT_NULL(cb, "Failed test to add callback on " > + "qp %u on cryptodev %u", > + qp_id, ts_params->valid_devs[0]); > + > + /* Create RCU QSBR variable */ > + size =3D rte_rcu_qsbr_get_memsize(max_threads); > + qsbr =3D (struct rte_rcu_qsbr *)rte_zmalloc_socket(NULL, size, > + RTE_CACHE_LINE_SIZE, SOCKET_ID_ANY); > + TEST_ASSERT_NOT_NULL(qsbr, "Failed to allocate memory for > qsbr"); > + > + /* Assign QSBR to cryptodev */ > + TEST_ASSERT_SUCCESS(rte_cryptodev_rcu_qsbr_add( > + ts_params->valid_devs[0], qsbr), > + "Failed to setup RCU QSBR for cryptodev %u", > + ts_params->valid_devs[0]); > + > + TEST_ASSERT_SUCCESS(rte_rcu_qsbr_init(qsbr, max_threads), > + "RCU QSBR init failed"); > + > + /* Launch a thread */ > + rte_eal_remote_launch(test_enq_callback_rcu_thread, qsbr, > + rte_get_next_lcore(-1, 1, 0)); > + > + /* Wait until reader exited. */ > + rte_eal_mp_wait_lcore(); > + > + TEST_ASSERT_SUCCESS(rte_cryptodev_remove_enq_callback( > + ts_params->valid_devs[0], qp_id, cb), > + "Failed test to remove callback on " > + "qp %u on cryptodev %u", > + qp_id, ts_params->valid_devs[0]); > + > + return TEST_SUCCESS; > +} > +#endif > + > static struct unit_test_suite cryptodev_scheduler_testsuite =3D { > .suite_name =3D "Crypto Device Scheduler Unit Test Suite", > .setup =3D testsuite_setup, > @@ -11943,7 +12061,10 @@ struct test_crypto_vector { > test_queue_pair_descriptor_setup), > TEST_CASE_ST(ut_setup, ut_teardown, >=20 > test_device_configure_invalid_queue_pair_ids), > - > +#ifdef RTE_CRYPTODEV_CALLBACKS > + TEST_CASE_ST(ut_setup, ut_teardown, > + test_enq_callback_setup), > +#endif > TEST_CASE_ST(ut_setup, ut_teardown, > test_multi_session), > TEST_CASE_ST(ut_setup, ut_teardown, > -- > 1.9.1