Message ID | 20200910103725.1439-1-luoyonggang@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | W32, W64 msys2/mingw patches | expand |
On 10/09/2020 12.37, Yonggang Luo wrote: > This reverts commit 45f7b7b9f38f5c4d1529a37c93dedfc26a231bba > ("cirrus.yml: Split FreeBSD job into two parts"). > > freebsd 1 hour limit not hit anymore > > I think we going to a wrong direction, I think there is some tests a stall the test runner, > please look at > https://cirrus-ci.com/task/5110577531977728 > When its running properly, the consumed time are little, but when tests running too long, > look at the cpu usage, the cpu usage are nearly zero. doesn't consuming time. > > And look at > https://cirrus-ci.com/task/6119341601062912 > > If the tests running properly, the time consuming are little > We should not hide the error by split them Ok, but before we merge this patch, I'd like to understand (and fix if necessary) what is/was causing the slowdowns. Otherwise we'll continue to see failing CI runs, which is very annoying. Thomas
On Thu, Sep 10, 2020 at 10:18 PM Thomas Huth <thuth@redhat.com> wrote: > On 10/09/2020 12.37, Yonggang Luo wrote: > > This reverts commit 45f7b7b9f38f5c4d1529a37c93dedfc26a231bba > > ("cirrus.yml: Split FreeBSD job into two parts"). > > > > freebsd 1 hour limit not hit anymore > > > > I think we going to a wrong direction, I think there is some tests a > stall the test runner, > > please look at > > https://cirrus-ci.com/task/5110577531977728 > > When its running properly, the consumed time are little, but when tests > running too long, > > look at the cpu usage, the cpu usage are nearly zero. doesn't consuming > time. > > > > And look at > > https://cirrus-ci.com/task/6119341601062912 > > > > If the tests running properly, the time consuming are little > > We should not hide the error by split them > > Ok, but before we merge this patch, I'd like to understand (and fix if > necessary) what is/was causing the slowdowns. Otherwise we'll continue > to see failing CI runs, which is very annoying. > > Then I need to apply your idea first, but I found make check are rather slow without the make -j8 check. And even make V=1 check would be slightly slower than make check. > Thomas > >
On Thu, Sep 10, 2020 at 04:18:10PM +0200, Thomas Huth wrote: > On 10/09/2020 12.37, Yonggang Luo wrote: > > This reverts commit 45f7b7b9f38f5c4d1529a37c93dedfc26a231bba > > ("cirrus.yml: Split FreeBSD job into two parts"). > > > > freebsd 1 hour limit not hit anymore > > > > I think we going to a wrong direction, I think there is some tests a stall the test runner, > > please look at > > https://cirrus-ci.com/task/5110577531977728 > > When its running properly, the consumed time are little, but when tests running too long, > > look at the cpu usage, the cpu usage are nearly zero. doesn't consuming time. > > > > And look at > > https://cirrus-ci.com/task/6119341601062912 > > > > If the tests running properly, the time consuming are little > > We should not hide the error by split them > > Ok, but before we merge this patch, I'd like to understand (and fix if > necessary) what is/was causing the slowdowns. Otherwise we'll continue > to see failing CI runs, which is very annoying. I think we need the test harness to print out the time duration for each test in order to stand a chance of find the slow one. A hack like this could be sufficient: diff --git a/scripts/mtest2make.py b/scripts/mtest2make.py index 9cbb2e374d..9103ae65b9 100644 --- a/scripts/mtest2make.py +++ b/scripts/mtest2make.py @@ -20,7 +20,7 @@ print(''' SPEED = quick # $1 = environment, $2 = test command, $3 = test name, $4 = dir -.test-human-tap = $1 $(if $4,(cd $4 && $2),$2) < /dev/null | ./scripts/tap-driver.pl --test-name="$3" $(if $(V),,--show-failures-only) +.test-human-tap = export then=`date +%s` ; $1 $(if $4,(cd $4 && $2),$2) < /dev/null | ./scripts/tap-driver.pl --test-name="$3" $(if $(V),,--show-failures-only) ; export now=`date +%s` ; delta=`expr $$now - $$then` ; $(if $(V),echo "TIME $$delta seconds",true) .test-human-exitcode = $1 $(PYTHON) scripts/test-driver.py $(if $4,-C$4) $(if $(V),--verbose) -- $2 < /dev/null .test-tap-tap = $1 $(if $4,(cd $4 && $2),$2) < /dev/null | sed "s/^[a-z][a-z]* [0-9]*/& $3/" || true .test-tap-exitcode = printf "%s\\n" 1..1 "`$1 $(if $4,(cd $4 && $2),$2) < /dev/null > /dev/null || echo "not "`ok 1 $3" not sure if there is a nicer way todo this but itworks ok for make check-unit at least Regards, Daniel
diff --git a/.cirrus.yml b/.cirrus.yml index 3dd9fcff7f..690c6882e8 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,38 +1,19 @@ env: CIRRUS_CLONE_DEPTH: 1 -freebsd_1st_task: +freebsd_12_task: freebsd_instance: image_family: freebsd-12-1 - cpu: 4 - memory: 4G - install_script: ASSUME_ALWAYS_YES=yes pkg bootstrap -f ; pkg install -y - bash curl cyrus-sasl git glib gmake gnutls gsed - nettle perl5 pixman pkgconf png usbredir + cpu: 8 + memory: 8G + install_script: + - ASSUME_ALWAYS_YES=yes pkg bootstrap -f ; + - pkg install -y bash curl cyrus-sasl git glib gmake gnutls gsed + nettle perl5 pixman pkgconf png usbredir script: - mkdir build - cd build - - ../configure --disable-user --target-list-exclude='alpha-softmmu - ppc64-softmmu ppc-softmmu riscv32-softmmu riscv64-softmmu s390x-softmmu - sparc64-softmmu sparc-softmmu x86_64-softmmu i386-softmmu' - --enable-werror || { cat config.log; exit 1; } - - gmake -j$(sysctl -n hw.ncpu) - - gmake -j$(sysctl -n hw.ncpu) check - -freebsd_2nd_task: - freebsd_instance: - image_family: freebsd-12-1 - cpu: 4 - memory: 4G - install_script: ASSUME_ALWAYS_YES=yes pkg bootstrap -f ; pkg install -y - bash curl cyrus-sasl git glib gmake gnutls gtk3 gsed libepoxy mesa-libs - nettle perl5 pixman pkgconf png SDL2 usbredir - script: - - ./configure --enable-werror --target-list='alpha-softmmu ppc64-softmmu - ppc-softmmu riscv32-softmmu riscv64-softmmu s390x-softmmu - sparc64-softmmu sparc-softmmu x86_64-softmmu i386-softmmu - sparc-bsd-user sparc64-bsd-user x86_64-bsd-user i386-bsd-user' - || { cat config.log; exit 1; } + - ../configure --enable-werror || { cat config.log; exit 1; } - gmake -j$(sysctl -n hw.ncpu) - gmake -j$(sysctl -n hw.ncpu) check