From patchwork Thu Mar 9 14:37:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Madalin Bucur X-Patchwork-Id: 737036 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3vfFpM6622z9s7k for ; Fri, 10 Mar 2017 03:14:35 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754959AbdCIQN6 (ORCPT ); Thu, 9 Mar 2017 11:13:58 -0500 Received: from mail-by2nam03on0071.outbound.protection.outlook.com ([104.47.42.71]:8656 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754704AbdCIQNz (ORCPT ); Thu, 9 Mar 2017 11:13:55 -0500 Received: from BN6PR03CA0059.namprd03.prod.outlook.com (10.173.137.21) by DM5PR03MB2955.namprd03.prod.outlook.com (10.175.106.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.961.14; Thu, 9 Mar 2017 14:37:56 +0000 Received: from BN1BFFO11FD013.protection.gbl (2a01:111:f400:7c10::1:133) by BN6PR03CA0059.outlook.office365.com (2603:10b6:404:4c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.961.14 via Frontend Transport; Thu, 9 Mar 2017 14:37:56 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1BFFO11FD013.mail.protection.outlook.com (10.58.144.76) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.947.7 via Frontend Transport; Thu, 9 Mar 2017 14:37:56 +0000 Received: from fsr-fed2164-101.ea.freescale.net (fsr-fed2164-101.ea.freescale.net [10.171.73.197]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v29EbC5p031838; Thu, 9 Mar 2017 07:37:53 -0700 From: Madalin Bucur To: CC: , , , , , Madalin Bucur Subject: [net-next v2 09/10] dpaa_eth: enable multiple Tx traffic classes Date: Thu, 9 Mar 2017 16:37:04 +0200 Message-ID: <1489070225-7891-10-git-send-email-madalin.bucur@nxp.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1489070225-7891-1-git-send-email-madalin.bucur@nxp.com> References: <1489070225-7891-1-git-send-email-madalin.bucur@nxp.com> Reply-To: X-EOPAttributedMessage: 0 X-Matching-Connectors: 131335438765806897; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39840400002)(39860400002)(39380400002)(39410400002)(39850400002)(39400400002)(39450400003)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(77096006)(105606002)(48376002)(36756003)(8936002)(50466002)(50226002)(85426001)(2351001)(69596002)(8676002)(54906002)(81166006)(8656002)(189998001)(86362001)(53936002)(38730400002)(5003940100001)(106466001)(104016004)(50986999)(43066003)(76176999)(4326008)(2906002)(356003)(33646002)(6666003)(2950100002)(5660300001)(6916009)(47776003)(3450700001)(110136004)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB2955; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD013; 1:3wb+nOpbQl4iO0PpUEa1wWuBI2fUCiOfFbzcp6qhKynbWo4H4UBtsSjQAm7//cMfvefUticGfolb+mLdVC2LfiY/5aAcL3FwVmR7f0L01HD++iUUglx26UTUj49UN+zcIFXZOvdeGIVzhFwePA0uuptFx7nuhS4jZKtoNwD9qnQRPNoGHND5sNdIfkMnNG5+VhhC/a8Xdn5qSX206MkWDzvQWXqN31vLettoSu815vghc9NWNJrtiCrgD2bSWRb4cvC44+PdJI4wI44hDVN8cREnCBJ0a+BseOz/bfBeWOr3vSMeQ8LyreKVJ+bvJUvilQ/WcRDnqxw3yX97D6IERsOt5lWShYxRQ3geO47Y2BDK9a+ph1Kg+4OHr40tb/atuRB8nYszEM7YMDTTFM7ZdbSLMwbbk1l2k4t7EHo/cWlz2LXhiD+LlSrLk6SiY+rTNQkipy1B/5+DnuHzXE4TPJfW6unS/V7Ox0VfIyhcYugkjyaMniwPNyEDwho6nebT4femKjSsSeYRuNc9u9k2eFjBZOR1WC4ZwRUYr5H1uJQGmGt7SYguDrG91phR2+yb7vlnuKuKeUpuq+QBH3PwU4TttOJQoLt4xw2SaSAV4jA0CfynsCfVRp2cL6xWcFJZeZ/m/1MZ+WTuITS8mevSLgg4rwknFlIBorOxV5mvUlU2HCZl5ywS+Jd7ycv1n5v2rHHKq7ZbwG2ttBK+ZjfKag== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 038fa974-c199-4b6e-f3d2-08d466f9e082 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DM5PR03MB2955; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2955; 3:vXwsL9/OtZU5+6EyqQCMBI+6gUhgdbe7Mo2lN868+KGqMJt7yXJdzk9jN+9uLcg4W7ZAfyShTDiu9pjXGHyYi7LyYCymgAnNy9dKPO4ikrEimeRnv60RMHw0Fkk8spFEuEb5XCBaXirKPu4Xnqk4SRTKfAlT+oEblQue31aPXgJcC4R+77nYuctD45Bxbc4uTvg9KF3uH11uO3U9uTs7jrMOVBvIBO1TK/DBjLonFKZlKTTz8B1Pw28E+87oeyw8FIkcLMoQgLsTGA2mtbpQVShmLNZp2nJDFhxtO5num0FkOOc2EfVU/44cmEUp8QUJ3OF9pqLtig4+6Qo395ek/DqRSH6iHQolyxMDGYIElA9ncmGGqwTbLyo+4vJolOqN; 25:ik5k5jwq0/CGi5kyEJM7zA4NIMNL0kh+5CqEDeeqjG07sXPtKRUcmGvhXG/wxxe6wvNZf+Bwg4ps+59/GyMSo3jSonlnbTzOscKE3DEwHKiOB+fXnAfZslRZ6psUG2F+LRkcEk7ShRYVwJkH7cyK6l4UyVYHKnMiOgPVWeOs/glg3I5ZFIOVIfoHlU4WHzpYgjfHhgMgQCio2aHcnAq9ZxV+0waIbsh5To/Niosd7U5x+uct6Grkx04oL6n57LfUZo3lpCznY4To5uYm0It81IADSgWaD5YSnDekw4KetRIh0pLXBr7D5KkJDvjpqGaONW+ukK0xYSUFGRhB8iFz1s8TRcAxPkDmLiRTUdWUlBrDTYnqmqDsgPjpf2pBS9bxHldaIzgp9oBvy0UmkmR2DrH1IZ5EhCKcSQVRNFyrPq6RJd2l/9iRw49xZQU9ptjZfohOAOezELEJR7L00eswCQ== X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2955; 31:3JcyC5hOVn60cG1eUyIpWGjkwLlzkwPFPjUbwf7MOeaN3xc3nVSShAf4M8mMP4bRbl75sy32Eho4SeNlhFkn2BHUX34uAWUzF+2L5e9bo2k4NOv3qXDPQFYikBXVkgKL7gmTMBTChOnkZLy+8BIzcdbaYB0pIigT6l7Ottuh32zozZmrnasId1wQRv1ThyzE9d2rs/PD77AY/W67IG9BJoe2/mpCO1zp+lrSvdPXUDYdBOdjrsVYom5DpRPUATzJzNZRclbnXSg+1Wa2Or9D0A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13024025)(13018025)(13023025)(8121501046)(5005006)(13017025)(13015025)(3002001)(10201501046)(6055026)(6096035)(20161123556025)(20161123559025)(20161123565025)(20161123561025)(20161123563025); SRVR:DM5PR03MB2955; BCL:0; PCL:0; RULEID:(400006); SRVR:DM5PR03MB2955; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2955; 4:AxHMJtZVldCUxTg649zFT8m6UJgJOOB6OCXHL8lcTJNdd/AhQXHHxcrnPzFS3qFKiwG9eMgUZS/nbu27lBCbn3xJ+bpgw8WU1Ea/5CdlGmM6OLXDdttdl2LNYagVg/CU15kIPbyk/gfA3BmtBGBtPswLybAmcuIl3thbu53qPZZAMpAk1rbKJyHwkeJ5WURJjU7BNzwj2uzfu9dolJeT1kT9rfGoPQYmyDdQGwMNUFR5ktC4grOse/JaXNEXajjXCdcKZc/L8VeAiUn/w1UdXm4luPlyekfikBHTQhjZXTfkuG1nEIQGR2AUQtBca9Uqb4ZEF02tBGJ3A8pbYR7G2ceJlf6BoFl37FeJzfwikrteRSjixwLRybqkLtgtvfiE+G807A5Q1g6WqpqKugZcKlFlG2+yTMb/11PSj0pq682xgF9OiUBe3pLi/oDPJEqv6v7hmZ3c7C3HfBr0FTayNT9AcBSlRKrerLCONFx40RYAgWNZ7bC2rWhkUsFgnrbcp1PenTcikOiqiWhdXKvRGP79rk+byWZUc/AsgHRiiguVR5a5D80UeOwBWNvlXYaJybAjlOrwecb9CxYkj0Wme1QrVBWeeE26Sg7rbP/BTfeSsaXpcOseDrACArejFu3J/jlxxaWGiayWxeUKH99GxeuF7oQSHRiR5A7lzXIzJ3UzC2ue8hBWVmCnBr8UC3hmZPnOh0+nMjVaetU0AQfPrAULNoNRstnrtsbk55vZ2IcTWgB8k1a+zki/kT6PNuKk X-Forefront-PRVS: 0241D5F98C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB2955; 23:O+Mvf5g3R4L9l+HihQfRSR+/O8i9B/D4Emzl5sU1O?= =?us-ascii?Q?sfHh6FoPCDfWCbe0bRVIeKw/5rtwj4N5/Eocp15BDEnfY3QPKDuF93dTZFQL?= =?us-ascii?Q?9NYR/5xyXS3gR0xlnxvsuHHoo52MbjtfizQWV+MNiV/fMrtqIzTooqvxa4O+?= =?us-ascii?Q?fBewmzN5Nd257pXpF2v5pVx4DY5rIuKpOglOctLboinbyKGIWTRvHR0pgtDD?= =?us-ascii?Q?sc8m1xr0f1ezR8mO2QXczboF+ompePmQDUaNYVF8/o3wXE2LWkGtFXsnknCU?= =?us-ascii?Q?oEvP36fAgCt4rbO2TnMAQf3bT5J4wz8ZexTJl9ne0lp8SJhAQ69TooqfSy3k?= =?us-ascii?Q?ftCuApkMd4+wfR0l5tqCvXt87gUTbCBYCXr+lmOljok4eu+CYl5t7nGE+Obd?= =?us-ascii?Q?pyT1u3XmfFfFutd4fSGVo2dbiSVUhbWcdss/2990FLZTeB48QCGH6dCka4W/?= =?us-ascii?Q?FfI0LFhj3MlKk6sbV6aj1d5fdwSBGKUCthorDzqS5DhRjfOrgfvYJkLfccQk?= =?us-ascii?Q?KJ586TaROQ3maIz9FB/clbsk80HSjEkSxPt2DyGIbPmzAW6USLhiSNOBnw6A?= =?us-ascii?Q?uni1ngX3REnlLUvZB/R+ZpH/iCtpTM6a9hs9umPlaT4yXUsICIGeX6pWliZR?= =?us-ascii?Q?i+3FmmCQjQe3iRLihivfO3Hsl7GtKzkfDx5PGgUKaJZsSOOxxn0J6Z5sxEKu?= =?us-ascii?Q?fXlh5UoQE/AbbkUNXVpDHsPZN+KMl+y2x8rv256XlC3D0LzB81OTI+TqZWGy?= =?us-ascii?Q?LDyfqqkIlg9bRlT8hwnyI582ItznLe5vuGzo1JJsxvNajVVS7G/h9HnPVM6L?= =?us-ascii?Q?pcIOfdwhsF0+bVBRTSZhds5GYNfXXp1ZlYt4x+4DH4EngClwYHZFdBqnMHk4?= =?us-ascii?Q?WN8rjrjJDaav4Wvux5CXq7EogJiTcNo+Os/V15VTsGNMdaRQIMH4MxD5YicU?= =?us-ascii?Q?Pu+dewcGPlYgFpRqu9ODuIABfsMvi0yoVBeXtyb/QNSnWNf53J9fh38rzLMp?= =?us-ascii?Q?/MQMsVwJWMkUQf4VSPOYCAW+EhX+JWn+cYIajuipg+WwEde1nRcb6bOEMkge?= =?us-ascii?Q?j4z087Mt9nejmLjxU83TzsDZq92jOxRFZ6dIzxshAT2q2qAMB+kwVsR29zu5?= =?us-ascii?Q?rQwNqjc68KSWf+fU9JuyGCIsCoe7AM0vtV7eLKN9yXGYzrSRFU0ebkvOeo7y?= =?us-ascii?Q?0GDiH9QbRDB4DouAuc3BkvK0TlZcJ79zYVNWPBte86rdVeq0SzNfCQDNykck?= =?us-ascii?Q?HA5Y1ttwQFtI6SFzsCwu9RYZN1XdgwUBXdY2JXUhkViY+pC2mCjY6/3HEgQA?= =?us-ascii?B?Zz09?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2955; 6:7gEtU6w9gnsMrZVW43b2cbtgQV+ST7H/aW+4hJaM+0yFJG0bKKahyDR+5kmQIrTOCsIfleE7enNfpBe5uUkRpjuOht9c/gGoMeUbsdWksSwqlNKwqyD32ZNmn7xQqfSRKebYNxB5X7yvSfesbzOJk5dv9LFRcZJinWusF+7aTlll6Np+3nV/hDCdQXV6DEvSBAusg3b2MYSDDdp4O9A507y/BuDe8OccLes3tdIAavIRHDbHVfXCICaE/fQjEMB7LKb/IQ2epBoZ01Phf99d12fRqs7GmazggE+uaYQntJjITp3BNqyluDb31DkNSk6FHV3wE97GZuo7AcE8hPN+VWOF8KeNPvhjudhsyjHGi91ZFAPuXFDssrqXiWA2LuuJwfjJEAtTVJfNJ9RI5ONf8Z/GdAspxM3lCxV0UNeEGcg=; 5:apiAmr9V4xfOFbo+DViD90K3v33XL+atZ1NIxN/XnNOAbknOI1Cj0JHy3FK6XNpivQ9B8K25Npw6IFXCJ4yB/gvs1Fqq9LTP1m/hUXzNU//b83DysYAwrGmD2c22dLb8ALpEk4kgx48c3udncLgtYN3bHxTnvuV4C1XWQukSuKsV4g9VZdHej2IF7h2UGeO2; 24:E/TagZr58mwoDBXv/8nLT+DX7yuP+5T3XSeY3b4aNiaONSaX5H25oOGKZ/f+PGFazSIa3J4jtpET4FqMF5NVLhZ7T0sDAcaTU0WsS9i10vU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2955; 7:xIS1bQw5iBUX6xBN8jHAACXSGUxwZyg1rqKW/PmRxxU5vrC4Foe++EZHN9Vv6xYg/RlDsRSOB6LjrC5xd4/GGhylI9RMLeROZZREedi883QohpOmZt+GZxyRaCN8HiYFZZOVtrrHAmz37IDwKFksc1thHgmLvhC8DmJqNloUzmlcweIVMTYIF+xoGXm7h0Wsv721HwOATRtOH+A8Kv5A+gZ127fKTm7UyPy2QUvO4GxUP8V3RvoG7V/5FAaQbkjuzMeZi8yeQLGIrrCP6MGThtYDHAYkKBxuZnBrA7qsUVbXCGJXpwbL2bHcJiPaKQ7vEcOPSZ/NDFSue/DODf8seA== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2017 14:37:56.3310 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2955 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Camelia Groza Implement the setup_tc ndo to configure prioritised Tx traffic classes. Priorities range from 0 (lowest) to 3 (highest). The driver assigns NR_CPUS queues to each traffic class. Signed-off-by: Camelia Groza Signed-off-by: Madalin Bucur --- drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c index ac75d09..1b3ea38 100644 --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c @@ -342,6 +342,41 @@ static void dpaa_get_stats64(struct net_device *net_dev, } } +static int dpaa_setup_tc(struct net_device *net_dev, u32 handle, __be16 proto, + struct tc_to_netdev *tc) +{ + struct dpaa_priv *priv = netdev_priv(net_dev); + int i; + + if (tc->type != TC_SETUP_MQPRIO) + return -EINVAL; + + if (tc->tc == priv->num_tc) + return 0; + + if (!tc->tc) { + netdev_reset_tc(net_dev); + goto out; + } + + if (tc->tc > DPAA_TC_NUM) { + netdev_err(net_dev, "Too many traffic classes: max %d supported.\n", + DPAA_TC_NUM); + return -EINVAL; + } + + netdev_set_num_tc(net_dev, tc->tc); + + for (i = 0; i < tc->tc; i++) + netdev_set_tc_queue(net_dev, i, DPAA_TC_TXQ_NUM, + i * DPAA_TC_TXQ_NUM); + +out: + priv->num_tc = tc->tc ? tc->tc : 1; + netif_set_real_num_tx_queues(net_dev, priv->num_tc * DPAA_TC_TXQ_NUM); + return 0; +} + static struct mac_device *dpaa_mac_dev_get(struct platform_device *pdev) { struct platform_device *of_dev; @@ -2417,6 +2452,7 @@ static const struct net_device_ops dpaa_ops = { .ndo_validate_addr = eth_validate_addr, .ndo_set_rx_mode = dpaa_set_rx_mode, .ndo_do_ioctl = dpaa_ioctl, + .ndo_setup_tc = dpaa_setup_tc, }; static int dpaa_napi_add(struct net_device *net_dev)