diff mbox series

[ovs-dev,V3,1/7] Disable unsupported kernel builds

Message ID 20220708200340.13053-2-gvrose8192@gmail.com
State Changes Requested
Headers show
Series Remove OVS kernel driver | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/intel-ovs-compilation success test: success

Commit Message

Gregory Rose July 8, 2022, 8:03 p.m. UTC
Remove kernel based github workflows since the OVS kernel driver is
no longer supported since Release 2.18

Signed-off-by: Greg Rose <gvrose8192@gmail.com>
---
 .github/workflows/build-and-test.yml | 53 ----------------------------
 1 file changed, 53 deletions(-)

Comments

David Marchand July 9, 2022, 6:26 a.m. UTC | #1
On Fri, Jul 8, 2022 at 10:06 PM Greg Rose <gvrose8192@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 <gvrose8192@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,
Gregory Rose July 11, 2022, 5:41 p.m. UTC | #2
On 7/8/2022 11:26 PM, David Marchand wrote:
> On Fri, Jul 8, 2022 at 10:06 PM Greg Rose <gvrose8192@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 <gvrose8192@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,
> 

Hi David,

I'll incorporate your suggestions into V4 of the series coming up soon.

Thanks for your reviews and help!!!

- Greg
diff mbox series

Patch

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 }}
       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 }}
       LIBS:        ${{ matrix.libs }}
       M32:         ${{ matrix.m32 }}
       OPTS:        ${{ matrix.opts }}
-      TESTSUITE:   ${{ matrix.testsuite }}
 
     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
           - compiler:     clang
             testsuite:    test
-            kernel:       3.16
             asan:         asan
           - compiler:     clang
             testsuite:    test
-            kernel:       3.16
             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
-            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
-
-          - compiler:     gcc
-            afxdp:        afxdp
-            kernel:       5.3
-          - compiler:     clang
-            afxdp:        afxdp
-            kernel:       5.3
-
           - compiler:     gcc
             dpdk:         dpdk
             opts:         --enable-shared
@@ -111,9 +61,6 @@  jobs:
             m32:          m32
             opts:         --disable-ssl
 
-          - compiler:     gcc
-            deb_package:  deb
-
     steps:
     - name: checkout
       uses: actions/checkout@v2