[ovs-dev] [PATCH v2] dpdk: Update to use v23.11.

2024-01-15 Thread David Marchand
This commit adds support for DPDK v23.11.
It updates the CI script and documentation and includes the following
changes coming from the dpdk-latest branch:

- sparse: Add some compiler intrinsics for DPDK build.
  https://patchwork.ozlabs.org/project/openvswitch/list/?series=371129&state=*

- ci: Cache DPDK installed libraries only.
- ci: Reduce optional libraries in DPDK.
  https://patchwork.ozlabs.org/project/openvswitch/list/?series=383367&state=*

- system-dpdk: Ignore net/ice error log about QinQ offloading.
  https://patchwork.ozlabs.org/project/openvswitch/list/?series=385259&state=*

There is a known issue with i40e VF devices where OVS main thread may
block when adding such devices as dpif-netdev dpdk ports.

Signed-off-by: David Marchand 
---
 .ci/dpdk-build.sh| 28 +++-
 .ci/linux-build.sh   |  9 
 .github/workflows/build-and-test.yml |  4 ++--
 Documentation/faq/releases.rst   |  2 +-
 Documentation/intro/install/dpdk.rst | 16 +++---
 Documentation/topics/dpdk/phy.rst| 12 +-
 Documentation/topics/dpdk/vdev.rst   |  2 +-
 Documentation/topics/dpdk/vhost-user.rst |  2 +-
 Documentation/topics/testing.rst |  2 +-
 Documentation/topics/userspace-tso.rst   |  2 +-
 NEWS |  9 
 debian/control.in|  2 +-
 include/sparse/automake.mk   |  1 +
 include/sparse/ia32intrin.h  | 23 +++
 rhel/openvswitch-fedora.spec.in  |  2 +-
 tests/system-dpdk-macros.at  |  1 +
 16 files changed, 80 insertions(+), 37 deletions(-)
 create mode 100644 include/sparse/ia32intrin.h

diff --git a/.ci/dpdk-build.sh b/.ci/dpdk-build.sh
index d4c178ee0d..23f3166a54 100755
--- a/.ci/dpdk-build.sh
+++ b/.ci/dpdk-build.sh
@@ -5,25 +5,27 @@ set -x
 
 function build_dpdk()
 {
-local VERSION_FILE="dpdk-dir/cached-version"
 local DPDK_VER=$1
 local DPDK_OPTS=""
+local DPDK_INSTALL_DIR="$(pwd)/dpdk-dir"
+local VERSION_FILE="$DPDK_INSTALL_DIR/cached-version"
 
-rm -rf dpdk-dir
+rm -rf dpdk-src
+rm -rf $DPDK_INSTALL_DIR
 
 if [ "${DPDK_VER##refs/*/}" != "${DPDK_VER}" ]; then
-git clone --single-branch $DPDK_GIT dpdk-dir -b "${DPDK_VER##refs/*/}"
-pushd dpdk-dir
+git clone --single-branch $DPDK_GIT dpdk-src -b "${DPDK_VER##refs/*/}"
+pushd dpdk-src
 git log -1 --oneline
 else
 wget https://fast.dpdk.org/rel/dpdk-$1.tar.xz
 tar xvf dpdk-$1.tar.xz > /dev/null
 DIR_NAME=$(tar -tf dpdk-$1.tar.xz | head -1 | cut -f1 -d"/")
-mv ${DIR_NAME} dpdk-dir
-pushd dpdk-dir
+mv ${DIR_NAME} dpdk-src
+pushd dpdk-src
 fi
 
-# Switching to 'default' machine to make dpdk-dir cache usable on
+# Switching to 'default' machine to make the dpdk cache usable on
 # different CPUs. We can't be sure that all CI machines are exactly same.
 DPDK_OPTS="$DPDK_OPTS -Dmachine=default"
 
@@ -40,16 +42,22 @@ function build_dpdk()
 DPDK_OPTS="$DPDK_OPTS -Denable_apps=test-pmd"
 enable_drivers="net/null,net/af_xdp,net/tap,net/virtio,net/pcap"
 DPDK_OPTS="$DPDK_OPTS -Denable_drivers=$enable_drivers"
+# OVS depends on the vhost library (and its dependencies).
+# net/tap depends on the gso library.
+DPDK_OPTS="$DPDK_OPTS -Denable_libs=cryptodev,dmadev,gso,vhost"
 
 # Install DPDK using prefix.
-DPDK_OPTS="$DPDK_OPTS --prefix=$(pwd)/build"
+DPDK_OPTS="$DPDK_OPTS --prefix=$DPDK_INSTALL_DIR"
 
 meson $DPDK_OPTS build
 ninja -C build
 ninja -C build install
-
-echo "Installed DPDK in $(pwd)"
 popd
+
+# Remove examples sources.
+rm -rf $DPDK_INSTALL_DIR/share/dpdk/examples
+
+echo "Installed DPDK in $DPDK_INSTALL_DIR"
 echo "${DPDK_VER}" > ${VERSION_FILE}
 }
 
diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 90581c10b7..cf1462a0c4 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -10,8 +10,9 @@ JOBS=${JOBS:-"-j4"}
 
 function install_dpdk()
 {
-local VERSION_FILE="dpdk-dir/cached-version"
-local DPDK_LIB=$(pwd)/dpdk-dir/build/lib/x86_64-linux-gnu
+local DPDK_INSTALL_DIR="$(pwd)/dpdk-dir"
+local VERSION_FILE="${DPDK_INSTALL_DIR}/cached-version"
+local DPDK_LIB=${DPDK_INSTALL_DIR}/lib/x86_64-linux-gnu
 
 if [ "$DPDK_SHARED" ]; then
 EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=shared"
@@ -27,13 +28,13 @@ function install_dpdk()
 export PATH=$(pwd)/dpdk-dir/build/bin:$PATH
 
 if [ ! -f "${VERSION_FILE}" ]; then
-echo "Could not find DPDK in $(pwd)/dpdk-dir"
+echo "Could not find DPDK in $DPDK_INSTALL_DIR"
 return 1
 fi
 
 # Update the library paths.
 sudo ldconfig
-echo "Found cached DPDK $(cat ${VERSION_FILE}) build in $(pwd)/dpdk-dir"
+echo "Found cached DPDK $(cat ${VERSION_FILE}) build in $DPDK_INSTALL_DIR"
 }
 
 function con

Re: [ovs-dev] [PATCH v2] dpdk: Update to use v23.11.

2024-01-15 Thread 0-day Robot
Bleep bloop.  Greetings David Marchand, I am a robot and I have tried out your 
patch.
Thanks for your contribution.

I encountered some error that I wasn't expecting.  See the details below.


checkpatch:
WARNING: Line is 80 characters long (recommended limit is 79)
#189 FILE: Documentation/intro/install/dpdk.rst:63:
.. _DPDK requirements: https://doc.dpdk.org/guides-23.11/linux_gsg/sys_reqs.html

WARNING: Line is 94 characters long (recommended limit is 79)
#233 FILE: Documentation/topics/dpdk/phy.rst:120:
.. _DPDK drivers documentation: 
https://doc.dpdk.org/guides-23.11/linux_gsg/linux_drivers.html

WARNING: Line is 94 characters long (recommended limit is 79)
#259 FILE: Documentation/topics/dpdk/phy.rst:325:
__ 
https://doc.dpdk.org/guides-23.11/prog_guide/env_abstraction_layer.html#iova-mode-detection

WARNING: Line is 92 characters long (recommended limit is 79)
#268 FILE: Documentation/topics/dpdk/phy.rst:357:
__ 
https://doc.dpdk.org/guides-23.11/prog_guide/switch_representation.html#port-representors

WARNING: Line is 104 characters long (recommended limit is 79)
#277 FILE: Documentation/topics/dpdk/phy.rst:491:
.. _bifurcated drivers: 
https://doc.dpdk.org/guides-23.11/linux_gsg/linux_drivers.html#bifurcated-driver

WARNING: Line is 82 characters long (recommended limit is 79)
#310 FILE: Documentation/topics/testing.rst:361:
.. _Configure hugepages: 
https://doc.dpdk.org/guides-23.11/linux_gsg/sys_reqs.html

Lines checked: 429, Warnings: 6, Errors: 0


Please check this out.  If you feel there has been an error, please email 
acon...@redhat.com

Thanks,
0-day Robot
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH v2] dpdk: Update to use v23.11.

2024-01-15 Thread Kevin Traynor
On 15/01/2024 14:28, David Marchand wrote:
> This commit adds support for DPDK v23.11.
> It updates the CI script and documentation and includes the following
> changes coming from the dpdk-latest branch:
> 
> - sparse: Add some compiler intrinsics for DPDK build.
>   https://patchwork.ozlabs.org/project/openvswitch/list/?series=371129&state=*
> 
> - ci: Cache DPDK installed libraries only.
> - ci: Reduce optional libraries in DPDK.
>   https://patchwork.ozlabs.org/project/openvswitch/list/?series=383367&state=*
> 
> - system-dpdk: Ignore net/ice error log about QinQ offloading.
>   https://patchwork.ozlabs.org/project/openvswitch/list/?series=385259&state=*
> 
> There is a known issue with i40e VF devices where OVS main thread may
> block when adding such devices as dpif-netdev dpdk ports.
> 
> Signed-off-by: David Marchand 
> ---

Acked-by: Kevin Traynor 

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH v2] dpdk: Update to use v23.11.

2024-01-15 Thread Ilya Maximets
On 1/15/24 17:13, Kevin Traynor wrote:
> On 15/01/2024 14:28, David Marchand wrote:
>> This commit adds support for DPDK v23.11.
>> It updates the CI script and documentation and includes the following
>> changes coming from the dpdk-latest branch:
>>
>> - sparse: Add some compiler intrinsics for DPDK build.
>>   
>> https://patchwork.ozlabs.org/project/openvswitch/list/?series=371129&state=*
>>
>> - ci: Cache DPDK installed libraries only.
>> - ci: Reduce optional libraries in DPDK.
>>   
>> https://patchwork.ozlabs.org/project/openvswitch/list/?series=383367&state=*
>>
>> - system-dpdk: Ignore net/ice error log about QinQ offloading.
>>   
>> https://patchwork.ozlabs.org/project/openvswitch/list/?series=385259&state=*
>>
>> There is a known issue with i40e VF devices where OVS main thread may
>> block when adding such devices as dpif-netdev dpdk ports.
>>
>> Signed-off-by: David Marchand 
>> ---
> 
> Acked-by: Kevin Traynor 
> 

I removed the mentioning of the internal 'dpif-netdev' name from
the NEWS file and applied the change.

Michael, could you, please, update the Intel CI to use 23.11 ?

Ivan, please, re-post (with a version bump) your rte_flow patch,
so we can accept it.

Thanks!
Best regards, Ilya Maximets.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH v2] dpdk: Update to use v23.11.

2024-01-15 Thread Ivan Malov via dev

Hi Ilya,

On Tue, 16 Jan 2024, Ilya Maximets wrote:


On 1/15/24 17:13, Kevin Traynor wrote:

On 15/01/2024 14:28, David Marchand wrote:

This commit adds support for DPDK v23.11.
It updates the CI script and documentation and includes the following
changes coming from the dpdk-latest branch:

- sparse: Add some compiler intrinsics for DPDK build.
  https://patchwork.ozlabs.org/project/openvswitch/list/?series=371129&state=*

- ci: Cache DPDK installed libraries only.
- ci: Reduce optional libraries in DPDK.
  https://patchwork.ozlabs.org/project/openvswitch/list/?series=383367&state=*

- system-dpdk: Ignore net/ice error log about QinQ offloading.
  https://patchwork.ozlabs.org/project/openvswitch/list/?series=385259&state=*

There is a known issue with i40e VF devices where OVS main thread may
block when adding such devices as dpif-netdev dpdk ports.

Signed-off-by: David Marchand 
---


Acked-by: Kevin Traynor 



I removed the mentioning of the internal 'dpif-netdev' name from
the NEWS file and applied the change.

Michael, could you, please, update the Intel CI to use 23.11 ?

Ivan, please, re-post (with a version bump) your rte_flow patch,
so we can accept it.


Done. See 
https://patchwork.ozlabs.org/project/openvswitch/patch/20240116004848.7957-1-ivan.ma...@arknetworks.am/
 .

Thank you.



Thanks!
Best regards, Ilya Maximets.


___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH v2] dpdk: Update to use v23.11.

2024-01-16 Thread Phelan, Michael
> -Original Message-
> From: Ilya Maximets 
> Sent: Tuesday, January 16, 2024 12:03 AM
> To: Kevin Traynor ; Marchand, David
> ; d...@openvswitch.org; Ivan Malov
> ; Phelan, Michael
> 
> Cc: i.maxim...@ovn.org; Stokes, Ian 
> Subject: Re: [PATCH v2] dpdk: Update to use v23.11.
> 
> On 1/15/24 17:13, Kevin Traynor wrote:
> > On 15/01/2024 14:28, David Marchand wrote:
> >> This commit adds support for DPDK v23.11.
> >> It updates the CI script and documentation and includes the following
> >> changes coming from the dpdk-latest branch:
> >>
> >> - sparse: Add some compiler intrinsics for DPDK build.
> >>
> >> https://patchwork.ozlabs.org/project/openvswitch/list/?series=371129&;
> >> state=*
> >>
> >> - ci: Cache DPDK installed libraries only.
> >> - ci: Reduce optional libraries in DPDK.
> >>
> >> https://patchwork.ozlabs.org/project/openvswitch/list/?series=383367&;
> >> state=*
> >>
> >> - system-dpdk: Ignore net/ice error log about QinQ offloading.
> >>
> >> https://patchwork.ozlabs.org/project/openvswitch/list/?series=385259&;
> >> state=*
> >>
> >> There is a known issue with i40e VF devices where OVS main thread may
> >> block when adding such devices as dpif-netdev dpdk ports.
> >>
> >> Signed-off-by: David Marchand 
> >> ---
> >
> > Acked-by: Kevin Traynor 
> >
> 
> I removed the mentioning of the internal 'dpif-netdev' name from the NEWS
> file and applied the change.
> 
> Michael, could you, please, update the Intel CI to use 23.11 ?
No problem, master is updated to test against 23.11.

Thanks,
Michael.
> 
> Ivan, please, re-post (with a version bump) your rte_flow patch, so we can
> accept it.
> 
> Thanks!
> Best regards, Ilya Maximets.
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev