[dpdk-dev,v2] doc: add known issue for i40e VF performance
Checks
Commit Message
VF performance is limited by the kernel PCI extended tag setting.
Update the document to explain the known issue and the workaround.
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
v2:
- follow number list format.
- improve the comments.
doc/guides/nics/i40e.rst | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
Comments
> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Monday, July 3, 2017 4:58 AM
> To: Mcnamara, John <john.mcnamara@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>
> Cc: Zhang, Helin <helin.zhang@intel.com>; dev@dpdk.org; Zhang, Qi Z
> <qi.z.zhang@intel.com>
> Subject: [PATCH v2] doc: add known issue for i40e VF performance
>
> VF performance is limited by the kernel PCI extended tag setting.
> Update the document to explain the known issue and the workaround.
>
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
On 7/3/2017 4:57 AM, Qi Zhang wrote:
> VF performance is limited by the kernel PCI extended tag setting.
> Update the document to explain the known issue and the workaround.
>
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Hi Qi, John,
Not related to the content, but related to location, where a "known
issue" should go, release notes or component specific document?
Thanks,
ferruh
Hi,
Few typos spotted
03/07/2017 05:57, Qi Zhang:
> --- a/doc/guides/nics/i40e.rst
> +++ b/doc/guides/nics/i40e.rst
> @@ -447,3 +447,30 @@ It means if APP has set the max bandwidth for that TC, it comes to no
> effect.
> It's suggested to set the strict priority mode for a TC that is latency
> sensitive but no consuming much bandwidth.
> +
> +VF performance is impacted by PCI extended tag setting
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +To reach maximum NIC performance in the VF the PCI extended tag must be
> +enabled. The DPDK I40E PF drvier will set this feature during initialization,
drvier -> driver
> +but the kernel PF driver does not. So when running traffic on a VF which is
> +managed by the kernel PF driver, a significent NIC performance downgrade has
significent -> significant
> +been observed (for 64 byte packets, there is about 25% linerate downgrade for
> +a 25G device and about 35% for a 40G device).
> +
> +For kernel version >= 4.11, the kernel's PCI driver will enable the extended
> +tag if it detects that the device supports it. So by default, this is not an
> +issue. For kernels <= 4.11 or When the PCI extended tag is disabled it can be
When -> when
> +enabled using the steps below.
> +
> +#. Get the current value of the PCI configure register::
> +
> + setpci -s <XX:XX.X> a8.w
> +
> +#. Set bit 8::
> +
> + value = value | 0x100
> +
> +#. Set the PCI configure register with new value::
> +
> + setpci -s <XX:XX.X> a8.w=<value>
@@ -447,3 +447,30 @@ It means if APP has set the max bandwidth for that TC, it comes to no
effect.
It's suggested to set the strict priority mode for a TC that is latency
sensitive but no consuming much bandwidth.
+
+VF performance is impacted by PCI extended tag setting
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To reach maximum NIC performance in the VF the PCI extended tag must be
+enabled. The DPDK I40E PF drvier will set this feature during initialization,
+but the kernel PF driver does not. So when running traffic on a VF which is
+managed by the kernel PF driver, a significent NIC performance downgrade has
+been observed (for 64 byte packets, there is about 25% linerate downgrade for
+a 25G device and about 35% for a 40G device).
+
+For kernel version >= 4.11, the kernel's PCI driver will enable the extended
+tag if it detects that the device supports it. So by default, this is not an
+issue. For kernels <= 4.11 or When the PCI extended tag is disabled it can be
+enabled using the steps below.
+
+#. Get the current value of the PCI configure register::
+
+ setpci -s <XX:XX.X> a8.w
+
+#. Set bit 8::
+
+ value = value | 0x100
+
+#. Set the PCI configure register with new value::
+
+ setpci -s <XX:XX.X> a8.w=<value>