From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0089.outbound.protection.outlook.com [104.47.2.89]) by dpdk.org (Postfix) with ESMTP id 475CAAAC7 for ; Tue, 5 Jun 2018 02:38:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Oowgn9wHvT64tbXuoQbNF4Sl0M6eQptKIbB3raMEmOk=; b=m6JgH8q+V0cqnrEvDiQf06sGyU4uAA+ZqYvOhsKb84LMZfpPl3YoX9QUOY6Y5XGnJ6ljSSJgK1+Hi6wib5sa/615e25ThVGKxkwfXTIVlLRWEJR7BTcnZdHUBB9asNLlev5x8LxNgExF6G3awyRcNyAtkC49QeM39svKrZtazTs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; Received: from mellanox.com (209.116.155.178) by DB6PR0501MB2037.eurprd05.prod.outlook.com (2603:10a6:4:6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.11; Tue, 5 Jun 2018 00:38:33 +0000 From: Yongseok Koh To: yliu@fridaylinux.org Cc: stable@dpdk.org, shahafs@mellanox.com, adrien.mazarguil@6wind.com, nelio.laranjeiro@6wind.com Date: Mon, 4 Jun 2018 17:38:03 -0700 Message-Id: <20180605003811.14448-2-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180605003811.14448-1-yskoh@mellanox.com> References: <20180605002732.13866-1-yskoh@mellanox.com> <20180605003811.14448-1-yskoh@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [209.116.155.178] X-ClientProxiedBy: BYAPR02CA0008.namprd02.prod.outlook.com (2603:10b6:a02:ee::21) To DB6PR0501MB2037.eurprd05.prod.outlook.com (2603:10a6:4:6::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DB6PR0501MB2037; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2037; 3:LJKknTG3cM97SY2OGznhQRdPUKkFQEEMC0hAd7l501VSm5IWCJJL5rKOHnX56O6NcI2fB6raTkpiOi11/IvClJW2lFMDjWXcPHFHa50BPhvrSm003p1ETMbxCmeTNUf4mV3jOjjSCwlQnXNJlRdNUEuzrBcyZ8iRoVCMUUNDHphwvxa64Mq0rhv19Ay8BOUGyh2BPUYUPw9kXnewZ1Ny8Wl6HWH3zjtd3HYzGObub034tS/LWPDP8UZOBFT+V6Pu; 25:6RHzfz/VVJV4HwOA/xAGlO/2VdpAgQiA7hGe01ACtgTXBqGx1V7VCfCgN3XNQLGq/ZL3QrN0DvcM2iHW2t7qCgTQ/LFvUeAt52q9+BKGJH0va0Rc0JNwAZLfKsIlKtsxBWq3Ev2LyPAyISBqReBK2Ie0yoHRFQv8iFDqDtqYDBLZTl6HsmccNOODJDTThdoctucsHm+s2u1dhggfbaFqY15SHvg3R1q8GnbvDxjoHDG/gyLdircSraeTGVjxSHMAB/rLHf2U/Bk+IzebRlZH/EWmklVcJ0y43S97CT3qt9A3Bn4LPP2PJeSRkZxBf8bWEajIc/21pRGLOZbGBbqZAQ==; 31:UREmTOzD+84hN1D0DJKCk48kXS1m3UlDys6WiV+KIYAT1q9ZqVaQQvz2/LcKV1oB+eNxhnWlcO71QxMuUb5ydMtgco2dbRGOrJ/s6EVrQVmq8rOVr7Fpj2n4OpZqVQmm9CGXroo7SvITQ8uukTBLuaaBTT7WRIu+6FvO8rkEBRVZZ1ush5zMr7hvYx0XqLXHV9SmJMcwT+oiEDDo/29H/T2q5RcpEkMshmmGT3BzXX0= X-MS-TrafficTypeDiagnostic: DB6PR0501MB2037: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2037; 20:M86rsZioHv8twGvR/KgvEwSL3uz32LEi1LJ0tT+Sxxcp1nmvcYgms5qpmCFsuV1PRCwppK143XPN8ayFzA9ulCJpWuR0V8YzaopvaMXFLh9PA0qF6DdxkzinSNfQdyL06oQAYmHZpkPSK317eii5YBUlXCmnHtpRmZeRjd+nOeLXKp6DW+IQv5twta8KJqNi+GB+1FpRDX/Wvnkr7wm9RrbTHaFRx4RzCfQXd3rVZv/PpT1HnjpK+9s5qsmKdGv8Xa7eCuVCQDWN5gOtzxNOW79OJGpMAonpzksH/2KFgkvcMJvytwnqUONzCovn4mqK2Qas6ks7vcqdbo8PJrdxUtnedZcsuWdS1egQutH6wMIFCA7JmWChuor5ejZJVpkVgR20ZnNx/1t9fZKKj4dJKEFFuKgKSsetU3z80MnmckGfvu5amljuQEkjlR5ZPdztCVKR8K9twVSJYBF2YpQ3yvtq4OPBV4RgBXBolKA8LDmcBBUYqdQtgR5reGFvmXa+; 4:7XNaLH7NtQu8EN1e6xaj8YZj8YcpHQxedrm42xwY5QkRwwJFn/LVGDrh7PdxKbSDxg7kCLOB9yITkw1iygpP2pjfJ8/w0bksZC1AQ+KQSEBQS3D8LNLXdvtHVavM4Ceu73PXXbM002/NG7uXcKmZSJYZwSKf+7rs2tqghdbMZ9eqNIR8tWDD6XcXVrzXTlC+iKO931ZYSSm/hpK7MxAqqrg3cn0Y3+gmY9iBtG4p8elC4xADc5Z4JLr7sIiIaT5uGkO6MQz+F5PlFXk84JlwyQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(6072148)(201708071742011)(7699016); SRVR:DB6PR0501MB2037; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0501MB2037; X-Forefront-PRVS: 0694C54398 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(39860400002)(366004)(346002)(39380400002)(376002)(189003)(199004)(186003)(68736007)(26005)(69596002)(21086003)(2616005)(476003)(4326008)(486006)(81166006)(81156014)(16586007)(1076002)(50226002)(386003)(316002)(53936002)(2906002)(956004)(106356001)(105586002)(11346002)(446003)(86362001)(478600001)(575784001)(6666003)(36756003)(7736002)(52116002)(51416003)(7696005)(305945005)(6916009)(76176011)(66066001)(25786009)(55016002)(8936002)(16526019)(8676002)(2361001)(6116002)(47776003)(3846002)(97736004)(48376002)(2351001)(5660300001)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0501MB2037; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0501MB2037; 23:dVmqv89ZlBD0/VRjw8VD1HKFL2KjtOQH723E98e?= =?us-ascii?Q?NTrjO4Ic5DyZ1xvc8aUc1XpFi7oEdZewnvj/pTtqa6WtjbrPvfI5XNBRPGyl?= =?us-ascii?Q?UcKGavgGYpBJTEG7Cl9JdBjFMjcq0SqWMeKccaBiBWnQQrxfkmxlJvIwEgMA?= =?us-ascii?Q?Vao30aL7zGaKI6ZnY1v/TcS08Xzt19C2wGhqCIUEMMUwqcNWVwVoxeL+lNJ/?= =?us-ascii?Q?rvCzegKQVfRD0UxfuG2O0s8KHrhIOxKq8QFAlGsjM5wf0QVpCNJ5pwFQE+Eq?= =?us-ascii?Q?lfI8BkphK8lzeYOxi4dFnStZgpAaDN4q9B1uC4nrRf9OeiC3B2/1duYycz0Q?= =?us-ascii?Q?27Vvkc3ObsNVsXgbjzZkIlDIettrrFY78vcDuPcoo47Dd21cXBiqCmwCyLL5?= =?us-ascii?Q?SUz5QPCRRqLzMuR+Pu1VPCOnXDevZgSHXhq0CbvB091/wbpNDdW0Gk7qLsN1?= =?us-ascii?Q?aSXLP8z+Tn3jr0IIqfZ6SyMISv2ifoTgS1yCcUyED4L5uQttKT8Tp2VR33JA?= =?us-ascii?Q?3jDZeYcwewNA5mVnn7dKPi05ZMy/gKnZUbWdhITfYmRyh/ifI+UTPm0hQEt8?= =?us-ascii?Q?vPgNFOI4eTLqjV/WsnwmevBzPKb54aa8TqkNqfYDwhdR+aWeQ0vBbIbszDmF?= =?us-ascii?Q?sHswEVSoDEtM5PR/W6wEhEAvmqIraMles0CQkwIesozbXcop5FkQAFvSvswU?= =?us-ascii?Q?Ukveed/4FMYar4tKrEJsbN52enebZ0BamSQi+qVSfi/iA85P8Z28xrKRHSEX?= =?us-ascii?Q?vJ4Vumln2ZoIr7eLipaDHEsLdNYdGS0WCADytmj+W1wFECUNCnaUugkf+klU?= =?us-ascii?Q?lyl57hAS7LL19CntHlhkHjomxSw1gKPII9YSqxE9Knl18ek9TjMRPVnfLKqy?= =?us-ascii?Q?F3nWU5ARcz8itlxTWPvaZPWWXfDA9gtBIceuNGN+qIq2wvDkINW2MYN0GD4v?= =?us-ascii?Q?geZpsEeSnWamEB08MQKFC6bsRp0mAdvlpuZH3GvIgbOR0KUhx66imPR4OCu2?= =?us-ascii?Q?0z8M1HkWDK2YFNMJZlMuFbGmIYjyCQ8OWJKw3WbLDOQ/oqDowaZKEbfHcHxL?= =?us-ascii?Q?br0RcVVVeNuu8hfeRVXGqSGNeBZRM2LDVStQoq4/8tkk3B6XT3hnUJtSCQTv?= =?us-ascii?Q?PsTV/TfFrsFSdXddVum1+CBE3JeHy3Ajx96Q4FY/0hxlARsgSbciWtfbcq28?= =?us-ascii?Q?3aR4bWoUCMJlhkcNwq/Dgv0O8XviU5kOuUPqiJ/FSXFeGQ0k+dFd4JQEtzT8?= =?us-ascii?Q?WcLZ7jcGqcKgkfDQXWfS4hALMwaur63JxUsC7GYQ/WkPdBnO743lKX+rXLol?= =?us-ascii?Q?QhQ=3D=3D?= X-Microsoft-Antispam-Message-Info: cgI/RjTmUTKBYQcBeB1PuQ+w4XD69EtuBysfbEOR3rq8RtY9UsjiGVTfw3jIp29ICqDptPkKUtUQ+sq2hgU8j0tImw65kkZfjuMvzhah1pu4/LoGaccqUPfdowvRyo89WQtFbdfcmxD4Gz1nsAPKsoXs/GE97LWVs55alCmlUKTtv8V/cwLO/1XGVtLpJysI X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2037; 6:T6q48s2VJCMetcCeodxmEzjNSbCkSw5DMqpecxDJrkhSGEpNA2DuYFU1ZSOCs9m9t2JrMAzgLzT94xAKwt7DL5B25AasQ0UrQ0Ty81eranoOGx36BJXFFQ5ZFIgzxp+7cv0rQL5wkGT88+CIBVxI8nz1LJIkqNpbHskWkza10fwKewQdaLaUzMVyZU/zZt9ztTD++ZviNHxSYQG7Xcfm3oMGe2UlXf9jgjYpHM70JZURffxxN4R9fn1XkSrO6FDZ/KgTEKsWCi2VQiUjC2QLpjOw7FZYKvrQBJUOjIrRIVymOVnhaJweJnQIoY5ZKvKAaQUZBQCHQhQB+96v4SYl6Aq40+Enod0CMnwnxx+OgSJmvSw8kJWti3kKRFJM8eUGUp5f5Ggmad1mMAHOcpWuQeTC9JMju8gsSNInC6N4jqoGWlp08UydAhmgOlx9YAY5wk9HIOPulAQilFbNkIUOSg==; 5:dEUE0jV+D0v3TVMSkayawG6WKgx0biQVUIQKQ/cva3IS8DczkL1FhKtzKBjw/ifJ47os3bTYhS8qvtlfSpYyxJE9/xjlJvUQrEGpbCO0TSulOT1PTsBDgF2zy3Sj/wZf5oxCwtLmfYGPT7ZVeGzOx8LcuwqdksD7qX0jGCdxrpg=; 24:5/1UL8A4WMLvw3SKgjGzjQIhD/nbCqU7441tAlA8qC6rnfAL1E6CA1qYQ0G+vNWuReXakGodOGXeH61omm7glLdVLlnZdp3R5xX+zspcvRM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2037; 7:BkGcVo6giYZmURKZHFnVJGEI61fdhUr0kNTRAGpC6jx1qXDckkRyH9qj9hjsDjHXNzFPMJ/tAi+tZ37Dhl1rTDX51gN4468rWXsaCI6UuREKNOKe57npWSSKRaiLe2TMdxS0GqvUL4E5c/Z2wy2LYbKH34CIS9bmYeexUuvKuTcaHIQei98wcZIGA1djdItlzBxETI6Pp6v0GV+nTqE97pLH1D0yXR2n/arKZXSUjFjkdQLK1JsVxifJJnyTdQPG X-MS-Office365-Filtering-Correlation-Id: f90e6fd0-b15c-419b-1d7e-08d5ca7caba4 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2018 00:38:33.5808 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f90e6fd0-b15c-419b-1d7e-08d5ca7caba4 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0501MB2037 Subject: [dpdk-stable] [PATCH v2 31/67] net/mlx5: change pkt burst select function prototype X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Jun 2018 00:38:36 -0000 From: Shahaf Shuler [ backported from upstream commit 1cfa649ba614693165fc4659ace525d8b45bf110 ] Change the function prototype to return the function pointer of the selected Tx/Rx burst function instead of assigning it directly to the device context. Such change will enable to use those select functions to query the burst function that will be selected according to the device configuration. Signed-off-by: Shahaf Shuler Acked-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5.c | 11 +++++++++-- drivers/net/mlx5/mlx5.h | 4 ++-- drivers/net/mlx5/mlx5_ethdev.c | 34 +++++++++++++++++++++------------- 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 911d4cf65..141d46dae 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -834,8 +834,15 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, err = mlx5_tx_uar_remap(eth_dev, err); if (err) goto error; - mlx5_select_rx_function(eth_dev); - mlx5_select_tx_function(eth_dev); + /* + * Ethdev pointer is still required as input since + * the primary device is not accessible from the + * secondary process. + */ + eth_dev->rx_pkt_burst = + mlx5_select_rx_function(eth_dev); + eth_dev->tx_pkt_burst = + mlx5_select_tx_function(eth_dev); continue; } DRV_LOG(DEBUG, "using port %u (%08" PRIx32 ")", port, test); diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 8ecee0212..58713a136 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -200,8 +200,8 @@ void mlx5_dev_interrupt_handler_uninstall(struct rte_eth_dev *dev); void mlx5_dev_interrupt_handler_install(struct rte_eth_dev *dev); int mlx5_set_link_down(struct rte_eth_dev *dev); int mlx5_set_link_up(struct rte_eth_dev *dev); -void mlx5_select_tx_function(struct rte_eth_dev *dev); -void mlx5_select_rx_function(struct rte_eth_dev *dev); +eth_tx_burst_t mlx5_select_tx_function(struct rte_eth_dev *dev); +eth_rx_burst_t mlx5_select_rx_function(struct rte_eth_dev *dev); /* mlx5_mac.c */ diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c index 7ae4e8577..eacea0aff 100644 --- a/drivers/net/mlx5/mlx5_ethdev.c +++ b/drivers/net/mlx5/mlx5_ethdev.c @@ -678,8 +678,8 @@ mlx5_link_start(struct rte_eth_dev *dev) struct priv *priv = dev->data->dev_private; int ret; - mlx5_select_tx_function(dev); - mlx5_select_rx_function(dev); + dev->tx_pkt_burst = mlx5_select_tx_function(dev); + dev->rx_pkt_burst = mlx5_select_rx_function(dev); ret = mlx5_traffic_enable(dev); if (ret) { DRV_LOG(ERR, @@ -1198,39 +1198,43 @@ mlx5_set_link_up(struct rte_eth_dev *dev) * * @param dev * Pointer to rte_eth_dev structure. + * + * @return + * Pointer to selected Tx burst function. */ -void +eth_tx_burst_t mlx5_select_tx_function(struct rte_eth_dev *dev) { struct priv *priv = dev->data->dev_private; + eth_tx_burst_t tx_pkt_burst = mlx5_tx_burst; - dev->tx_pkt_burst = mlx5_tx_burst; /* Select appropriate TX function. */ if (priv->mps == MLX5_MPW_ENHANCED) { if (mlx5_check_vec_tx_support(dev) > 0) { if (mlx5_check_raw_vec_tx_support(dev) > 0) - dev->tx_pkt_burst = mlx5_tx_burst_raw_vec; + tx_pkt_burst = mlx5_tx_burst_raw_vec; else - dev->tx_pkt_burst = mlx5_tx_burst_vec; + tx_pkt_burst = mlx5_tx_burst_vec; DRV_LOG(DEBUG, "port %u selected enhanced MPW Tx vectorized" " function", dev->data->port_id); } else { - dev->tx_pkt_burst = mlx5_tx_burst_empw; + tx_pkt_burst = mlx5_tx_burst_empw; DRV_LOG(DEBUG, "port %u selected enhanced MPW Tx function", dev->data->port_id); } } else if (priv->mps && priv->txq_inline) { - dev->tx_pkt_burst = mlx5_tx_burst_mpw_inline; + tx_pkt_burst = mlx5_tx_burst_mpw_inline; DRV_LOG(DEBUG, "port %u selected MPW inline Tx function", dev->data->port_id); } else if (priv->mps) { - dev->tx_pkt_burst = mlx5_tx_burst_mpw; + tx_pkt_burst = mlx5_tx_burst_mpw; DRV_LOG(DEBUG, "port %u selected MPW Tx function", dev->data->port_id); } + return tx_pkt_burst; } /** @@ -1238,16 +1242,20 @@ mlx5_select_tx_function(struct rte_eth_dev *dev) * * @param dev * Pointer to rte_eth_dev structure. + * + * @return + * Pointer to selected Rx burst function. */ -void +eth_rx_burst_t mlx5_select_rx_function(struct rte_eth_dev *dev) { + eth_rx_burst_t rx_pkt_burst = mlx5_rx_burst; + assert(dev != NULL); if (mlx5_check_vec_rx_support(dev) > 0) { - dev->rx_pkt_burst = mlx5_rx_burst_vec; + rx_pkt_burst = mlx5_rx_burst_vec; DRV_LOG(DEBUG, "port %u selected Rx vectorized function", dev->data->port_id); - } else { - dev->rx_pkt_burst = mlx5_rx_burst; } + return rx_pkt_burst; } -- 2.11.0