From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Wu, Jingjing" Subject: Re: [PATCH 2/3 v7] i40e: Add floating VEB support in i40e Date: Wed, 20 Apr 2016 07:31:03 +0000 Message-ID: <9BB6961774997848B5B42BEC655768F8E2213F@SHSMSX103.ccr.corp.intel.com> References: <1458816499-705-1-git-send-email-zhe.tao@intel.com> <1458895321-21896-1-git-send-email-zhe.tao@intel.com> <1458895321-21896-3-git-send-email-zhe.tao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable To: "Tao, Zhe" , "dev@dpdk.org" Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 223732BA0 for ; Wed, 20 Apr 2016 09:31:06 +0200 (CEST) In-Reply-To: <1458895321-21896-3-git-send-email-zhe.tao@intel.com> Content-Language: en-US List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > @@ -3830,12 +3844,22 @@ i40e_vsi_release(struct i40e_vsi *vsi) > i40e_veb_release(vsi->veb); > } >=20 > + if (vsi->floating_veb) { > + TAILQ_FOREACH(vsi_list, &vsi->floating_veb->head, list) { > + if (i40e_vsi_release(vsi_list->vsi) !=3D I40E_SUCCESS) > + return -1; It will be better to continue but not return error. > + TAILQ_REMOVE(&vsi->floating_veb->head, vsi_list, > list); > + } > + i40e_veb_release(vsi->floating_veb); > + } > + > diff --git a/drivers/net/i40e/i40e_ethdev.h > b/drivers/net/i40e/i40e_ethdev.h index 7dc6936..09fb6e2 100644 > --- a/drivers/net/i40e/i40e_ethdev.h > +++ b/drivers/net/i40e/i40e_ethdev.h > @@ -224,6 +224,7 @@ struct i40e_bw_info { struct i40e_veb { > struct i40e_vsi_list_head head; > struct i40e_vsi *associate_vsi; /* Associate VSI who owns the VEB */ > + struct i40e_pf *associate_pf; /* Associate PF who owns the VEB */ > uint16_t seid; /* The seid of VEB itself */ > uint16_t uplink_seid; /* The uplink seid of this VEB */ > uint16_t stats_idx; > @@ -264,6 +265,7 @@ struct i40e_vsi { > struct i40e_vsi_list sib_vsi_list; /* sibling vsi list */ > struct i40e_vsi *parent_vsi; > struct i40e_veb *veb; /* Associated veb, could be null */ > + struct i40e_veb *floating_veb; /* Associated floating veb */ For vsi->veb, the VEB associated with uplink vsi, but as I know, floating_v= eb Has no uplink vsis. Can I understand the floating_veb in vsi indicates floa= ting veb Of the device/pf, and only main vsi will have it? If so, why not put in in = the pf structure?