Message ID | 20191009170701.14756-6-thuth@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | travis.yml improvements: Update libraries, build with arm64 | expand |
On 10/9/19 7:07 PM, Thomas Huth wrote: > Travis now features an arm64 build host, so let's check compilation > there, too. > > Unfortunately, there are some quirks: > - block/ssh.c does not compile properly in this environment, so we have > to use --disable-libssh until that problem is fixed. > - test-util-filemonitor fails, so we can not run the unit tests there > - The file system size seems to be very limited, so the iotest tests > can't be used and the hd-geo-test fails (thus we can't compile > x86_64-softmmu here and run "check-qtest" afterwards) > - Compiling seems to be quite a bit slower than on the x86 builders, > so we better limit the target list to some few architectures. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > .travis.yml | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/.travis.yml b/.travis.yml > index 0c88e8757b..357ca02890 100644 > --- a/.travis.yml > +++ b/.travis.yml > @@ -342,3 +342,9 @@ matrix: > - CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" > - TEST_CMD="make -j3 check-tcg V=1" > - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" > + > + # Non-x86 builds: > + - env: > + - CONFIG="--disable-libssh --target-list=aarch64-softmmu,ppc64-softmmu,s390x-softmmu,x86_64-linux-user" Is aarch64 on aarch64 interesting? Do you know if we can use KVM there? > + - TEST_CMD="make check-qtest check-softfloat -j3 V=1" > + arch: arm64 >
On 09/10/2019 21.06, Philippe Mathieu-Daudé wrote: > On 10/9/19 7:07 PM, Thomas Huth wrote: >> Travis now features an arm64 build host, so let's check compilation >> there, too. >> >> Unfortunately, there are some quirks: >> - block/ssh.c does not compile properly in this environment, so we have >> to use --disable-libssh until that problem is fixed. >> - test-util-filemonitor fails, so we can not run the unit tests there >> - The file system size seems to be very limited, so the iotest tests >> can't be used and the hd-geo-test fails (thus we can't compile >> x86_64-softmmu here and run "check-qtest" afterwards) >> - Compiling seems to be quite a bit slower than on the x86 builders, >> so we better limit the target list to some few architectures. >> >> Signed-off-by: Thomas Huth <thuth@redhat.com> >> --- >> .travis.yml | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/.travis.yml b/.travis.yml >> index 0c88e8757b..357ca02890 100644 >> --- a/.travis.yml >> +++ b/.travis.yml >> @@ -342,3 +342,9 @@ matrix: >> - >> CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" >> >> - TEST_CMD="make -j3 check-tcg V=1" >> - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" >> + >> + # Non-x86 builds: >> + - env: >> + - CONFIG="--disable-libssh >> --target-list=aarch64-softmmu,ppc64-softmmu,s390x-softmmu,x86_64-linux-user" >> > > Is aarch64 on aarch64 interesting? > > Do you know if we can use KVM there? I don't think that KVM is usable there, but at least this should give us some compile coverage for target/arm/kvm.c which we don't get otherwise. Thomas
Thomas Huth <thuth@redhat.com> writes: > On 09/10/2019 21.06, Philippe Mathieu-Daudé wrote: >> On 10/9/19 7:07 PM, Thomas Huth wrote: >>> Travis now features an arm64 build host, so let's check compilation >>> there, too. >>> >>> Unfortunately, there are some quirks: >>> - block/ssh.c does not compile properly in this environment, so we have >>> to use --disable-libssh until that problem is fixed. >>> - test-util-filemonitor fails, so we can not run the unit tests there >>> - The file system size seems to be very limited, so the iotest tests >>> can't be used and the hd-geo-test fails (thus we can't compile >>> x86_64-softmmu here and run "check-qtest" afterwards) >>> - Compiling seems to be quite a bit slower than on the x86 builders, >>> so we better limit the target list to some few architectures. >>> >>> Signed-off-by: Thomas Huth <thuth@redhat.com> >>> --- >>> .travis.yml | 6 ++++++ >>> 1 file changed, 6 insertions(+) >>> >>> diff --git a/.travis.yml b/.travis.yml >>> index 0c88e8757b..357ca02890 100644 >>> --- a/.travis.yml >>> +++ b/.travis.yml >>> @@ -342,3 +342,9 @@ matrix: >>> - >>> CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" >>> >>> - TEST_CMD="make -j3 check-tcg V=1" >>> - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" >>> + >>> + # Non-x86 builds: >>> + - env: >>> + - CONFIG="--disable-libssh >>> --target-list=aarch64-softmmu,ppc64-softmmu,s390x-softmmu,x86_64-linux-user" >>> >> >> Is aarch64 on aarch64 interesting? >> >> Do you know if we can use KVM there? > > I don't think that KVM is usable there, but at least this should give us > some compile coverage for target/arm/kvm.c which we don't get > otherwise. We get compile coverage for !x86 kvm from the cross compilers on shippable. I'm more interested in running tests on !x86. > > Thomas -- Alex Bennée
On Wed, Oct 09, 2019 at 07:07:01PM +0200, Thomas Huth wrote: > Travis now features an arm64 build host, so let's check compilation > there, too. > > Unfortunately, there are some quirks: > - block/ssh.c does not compile properly in this environment, so we have > to use --disable-libssh until that problem is fixed. > - test-util-filemonitor fails, so we can not run the unit tests there Do you have any more info on this failure ? Running tests with FILEMONITOR_DEBUG=1 env variable set will make it print more info Skipping unit tests seems to throw away the main benefit of using the travis arm64 hosts, as it is the tests which add value over our cross-compiled arm builds. > - The file system size seems to be very limited, so the iotest tests > can't be used and the hd-geo-test fails (thus we can't compile > x86_64-softmmu here and run "check-qtest" afterwards) > - Compiling seems to be quite a bit slower than on the x86 builders, > so we better limit the target list to some few architectures. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > .travis.yml | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/.travis.yml b/.travis.yml > index 0c88e8757b..357ca02890 100644 > --- a/.travis.yml > +++ b/.travis.yml > @@ -342,3 +342,9 @@ matrix: > - CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" > - TEST_CMD="make -j3 check-tcg V=1" > - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" > + > + # Non-x86 builds: > + - env: > + - CONFIG="--disable-libssh --target-list=aarch64-softmmu,ppc64-softmmu,s390x-softmmu,x86_64-linux-user" > + - TEST_CMD="make check-qtest check-softfloat -j3 V=1" > + arch: arm64 > -- > 2.18.1 > > Regards, Daniel
On 10/10/2019 12.58, Daniel P. Berrangé wrote: > On Wed, Oct 09, 2019 at 07:07:01PM +0200, Thomas Huth wrote: >> Travis now features an arm64 build host, so let's check compilation >> there, too. >> >> Unfortunately, there are some quirks: >> - block/ssh.c does not compile properly in this environment, so we have >> to use --disable-libssh until that problem is fixed. >> - test-util-filemonitor fails, so we can not run the unit tests there > > Do you have any more info on this failure ? > > Running tests with FILEMONITOR_DEBUG=1 env variable set will make > it print more info Here you go: https://travis-ci.com/huth/qemu/jobs/244168910#L5775 Quoting: " Add watch /tmp/test-util-filemonitor-PH0B9Z (null) Watch ID 100000000 Add watch /tmp/test-util-filemonitor-PH0B9Z one.txt Watch ID 100000001 Add watch /tmp/test-util-filemonitor-PH0B9Z two.txt Watch ID 100000002 Create /tmp/test-util-filemonitor-PH0B9Z/one.txt Event id=100000000 event=0 file=one.txt Queue event id 100000000 event 0 file one.txt Queue event id 100000001 event 0 file one.txt Event id=100000001 event=0 file=one.txt Create /tmp/test-util-filemonitor-PH0B9Z/two.txt Queue event id 100000000 event 0 file two.txt Queue event id 100000002 event 0 file two.txt Event id=100000000 event=0 file=two.txt Event id=100000002 event=0 file=two.txt Create /tmp/test-util-filemonitor-PH0B9Z/three.txt Queue event id 100000000 event 0 file three.txt Event id=100000000 event=0 file=three.txt Unlink /tmp/test-util-filemonitor-PH0B9Z/three.txt Queue event id 100000000 event 2 file three.txt Event id=100000000 event=2 file=three.txt Rename /tmp/test-util-filemonitor-PH0B9Z/one.txt -> /tmp/test-util-filemonitor-PH0B9Z/two.txt Queue event id 100000000 event 2 file one.txt Queue event id 100000001 event 2 file one.txt Queue event id 100000000 event 0 file two.txt Queue event id 100000002 event 0 file two.txt Event id=100000000 event=2 file=one.txt Event id=100000001 event=2 file=one.txt Event id=100000000 event=0 file=two.txt Event id=100000002 event=0 file=two.txt Append /tmp/test-util-filemonitor-PH0B9Z/two.txt Queue event id 100000000 event 1 file two.txt Queue event id 100000002 event 1 file two.txt Event id=100000000 event=1 file=two.txt Event id=100000002 event=1 file=two.txt Touch /tmp/test-util-filemonitor-PH0B9Z/two.txt Event id=100000000 event=3 file=two.txt Queue event id 100000000 event 3 file two.txt Queue event id 100000002 event 3 file two.txt Event id=100000002 event=3 file=two.txt Del watch /tmp/test-util-filemonitor-PH0B9Z 100000001 Add watch /tmp/test-util-filemonitor-PH0B9Z one.txt Watch ID 100000003 Create /tmp/test-util-filemonitor-PH0B9Z/one.txt Queue event id 100000000 event 0 file one.txt Event id=100000000 event=0 file=one.txt Queue event id 100000003 event 0 file one.txt Event id=100000003 event=0 file=one.txt Del watch /tmp/test-util-filemonitor-PH0B9Z 100000003 Unlink /tmp/test-util-filemonitor-PH0B9Z/one.txt Queue event id 100000000 event 2 file one.txt Event id=100000000 event=2 file=one.txt Mkdir /tmp/test-util-filemonitor-PH0B9Z/fish Queue event id 100000000 event 0 file fish Event id=100000000 event=0 file=fish Add watch /tmp/test-util-filemonitor-PH0B9Z fish/ Watch ID 200000000 Add watch /tmp/test-util-filemonitor-PH0B9Z fish/one.txt Watch ID 200000001 Create /tmp/test-util-filemonitor-PH0B9Z/fish/one.txt Queue event id 200000000 event 0 file one.txt Queue event id 200000001 event 0 file one.txt Event id=200000000 event=0 file=one.txt Event id=200000001 event=0 file=one.txt Del watch /tmp/test-util-filemonitor-PH0B9Z 200000001 Rename /tmp/test-util-filemonitor-PH0B9Z/fish/one.txt -> /tmp/test-util-filemonitor-PH0B9Z/two.txt Queue event id 200000000 event 2 file one.txt Event id=200000000 event=2 file=one.txt Queue event id 100000000 event 0 file two.txt Event id=100000000 event=0 file=two.txt Event id=100000002 event=0 file=two.txt Queue event id 100000002 event 0 file two.txt Rmdir /tmp/test-util-filemonitor-PH0B9Z/fish Queue event id 100000000 event 2 file fish Event id=200000000 event=4 file= Missing event watch id 200000000 event 4 file ** ERROR:tests/test-util-filemonitor.c:690:test_file_monitor_events: assertion failed: (err == 0) ERROR - Bail out! ERROR:tests/test-util-filemonitor.c:690:test_file_monitor_events: assertion failed: (err == 0) Aborted /home/travis/build/huth/qemu/tests/Makefile.include:904: recipe for target 'check-unit' failed make: *** [check-unit] Error 1 " Thomas
On Thu, Oct 10, 2019 at 01:57:11PM +0200, Thomas Huth wrote: > On 10/10/2019 12.58, Daniel P. Berrangé wrote: > > On Wed, Oct 09, 2019 at 07:07:01PM +0200, Thomas Huth wrote: > >> Travis now features an arm64 build host, so let's check compilation > >> there, too. > >> > >> Unfortunately, there are some quirks: > >> - block/ssh.c does not compile properly in this environment, so we have > >> to use --disable-libssh until that problem is fixed. > >> - test-util-filemonitor fails, so we can not run the unit tests there > > > > Do you have any more info on this failure ? > > > > Running tests with FILEMONITOR_DEBUG=1 env variable set will make > > it print more info > > Here you go: > > https://travis-ci.com/huth/qemu/jobs/244168910#L5775 > > Quoting: > > " > Add watch /tmp/test-util-filemonitor-PH0B9Z (null) > Watch ID 100000000 > Add watch /tmp/test-util-filemonitor-PH0B9Z one.txt > Watch ID 100000001 > Add watch /tmp/test-util-filemonitor-PH0B9Z two.txt > Watch ID 100000002 > Create /tmp/test-util-filemonitor-PH0B9Z/one.txt > Event id=100000000 event=0 file=one.txt > Queue event id 100000000 event 0 file one.txt > Queue event id 100000001 event 0 file one.txt > Event id=100000001 event=0 file=one.txt > Create /tmp/test-util-filemonitor-PH0B9Z/two.txt > Queue event id 100000000 event 0 file two.txt > Queue event id 100000002 event 0 file two.txt > Event id=100000000 event=0 file=two.txt > Event id=100000002 event=0 file=two.txt > Create /tmp/test-util-filemonitor-PH0B9Z/three.txt > Queue event id 100000000 event 0 file three.txt > Event id=100000000 event=0 file=three.txt > Unlink /tmp/test-util-filemonitor-PH0B9Z/three.txt > Queue event id 100000000 event 2 file three.txt > Event id=100000000 event=2 file=three.txt > Rename /tmp/test-util-filemonitor-PH0B9Z/one.txt -> > /tmp/test-util-filemonitor-PH0B9Z/two.txt > Queue event id 100000000 event 2 file one.txt > Queue event id 100000001 event 2 file one.txt > Queue event id 100000000 event 0 file two.txt > Queue event id 100000002 event 0 file two.txt > Event id=100000000 event=2 file=one.txt > Event id=100000001 event=2 file=one.txt > Event id=100000000 event=0 file=two.txt > Event id=100000002 event=0 file=two.txt > Append /tmp/test-util-filemonitor-PH0B9Z/two.txt > Queue event id 100000000 event 1 file two.txt > Queue event id 100000002 event 1 file two.txt > Event id=100000000 event=1 file=two.txt > Event id=100000002 event=1 file=two.txt > Touch /tmp/test-util-filemonitor-PH0B9Z/two.txt > Event id=100000000 event=3 file=two.txt > Queue event id 100000000 event 3 file two.txt > Queue event id 100000002 event 3 file two.txt > Event id=100000002 event=3 file=two.txt > Del watch /tmp/test-util-filemonitor-PH0B9Z 100000001 > Add watch /tmp/test-util-filemonitor-PH0B9Z one.txt > Watch ID 100000003 > Create /tmp/test-util-filemonitor-PH0B9Z/one.txt > Queue event id 100000000 event 0 file one.txt > Event id=100000000 event=0 file=one.txt > Queue event id 100000003 event 0 file one.txt > Event id=100000003 event=0 file=one.txt > Del watch /tmp/test-util-filemonitor-PH0B9Z 100000003 > Unlink /tmp/test-util-filemonitor-PH0B9Z/one.txt > Queue event id 100000000 event 2 file one.txt > Event id=100000000 event=2 file=one.txt > Mkdir /tmp/test-util-filemonitor-PH0B9Z/fish > Queue event id 100000000 event 0 file fish > Event id=100000000 event=0 file=fish > Add watch /tmp/test-util-filemonitor-PH0B9Z fish/ > Watch ID 200000000 > Add watch /tmp/test-util-filemonitor-PH0B9Z fish/one.txt > Watch ID 200000001 > Create /tmp/test-util-filemonitor-PH0B9Z/fish/one.txt > Queue event id 200000000 event 0 file one.txt > Queue event id 200000001 event 0 file one.txt > Event id=200000000 event=0 file=one.txt > Event id=200000001 event=0 file=one.txt > Del watch /tmp/test-util-filemonitor-PH0B9Z 200000001 > Rename /tmp/test-util-filemonitor-PH0B9Z/fish/one.txt -> > /tmp/test-util-filemonitor-PH0B9Z/two.txt > Queue event id 200000000 event 2 file one.txt > Event id=200000000 event=2 file=one.txt > Queue event id 100000000 event 0 file two.txt > Event id=100000000 event=0 file=two.txt > Event id=100000002 event=0 file=two.txt > Queue event id 100000002 event 0 file two.txt > Rmdir /tmp/test-util-filemonitor-PH0B9Z/fish > Queue event id 100000000 event 2 file fish > Event id=200000000 event=4 file= > Missing event watch id 200000000 event 4 file > ** This is really strange behaviour. I've done some further test builds on travis with various extra debug info & AFAICT, inotify is not working correctly on the host - it is never emitting one of the events that it should. Could be some wierd bug related to the filesystem overlay setup used for the container env in travis I guess. I'm not sure what todo here. I can't see an obvious trait that I can use to identify a broken setup, in order to auto-skip the test. Might just need to build without the inotify support somehow. Regards, Daniel
Thomas Huth <thuth@redhat.com> writes: > Travis now features an arm64 build host, so let's check compilation > there, too. > > Unfortunately, there are some quirks: > - block/ssh.c does not compile properly in this environment, so we have > to use --disable-libssh until that problem is fixed. > - test-util-filemonitor fails, so we can not run the unit tests there > - The file system size seems to be very limited, so the iotest tests > can't be used and the hd-geo-test fails (thus we can't compile > x86_64-softmmu here and run "check-qtest" afterwards) > - Compiling seems to be quite a bit slower than on the x86 builders, > so we better limit the target list to some few architectures. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > .travis.yml | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/.travis.yml b/.travis.yml > index 0c88e8757b..357ca02890 100644 > --- a/.travis.yml > +++ b/.travis.yml > @@ -342,3 +342,9 @@ matrix: > - CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" > - TEST_CMD="make -j3 check-tcg V=1" > - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" > + > + # Non-x86 builds: > + - env: > + - CONFIG="--disable-libssh --target-list=aarch64-softmmu,ppc64-softmmu,s390x-softmmu,x86_64-linux-user" > + - TEST_CMD="make check-qtest check-softfloat -j3 V=1" > + arch: arm64 Hmm this keeps fail for me now but it looks like missing deps: Reading state information... E: Unable to locate package libspice-server-dev apt-get.diagnostics apt-get install failed The command "sudo -E apt-get -yq --no-install-suggests --no-install-recommends $(travis_apt_get_options) install libaio-dev libattr1-dev libbrlapi-dev libcap-dev libcap-ng-dev libgcc-4.8-dev libgnutls28-dev libgtk-3-dev libiscsi-dev liblttng-ust-dev libncurses5-dev libnfs-dev libnss3-dev libpixman-1-dev libpng-dev librados-dev libsdl2-dev libsdl2-image-dev libseccomp-dev libspice-protocol-dev libspice-server-dev libssh-dev liburcu-dev libusb-1.0-0-dev libvdeplug-dev libvte-2.91-dev sparse uuid-dev gcovr" failed and exited with 100 during . -- Alex Bennée
On 22/10/2019 12.41, Alex Bennée wrote: > > Thomas Huth <thuth@redhat.com> writes: > >> Travis now features an arm64 build host, so let's check compilation >> there, too. >> >> Unfortunately, there are some quirks: >> - block/ssh.c does not compile properly in this environment, so we have >> to use --disable-libssh until that problem is fixed. >> - test-util-filemonitor fails, so we can not run the unit tests there >> - The file system size seems to be very limited, so the iotest tests >> can't be used and the hd-geo-test fails (thus we can't compile >> x86_64-softmmu here and run "check-qtest" afterwards) >> - Compiling seems to be quite a bit slower than on the x86 builders, >> so we better limit the target list to some few architectures. >> >> Signed-off-by: Thomas Huth <thuth@redhat.com> >> --- >> .travis.yml | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/.travis.yml b/.travis.yml >> index 0c88e8757b..357ca02890 100644 >> --- a/.travis.yml >> +++ b/.travis.yml >> @@ -342,3 +342,9 @@ matrix: >> - CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" >> - TEST_CMD="make -j3 check-tcg V=1" >> - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" >> + >> + # Non-x86 builds: >> + - env: >> + - CONFIG="--disable-libssh --target-list=aarch64-softmmu,ppc64-softmmu,s390x-softmmu,x86_64-linux-user" >> + - TEST_CMD="make check-qtest check-softfloat -j3 V=1" >> + arch: arm64 > > > Hmm this keeps fail for me now but it looks like missing deps: > > Reading state information... > > E: Unable to locate package libspice-server-dev It used to work two weeks before: https://travis-ci.com/huth/qemu/jobs/244124599#L484 I guess there was an update to a different version and they removed the package from arm64 now...? Seems like this arm64 builder is still a moving target (it has been announced as alpha software IIRC), so I think we should not include this patch yet. Thomas
diff --git a/.travis.yml b/.travis.yml index 0c88e8757b..357ca02890 100644 --- a/.travis.yml +++ b/.travis.yml @@ -342,3 +342,9 @@ matrix: - CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu" - TEST_CMD="make -j3 check-tcg V=1" - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default" + + # Non-x86 builds: + - env: + - CONFIG="--disable-libssh --target-list=aarch64-softmmu,ppc64-softmmu,s390x-softmmu,x86_64-linux-user" + - TEST_CMD="make check-qtest check-softfloat -j3 V=1" + arch: arm64
Travis now features an arm64 build host, so let's check compilation there, too. Unfortunately, there are some quirks: - block/ssh.c does not compile properly in this environment, so we have to use --disable-libssh until that problem is fixed. - test-util-filemonitor fails, so we can not run the unit tests there - The file system size seems to be very limited, so the iotest tests can't be used and the hd-geo-test fails (thus we can't compile x86_64-softmmu here and run "check-qtest" afterwards) - Compiling seems to be quite a bit slower than on the x86 builders, so we better limit the target list to some few architectures. Signed-off-by: Thomas Huth <thuth@redhat.com> --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+)