[dpdk-dev] i40e: Steps and required configurations of how to achieve the best performance!

Zhang, Helin helin.zhang at intel.com
Wed Sep 17 10:50:15 CEST 2014


Hi David

For the ‘extended tag’, it was defined in PCIe spec, but actually not all BIOS implements it. Enabling it in BIOS or at runtime are two choices of doing the same thing. I don’t think it can be configured per PCI device in BIOS, so we don’t need to do that per PCI device in DPDK. Right? Actually we don’t want to touch PCIe settings in DPDK code, that’s why we want to let BIOS config as it is by default. If no better choice, we can do it in DPDK by changing configurations.

For ‘CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n’ by default, we want to support 32 bytes rx descriptors by default. Two reasons:
One is 32 bytes rx descriptors can provide more powerful features, and more offload features.
The other is Linux PF host use 32 bytes rx descriptor by default which might not able to be changed, to support Linux PF host, it would be better to use 32 bytes rx descriptors in DPDK VF by default.

Regards,
Helin

From: David Marchand [mailto:david.marchand at 6wind.com]
Sent: Wednesday, September 17, 2014 4:34 PM
To: Zhang, Helin
Cc: dev at dpdk.org
Subject: Re: [dpdk-dev] i40e: Steps and required configurations of how to achieve the best performance!

Hello,

Some questions/comments :

On Wed, Sep 17, 2014 at 6:18 AM, Zhang, Helin <helin.zhang at intel.com<mailto:helin.zhang at intel.com>> wrote:
-- *Extended Tag: Enabled
Note that 'Extended Tag' might not be seen in some BIOS, see 'compile settings' for doing that at runtime.

I am not sure I understand this point.

Either you have a bios that configures extended tag and you don't need anything in the dpdk or your bios does not support it and you must set it at runtime ?
Then why not just set it at runtime and we avoid touching bios config ?


5. Compile Settings:
-- Change below configuration items in config files
  CONFIG_RTE_PCI_CONFIG=y
  CONFIG_RTE_PCI_EXTENDED_TAG="on"

Why have this build option for what looks to be a runtime decision ?
Why don't we have RTE_PCI_CONFIG always set and extended tag to "on" ? (which means that we can get rid of these build options)

Looking at igb_uio code, I am a bit concerned that this option affects all "igb_uio" pci devices in dpdk.
Can you ensure me that any pci device going through igb_uio (em, igb, ixgbe etc... devices) will behave well with this option enabled ?

It would be better to have a per-device (or per-pmd) option.

Plus, build option should really be avoided for any feature in dpdk (and we have a lot of cleanup work about this ...).


  CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=y

 Why is it disabled as a default ?

Thanks.

--
David Marchand


More information about the dev mailing list