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 692DB7EE4 for ; Wed, 18 Apr 2018 08:49:56 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Apr 2018 23:49:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,464,1517904000"; d="scan'208";a="51660709" Received: from tanjianf-mobl.ccr.corp.intel.com (HELO [10.67.64.70]) ([10.67.64.70]) by orsmga002.jf.intel.com with ESMTP; 17 Apr 2018 23:49:50 -0700 To: Ferruh Yigit , Tiwei Bie References: <20180313180534.232296-1-ferruh.yigit@intel.com> <20180410154102.uv7og3ff4y5ylc3m@debian> <20180414105546.25vqtpcfkexwlkhp@debian> <20180417045427.6guh7x7yqpyfdnwj@debian> Cc: Qi Zhang , Xiao Wang , John McNamara , Marko Kovacevic , Beilei Xing , Wenzhuo Lu , Rasesh Mody , Harish Patil , Shahed Shaikh , Tetsuya Mukawa , Yuanhan Liu , Maxime Coquelin , Marcin Wojtas , Michal Krawczyk , Guy Tzalik , Evgeny Schemeilin , Konstantin Ananyev , Adrien Mazarguil , Nelio Laranjeiro , Yongseok Koh , dev@dpdk.org From: "Tan, Jianfeng" Message-ID: <3517e7a5-dec6-fca1-b24f-8fdc2691216c@intel.com> Date: Wed, 18 Apr 2018 14:49:50 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH] drivers/net: update link status 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, 18 Apr 2018 06:49:57 -0000 Hi Ferruh, On 4/17/2018 7:26 PM, Ferruh Yigit wrote: > On 4/17/2018 5:54 AM, Tiwei Bie wrote: >> On Mon, Apr 16, 2018 at 05:10:24PM +0100, Ferruh Yigit wrote: >>> On 4/14/2018 11:55 AM, Tiwei Bie wrote: >>>> On Fri, Apr 13, 2018 at 10:53:55PM +0100, Ferruh Yigit wrote: >>>>> On 4/10/2018 4:41 PM, Tiwei Bie wrote: >>>>>> On Tue, Mar 13, 2018 at 06:05:34PM +0000, Ferruh Yigit wrote: >>>>>>> Update link status related feature document items and minor updates in >>>>>>> some link status related functions. >>>>>>> >>>>>>> Signed-off-by: Ferruh Yigit >>>>>>> --- >>>>>>> doc/guides/nics/features/fm10k.ini | 2 ++ >>>>>>> doc/guides/nics/features/fm10k_vf.ini | 2 ++ >>>>>>> doc/guides/nics/features/i40e_vf.ini | 1 + >>>>>>> doc/guides/nics/features/igb_vf.ini | 1 + >>>>>>> doc/guides/nics/features/qede.ini | 1 - >>>>>>> doc/guides/nics/features/qede_vf.ini | 1 - >>>>>>> doc/guides/nics/features/vhost.ini | 2 -- >>>>>>> doc/guides/nics/features/virtio_vec.ini | 1 + >>>>>>> drivers/net/e1000/em_ethdev.c | 2 +- >>>>>>> drivers/net/ena/ena_ethdev.c | 2 +- >>>>>>> drivers/net/fm10k/fm10k_ethdev.c | 6 ++---- >>>>>>> drivers/net/i40e/i40e_ethdev_vf.c | 2 +- >>>>>>> drivers/net/ixgbe/ixgbe_ethdev.c | 2 +- >>>>>>> drivers/net/mlx4/mlx4_ethdev.c | 2 +- >>>>>>> drivers/net/mlx5/mlx5_ethdev.c | 2 +- >>>>>>> 15 files changed, 15 insertions(+), 14 deletions(-) >>>>>> [...] >>>>>>> diff --git a/doc/guides/nics/features/vhost.ini b/doc/guides/nics/features/vhost.ini >>>>>>> index dffd1f493..31302745a 100644 >>>>>>> --- a/doc/guides/nics/features/vhost.ini >>>>>>> +++ b/doc/guides/nics/features/vhost.ini >>>>>>> @@ -4,8 +4,6 @@ >>>>>>> ; Refer to default.ini for the full list of available PMD features. >>>>>>> ; >>>>>>> [Features] >>>>>>> -Link status = Y >>>>>>> -Link status event = Y >>>>>> I think vhost PMD supports above features. >>>>> I am not able to find where it is supported. >>>>> >>>>> Some virtual PMDs report fixed link, with empty link_update() dev_ops, and they >>>>> are not reported as supporting Link status, as far as I can see vhost also one >>>>> of them. >>>>> >>>>> And for Link status event, PMD needs to support LSC interrupts and should >>>>> register interrupt handler for it, which I can't find for vhost. >>>>> >>>>> I will send next version without updating above one, please point me where these >>>>> support added if I missed them. >>>> In drivers/net/vhost/rte_eth_vhost.c you could find below functions: >>>> >>>> static int >>>> new_device(int vid) >>>> { >>>> ...... >>>> >>>> eth_dev->data->dev_link.link_status = ETH_LINK_UP; >>>> >>>> ...... >>>> >>>> _rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_INTR_LSC, NULL); >>>> >>>> ...... >>>> } >>>> >>>> static void >>>> destroy_device(int vid) >>>> { >>>> ...... >>>> >>>> eth_dev->data->dev_link.link_status = ETH_LINK_DOWN; >>>> >>>> ...... >>>> >>>> _rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_INTR_LSC, NULL); >>>> >>>> ...... >>>> } >>>> >>>> They are the callbacks for vhost library. >>>> >>>> When a frontend (e.g. QEMU) is connected to this vhost backend >>>> and the frontend virtio device becomes ready, new_device() will >>>> be called by the vhost library, and the link status will be >>>> updated to UP. >>>> >>>> And when e.g. the connection is closed, destroy_device() will be >>>> called by the vhost library, and the link status will be updated >>>> to DOWN. >>> >>> Got it. This behavior is similar for virtual PMDs. Provide static link >>> information and update link as UP during start and update it as DOWN during stop. >> No, the link status isn't updated during vhost PMD start >> and stop. When the vhost PMD has been started, the link >> status still may be DOWN. The link status becomes UP only >> when the QEMU (it's another virtual machine process which >> has a virtio device) connects to this vhost PMD via a UNIX >> socket and the virtio driver in the virtual machine has >> setup the virtio device of the virtual machine. >> >> So if vhost PMD reports the link status as DOWN, it means >> there is no QEMU (virtual machine) connects to it or the >> virtio device in the virtual machine hasn't been setup. >> (PS. The frontend can also be virtio-user PMD besides QEMU) > I believe announcing link feature reporting on virtual pmds still in gray area, > but because of qemu involvement in vhost case, I will keep link feature but will > drop link event. AFAIK, link status means we can get link status through APIs like rte_eth_link_get(); while link status event means applications can register link status events, and those events get called if link status is changed. If I understand it correctly, for vhost, we can keep both link status and link status event for vhost. Could you specify the reason why we remove link status event? Thanks, Jianfeng > > Will send a new patch to reflect this. > > Thanks, > ferruh