From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0048.outbound.protection.outlook.com [104.47.33.48]) by dpdk.org (Postfix) with ESMTP id 858EC2BAE for ; Mon, 11 Dec 2017 14:23:23 +0100 (CET) Received: from BN3PR03CA0062.namprd03.prod.outlook.com (10.167.1.150) 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.302.9; Mon, 11 Dec 2017 13:23:22 +0000 Received: from BN1BFFO11FD031.protection.gbl (2a01:111:f400:7c10::1:176) by BN3PR03CA0062.outlook.office365.com (2a01:111:e400:7a4d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.302.9 via Frontend Transport; Mon, 11 Dec 2017 13:23:22 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; 6wind.com; dkim=none (message not signed) header.d=none;6wind.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 BN1BFFO11FD031.mail.protection.outlook.com (10.58.144.94) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.282.5 via Frontend Transport; Mon, 11 Dec 2017 13:23:16 +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 vBBDNJeY024808; Mon, 11 Dec 2017 06:23:20 -0700 To: =?UTF-8?Q?Ga=c3=abtan_Rivet?= CC: References: <91106540c460d22dd23a30dc2903d7e238ff9a3b.1507796085.git.gaetan.rivet@6wind.com> <088de7d2-9bd4-4a49-44ba-9df9c52b72d1@nxp.com> <20171211124359.zhyeaveywobmobef@bidouze.vm.6wind.com> From: Shreyansh Jain Message-ID: <665f56dc-3cd5-e199-59b5-2021facd0bba@nxp.com> Date: Mon, 11 Dec 2017 19:06:55 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <20171211124359.zhyeaveywobmobef@bidouze.vm.6wind.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131574721969106158; (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)(39860400002)(2980300002)(1110001)(1109001)(339900001)(51444003)(189003)(199004)(24454002)(498600001)(47776003)(93886005)(2870700001)(4326008)(59450400001)(2950100002)(64126003)(50466002)(85426001)(58126008)(36756003)(6916009)(2486003)(53936002)(6246003)(2906002)(83506002)(23676004)(76176011)(97736004)(77096006)(6666003)(67846002)(31686004)(31696002)(229853002)(105606002)(86362001)(316002)(5660300001)(65826007)(104016004)(106466001)(356003)(81166006)(81156014)(33646002)(68736007)(65956001)(65806001)(305945005)(8676002)(8936002)(21314002); 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; BN1BFFO11FD031; 1:LRzq0Le1zvGlB5EfCwCq+4E0UwlNpz4EG7ltDd6izDbMb1/1YTuQ0NOjYBY2qKcuKFO0/11kePi+iVvpGVrEGtLwvuT6eZsxsvY3/gP5/mj8tUTraRiI1wjiXAquZJ4X X-MS-Office365-Filtering-Correlation-Id: 62f96286-6fe2-4315-acee-08d5409a56da X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4628075)(201703131517081)(2017052603307); SRVR:CY1PR03MB2362; X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2362; 3:4t2rYCfOsms1M35Ywuo25Qp//SEMFvOMzwzQQBTPqFl3WfnwjNSxwyHWD9vIb3zv1HNeY01d8IZ4nIKJLx4pONLGx4B3vXURi0O95vzVm8NBHOUkGrD4tXOs0dhZ26bCOrU81GJnQK//0W9QM5sBre+69xk799QBwrkOorpbT2f4734yFr5IZmZKEEfCT8Bly2Be1QqFMg6Dm0dCGmMhLiEN7MysgiyP9o8SCJd8ow4zzMphLqGsFkEqRV1iBP2vaFKeT1Kqd5NlajRnUZahjUOk/NZ5H4iCFc02WA/WbH8ZHamOCK0ELavbRS8rMh20qJerfazZTXQ6Wa3S+F9qY6uVanZ3mAzLVXRdMPfzl5I=; 25:5RH7nIQcK0ja/k+BMCuOPRBIR/8f5uzdRpt6Ce3XuEIzIi6IoN5BjqzEZIVL6bQltyPDNIZ4pley2hJFUZGFfnwWo9YvHfFuXOfMUQMcMqCRG6UsLt7x9wbambj0GwHzOt+I6td6RepumWKv7Q1rTMCZTYhTyS2OQg/sz8Qtyny/kqGdz+n9RRfxTkRXl4I5GAtSSqyBm1Fh/6aNvL/rBKc5ytwAdwQjhJRe+GDeIrqSx9ZvafoH9RShaatZNltGOI4VovNpG6cWuLqmOL0sXvs7lNtxIvgA+hhmp4u9votU/bp5IVm1LY1cK5dnzh9trF7sti4CwI2tZZUStg+HWg== X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY1PR03MB2362: X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2362; 31:+GKA7A+RAEtLT16IszCVgl3lNNY6B6h45UYy7lBAaXql/pZ8TaDrggJ5YnOHQfO0LFnsSCcupgOmfREULLUeqYEwlP/4Vu8Bmhp6UpgPguGWjTWyPy3iM6hUlrYG6IYFPY3Id1GPVk1/4u3NocP/nf630XsJD1GWFbjkY25cPGQrKZHgiprOupcAREc7HoYWR28J8112p4BGEhw9+lQV8qek+yof2FEpOFrIa3o9e5I=; 4:YR2+NwGVZxBNtVJ2NtRRufgwfaQKvz0TKbpqSm/sl1rcRp2JyAFMWcopUam7qpc0mmOips6vN4A647aQyACeuAD9MPc30zf/YMA4UGCunn+w9PFCmXPbB0hRs0wynJG/158IqbyTefv0ExU1G5MLhCrXzZ8lxxwt5h9SeYhBu9faMaPnxXSD8SUkgfMqLE0PFPz8JCZ8UvyM8B5MI9cG6I1J+fKqLIaM1WeM+OUCXgqZ1idj6pOynBcG3tjkTft/y9vB0ygwVZ9RtFhiAmDXkA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3231022)(3002001)(6055026)(6096035)(20161123561025)(20161123556025)(20161123565025)(20161123563025)(20161123559100)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(201708071742011); SRVR:CY1PR03MB2362; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006); SRVR:CY1PR03MB2362; X-Forefront-PRVS: 0518EEFB48 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAzTUIyMzYyOzIzOmVHWXpwcVdNTEg0WnNuTkJFUnQ0NDBoTXM2?= =?utf-8?B?MHMvYjNZcjMxQmRnQUpLdFBNdWxTRGhEM3F0V2RYYjRsUk5ZZ05XamNxVXR0?= =?utf-8?B?S1lFOGFGUlp0NHJ6VjBZVnA3VndqSjEzMmZtSjdpbFZwT1hZM2Q3L0FTeERS?= =?utf-8?B?UG9xNUwyMEJ4TjBZVzgzdWNxKzFIbU1rQTJSZlhIc0c0djMyQ0EyZDFPOG5Z?= =?utf-8?B?azc5ZVFVVlFzTnVXcG1mVzFMekhNaGR1ZXRob2J6QVVxMHBxdmlWRkRKRVIz?= =?utf-8?B?MFBOc3U4ZytqWGprcHpJODFzNmxzdXNyM0FvM29Ga1dTTGZ6c29TTjlENnB0?= =?utf-8?B?WU1sSEZSNmZhQjg3NllZWCtwc2pSeVlNS0ZWaVVBR05JOVhQbWFMdUpReGFD?= =?utf-8?B?ZTZVQnJrMTR2L2t5bzloN1QvcElPdjZ6YnZwaWkzakFPZ0ZtYXNJVHdzaGJZ?= =?utf-8?B?cFhWMVFFd3VKUmlRU3RYc1FoR2dVemlXRElteVYxL1ZPLy8yVnAvZk11cFhX?= =?utf-8?B?Vy8zMEw4Q1dZOHo0UnZsU1NUcm11OUF2Tmh6Q3pzSEhYcjI4cnE4ZTcvSzhB?= =?utf-8?B?Q09GTmhUcnRGN0V4NzV3VWdGZjJTZHdkWENoVFNZbDNab1VMNExmQ1Myd0pp?= =?utf-8?B?VEtLdzlZczJGMDFBOGFBSGhPZHhPNzNiMVBSeXNUWlFxT3hydE4wNUdJeXNy?= =?utf-8?B?VDNsTDljTUdialRPeTlSb1VMWS84UlJ2R3htR2szL21pcTMwSnVaRDBkeS8w?= =?utf-8?B?dUwyWGFvYlZHNTcvSEdyQXgwQWRBM3N0aUtVZkE0M1JhTjZGeTlybHJIc0Z2?= =?utf-8?B?UHM5aDRXdFhxcWs1aS9teHRDY0ZFeHNaQ01ra1ZEMm1BWUx6NlJ3aUlXSGNC?= =?utf-8?B?VlJrRmgxUmNEUURqeGNKNVNBWWZMQm82SWQ3MENaZjhVWUlQRkZzZ0xtU2hj?= =?utf-8?B?dVg1a3pSalc1WHJycTRiSU11Tlk3TGpaQS9GMzdUaW9uRlBkVllPUG9LakpB?= =?utf-8?B?QlRtUzhrZVBmT3Rsa0JLRUZ5eUVHVm1TVGlucWw0UUEyYW16aExFcC8rUzZW?= =?utf-8?B?ZWZvSlBSR01DVUtJMVp0OVUwY1NxQ3ZDS25vZDJEUEFzeFRXTVRrcE1QRHpK?= =?utf-8?B?ZlZPRjhEa0FEbFIwNlZJZ1pXcUgxRU9paUZpNTdNRUZpV3UwdzRHOWVrYjlx?= =?utf-8?B?ekZMM3RpS1paRk5BdW1udWhQaDBrcEEyUUd6UTJoWC9SWjQ1L1NqdjBqN2Jm?= =?utf-8?B?Q0lObDdQN2poZkkwR2tSWi9LV2w5c0dLWVNXOER5WFZHYW5HdkNrSWtEUEpq?= =?utf-8?B?ckpYMldZdjFoNmRzTG00WjRKK08xdUlFR0tuS1ZoQTJGVyswa0hWL2k2WFdW?= =?utf-8?B?UE9EQVJIcE52WVh3TDhIZm82LzlNOFloOGg2ZG9SdjFySUZESUxDM24zOVBB?= =?utf-8?B?VFJHc0dnYkxHbGFPWCt6bnhTWjR3azVJUC9qNnBvaHpwanRHMmFZcUZic0xS?= =?utf-8?B?U2Y5bTgyMXU2NXV5SlFKOUwvZm9VblNTdEsrYkFUYkFJeE41VXR1WStpc3Yz?= =?utf-8?B?UVVyRkh6UHFjaXZvNlRtZkhETyszWGROYW5OSU9pZU9MY0lIZWFKRE42eCt4?= =?utf-8?B?NWhXYmw1ZzRINFZFSGUzYXRuNmd4TXNBdzJJcEtXUU15c1JWb1JDcWlNZ2tt?= =?utf-8?B?STlxNmlWR29memhGMS9uaFlKZGlpaEQxT1BzOFJGSUpDK1M1WXBkSXdqU2p2?= =?utf-8?B?M1NvMk1TdHFSenRTeXUvV2tWZTBnZzhybGFmQWpIdy9ZUFBKVHBFTlJzcXVq?= =?utf-8?B?am1MQ0Z2RmxWZ2EwMURQUGRkcnlRMW5TZFBsRHNxUGZUSHc9PQ==?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2362; 6:URRc26ii8wuxy7hNnXR+i99/64bbwvGWc9sUprPF3Tili3hDoyStxYCyMaQvAOkpuVCAQJQ6Pzq/T9/W5zGjTFAE80LYbg8W4vn/WM1VNNdhDHtvI4t9AjJJxt8L8foPEqMdRbbq+XoTwVyEAaZAeRmeZilVpYNeOjYi4wEsd2UHU3OkIgPXivJxrmC19PhIvI0Y1nO3pYEBgVyuZN8hYezo7exO0kkAJm73fIqo79Ynf06XaHC+/Y2Xoa7W9UHo99Ia0SJUzUHNIaQhlBceZx0uxg4Jd2PWAjOcJtPd/Uabj8hfvBLFTJA1VoChATzsDBhQpWe2s6FzGLMI0F2BNwrVrcfUjv2dE68v/T3xOWU=; 5:ZZuQqrgHU2jHAdPh+j2K/3xdf8N/JX2hxKVc5Ydx992/NmxIMnDnqiZdkonGeOsj3VuMELPCbwIvQ9ZnrD9wyTcDsKwaOmabY3ywLBeVJ3rYsNBHGtbM/u2E8eJ6pLfjePGIXQg3yYN7u/0IrsWIK+IlOjmOBdUt59ausW8WkSw=; 24:/zg0l5+fHTSpkFSIUPrjEm/lap/nhDj8H7lC+n3QgiwaAZUTpF3nB8AG0ckx4ylcdVL91Psbs2PkdaCjUtw+E9gDz1aBLFrLU3MvYcBtZQc=; 7:kFmIqGhtuOkRAqlTST3Zba4+SGMKByjbQMxOqTQ9dR29C4RwJxZBnN/abbzWTCXUF1X7NR/f5rlX1ZebwhfRX3FPHyVTzl4+aiYBAIJ3ZO2j+T1H5hY/8WVidGdRRLcT1MlBML7qsPB6W2AGF4xluaLR0A+2PgbTiXs5ujp6+uVrKyzgoeyxjkSnIQ6FVeMt68yO2TE7c9PBIHU5M8f5CAf+vOy+cbaTgX0pggaAVzJUDuyBOXSQpsnR9oY/Vo2k SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2017 13:23:16.7390 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 62f96286-6fe2-4315-acee-08d5409a56da 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: Re: [dpdk-dev] [PATCH v1 2/8] bus: introduce opaque control framework 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: Mon, 11 Dec 2017 13:23:24 -0000 On Monday 11 December 2017 06:13 PM, Gaƫtan Rivet wrote: > On Mon, Dec 11, 2017 at 05:30:16PM +0530, Shreyansh Jain wrote: >> On Thursday 12 October 2017 01:48 PM, Gaetan Rivet wrote: [...] >>> diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h >>> index 331d954..bd3c28e 100644 >>> --- a/lib/librte_eal/common/include/rte_bus.h >>> +++ b/lib/librte_eal/common/include/rte_bus.h >>> @@ -183,6 +183,51 @@ struct rte_bus_conf { >>> enum rte_bus_probe_mode probe_mode; /**< Probe policy. */ >>> }; >>> +/** >>> + * Bus configuration items. >>> + */ >>> +enum rte_bus_ctrl_item { >>> + RTE_BUS_CTRL_PROBE_MODE = 0, >>> + RTE_BUS_CTRL_ITEM_MAX, >>> +}; >> >> I am assuming that a driver implementation can take more than ITEM_MAX >> control knobs. It is opaque to the library. Are we on same page? >> >> For example, a bus driver can implement: >> >> rte_bus_XXX_ctrl_item { >> >> RTE_BUS_XYZ_KNOB_1 = 100, >> RTE_BUS_XYZ_KNOB_2, >> RTE_BUS_XYZ_KNOB_3, >> }; >> >> without the library knowing or restricting the API to RTE_BUS_CTRL_ITEM_MAX. >> >> I see that in your code for PCI (Patch 5/8: pci_ctrl) you have restricted >> the control knob to RTE_BUS_CTRL_ITEM_MAX. >> I hope that such restrictions would not float to library layer. >> >> If we are on same page, should this be documented as a code comment >> somewhere? >> if not, do you think what I am stating makes sense? >> > > I see what you mean, but I'm not sure it would be a good thing. > Actually, I think proposing this ITEM_MAX was a mistake. > > Regarding the specific bus knobs: > > - If a single bus needs this knob, then it would be better for the dev > to add it as part of the bus' public API, following the correct > library versioning processes. This would not break this bus control > structure ABI. Sorry, but can you elaborate on "...add it as part of bus' public API"? This is what I had in mind: ctrl_fn = rte_bus_control_get(busname, RTE_BUS_XYZ_KNOB_1); (unlike specific functions like probe_mode_get/set and iova_mode_get/set) Where ctrl_fn would then point to a method specific to bus for KNOB_1 configuration parameter. Thereafter, ctrl_fn(KNOB_1, void *arg). What other public API method are you hinting at? > > - If more than one bus implement this knob, then it should be proposed > as part of the library API. Buses adding this new knob would break > their ABI, other buses would be left untouched. Agree, if more than one bus implements same operation. > > This makes me realize that proposing this ITEM_MAX value is not good to > the intended purpose of this patchset: > > - If a bus implementation use a reference to ITEM_MAX, then the control > structure ABI would be broken by any new control knob added, even if the > bus does not implement it. Granted, it would not break the driver > structure itself, but still. My PCI implementation is thus incorrect. Changes to enum wouldn't break ABI as far as I understand. Adding a new entry only expands it to a new declaration without impacting its size or signature. > > Therefore I think that it would be best to remove this ITEM_MAX altogether, > forcing bus developpers to use other ways that would not break their > ABIs every other release. > Removing ITEM_MAX is OK from my side. It doesn't serve much purpose. But, not for the "ABI break" reason.