From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2FB50A04FF; Wed, 4 May 2022 16:46:56 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C34EA40C35; Wed, 4 May 2022 16:46:55 +0200 (CEST) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 461A04069F for ; Wed, 4 May 2022 16:46:54 +0200 (CEST) Received: from [192.168.108.214] (unknown [188.170.87.12]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id 1B3B182; Wed, 4 May 2022 17:46:52 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 1B3B182 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1651675612; bh=ptNt7jRX+dBX/YFRAcndUOsXeIf6b+mcRwzXou6a7aw=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=SzXJ91V72UsOJRZjSJCbeKnsqUJMxJBFtVQ4xTM0/hEi43TUw91f3sSurrKniXdmT Za+olcAQtSNwU2cM24Gv58njaCUxr09TxqQKqPsuw2fXVhoIGUL+K5n/ON7JC/2GlD z3JfDvBy4mgQgWye7UkHtRVO8TcfiXCiKrARFyIc= Message-ID: <4ece5c47-4f95-a803-e361-98fbab2b9ac9@oktetlabs.ru> Date: Wed, 4 May 2022 17:46:50 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.2 Subject: Re: [PATCH 5/8] vmxnet3, version 6 Content-Language: en-US To: Pankaj Gupta , jbehrens@vmware.com, yongwang@vmware.com Cc: dev@dpdk.org References: <20220503042257.15626-1-pagupta@vmware.com> <20220503042257.15626-6-pagupta@vmware.com> From: Andrew Rybchenko In-Reply-To: <20220503042257.15626-6-pagupta@vmware.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Summary should say what is done. Consider: net/vmxnet3: support virtual HW version 6 On 5/3/22 07:22, Pankaj Gupta wrote: > vmxnet3 version 6 supports some new features, including but > not limited to: > - Increased max MTU up to 9190 > - Increased max number of queues, both for RX and TX RX -> Rx, TX -> Tx in accordnace with recommended spelling > - Removes power-of-two limitations > - Extended interrupt structures, required implementation for > additional number of queues Please, be consistent in tense used above, "increased" vs "removes". > Tested, using testpmd, for different hardware version on > ESXi 7.0 Update 2. > > Signed-off-by: Pankaj Gupta > --- > drivers/net/vmxnet3/base/vmxnet3_defs.h | 135 +++++++++----- > drivers/net/vmxnet3/vmxnet3_ethdev.c | 223 +++++++++++++++++------- > drivers/net/vmxnet3/vmxnet3_ethdev.h | 10 +- > drivers/net/vmxnet3/vmxnet3_rxtx.c | 2 +- > 4 files changed, 260 insertions(+), 110 deletions(-) > > diff --git a/drivers/net/vmxnet3/base/vmxnet3_defs.h b/drivers/net/vmxnet3/base/vmxnet3_defs.h > index 8d62b3e116..ceac5d64db 100644 > --- a/drivers/net/vmxnet3/base/vmxnet3_defs.h > +++ b/drivers/net/vmxnet3/base/vmxnet3_defs.h > @@ -72,38 +72,42 @@ > #endif > > typedef enum { > - VMXNET3_CMD_FIRST_SET = 0xCAFE0000, > - VMXNET3_CMD_ACTIVATE_DEV = VMXNET3_CMD_FIRST_SET, > - VMXNET3_CMD_QUIESCE_DEV, > - VMXNET3_CMD_RESET_DEV, > - VMXNET3_CMD_UPDATE_RX_MODE, > - VMXNET3_CMD_UPDATE_MAC_FILTERS, > - VMXNET3_CMD_UPDATE_VLAN_FILTERS, > - VMXNET3_CMD_UPDATE_RSSIDT, > - VMXNET3_CMD_UPDATE_IML, > - VMXNET3_CMD_UPDATE_PMCFG, > - VMXNET3_CMD_UPDATE_FEATURE, > - VMXNET3_CMD_STOP_EMULATION, > - VMXNET3_CMD_LOAD_PLUGIN, > - VMXNET3_CMD_ACTIVATE_VF, > - VMXNET3_CMD_RESERVED3, > - VMXNET3_CMD_RESERVED4, > - VMXNET3_CMD_REGISTER_MEMREGS, > - VMXNET3_CMD_SET_RSS_FIELDS, > - > - VMXNET3_CMD_FIRST_GET = 0xF00D0000, > - VMXNET3_CMD_GET_QUEUE_STATUS = VMXNET3_CMD_FIRST_GET, > - VMXNET3_CMD_GET_STATS, > - VMXNET3_CMD_GET_LINK, > - VMXNET3_CMD_GET_PERM_MAC_LO, > - VMXNET3_CMD_GET_PERM_MAC_HI, > - VMXNET3_CMD_GET_DID_LO, > - VMXNET3_CMD_GET_DID_HI, > - VMXNET3_CMD_GET_DEV_EXTRA_INFO, > - VMXNET3_CMD_GET_CONF_INTR, > - VMXNET3_CMD_GET_ADAPTIVE_RING_INFO, > - VMXNET3_CMD_GET_TXDATA_DESC_SIZE, > - VMXNET3_CMD_RESERVED5, > + VMXNET3_CMD_FIRST_SET = 0xCAFE0000, > + VMXNET3_CMD_ACTIVATE_DEV = VMXNET3_CMD_FIRST_SET, > + VMXNET3_CMD_QUIESCE_DEV, > + VMXNET3_CMD_RESET_DEV, > + VMXNET3_CMD_UPDATE_RX_MODE, > + VMXNET3_CMD_UPDATE_MAC_FILTERS, > + VMXNET3_CMD_UPDATE_VLAN_FILTERS, > + VMXNET3_CMD_UPDATE_RSSIDT, > + VMXNET3_CMD_UPDATE_IML, > + VMXNET3_CMD_UPDATE_PMCFG, > + VMXNET3_CMD_UPDATE_FEATURE, > + VMXNET3_CMD_STOP_EMULATION, > + VMXNET3_CMD_LOAD_PLUGIN, > + VMXNET3_CMD_ACTIVATE_VF, > + VMXNET3_CMD_RESERVED3, > + VMXNET3_CMD_RESERVED4, > + VMXNET3_CMD_REGISTER_MEMREGS, > + VMXNET3_CMD_SET_RSS_FIELDS, > + > + VMXNET3_CMD_FIRST_GET = 0xF00D0000, > + VMXNET3_CMD_GET_QUEUE_STATUS = VMXNET3_CMD_FIRST_GET, > + VMXNET3_CMD_GET_STATS, > + VMXNET3_CMD_GET_LINK, > + VMXNET3_CMD_GET_PERM_MAC_LO, > + VMXNET3_CMD_GET_PERM_MAC_HI, > + VMXNET3_CMD_GET_DID_LO, > + VMXNET3_CMD_GET_DID_HI, > + VMXNET3_CMD_GET_DEV_EXTRA_INFO, > + VMXNET3_CMD_GET_CONF_INTR, > + VMXNET3_CMD_GET_ADAPTIVE_RING_INFO, > + VMXNET3_CMD_GET_TXDATA_DESC_SIZE, > + VMXNET3_CMD_RESERVED5, > + VMXNET3_CMD_RESERVED6, > + VMXNET3_CMD_RESERVED7, > + VMXNET3_CMD_RESERVED8, > + VMXNET3_CMD_GET_MAX_QUEUES_CONF, It is hard to find what is really done above. If you wnat to fix an alignment, please, do it in a separate prepatch without any real changes. > } Vmxnet3_Cmd; > > /* Adaptive Ring Info Flags */ > @@ -571,6 +575,24 @@ enum vmxnet3_intr_type { > /* addition 1 for events */ > #define VMXNET3_MAX_INTRS 25 > > +/* Version 6 and later will use below macros */ > +#define VMXNET3_EXT_MAX_TX_QUEUES 32 > +#define VMXNET3_EXT_MAX_RX_QUEUES 32 > + > +/* Version-dependent MAX RX/TX queues macro */ > +#define MAX_RX_QUEUES \ > + (VMXNET3_VERSION_GE_6(hw) ? \ I think it is beter to pass 'hw' argument explicintly. Otherwise it looks inconsistent and confusing. > + VMXNET3_EXT_MAX_RX_QUEUES : \ > + VMXNET3_MAX_RX_QUEUES) > +#define MAX_TX_QUEUES \ > + (VMXNET3_VERSION_GE_6(hw) ? \ same here > + VMXNET3_EXT_MAX_TX_QUEUES : \ > + VMXNET3_MAX_TX_QUEUES) > + [snip]