diff mbox series

[ovs-dev,RFC,6/6] Disable unsupported kernel builds

Message ID 20220415214245.18948-7-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 fail github build: failed
ovsrobot/intel-ovs-compilation success test: success

Commit Message

Gregory Rose April 15, 2022, 9:42 p.m. UTC
Remove kernel based github workflows since the OVS kernel driver is
no longer supported since Release 2.17

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

Comments

Dumitru Ceara April 22, 2022, 7:23 a.m. UTC | #1
On 4/15/22 23:42, Greg Rose wrote:
> Remove kernel based github workflows since the OVS kernel driver is
> no longer supported since Release 2.17
> 
> Signed-off-by: Greg Rose <gvrose8192@gmail.com>
> ---

Hi Greg,

>  .github/workflows/build-and-test.yml | 35 ----------------------------
>  1 file changed, 35 deletions(-)
> 
> diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
> index eac3504e4..cf483dc1e 100644
> --- a/.github/workflows/build-and-test.yml
> +++ b/.github/workflows/build-and-test.yml
> @@ -9,16 +9,9 @@ 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 }}
>        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 }}
> @@ -37,14 +30,6 @@ jobs:
>            - compiler:     clang
>              opts:         --disable-ssl
>  
> -          - compiler:     gcc
> -            testsuite:    test
> -            kernel:       3.16
> -          - compiler:     clang
> -            testsuite:    test
> -            kernel:       3.16
> -            asan:         asan
> -

Maybe it's enough to just remove the 'kernel' argument here?  It's
useful to have address sanitizer enabled test jobs too.  Arguably, when
we added it we should've maybe not link it to a given kernel but, in any
case, I think we shouldn't remove it completely now.

What do you think of keeping it as:

- compiler:     clang
  testsuite:    test
  asan:         asan

I might be wrong but it seems to me we need something similar for afxdp too.

Regards,
Dumitru

>            - compiler:     gcc
>              testsuite:    test
>              opts:         --enable-shared
> @@ -66,23 +51,6 @@ jobs:
>              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
> @@ -106,9 +74,6 @@ jobs:
>              m32:          m32
>              opts:         --disable-ssl
>  
> -          - compiler:     gcc
> -            deb_package:  deb
> -
>      steps:
>      - name: checkout
>        uses: actions/checkout@v2
David Marchand April 22, 2022, 3:34 p.m. UTC | #2
On Fri, Apr 22, 2022 at 9:24 AM Dumitru Ceara <dceara@redhat.com> wrote:
> > @@ -37,14 +30,6 @@ jobs:
> >            - compiler:     clang
> >              opts:         --disable-ssl
> >
> > -          - compiler:     gcc
> > -            testsuite:    test
> > -            kernel:       3.16
> > -          - compiler:     clang
> > -            testsuite:    test
> > -            kernel:       3.16
> > -            asan:         asan
> > -
>
> Maybe it's enough to just remove the 'kernel' argument here?  It's
> useful to have address sanitizer enabled test jobs too.  Arguably, when
> we added it we should've maybe not link it to a given kernel but, in any
> case, I think we shouldn't remove it completely now.
>
> What do you think of keeping it as:
>
> - compiler:     clang
>   testsuite:    test
>   asan:         asan

+1

>
> I might be wrong but it seems to me we need something similar for afxdp too.

The Ubuntu 18.04 kernel does not have AF_XDP support iirc, so either
we keep on building a 5.3 kernel and compile ovs with afxdp against
this kernel.
Or we may switch to Ubuntu 20.04 in GHA.
Gregory Rose April 26, 2022, 4:35 p.m. UTC | #3
On 4/22/2022 8:34 AM, David Marchand wrote:
> On Fri, Apr 22, 2022 at 9:24 AM Dumitru Ceara <dceara@redhat.com> wrote:
>>> @@ -37,14 +30,6 @@ jobs:
>>>             - compiler:     clang
>>>               opts:         --disable-ssl
>>>
>>> -          - compiler:     gcc
>>> -            testsuite:    test
>>> -            kernel:       3.16
>>> -          - compiler:     clang
>>> -            testsuite:    test
>>> -            kernel:       3.16
>>> -            asan:         asan
>>> -
>>
>> Maybe it's enough to just remove the 'kernel' argument here?  It's
>> useful to have address sanitizer enabled test jobs too.  Arguably, when
>> we added it we should've maybe not link it to a given kernel but, in any
>> case, I think we shouldn't remove it completely now.
>>
>> What do you think of keeping it as:
>>
>> - compiler:     clang
>>    testsuite:    test
>>    asan:         asan
> 
> +1
> 
>>
>> I might be wrong but it seems to me we need something similar for afxdp too.
> 
> The Ubuntu 18.04 kernel does not have AF_XDP support iirc, so either
> we keep on building a 5.3 kernel and compile ovs with afxdp against
> this kernel.
> Or we may switch to Ubuntu 20.04 in GHA.
> 
> 

Hi David and Dimitru,

thanks for the input - I'll see if I can get that working.

- Greg
Gregory Rose May 3, 2022, 7:20 p.m. UTC | #4
On 4/26/2022 9:35 AM, Gregory Rose wrote:
> 
> 
> On 4/22/2022 8:34 AM, David Marchand wrote:
>> On Fri, Apr 22, 2022 at 9:24 AM Dumitru Ceara <dceara@redhat.com> wrote:
>>>> @@ -37,14 +30,6 @@ jobs:
>>>>             - compiler:     clang
>>>>               opts:         --disable-ssl
>>>>
>>>> -          - compiler:     gcc
>>>> -            testsuite:    test
>>>> -            kernel:       3.16
>>>> -          - compiler:     clang
>>>> -            testsuite:    test
>>>> -            kernel:       3.16
>>>> -            asan:         asan
>>>> -
>>>
>>> Maybe it's enough to just remove the 'kernel' argument here?  It's
>>> useful to have address sanitizer enabled test jobs too.  Arguably, when
>>> we added it we should've maybe not link it to a given kernel but, in any
>>> case, I think we shouldn't remove it completely now.
>>>
>>> What do you think of keeping it as:
>>>
>>> - compiler:     clang
>>>    testsuite:    test
>>>    asan:         asan
>>
>> +1
>>
>>>
>>> I might be wrong but it seems to me we need something similar for 
>>> afxdp too.
>>
>> The Ubuntu 18.04 kernel does not have AF_XDP support iirc, so either
>> we keep on building a 5.3 kernel and compile ovs with afxdp against
>> this kernel.
>> Or we may switch to Ubuntu 20.04 in GHA.
>>
>>
> 
> Hi David and Dimitru,
> 
> thanks for the input - I'll see if I can get that working.
> 
> - Greg

A quick update - I was able to reinstate the address sanitizer test by
dropping the kernel argument but no luck with afxdp.  Perhaps we could
limit afxdp support to branch 2.16 or earlier until we get a mainstream
Ubuntu distro that supports it working.

My biggest problem to date is fixing up the debian packaging and build
to not include the dkms driver package.  They're pretty tightly coupled
and I'm no expert in the debian rules for packaging.  However, I am
making some progress - one of the main issues is that every time I make
a  mistake I have to reclone the repo because debian seems to scatter
little traps around the code that are not cleaned out when you run
'fakeroot debian/rules clean'.

Stay tuned and I'll send a new series of patches after I get this debian
packaging figured out.

Thanks,

- Greg
Ilya Maximets May 3, 2022, 9:23 p.m. UTC | #5
On 5/3/22 21:20, Gregory Rose wrote:
> 
> 
> On 4/26/2022 9:35 AM, Gregory Rose wrote:
>>
>>
>> On 4/22/2022 8:34 AM, David Marchand wrote:
>>> On Fri, Apr 22, 2022 at 9:24 AM Dumitru Ceara <dceara@redhat.com> wrote:
>>>>> @@ -37,14 +30,6 @@ jobs:
>>>>>             - compiler:     clang
>>>>>               opts:         --disable-ssl
>>>>>
>>>>> -          - compiler:     gcc
>>>>> -            testsuite:    test
>>>>> -            kernel:       3.16
>>>>> -          - compiler:     clang
>>>>> -            testsuite:    test
>>>>> -            kernel:       3.16
>>>>> -            asan:         asan
>>>>> -
>>>>
>>>> Maybe it's enough to just remove the 'kernel' argument here?  It's
>>>> useful to have address sanitizer enabled test jobs too.  Arguably, when
>>>> we added it we should've maybe not link it to a given kernel but, in any
>>>> case, I think we shouldn't remove it completely now.
>>>>
>>>> What do you think of keeping it as:
>>>>
>>>> - compiler:     clang
>>>>    testsuite:    test
>>>>    asan:         asan
>>>
>>> +1
>>>
>>>>
>>>> I might be wrong but it seems to me we need something similar for afxdp too.
>>>
>>> The Ubuntu 18.04 kernel does not have AF_XDP support iirc, so either
>>> we keep on building a 5.3 kernel and compile ovs with afxdp against
>>> this kernel.
>>> Or we may switch to Ubuntu 20.04 in GHA.
>>>
>>>
>>
>> Hi David and Dimitru,
>>
>> thanks for the input - I'll see if I can get that working.
>>
>> - Greg
> 
> A quick update - I was able to reinstate the address sanitizer test by
> dropping the kernel argument but no luck with afxdp.  Perhaps we could
> limit afxdp support to branch 2.16 or earlier until we get a mainstream
> Ubuntu distro that supports it working.
> 
> My biggest problem to date is fixing up the debian packaging and build
> to not include the dkms driver package.  They're pretty tightly coupled
> and I'm no expert in the debian rules for packaging.  However, I am
> making some progress - one of the main issues is that every time I make
> a  mistake I have to reclone the repo because debian seems to scatter
> little traps around the code that are not cleaned out when you run
> 'fakeroot debian/rules clean'.
> 
> Stay tuned and I'll send a new series of patches after I get this debian
> packaging figured out.

Thanks for working on this!
Sorry, I was out for some time and just dug myself out of a pile of emails.
Unfortunately, I'm not familiar with debian packaging code either, so can't
really help much, but will take a look at the new version of the set once
it is available.

Small nit for the current series:  2.17 was released in February and
the module will stay there, so the removal will be part of 2.18, not
2.17.

For the afxdp, I think, we can keep the install_kernel() function, but
only remove a few things from it that are not needed for afxdp, e.g.

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 6cd38ff3e..6ef629447 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -69,13 +69,6 @@ function install_kernel()
     sed -i 's/CONFIG_STACK_VALIDATION=y/CONFIG_STACK_VALIDATION=n/' .config
     make oldconfig
 
-    # Older kernels do not include openvswitch
-    if [ -d "net/openvswitch" ]; then
-        make net/openvswitch/
-    else
-        make net/bridge/
-    fi
-
     if [ "$AFXDP" ]; then
         sudo make headers_install INSTALL_HDR_PATH=/usr
         pushd tools/lib/bpf/
@@ -91,9 +84,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
 }
---

Maybe some other parts also can be removed from the function.
This way we can keep the 'kernel: 5.3' for afxdp jobs, but remove
kernels from all other jobs.  'if [ "$AFXDP" ]' check can also be
moved outside of the function to the place where install_kernel()
is called.

Best regards, Ilya Maximets.
diff mbox series

Patch

diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
index eac3504e4..cf483dc1e 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,16 +9,9 @@  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 }}
       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 }}
@@ -37,14 +30,6 @@  jobs:
           - compiler:     clang
             opts:         --disable-ssl
 
-          - compiler:     gcc
-            testsuite:    test
-            kernel:       3.16
-          - compiler:     clang
-            testsuite:    test
-            kernel:       3.16
-            asan:         asan
-
           - compiler:     gcc
             testsuite:    test
             opts:         --enable-shared
@@ -66,23 +51,6 @@  jobs:
             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
@@ -106,9 +74,6 @@  jobs:
             m32:          m32
             opts:         --disable-ssl
 
-          - compiler:     gcc
-            deb_package:  deb
-
     steps:
     - name: checkout
       uses: actions/checkout@v2