From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0042.outbound.protection.outlook.com [104.47.0.42]) by dpdk.org (Postfix) with ESMTP id EEF031ADD3 for ; Thu, 30 Nov 2017 20:50:57 +0100 (CET) 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; bh=Np/KiDSyJseGqcuqsxarlVqJ5ATPRnZNTenY8muz46E=; b=Wr9gCtORG2uYsR9wcvOD+NC64z1d7EOASKX7g3ddtjfCreu6cwX/C7DJNzI3ksBMeMynWF849S4NEjtTFyePVgTuQTuECzJpln2cbK/9L8u1rtyzRfn+MLwnPI8K6FZvmcSSZ05b9Z9ujzxso2WOydrwEbE6NgMqa9W60cD3Jc8= Received: from HE1PR0502MB3659.eurprd05.prod.outlook.com (10.167.127.17) by HE1PR0502MB3658.eurprd05.prod.outlook.com (10.167.127.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.260.4; Thu, 30 Nov 2017 19:50:55 +0000 Received: from HE1PR0502MB3659.eurprd05.prod.outlook.com ([fe80::55fd:2b8a:f957:6e53]) by HE1PR0502MB3659.eurprd05.prod.outlook.com ([fe80::55fd:2b8a:f957:6e53%13]) with mapi id 15.20.0260.007; Thu, 30 Nov 2017 19:50:55 +0000 From: Matan Azrad To: "dev@dpdk.org" CC: Thomas Monjalon Thread-Topic: new EAL mechanism proposal for driver options Thread-Index: AdNqE2bFgCtdh87HQ82quuKRvkrcow== Date: Thu, 30 Nov 2017 19:50:55 +0000 Message-ID: Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [85.64.136.190] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0502MB3658; 6:EoTIULVFAQYU8zBvUOrtgrAI4yNegpqJCAXT3cnqkOutMWdn8vm63tatsB9SR48QW3rwSkRtmBLVRoGamp0XxjKbm0ePmu5KBEWmUW0FBsq6IPW7kuy3a+wPbhdm4zNI4qlUYPUetIo9RZy38oQ2CXuYx6riMPtMEgHRltrgFewl9I68OyyUNmwHfqDPuMU5R5rAsf9bZZNkEmmKO7nJV93dIsIv+00R+L5D8APnvKkIj4bjOQueNnxKGZOvf4oEfAht4vvD9INo70xfSzjbHwrpvA7vXC8siiVP37aFcjGnzrejH4awCG2vWFdxtrcbFRga83IjNLdGjDvA0rKPCFHdy9pEb5g0r3xA56VqfWY=; 5:ty1ssHyHdLtOXUUb37+XQ7mtgk+7URfudOnLbhv0HGO+GM6eJocjgGR3MokG28DcIJ9yjPGm3WjLeQfYfLRS3r0TKS5PGmYum4mrTdcg3/4gvEF81TkImrkGpmNi0JvYk6U0HQ2uWEnqlIVAMTRGRF2c5J8luCzNmczbxSVioLM=; 24:eXjQ05XaWdUjIkSDw6ivNi+ZViZVSZxLQaOXam8RAEGZSNjUkT/8sLSwbGqjMFcfySV5Xe+l1k5RCL2UqWlbKEJKJK5tewpahQQlU1xrv40=; 7:Bi23yvDcMgU66aqVnHJrwClreTkbNYSR3y80MMXAwp9MWefejdH8kUvltqXY8vTBLkwj2a58XlwKfsGoJVh48mrJ845byhha8NbQ5Ehaa2Ds88Hxl8pui1Zd1NuOdxLqby5JMxRFH84m9Ltdt6CY2OBsyrOL91CwIKnDOLIzzZR8LL8hHwyQQ+T9sGP7XWXrRDMqpFQvT5vYkIuJLUnBcifMZvTdU0OdQeHiDSHyVd83t4QVbCOvU6deTgn+vj53 x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: ff02708c-aee3-4318-e8e1-08d5382babaf x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603286); SRVR:HE1PR0502MB3658; x-ms-traffictypediagnostic: HE1PR0502MB3658: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(227612066756510)(21748063052155); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(3231022)(6055026)(6041248)(20161123558100)(20161123555025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(201708071742011); SRVR:HE1PR0502MB3658; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:HE1PR0502MB3658; x-forefront-prvs: 05079D8470 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(366004)(376002)(346002)(199003)(53754006)(189002)(7696005)(74316002)(25786009)(66066001)(2900100001)(2906002)(189998001)(6116002)(6306002)(3846002)(6436002)(53936002)(316002)(2501003)(54896002)(54356011)(5640700003)(6506006)(790700001)(5250100002)(55016002)(102836003)(97736004)(9686003)(33656002)(81166006)(8676002)(101416001)(6916009)(5630700001)(86362001)(81156014)(1730700003)(105586002)(2351001)(99286004)(8936002)(4326008)(68736007)(106356001)(3280700002)(14454004)(478600001)(7736002)(3660700001)(5660300001)(50986010); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0502MB3658; H:HE1PR0502MB3659.eurprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff02708c-aee3-4318-e8e1-08d5382babaf X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2017 19:50:55.7193 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0502MB3658 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-dev] new EAL mechanism proposal for driver options 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, 30 Nov 2017 19:50:58 -0000 Hi all It may be convenient that DPDK drivers can work in several modes. Allowing driver option changes by the user can make the program more effici= ent. For Example: If user knows that all its Tx packets are 1 segment packets it can change t= he PMD mode to work with different tx_burst function which is more efficient for 1= segment scenario, As soon as multi segments packet are created, the user can change the mode = back in run time. Now let's discuss how to implement driver options. I suggest new bus operation to set the driver options. Each bus will expose new operation in rte_bus structure to set driver optio= n by driver name: int set_driver_option(const char* driver_name, const char* optargs) Each bus will expose operation in rte_bus structure to set itself options: int set_option(char* optargs) Each PMD will expose operation to create option in its driver structure: int set_option(char* optargs) The EAL will expose API to set driver options by the user: int eal_set_driver_option(const char* bus_name, const char* driver_name, co= nst char* optargs) int eal_set_bus_option(const char* bus_name, const char* optargs) optargs format will be "key1=3Dvalue1,key2=3Dvalue2,key3=3Dvalue3..." and s= hould be validated by EAL. Add new EAL command line parameter to set the start options per driver: "-driver-options bus_name=3D,[name=3D,]key1= =3Dvalue1[,key2=3Dvalue2,key3=3Dvalue3...]". Thoughts?