From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0042.outbound.protection.outlook.com [104.47.40.42]) by dpdk.org (Postfix) with ESMTP id 724941B1A5 for ; Thu, 4 Jan 2018 10:51:45 +0100 (CET) Received: from CY4PR03CA0009.namprd03.prod.outlook.com (10.168.162.19) by CY1PR03MB2362.namprd03.prod.outlook.com (10.166.207.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.366.8; Thu, 4 Jan 2018 09:51:44 +0000 Received: from BY2FFO11OLC009.protection.gbl (2a01:111:f400:7c0c::133) by CY4PR03CA0009.outlook.office365.com (2603:10b6:903:33::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.386.5 via Frontend Transport; Thu, 4 Jan 2018 09:51:44 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; NXP1.onmicrosoft.com; dkim=none (message not signed) header.d=none;NXP1.onmicrosoft.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11OLC009.mail.protection.outlook.com (10.1.15.0) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.345.12 via Frontend Transport; Thu, 4 Jan 2018 09:51:17 +0000 Received: from b27504-OptiPlex-790.ap.freescale.net (b27504-OptiPlex-790.ap.freescale.net [10.232.132.60]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id w049pInN019077; Thu, 4 Jan 2018 02:51:41 -0700 From: Nipun Gupta To: CC: , , Nipun Gupta Date: Thu, 4 Jan 2018 21:36:24 +0530 Message-ID: <1515081985-19351-7-git-send-email-nipun.gupta@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1515081985-19351-1-git-send-email-nipun.gupta@nxp.com> References: <1515081985-19351-1-git-send-email-nipun.gupta@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131595330778544877; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(336005)(346002)(39380400002)(376002)(396003)(39860400002)(2980300002)(1110001)(1109001)(339900001)(189003)(199004)(22813001)(2950100002)(6666003)(316002)(85426001)(104016004)(498600001)(356003)(2906002)(296002)(47776003)(8656006)(305945005)(54906003)(16586007)(77096006)(36756003)(5660300001)(50226002)(59450400001)(48376002)(97736004)(2351001)(51416003)(76176011)(50466002)(4326008)(68736007)(6916009)(105606002)(53936002)(81166006)(8676002)(81156014)(106466001)(86362001)(575784001)(8936002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2362; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11OLC009; 1:XHfSEmPy0nh00XnTcNbHqxZh0mxkxZ8CIvmoNuVK/Aszzpvn//+8ikdOdpKCK95H0jn6nTTMi7kJBzf9nGZsr8TBzxaAPa+kp6pdHj2T2UJPXz+xC8UgG/e+R5TOTuAd MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3044fa48-3f8c-4bce-baed-08d55358b39e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4628075)(201703131517081)(5600026)(4604075)(2017052603307); SRVR:CY1PR03MB2362; X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2362; 3:RoPAlveq4KlikWTBswXta+RysmZPzpgBgA1kHi4e1XbzOex2U9NcW4Vom02btD8LWlHGXQodm4CRbPSIVU5mCuq6cVfzFpZYwhNI61WtEZzDDRKJKaShOoBO+oalp12Gn9QF18JfwjViYGiobCJDv9W4Fj/dObPUhB4cve4LwMqsXV3UFO7Qsshz4Q4fzMHmtS0T/uPWpPNqYWdupdlwIIRKkCJvnI+Xha4FmxEk/JNvvMME5sEQmoXDcaQFvntQ/mh2Q8BDkIn7amRQkknFzqTrnAF73uubtwbx+gsdq390u39OZvkxJMf++JKedieKg8NMVXPU0T7WTm7cJYwoZCsrnpkQL0QtEZxJZNnwgQw=; 25:bMnUBrKFDF6iK4Wkr1V/9ZNbbsF8dwjnyyvnt71Rm0mm3QTGuOIbGQ+VIVJy+7U2Yb74KJgt0fdGYpUMVAmUc3Th3FszUq5K1b5S6/blJbTXxd2zOCF0PwwF3sdYd4Qzw4hXyqyLHqBN5VgXI0438rqIQX51GCrRiS42HHDeQB05TmjMIHUbrolGCjnI/jb9VK7fPMunQOlCosFnCAriV/5ML4vQjIx3ioZHCgk85cshVgLspLEgX0bkw2sWb/GulFjbBTI5AP8BJiyGH0h5/GZWSk/cwFiypE5qjBSYnB4FyXsijyUkO3t2oUMdarZks1F73r8PGT1yYUIRsx0Hig== X-MS-TrafficTypeDiagnostic: CY1PR03MB2362: X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2362; 31:QixKWmfj1Lyoq+aE7HoT5UpLwBYNnVYctELLFJEDVxIpXSMRgwJ6iDzATc9QpPBBEM8xDwcdZ81jvEAewOqK/CFptHIx/W8f4CeaEZShOyfbjDVE3+V/kTBd7zyG2prnUu8aY9FWXNA2U56CRamNKh2pDowH83EUSB7c1OX3LzpgGd/6E0gWQ8HNFAMhdLkWe46rllz9LOpu8Oyv53Wsdrk07BSsYfzZ8EgOdTx1jS4=; 4:Yiy4jpznbYkuRTMPgZRl3xsrLxAQipjC/G4864xhN6JJ7AEFroXsfqKblq7Gd09sb+EamWL8ToL66qKIab5oIXy77LJonUDQvU//0QR93Z4NgBf0/G+KWfqIwUP6/4y01Hhq2EIAVZKR4vJvTzhpCsUXAFcykboMAdCyHS1Lz2jeBPTZd0jT7R9F3fVu4SIZO2+GR+HEkRmbJIh+/cFzuPzcEHX0kv3575V9S4q9DcohjfMIgPaiRoZy0vJM1lKUVZFaPqScSc5TvZQJns2XRrsvL24z7SvBsfOQG3DmuWLebcTrS1llkCia49W9W/gMmHCaBHtgtQ50F9Xx+Uv5wjKMqFFbDYz0lG/GC+l/m8M= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3231023)(944510075)(944921075)(946801075)(946901075)(3002001)(6055026)(6096035)(20161123565025)(20161123563025)(20161123556025)(20161123561025)(201703131430075)(201703131520075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(20161123559100)(201708071742011); SRVR:CY1PR03MB2362; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006); SRVR:CY1PR03MB2362; X-Forefront-PRVS: 054231DC40 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR03MB2362; 23:8dYIZIsq+IkO5oCBXSbjlVT3HhEnechvLzhXd35gH?= =?us-ascii?Q?k0EQW+LmT6f4zkAepaPlUAwwUnW+ej6NtNGYfU3HBbPRBuzD/Ku7ss2Bv/Jj?= =?us-ascii?Q?TB6396oIQ/IN0JLzr8JRqJjlHaKS5BjbyNC0CKeVW34FH3x/e1j/W4PiLYVI?= =?us-ascii?Q?OB6EXwwUqThBnKs2FYkXJ6um2gwuJItcNBDmLn0m/mvpSqHetiUPBt5Mt338?= =?us-ascii?Q?8x3RPt0o/6D2+fjfc6f39ZwatE7BQ6dz/BmXcb58Ufggs85a1I/9TaEUzPPI?= =?us-ascii?Q?QBgIsyHg2gaTVXUmwB+3p8u19VSzz7mmJLuXjzcf8g/TQZKbnSFplCTkX1WG?= =?us-ascii?Q?DQdTJ/nnw/5xEKifFVqPsFrYi6GFfnD8/Ct/44oN2W9sFh/pHFgKdVo67v7Q?= =?us-ascii?Q?+mlmjQqUfPNvp/9cA+5YxWyKXMwEsQCi7rDrh09aCzwlA8ZW/tfA1k8vO9dv?= =?us-ascii?Q?HT2wyY3vh8Luf5TDiH0Jsr1KiiTu5VyYcTUPt2ZbE8CA10p3g2O3YQuYWgYa?= =?us-ascii?Q?3ncp/4otmMUVoTIP4m0PWyJXrs/1KDPCNsOdeNwfgnTvky5/6I0GdL5Xy6Mf?= =?us-ascii?Q?cC1ne/OU555lIwde88ICwZsMvpVXZ+1tuYsrvvnETjAm8GYDJagrhJNK/Ef5?= =?us-ascii?Q?b73uhEciMJQIc77dW9t3ujrd4ghVfxQLUuprQS9dBcYV2wxYT7WUKmu+xT+5?= =?us-ascii?Q?Z/gecKqmPkw1dT1ruXRWYIfd3JoHMO34C/8Q6sgAH7K7gZbwVQ2k4C3BqGhG?= =?us-ascii?Q?LVHP2einpR/ze+ttG7wI/FI4sdiAa0dYBQk9Lqvg9QQtH0TRJwVg/EM50Zcb?= =?us-ascii?Q?snV1WTnzuwHcbOLFxTmj13vysEdYaBCU6meLHs+AMvMMPncPo2k5p7EBYzfl?= =?us-ascii?Q?+yBglv4aCDGh5+qu9vO3kBlIHWnCeL1ZNfLYofOIi6qUHQ3JvuIegtj5WHj0?= =?us-ascii?Q?oN6njmFN+sqS5/SPRE8tBC5sJC9jiuTR1Tvv87r3ORG+AY3Wq6djbDZNa3qu?= =?us-ascii?Q?Ts+4KEvZJ/K9KCTViN8yNhKlAUX2RuEw0y1JCNJMg64QnSIsymUG4vv3gKmH?= =?us-ascii?Q?VIUa9BzLQQahrJOzJnM6X2Aye7+JsGJVol8cRpL7Taifh9ujqRMnZ6F+1WXN?= =?us-ascii?Q?KNP+Wedq68FndbUr/Cn8Rv+j9tqqmsabklk0B7cb2ZIKvLP3Cvdtj1opGT2Z?= =?us-ascii?Q?SJLuHKwJXir/Lo=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2362; 6:6liwJ6ztUrraL5t8hzUMF4oeJErbgmuyGlv59JTdLVj/qd07FVPLHkIKADXjvVJBlgYtXTLZT9ZMGNr7ZkElBhbgY8F2gxbwErG2E75cirkpJPXeMXoIz14thaJOYWfOrUpJie2uUWTn8w+N9MSWdZbqT916QYugxNY0aMB9wh28A7KFw+NSxZ/Zn8i6MYGsiab0FUAhjR7OYlkWWyJatKIz3RIbS8+yUl1tah7msAOPGzBogSm1UJ9ACMI49DtKKrAVVN/N0ch0SEIvVHs8r12hdGYW2DVkYDb3lKKysrm7C+kzvN7dgLbrOEYUIywvlMAWJBskNdDuUoYX2NMFqt5kJdtPa8xNGrKZ2BhG3mM=; 5:EedBLVGPJxmzLFgWavFvZIR46h4en8AbBi+oVkQb0iT7IrgngNRlk7bsTvprOCsf20FR5rVlaOijaCd96x84duNoUb18ZvAeFUMCA8yZW6dS6IlX41Zq5QrZ0op2UwS4ole4K5QUQqMqStJ+wxdfXL9pDOzX2U2flDsmLGhtTgI=; 24:dQ993dcGNy/+MUVVLWnmjg15qQRIyO8k0CytlvgNNSsA2jMTD057VpHPbFHHR9ThAvmJ2RrEwOSqzVt9MfoyqWGjyUUa5afjaZQnyjG1yVA=; 7:3A90SxvlHJU15KcOmpRI32cZsWNurt/Mq5alz31NBWgjg6N4YU4uc1NmUcrO2NtM3BMCAU5V7u4y3VseAOhn5WVhgSA6Nw3KClyuE/8laA9AsqPEEqKVbuUBVwnigkmXuzYZsG4wqD7h6A5oh1nUw6GqzuqIHhYOk6lzWbod+HGEpfQx3hiAPBtiDQ57cLggddQCUcuJ6rE9uNvfQR3DwRFt7sW0aL0IIbu2iz3MqIo/86v0IgW/hZ10i+3n1ZLd SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2018 09:51:17.6516 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3044fa48-3f8c-4bce-baed-08d55358b39e X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB2362 Subject: [dpdk-dev] [PATCH 5/6] bus/fslmc: add flag to configure DCA in QBMAN multi Tx 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: , X-List-Received-Date: Thu, 04 Jan 2018 09:51:46 -0000 With the current QBMAN multi-tx API, we need to create separate enqueue descriptors for each of the packet which is required to be enqueued to the hardware, once we support Atomic Queues (with DCA) in dpaa2 drivers. Creating enqueue descriptor for each packet is costly and have significant performance impact. This patch introduces a flag parameter in the QBMAN multi-tx API, so that DCA configuration (and later on ORP/ODP for ordered queues) can be passed using flags and be updated in the EQCR using this flag. Signed-off-by: Nipun Gupta --- drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h | 5 +++++ drivers/bus/fslmc/qbman/qbman_portal.c | 7 +++++++ drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 1 + drivers/net/dpaa2/dpaa2_rxtx.c | 6 ++++-- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h index efa4861..da0c694 100644 --- a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h +++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h @@ -588,6 +588,9 @@ static inline int qbman_result_is_SCN(const struct qbman_result *dq) /* volatile dequeue command is expired */ #define QBMAN_DQ_STAT_EXPIRED 0x01 +#define QBMAN_EQCR_DCA_IDXMASK 0x0f +#define QBMAN_ENQUEUE_FLAG_DCA (1ULL << 31) + /** * qbman_result_DQ_flags() - Get the STAT field of dequeue response * @dq: the dequeue result. @@ -971,6 +974,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d, * @s: the software portal used for enqueue. * @d: the enqueue descriptor. * @fd: the frame descriptor to be enqueued. + * @flags: bit-mask of QBMAN_ENQUEUE_FLAG_*** options * @num_frames: the number of the frames to be enqueued. * * Return the number of enqueued frames, -EBUSY if the EQCR is not ready. @@ -978,6 +982,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d, int qbman_swp_enqueue_multiple(struct qbman_swp *s, const struct qbman_eq_desc *d, const struct qbman_fd *fd, + uint32_t *flags, int num_frames); /** * qbman_swp_enqueue_multiple_desc() - Enqueue multiple frames with diff --git a/drivers/bus/fslmc/qbman/qbman_portal.c b/drivers/bus/fslmc/qbman/qbman_portal.c index 314a70e..d3023d9 100644 --- a/drivers/bus/fslmc/qbman/qbman_portal.c +++ b/drivers/bus/fslmc/qbman/qbman_portal.c @@ -518,6 +518,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d, int qbman_swp_enqueue_multiple(struct qbman_swp *s, const struct qbman_eq_desc *d, const struct qbman_fd *fd, + uint32_t *flags, int num_frames) { uint32_t *p; @@ -560,6 +561,12 @@ int qbman_swp_enqueue_multiple(struct qbman_swp *s, p = qbman_cena_write_start_wo_shadow(&s->sys, QBMAN_CENA_SWP_EQCR(eqcr_pi & 7)); p[0] = cl[0] | s->eqcr.pi_vb; + if (flags && (flags[i] & QBMAN_ENQUEUE_FLAG_DCA)) { + struct qbman_eq_desc *d = (struct qbman_eq_desc *)p; + + d->eq.dca = (1 << QB_ENQUEUE_CMD_DCA_EN_SHIFT) | + ((flags[i]) & QBMAN_EQCR_DCA_IDXMASK); + } eqcr_pi++; eqcr_pi &= 0xF; if (!(eqcr_pi & 7)) diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 5e52390..32e19b7 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -699,6 +699,7 @@ while (loop < frames_to_send) { loop += qbman_swp_enqueue_multiple(swp, &eqdesc, &fd_arr[loop], + NULL, frames_to_send - loop); } diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c index 9b66bd3..6c4fddb 100644 --- a/drivers/net/dpaa2/dpaa2_rxtx.c +++ b/drivers/net/dpaa2/dpaa2_rxtx.c @@ -787,7 +787,8 @@ void __attribute__((hot)) loop = 0; while (loop < frames_to_send) { loop += qbman_swp_enqueue_multiple(swp, &eqdesc, - &fd_arr[loop], frames_to_send - loop); + &fd_arr[loop], NULL, + frames_to_send - loop); } num_tx += frames_to_send; @@ -803,7 +804,8 @@ void __attribute__((hot)) while (i < loop) { i += qbman_swp_enqueue_multiple(swp, &eqdesc, - &fd_arr[i], loop - i); + &fd_arr[i], NULL, + loop - i); } num_tx += loop; } -- 1.9.1