On Fri, Jul 8, 2022 at 10:06 PM Greg Rose <gvrose8...@gmail.com> wrote:
>
> Remove kernel based github workflows since the OVS kernel driver is
> no longer supported since Release 2.18

I won't comment on the debian parts, those are handled by Frode series.

This patch removes all unit tests, which is not wanted.

As discussed, rather than drop kernel building completely, we want to
stop testing build of the kmod against a list of kernels.
AFXDP still needs a kernel recent enough to be tested.

The main part needed for stopping kmod building in GHA runs, is to
update the linux-build.sh script.
See proposal diff at the end of this mail.

And then you can preserve most of this yml with minimal updates.
See comments below:

>
> Signed-off-by: Greg Rose <gvrose8...@gmail.com>
> ---
>  .github/workflows/build-and-test.yml | 53 ----------------------------
>  1 file changed, 53 deletions(-)
>
> diff --git a/.github/workflows/build-and-test.yml 
> b/.github/workflows/build-and-test.yml
> index 9e3583781..64454c5ea 100644
> --- a/.github/workflows/build-and-test.yml
> +++ b/.github/workflows/build-and-test.yml
> @@ -9,21 +9,14 @@ jobs:
>          automake libtool gcc bc libjemalloc1 libjemalloc-dev    \
>          libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev  \
>          ninja-build selinux-policy-dev
> -      deb_dependencies: |
> -        linux-headers-$(uname -r) build-essential fakeroot devscripts equivs
> -      AFXDP:       ${{ matrix.afxdp }}

Let's keep testing AFXDP.


>        ASAN:        ${{ matrix.asan }}
>        UBSAN:       ${{ matrix.ubsan }}
>        CC:          ${{ matrix.compiler }}
> -      DEB_PACKAGE: ${{ matrix.deb_package }}
>        DPDK:        ${{ matrix.dpdk }}
>        DPDK_SHARED: ${{ matrix.dpdk_shared }}
> -      KERNEL:      ${{ matrix.kernel }}
> -      KERNEL_LIST: ${{ matrix.kernel_list }}

KERNEL must be kept, so that we can still select which kernel version
to build OVS (+AFXDP) against.


>        LIBS:        ${{ matrix.libs }}
>        M32:         ${{ matrix.m32 }}
>        OPTS:        ${{ matrix.opts }}
> -      TESTSUITE:   ${{ matrix.testsuite }}

TESTSUITE is needed for running unit tests.


>
>      name: linux ${{ join(matrix.*, ' ') }}
>      runs-on: ubuntu-18.04
> @@ -38,56 +31,13 @@ jobs:
>            - compiler:     clang
>              opts:         --disable-ssl
>
> -          - compiler:     gcc
> -            testsuite:    test
> -            kernel:       3.16

We can keep this block above, just dropping the kernel version.


>            - compiler:     clang
>              testsuite:    test
> -            kernel:       3.16
>              asan:         asan
>            - compiler:     clang
>              testsuite:    test
> -            kernel:       3.16
>              ubsan:        ubsan

Ack.


>
> -          - compiler:     gcc
> -            testsuite:    test
> -            opts:         --enable-shared
> -          - compiler:     clang
> -            testsuite:    test
> -            opts:         --enable-shared
> -
> -          - compiler:     gcc
> -            testsuite:    test
> -            dpdk:         dpdk
> -          - compiler:     clang
> -            testsuite:    test
> -            dpdk:         dpdk
> -
> -          - compiler:     gcc
> -            testsuite:    test
> -            libs:         -ljemalloc
> -          - compiler:     clang
> -            testsuite:    test
> -            libs:         -ljemalloc

This whole block is not related to kmod, and must be kept.

> -
> -          - compiler:     gcc
> -            kernel_list:  5.8 5.5 5.4 4.19
> -          - compiler:     clang
> -            kernel_list:  5.8 5.5 5.4 4.19
> -
> -          - compiler:     gcc
> -            kernel_list:  4.14 4.9 4.4 3.16
> -          - compiler:     clang
> -            kernel_list:  4.14 4.9 4.4 3.16

Ack for this.


> -
> -          - compiler:     gcc
> -            afxdp:        afxdp
> -            kernel:       5.3
> -          - compiler:     clang
> -            afxdp:        afxdp
> -            kernel:       5.3
> -

Let's keep this block untouched too.


With all suggestions above, this gives the following diff:

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index a8c437aaf9..bbed8b68a8 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -91,9 +91,6 @@ function install_kernel()
         sudo sed -i '/^# define __always_inline .*/i # undef __always_inline' \
                     /usr/include/x86_64-linux-gnu/sys/cdefs.h || true
         EXTRA_OPTS="${EXTRA_OPTS} --enable-afxdp"
-    else
-        EXTRA_OPTS="${EXTRA_OPTS} --with-linux=$(pwd)"
-        echo "Installed kernel source in $(pwd)"
     fi
     popd
 }
@@ -187,20 +184,9 @@ function configure_ovs()

 function build_ovs()
 {
-    local KERNEL=$1
-
     configure_ovs $OPTS
     make selinux-policy
-
-    # Only build datapath if we are testing kernel w/o running testsuite and
-    # AF_XDP support.
-    if [ "${KERNEL}" ] && ! [ "$AFXDP" ]; then
-        pushd datapath
-        make -j4
-        popd
-    else
-        make -j4
-    fi
+    make -j4
 }

 if [ "$DEB_PACKAGE" ]; then
@@ -269,8 +255,7 @@ if [ "$UBSAN" ]; then
     CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} ${CFLAGS_UBSAN}"
 fi

-save_OPTS="${OPTS} $*"
-OPTS="${EXTRA_OPTS} ${save_OPTS}"
+OPTS="${EXTRA_OPTS} ${OPTS} $*"

 if [ "$TESTSUITE" ]; then
     # 'distcheck' will reconfigure with required options.
@@ -281,20 +266,7 @@ if [ "$TESTSUITE" ]; then
     make distcheck -j4 CFLAGS="${CFLAGS_FOR_OVS}" \
         TESTSUITEFLAGS=-j4 RECHECK=yes
 else
-    if [ -z "${KERNEL_LIST}" ]; then build_ovs ${KERNEL};
-    else
-        save_EXTRA_OPTS="${EXTRA_OPTS}"
-        for KERNEL in ${KERNEL_LIST}; do
-            echo "=============================="
-            echo "Building with kernel ${KERNEL}"
-            echo "=============================="
-            EXTRA_OPTS="${save_EXTRA_OPTS}"
-            install_kernel ${KERNEL}
-            OPTS="${EXTRA_OPTS} ${save_OPTS}"
-            build_ovs ${KERNEL}
-            make distclean
-        done
-    fi
+    build_ovs
 fi

 exit 0
diff --git a/.github/workflows/build-and-test.yml
b/.github/workflows/build-and-test.yml
index 15e3c9adb2..0dcf3c2839 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,14 +9,17 @@ jobs:
         automake libtool gcc bc libjemalloc1 libjemalloc-dev    \
         libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev  \
         ninja-build selinux-policy-dev
+      AFXDP        ${{ matrix.afxdp }}
       ASAN:        ${{ matrix.asan }}
       UBSAN:       ${{ matrix.ubsan }}
       CC:          ${{ matrix.compiler }}
       DPDK:        ${{ matrix.dpdk }}
       DPDK_SHARED: ${{ matrix.dpdk_shared }}
+      KERNEL:      ${{ matrix.kernel }}
       LIBS:        ${{ matrix.libs }}
       M32:         ${{ matrix.m32 }}
       OPTS:        ${{ matrix.opts }}
+      TESTSUITE:   ${{ matrix.testsuite }}

     name: linux ${{ join(matrix.*, ' ') }}
     runs-on: ubuntu-18.04
@@ -31,6 +34,8 @@ jobs:
           - compiler:     clang
             opts:         --disable-ssl

+          - compiler:     gcc
+            testsuite:    test
           - compiler:     clang
             testsuite:    test
             asan:         asan
@@ -38,6 +43,34 @@ jobs:
             testsuite:    test
             ubsan:        ubsan

+          - compiler:     gcc
+            testsuite:    test
+            opts:         --enable-shared
+          - compiler:     clang
+            testsuite:    test
+            opts:         --enable-shared
+
+          - compiler:     gcc
+            testsuite:    test
+            dpdk:         dpdk
+          - compiler:     clang
+            testsuite:    test
+            dpdk:         dpdk
+
+          - compiler:     gcc
+            testsuite:    test
+            libs:         -ljemalloc
+          - compiler:     clang
+            testsuite:    test
+            libs:         -ljemalloc
+
+          - compiler:     gcc
+            afxdp:        afxdp
+            kernel:       5.3
+          - compiler:     clang
+            afxdp:        afxdp
+            kernel:       5.3
+
           - compiler:     gcc
             dpdk:         dpdk
             opts:         --enable-shared


HTH,

-- 
David Marchand

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

Reply via email to