Message ID | 20220708200340.13053-2-gvrose8192@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
Series | Remove OVS kernel driver | expand |
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 |
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,
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 --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
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(-)