From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3F58CA0559; Tue, 17 Mar 2020 03:35:55 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 796D91C069; Tue, 17 Mar 2020 03:35:54 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 705FB1C066 for ; Tue, 17 Mar 2020 03:35:52 +0100 (CET) IronPort-SDR: pR2VqG16n9w1mgaDJkj/B8jPvjqSSPcXUSYSCvm2hkBkLrgNaEklIOb+tnz65ckQOAwMK9qpcJ CT6oZv2AmMJw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Mar 2020 19:35:51 -0700 IronPort-SDR: 33cLnFBNodpzGDcc2f+9K/80nBNSbtO4788nUFn8XbsqLANh0yk8RQvq4og1bIRITMwWh396pC A1i23fHlv3Qw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,562,1574150400"; d="scan'208";a="262888151" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga002.jf.intel.com with ESMTP; 16 Mar 2020 19:35:50 -0700 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 16 Mar 2020 19:35:50 -0700 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by SHSMSX606.ccr.corp.intel.com (10.109.6.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 17 Mar 2020 10:35:48 +0800 Received: from shsmsx603.ccr.corp.intel.com ([10.109.6.143]) by SHSMSX603.ccr.corp.intel.com ([10.109.6.143]) with mapi id 15.01.1713.004; Tue, 17 Mar 2020 10:35:48 +0800 From: "Wang, Haiyue" To: "Stillwell Jr, Paul M" , "Zhang, Qi Z" , "dev@dpdk.org" , "Ye, Xiaolong" , "Yang, Qiming" , "Xing, Beilei" CC: "Zhao1, Wei" , "Liang, Cunming" , "Wu, Jingjing" Thread-Topic: [dpdk-dev] [PATCH v2 0/7] add Intel DCF PMD support Thread-Index: AQHV9qlIvRFE+hfqn0Svmk6VBB99+6hGMsmAgAIx2ACAArCjgIABBJ9Q Date: Tue, 17 Mar 2020 02:35:48 +0000 Message-ID: <03b82822a46347009a51c5a0ce1f9f43@intel.com> References: <20200309141437.11800-1-haiyue.wang@intel.com> <20200310065029.40966-1-haiyue.wang@intel.com> <039ED4275CED7440929022BC67E70611547E0B06@SHSMSX103.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2 0/7] add Intel DCF PMD support 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: Stillwell Jr, Paul M > Sent: Tuesday, March 17, 2020 02:55 > To: Zhang, Qi Z ; Wang, Haiyue ; dev@dpdk.org; Ye, > Xiaolong ; Yang, Qiming ; X= ing, Beilei > > Cc: Zhao1, Wei ; Wang, Haiyue ; Liang, Cunming > ; Wu, Jingjing > Subject: RE: [dpdk-dev] [PATCH v2 0/7] add Intel DCF PMD support >=20 > See my responses inline. >=20 > Paul >=20 > > -----Original Message----- > > From: Zhang, Qi Z > > Sent: Saturday, March 14, 2020 6:50 PM > > To: Stillwell Jr, Paul M ; Wang, Haiyue > > ; dev@dpdk.org; Ye, Xiaolong > > ; Yang, Qiming ; Xing, > > Beilei > > Cc: Zhao1, Wei ; Wang, Haiyue > > ; Liang, Cunming ; Wu, > > Jingjing > > Subject: RE: [dpdk-dev] [PATCH v2 0/7] add Intel DCF PMD support > > > > Hi Paul: > > > > > -----Original Message----- > > > From: Stillwell Jr, Paul M > > > Sent: Saturday, March 14, 2020 12:19 AM > > > To: Wang, Haiyue ; dev@dpdk.org; Ye, Xiaolong > > > ; Zhang, Qi Z ; Yang, > > > Qiming ; Xing, Beilei > > > Cc: Zhao1, Wei ; Wang, Haiyue > > > > > > Subject: RE: [dpdk-dev] [PATCH v2 0/7] add Intel DCF PMD support > > > > > > I'm confused. Shouldn't the DCF be a separate driver since it is a VF= , > > > not part of a PF? You are starting to combine PF/VF code and I'm not > > > sure if that is the correct way to go. > > > > From DPDK's view, DCF is NOT a VF driver, actually it behaves like a PF= driver > > with control path only and it share most exist PF driver's API implemen= tation >=20 > It *is* a VF. The only way this will work is if the VF has the trust flag= set and then it can become > the DCF. You can't set the trust flag on a PF I don't think. That's the o= nly way this will work > because the kernel driver code has checks on the admin queue messages to = see if the message is from a > VF. If it's not a message from a specific VF, then the message will get r= ejected. >=20 This is absolutely right, and this is added into the guide about how to ena= ble DCF. ;-) And one important thing is that : VF with DCF capability is only bound to i= ce/kernel driver, so we can't add it into the generic iavf VF PMD, since it works on = i40e/ice etc. And the main task about DCF is flow control, the AdminQ is implemented in i= ce PF PMD, and it just uses these AdminQ API to runs on VF hardware, not ice PF hardware. > > , That's why we combined it with exist PF driver, so when the module > > driver/net/ice is compiled into a library, it can be probed as a PF dri= ver or DCF > > base on device ID at runtime. > > And the is not special in DPDK, for example, the module in driver/net/i= 40e > > can be probed as i40e pf driver or i40e vf driver. > > DCF take SR-IOV's mailbox as a message channel to communicate with the > > backend kernel driver, so iavf virtual channel is reused here, so we al= so need > > to link iavf share code. > > > > And I agree, its always better if we can separate 2 different things wh= ile > > decouple all the common code into a share library to avoid duplicate co= de > > copy (just like we did on iavf share code) But in this case, a lot of c= ode > > refectory is required , so far we just take the simple way, we may impr= ove > > this in future. > > > > Thanks > > Qi > > > > > > > > Paul > > > > > > > -----Original Message----- > > > > From: dev On Behalf Of Haiyue Wang > > > > Sent: Monday, March 9, 2020 11:50 PM > > > > To: dev@dpdk.org; Ye, Xiaolong ; Zhang, Qi Z > > > > ; Yang, Qiming ; Xing, > > > > Beilei > > > > Cc: Zhao1, Wei ; Wang, Haiyue > > > > > > > > Subject: [dpdk-dev] [PATCH v2 0/7] add Intel DCF PMD support > > > > > > > > A DCF (Device Config Function) based approach is proposed where a > > > > device bound to the device's VF0 can act as a sole controlling > > > > entity to exercise advance functionality (such as switch, ACL) for = rest of > > the VFs. > > > > > > > > The DCF works as a standalone PMD to support this function, which > > > > shares the ice PMD flow control core function and the iavf virtchnl > > > > mailbox core module. > > > > > > > > This patchset is based on: > > > > [1] https://patchwork.dpdk.org/cover/66417/ : update ice base code > > > > [2] https://patchwork.dpdk.org/cover/66472/ : iavf share code updat= e > > > > > > > > Depends-on: series-8843 > > > > Depends-on: series-8855 > > > > > > > > v2: > > > > 1. update the iavf patchset link. > > > > 2. split more patches for making this work be more understandabl= e > > > > 3. fix the log function usage, devargs checking from v1. > > > > > > > > Haiyue Wang (7): > > > > net/iavf: stop the PCI probe in DCF mode > > > > net/ice: add the DCF hardware initialization > > > > net/ice: initiate to acquire the DCF capability > > > > net/ice: handle the AdminQ command by DCF > > > > net/ice: export the DDP definition symbols > > > > net/ice: handle the PF initialization by DCF > > > > net/ice: get the VF hardware index in DCF > > > > > > > > doc/guides/nics/ice.rst | 47 ++ > > > > doc/guides/nics/img/ice_dcf.png | Bin 0 -> 39168 bytes > > > > doc/guides/rel_notes/release_20_05.rst | 5 + > > > > drivers/common/Makefile | 1 + > > > > drivers/net/iavf/iavf_ethdev.c | 43 ++ > > > > drivers/net/ice/Makefile | 6 + > > > > drivers/net/ice/ice_dcf.c | 651 > > > +++++++++++++++++++++++++ > > > > drivers/net/ice/ice_dcf.h | 61 +++ > > > > drivers/net/ice/ice_dcf_ethdev.c | 321 ++++++++++++ > > > > drivers/net/ice/ice_dcf_ethdev.h | 33 ++ > > > > drivers/net/ice/ice_dcf_parent.c | 344 +++++++++++++ > > > > drivers/net/ice/ice_ethdev.c | 9 +- > > > > drivers/net/ice/ice_ethdev.h | 8 + > > > > drivers/net/ice/meson.build | 8 +- > > > > mk/rte.app.mk | 1 + > > > > 15 files changed, 1528 insertions(+), 10 deletions(-) create mode > > > > 100644 doc/guides/nics/img/ice_dcf.png create mode 100644 > > > > drivers/net/ice/ice_dcf.c create mode 100644 > > > > drivers/net/ice/ice_dcf.h create mode 100644 > > > > drivers/net/ice/ice_dcf_ethdev.c create mode 100644 > > > > drivers/net/ice/ice_dcf_ethdev.h create mode 100644 > > > > drivers/net/ice/ice_dcf_parent.c > > > > > > > > -- > > > > 2.25.1 > > > > > >=20