From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0077.outbound.protection.outlook.com [104.47.40.77]) by dpdk.org (Postfix) with ESMTP id 3A8F82BB4 for ; Wed, 22 Feb 2017 09:18:18 +0100 (CET) Received: from BLUPR0301CA0022.namprd03.prod.outlook.com (10.162.113.160) by BY2PR0301MB0728.namprd03.prod.outlook.com (10.160.63.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.13; Wed, 22 Feb 2017 08:18:15 +0000 Received: from BN1AFFO11FD016.protection.gbl (2a01:111:f400:7c10::144) by BLUPR0301CA0022.outlook.office365.com (2a01:111:e400:5259::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.13 via Frontend Transport; Wed, 22 Feb 2017 08:18:14 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; intel.com; dkim=none (message not signed) header.d=none;intel.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 BN1AFFO11FD016.mail.protection.outlook.com (10.58.52.76) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.919.10 via Frontend Transport; Wed, 22 Feb 2017 08:18:14 +0000 Received: from [10.232.14.39] ([10.232.14.39]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v1M8IBAg002616; Wed, 22 Feb 2017 01:18:11 -0700 To: Ferruh Yigit References: <1487684578-28656-1-git-send-email-shreyansh.jain@nxp.com> <8958b9ca-0a7d-3df0-3b62-4b9c610d301c@intel.com> CC: , , "hemant.agrawal@nxp.com" From: Shreyansh Jain Message-ID: Date: Wed, 22 Feb 2017 13:53:00 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <8958b9ca-0a7d-3df0-3b62-4b9c610d301c@intel.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131322250945044400; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(7916002)(39400400002)(39850400002)(39410400002)(39860400002)(39380400002)(39450400003)(39840400002)(2980300002)(1109001)(1110001)(339900001)(3190300001)(189002)(377454003)(51914003)(24454002)(199003)(53546006)(4326007)(104016004)(6666003)(97736004)(50466002)(356003)(33646002)(92566002)(31696002)(85426001)(189998001)(38730400002)(6246003)(68736007)(626004)(110136004)(36756003)(23746002)(83506001)(2906002)(86362001)(305945005)(54356999)(50986999)(77096006)(81156014)(8936002)(65806001)(65956001)(106466001)(8676002)(4001350100001)(76176999)(105606002)(5660300001)(54906002)(2950100002)(64126003)(6916009)(31686004)(53936002)(8656002)(230700001)(229853002)(81166006)(65826007)(47776003); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0301MB0728; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD016; 1:z5Aq64OFww9o5wEVWz1EvMCt04ZHEhE6ERcVwogdpVio8uz+Vd5y7leS3AQSNO7wsR4E2zgS/xKLOcU+C089mSzYlyZRrMGKPBLMCX8ezsmceToMU6rCBaR6CnzG6Lpl3AzqpWGxDmrA1uaTYuQ96dsLW3QjsMKxMT8XTytG9fzm/zleX+veqtdOe1DF/trizHouDWtG02yEKGa9cOOgSbgCAkzPxnaY2mFncYTWNk6gKi5dHmpiqnwGUgTje493V6Nal/0cfcfOKGBdgJ7iv2xErb7w8g5w274wQewEBpJkfAdAiQfiFt34quSN0dEKYTJYS+BMbKrCUYZSgWHyEI9peKd7iTpObxqWcEMpt3VAfll15DUtP0hOG9f4/SE+yzXgoHqun+D2jndIykWzR/62DM4H11tf3ouZ9sYmt1lCU1mEGEsUd5NOe/dHzcJWVW+Jvz1FrPHLUUXrdCbxuog+v1xslVT7YyPBBL9ArXCgZ/3VAUj6jRt6xaMwPc27TMQ/e9e4m0prPOqh23IkhNHR5EyMdEarWua2PjHVWa4/N1phNHB+qYMsg1fSsBQTMjo+d+ZNCgLpfWh+j4LI6O7u6a60Gbn4tjizmr7S3eX5whh2zStqcy8l7rZoUEyp X-MS-Office365-Filtering-Correlation-Id: 8b66dec3-71e8-45b1-be4f-08d45afb5923 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BY2PR0301MB0728; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0728; 3:OVpg5UB+IyNNWzGLhDOFGZWuVdN3k+aMuYXrk+2AzsZvZE86PRhezjaqrmP/mB2j0J8ZpLhAihl3oFobbsyVjoRt+IAS+m9qlUE8hxZVjuFHCtQXbXw2744cqKLWllW2tv8CxtyMAMbtebpe861mqIh3XfeK8jC4vushVSrd4L1Aa+NHIq4thTkV0R+G61CRN8mm32ffdzQdIqSQV1inBoIitgrgIhgKFMK60f9ZahnDn5RR24bQSp8hwIBLSqoKl8PzeM9bscJzANhVgb5rXxvXqQwDwfW6dCg/d6mofGhhWhUcYIrxybCiM87iDrAQVMDTOOCO9RHB8f0q+xPh9eg2kNuSwS5qn4MMz4nmi7aez7s2lpNLn62BFRYMDDk3; 25:tobG3Xw03M1TLmCpojTDbq4kspmLMGnIXlU1rc0iS7tjIJK9a7szJ5lZqMl6Sz344Ku47wTqUqJ1K57QFqdj5Ln61DbxBZTG6DewNMWLZTtvIT5JDW6aBCPFHaYkkmYMej5pRqueeI0UqN/RGvJ5isqLa2jqtdHMBqkPcBiak+YJWAc9ajUscVggniWwYrrLZxsH1MGc5PHxCWfmdLYNH2FND/0x9b8gI9Z8u9tW4xR9S8JwjB57qevzT7GMwiLESjMJUbP2nATfygeH+fMtu5fWjMsRR5TAfqTZefUfYja1d+zn3tUoTtL58F8kn7SAh8v5VTQyrWxVf99bEg+WxDcQ1ZyUWHVIugWvEuedvEFdB/jPpjXoFWB6UyXzsXl+KwbfeH09WV9GxmfXT+jk/rBuyUGOxK2LA4cqTkmkxSpXdltQETwxKbfb4fzg/5PKsi7qsMQwCPTBYXDHxf7paQ== X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0728; 31:HPU0m7pnSkYDVQDKYE5OfpsRlbpx3dkdh2lyfPIM+B5FgCDiL6Xq1QXOAne3OyymyIvuNXene7fsG/td66dJFb7q2CFploiyrx+QLdI5XZjPVnW9glDNDvVh9lDpzuxelqufipYv5WVDKrHxLzfL8a+qBQZytxx72oO6KT8j/nB1Yxgwi9NNKIWuYVSpA/cD+GjDulzTD9PNrcPvd2f8shd8v9+Qv5Km6xHJ6VmG2N+d1J5cTy5YQf3W2X4oM0/btKyW0ETzlDI/ncOKo0qIMg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(35073007944872); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13024025)(13018025)(13023025)(13017025)(13015025)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6096035)(20161123556025)(20161123563025)(20161123559025)(20161123561025)(20161123565025); SRVR:BY2PR0301MB0728; BCL:0; PCL:0; RULEID:(400006); SRVR:BY2PR0301MB0728; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0728; 4:HrJRyhZZQMJcRqgzMQq0KjtvWmjYy7Ph6En0MOiQwhBhlbuMT5kejf8tWZ7OgcTkCevedfK2bQW7HYqKsSh0ziaz3WmN43G4570W8Klu9lOPx9msaVYLwQsE3IrFMxaOEgKdTNTbT8Jr8yllvqZ3pfRGDSxk1v/5vaaVmJJwh2lSsM3zHPbsCdxRjP11cD3/TCdkrtF7AFC/Ka0wbIHdm+wqUimp1eBzTwnQhOzXFT4XBh0SM/If+W9pRsbYP15EieVo3WmFclU2FvrAxybXgyf/Mr175eWWEvVt3Opwvl6Af6tpXD67eiPfujQogCkmOP1sce5LfeBsWPXqWS7qbkLWRB4Rv9cyK2D3V0GBhFMlQF2SlhbW8ADkS3srQKjT3gyvXLFUFpen6bErgcx59Reyk5/PgrSgDmeoc5/IzLNoLAZzfhzjXzezvTk9R6LVV7gAAx1wXysFlaKQA64IzvWLgYGg3/Z7CHWmQ0Myc+AZGZOOr/S1REWqpQvn8bTglM1IYy3bUk6oCVAgnOQb5dNeIP5oIfvlUlGOIooKtRTpx4aXrsgVtXJnlYW/fisLkQrprvWbCs717Kv2xNNyR7CKtFlkoNGcALdy4gTj0qQBiNurSHaqq83SLAtyV3MUxB7/HGv4q0bSr3L1kYpsQTQlYB6XKx4RR4HdDHx9lQPLls6dh6di3GNwOocnaalRKYmcBZmCVXMqk5Dp/fgulr9J20WKonhzyvphVcHAzhuez9mWmuVNxi+7PZkAISpj X-Forefront-PRVS: 022649CC2C X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; BY2PR0301MB0728; 23:w8a0exb6Lung9b0VzkUBsu6eGKp5k0Wnqlv?= =?Windows-1252?Q?T0dJpdaJf0HcxhkSigKV9PKP+DBxARaedCm5zaQJTnSmkx/CSih2IKQT?= =?Windows-1252?Q?0XD6Cjc+DqwVIzpF6eFETaldwkKtepGTo0wqLq6ZMXVgrDZoqybcmu4w?= =?Windows-1252?Q?rHochyk3hBdCo3MmvQw2FNlqdiCHj3U8m1iD/Gr/1Wi4efWo6KEi+vul?= =?Windows-1252?Q?1dMIyOQaPuVb3U7ZLH2bTPWcCLfRxNryTVVikBRJ6VbSw2VKb5SPL4zq?= =?Windows-1252?Q?4nC7YrLidBNEWmIBrQN+7QcBgyibgXFrGBfVXdPcjGJaBL0a08GRbpBS?= =?Windows-1252?Q?VlUgiKYeWOxdOerdH0+9IVcNmERehahHmU9ap6yTpMI9RQaIFZ3foqKf?= =?Windows-1252?Q?kpcpTQbrPPUuu8j9dhdrukPpfrxdCQlX2XVyb6YbRy3wD3t1w3VQ/ssj?= =?Windows-1252?Q?WffcqZqpoI92ccKzLJFydcioR+hKYZ0PYy7hV71T5s7c/e+qW7NoTI8J?= =?Windows-1252?Q?nUw6KR1rV2/oaMKAcGR91KwppUtz7MSRf8Oma+RInjmFHJ7ZVOy0W4Da?= =?Windows-1252?Q?0Ou18v3eFaxS8HGPPd9oTBQFhlE3ZPOe6hjGsiIWRjgY8Tgqqd1NLSNB?= =?Windows-1252?Q?AhhVOhn4lS2ULnhbvFEgKAhPHe4rewGqsj6u9wRiNCpX+J2n0CoiRK9a?= =?Windows-1252?Q?bRMBOeIXqz5bT6rMO3raZcg89iw3fsKZgdPU0IvMGQ4wEckAIPaADzuu?= =?Windows-1252?Q?K3SZcOEv+M4tQotETRkS6O+M2iDDspAfKEvLqkX0x3DlbKJeeI5aPoA4?= =?Windows-1252?Q?jkUis8TkiAMlUVtOSm7RcFs/PZKZykpnqiVWqek/jTJZ6CuvueoGM0k0?= =?Windows-1252?Q?gM3eFucGqQKSXMR02cRfZzkRAkBhYc8EfUDUptTOuVzgfZwnE/Mcvljx?= =?Windows-1252?Q?QYm+1honReDUm+YwWhSmYbE+xT1TevfGasKBhyaJXqgATa7GdcjW3d8V?= =?Windows-1252?Q?Y/PnemdCOMD6sEc1GaU6VgF+jz+g/KfRnxxBXYyfTZ9eLLNjvd3DgABW?= =?Windows-1252?Q?RcmnKoThdD+7vhiI5d03igyvpw6qmkGKCKrNB57zg+zsWgIpLM6DeldW?= =?Windows-1252?Q?3za+qCs2qqMdfrR4KwAtYRpv2k749Ya4druQH5YoT5TKluWdSD3Fz224?= =?Windows-1252?Q?shapvJll0t5kHR9x22S094ewzgIE4Yf6kEkbcmghxFgsgeIYhq8cieDB?= =?Windows-1252?Q?MP+vIsZfRUb5O6pHdmQbwPR69hUDptnKqCGk5CQcCH574lf5DlRVj+t/?= =?Windows-1252?Q?66+URQpI2Io+anghAcui8gatbHVO5TMiv+HtfXY3yXMpO7I3dMZrf2ds?= =?Windows-1252?Q?zd710PHblchRgL1+iXTDlYZkNUarQ6RyWTASj6b1/vOh3vRBNnwd12Vk?= =?Windows-1252?Q?lUZn+y30s1fK/NqabYeQLmoe9cgenm/n0PkWYvRad37W1wXMcWYF1EYW?= =?Windows-1252?Q?kR90Uej9+i2xm1hKPR0NHlWAHxDpGZOSG0dT+8j5qeuVX0YpR87FvjZS?= =?Windows-1252?Q?qfUhcAXrJFEX/TE7rRinUD1xksR40ZxS4OKLjg87AWhZzFrBcFisb/JL?= =?Windows-1252?Q?OFXDnFhg0EpcUMqWudnjevzGOCy1LB7HJ5OTmG7RW7k0pY7nhDtya7GS?= =?Windows-1252?Q?y+a3sYhyZ+bqLVpBq/W95Y1hPEdu6gGlZp2ZFtqL6F16CGOaXK9k8/KP?= =?Windows-1252?Q?BnjFf6Owoz/+OobknJQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0728; 6:YkH9jOcJAesSvU2Y31AnyO7lMlFgXXg5fLhAY9byGuoRA2cGaN/v6qD39skq1PZeF7FImBTWlxFBZ2hsDkjeAmRlEp1kF5YRTdXz/dum9rQoLEjiaJ3LrAwU6EI3mS93oS4fve+hKXr06eDHaOV5P2xfGJ/8PYwiahU2mq00dMhtBuIjB23GdNTHascQUdEH+j1oLZUqGv+R0H/AYzoQjHizoRkQxqQk69CgpY9L1j2U3dovc1U+iFLYS+bflmrR5mEvPGHNYbc/xMDsNJ/sX/p3ymxa3mdeenj9o6GHta/mpt8HAZYyKL1E1AqTE3EnQFAvvQFxBAtxEE2yPem8+meH/PhdSismDDAPMEVngralqpLZO1Ef2anTneUtixksqREHS76B15YCE6lGc8JTv5qedraNf7mjDaUrg7GA2so=; 5:aT5ATE0Tl2WDJ86+fgAozMc7Xhf0Uv3HCHJwjbY1E2phyb9s5OpyKWFmVf5YbLth425dWzJozMB5xxQSbRxErWEFy67WwJ3hQfrJk1dcRBak+i6LdWZoH8azDAzyY+zWquGEeNaIPT2QGjpKuh72l4Z9/uwOat+8i9DonOj7GbK938eobTJAdAPkMktmlcKv; 24:MCeAuay4qV6XyWCqTdG8wFKtzb1LiO/JHp0S5ZIOv39uc06lP8o06IuXNbNe96UFoG7TPi3FHHaRmdObcdHhipnlxxle4XCqNuj8u1ozvfQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0728; 7:yUx3GKqq3lEm7PsIXDUOiXl/L/x2HIHdxqFUspnAs2FiJB4vhsWFESgoB4dr6a6jZEtGgX4BwstplD7QCXT9NthuPVJWBD9brU05MHsd3UGKKEajEA/QZGWUNzcMw0o6zGVhecaHCc3nFN0/pswjmV0L2Mam8gwTih+xKGRxsl5+HNU4/AeI6EtJG9Hvl8JJAiT7g9uE+naXi29J3VAm/0aBnF8vjYEgHCmH7VTRUeUUbCZMsk8vYSBXh39Te2bsIXV1WaqEtJ1EErLruE7V2LqGs38cjtxh2fyViBS3b7MykbhuBjY86Db9jOjEoTVWHJ89uf4r+0v0SAs+uS4/Gg== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Feb 2017 08:18:14.3172 (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.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0301MB0728 Subject: Re: [dpdk-dev] [PATCHv7 03/47] common/dpaa2: adding qbman driver 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: Wed, 22 Feb 2017 08:18:18 -0000 (Modified the subject to: 'Re: [PATCHv7 03/47] common/dpaa2: adding qbman driver' from 'Re: Hello Ferruh, Neil,') Hello Ferruh, On Tuesday 21 February 2017 08:09 PM, Ferruh Yigit wrote: > On 2/21/2017 1:42 PM, Shreyansh Jain wrote: >> Thanks for the suggestions about rte_* renaming in DPAA2 PMD. >> I create a draft patch for a single symbol change. (applies over v7 >> of DPAA2 PMD) >> >> Can you tell me if this is the direction you were suggesting? >> >> I see two issues in this approach which are somewhat problematic for >> me to change all the symbols: >> 1) We saw a drop of over 5% when I replaced only 3 symbols (one >> of the most used ones, just for sampling). This also means that >> when more of such symbols are replaced, it would bring further >> drop. This was case when I used the Shared library approach. >> (*) I am not well versed with gcc symbol aliasing to comment for >> why such a drop would happen. But multiple test cycles confirm >> this. >> 2) I have to include a new header in almost all the source files for PMD/ >> Pool/Bus etc. This is besides the STATIC_SYMBOL macros across the >> code. Essentially, any internal repo patch cannot be directly >> transposed to DPDK repo. Increased effort for each internal-> >> external release >> >> Overall, I would like you to consider if this effort for changing names >> for exposed symbols is really useful or not. > > As you showed below, this works for exporting proper APIs, but not sure > if this change worth or not. Given such symbol aliasing is an impact on performance, probably there is a need to discuss the strictness of rte_* appending for driver symbols. As for cost of maintaining such code base, it can be rationalized over a period of time, but not performance. > >> >> There is another approach - that of not using a drivers/common library. >> This again is problematic for us - NXP DPAA2 being a hardware, the lib >> and state for Crypto and Net hardware is tied together - so, having >> multiple instances of library breaks either of Crypto or Net PMD. > > Isn't is possible to keep folder structure same, but produce single library. > Because these don't provide any API to the user application, perhaps not > need to be library at all. > > Assuming that bus and pool won't be required without a driver existing, > is it possible have a single driver library that contains others? > > For net driver, dependency is as following: > bus_fslmc --> common_dpaa2_qbman > pool_dpaa2 --> bus_fslmc, common_dpaa2_qbman > pmd_dpaa2 --> pool_dpaa2, bus_fslmc, common_dpaa2_qbman > > So generating only "librte_pmd_dpaa2" which include above dependent ones. > > For cryptodev pmd, I assume it has dependency to same modules: > pmd_crypto --> pool_dpaa2, bus_fslmc, common_dpaa2_qbman > > And this will generate only crypto pmd library, including all again. > > > This will create duplication in binaries, but I think easier to manage > library dependencies. > > > And for above case, as far as I know, both net and crypto libraries can > be linked against a binary even there are duplicate symbols. Are you > getting error here? > Thanks for your comments. The key issue here is that driver/common is not actually a 'library' in traditional sense. It is a driver support system. It provides interfaces to interact with the hardware - and that includes the Net and Crypto hardware. Being a 'driver', this also has its own state. For example, a mem area to interact with hardware queues, whether net or crypto - there is a single instance of it. This restricts its duplication as a library. In fact, as of now the statefulness is quite limited, but once more devices (like for eventdev) come into picture, this would become more prominent. Now, we have these possibility: 1. Have a shared library with non rte_* symbols 2. We have shared library with rte_* symbols 3. We have non-net devices (crypto, eventdev, ..) depend on net for these hardware interfaces (2) is hitting performance significantly. (3) it not a clean solution, having driver/crypto depend on driver/net. When new devices are there, more dependencies will occur. In crux, probably we need to have a discussion on (1) and how strongly we feel about that (specially in context of drivers). - Shreyansh