From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id D96D21B453 for ; Tue, 3 Jul 2018 17:05:09 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Jul 2018 08:05:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,304,1526367600"; d="scan'208";a="237543046" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga005.jf.intel.com with ESMTP; 03 Jul 2018 08:03:56 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 3 Jul 2018 08:03:47 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.51]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.116]) with mapi id 14.03.0319.002; Tue, 3 Jul 2018 23:03:45 +0800 From: "Zhang, Qi Z" To: Thomas Monjalon CC: "dev@dpdk.org" , "Burakov, Anatoly" , "Ananyev, Konstantin" , "Richardson, Bruce" , "Yigit, Ferruh" , "Shelton, Benjamin H" , "Vangati, Narender" Thread-Topic: [dpdk-dev] [PATCH v8 03/19] ethdev: enable hotplug on multi-process Thread-Index: AQHUEcfCBI2Nb01f+EKoUu5M4S3vPKR8u1QAgAC41gD//5GRAIAAh/dg Date: Tue, 3 Jul 2018 15:03:45 +0000 Message-ID: <039ED4275CED7440929022BC67E7061153243554@SHSMSX103.ccr.corp.intel.com> References: <20180607123849.14439-1-qi.z.zhang@intel.com> <2271872.YPHGBAMJzT@xps> <039ED4275CED7440929022BC67E7061153243483@SHSMSX103.ccr.corp.intel.com> <1673164.0Yk3bj6gtc@xps> In-Reply-To: <1673164.0Yk3bj6gtc@xps> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZjc1YmJkNDQtYmU2MC00ZDllLTliOWQtYjBlMjA5OTQ4OGMzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoib2FJWFVFNHZmbmpPK1JDR2hJOXk1RDNwZUVTK2RTUURDN0YxZWtmSGJFYXQ3aU5FeHpveG9WdGdPYUVNZnRHTCJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v8 03/19] ethdev: enable hotplug on multi-process 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: Tue, 03 Jul 2018 15:05:13 -0000 > -----Original Message----- > From: Thomas Monjalon [mailto:thomas@monjalon.net] > Sent: Tuesday, July 3, 2018 10:11 PM > To: Zhang, Qi Z > Cc: dev@dpdk.org; Burakov, Anatoly ; Ananyev, > Konstantin ; Richardson, Bruce > ; Yigit, Ferruh ; She= lton, > Benjamin H ; Vangati, Narender > > Subject: Re: [dpdk-dev] [PATCH v8 03/19] ethdev: enable hotplug on > multi-process >=20 > 03/07/2018 14:59, Zhang, Qi Z: > > > > +/** > > > > + * this is a synchronous wrapper for secondary process send > > > > + * request to primary process, this is invoked when an attach > > > > + * or detach request issued from primary. > > > > + */ > > > > +int eth_dev_request_to_primary(struct eth_dev_mp_req *req); > > > > + > > > > +/** > > > > + * this is a synchronous wrapper for primary process send > > > > + * request to secondary process, this is invoked when an attach > > > > + * or detach request issued from secondary process. > > > > + */ > > > > +int eth_dev_request_to_secondary(struct eth_dev_mp_req *req); > > > > > > > > > Why do we need ethdev functions for IPC (mp request/response)? > > > How this model can reasonnably scale to other device classes > > > (crypto, compression, bbdev, eventdev, etc)? > > > > Yes it will be more generic to more the multi-process device sync > > mechanism into eal layer.(rte_eal_hotplug_add/rte_eal_hotplug_remove) > > I didn't do this is I'm not very sure if all anothers kinds of device > > type need this, but if you think this is a good direction and we need t= o enable > for all devices, I think this could be our next step. BTW, I guess ethdev= still > need some IPC to sync port_id which is specific for itself, and other dev= ice type > may have similar requirement. >=20 > I don't understand what is specific to ethdev in this IPC. > If it is just about a port id, I think it can be done elsewhere (EAL?) Yes what I mean is port _id, I'm not sure if it can be done elsewhere, I ne= ed to check. >=20 > > > > --- /dev/null > > > > +++ b/lib/librte_ethdev/ethdev_private.h > > > > > > What is the purpose of a file ethdev_private.h? >=20 > You did not reply this question. the header file is used to declare the functions only be used by libethdev = internally=20 like eal_private.h, or I don't know where the three functions I should decl= ared. >=20 > > > > +do_eth_dev_attach(const char *devargs, uint16_t *port_id); > > > > > > So you are duplicating rte_eth_dev_attach which is flawed in its > > > design and should be deprecated... > > > > OK, just to know this, but I guess it will not be the issue, if we move= the dev > sync mechanism into eal layer in future right? >=20 > Future is now :) > We must stop mixing devargs and port id in the same layer. Ok, is there any RFC I can learn? >=20 > > > As you may have noticed, rte_eth_dev_attach() is calling > > > rte_eal_hotplug_add() which manages the EAL device. > > > It is wrong because the relation between an ethdev port and an EAL > > > device is not a 1:1 mapping. > > > We must manage the ethdev port as one of the possible abstractions > > > of a device represented by rte_device. >=20 >=20