Date: Mon, 13 Jun 2016 13:18:39 -0600 From: Alan Somers <asomers@freebsd.org> To: "Conrad E. Meyer" <cem@freebsd.org> Cc: Mark Millard <markmi@dsl-only.net>, freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: 11.0 -r301815 "kyua test -k /usr/tests/Kyuafile" on rpi2 [armv7-a/cortex-a7]: broken (24) and failing (59) lists Message-ID: <CAOtMX2i_kyfyPvBQd9t%2BLk4343_=4CUmx0jwB8%2Bqxf81LPqerA@mail.gmail.com> In-Reply-To: <CAG6CVpVCjQB8mxPzYogMVn06GzU9S4eei6U_jRtX1WBOa_weQg@mail.gmail.com> References: <F86BEFBC-9A3D-48A5-A389-2C97267ADE37@dsl-only.net> <CAOtMX2geyMO1wk9r4iusQ8uS=07DQZWYKFnidY7kCtjjAckymg@mail.gmail.com> <CAG6CVpUWuC2ys0cpfRnfV91MPpNOFU4%2BfMLRLCLkESmm=Nohyw@mail.gmail.com> <CAG6CVpVCjQB8mxPzYogMVn06GzU9S4eei6U_jRtX1WBOa_weQg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This isn't an ABI issue. Since there's no dynamic library, there's no ABI to break except for weird circumstances like writing the in-memory representation of a bitstring to a file, rebuilding world, and reading that file back in. The ATF tests aren't doing anything like that. On Mon, Jun 13, 2016 at 12:05 PM, Conrad Meyer <cem@freebsd.org> wrote: > FYI, this implies the ulong-accessed bitstring change is ABI-breaking > for ARM userspace and maybe shouldn't go to stable/10. > > Best, > Conrad > > On Mon, Jun 13, 2016 at 11:04 AM, Conrad Meyer <cem@freebsd.org> wrote: >> I expect it's because: >> >> 1. bitstr_size() is just bytes (doesn't round up to sizeof(bitstr_t =3D= =3D >> unsigned long)) >> 2. The userspace version of bit_alloc() uses calloc(bitstr_size(), 1) >> (an array of nmemb=3Dbitstr_size() size=3Dbytes, doesn't have to be >> 'unsigned long' sized or aligned). >> 3. Various bit_* functions access the result as if it's an array of >> 'unsigned long', when it was allocated as a single-byte array (no >> ulong alignment or size). >> 4. ARM isn't as happy about unaligned accesses as x86. >> >> I'd make the following change (needs sys/param.h, not compile tested) >> and see if it fixes it: >> >> --- sys/bitstring.h (revision 301805) >> +++ sys/bitstring.h (working copy) >> @@ -119,7 +119,8 @@ >> static inline bitstr_t * >> bit_alloc(int _nbits) >> { >> - return ((bitstr_t *)calloc(bitstr_size(_nbits), 1)); >> + return (calloc(howmany(bitstr_size(_nbits), sizeof(bitstr_t)), >> + sizeof(bitstr_t))); >> } >> #endif >> >> >> >> >> >> >> On Mon, Jun 13, 2016 at 10:49 AM, Alan Somers <asomers@freebsd.org> wrot= e: >>> Please open a bug for the bitstring test failures and assign it to me. >>> Also, since I don't have any arm hardware, please provide instructions >>> on how to run this code in a VM, or where I can get access to the >>> hardware. >>> >>> -Alan >>> >>> On Mon, Jun 13, 2016 at 11:29 AM, Mark Millard <markmi@dsl-only.net> wr= ote: >>>> With the newly less strict alignment requirements "kyua test -k /usr/t= ests/Kyuafile" runs to completion, unlike before. >>>> >>>>> =3D=3D=3D> Summary >>>>> Results read from /root/.kyua/store/results.usr_tests.20160613-080302= -120731.db >>>>> Test cases: 5694 total, 54 skipped, 21 expected failures, 24 broken, = 59 failed >>>>> Total time: 8723.243s >>>> >>>> >>>> I only list the one line summaries below. Then I list various context = details. >>>> >>>>> =3D=3D=3D> Broken tests >>>>> lib/msun/cexp_test:main -> broken: Received signal 6 [1.054s] >>>>> lib/msun/ctrig_test:main -> broken: Received signal 6 [1.074s] >>>>> lib/msun/exponential_test:main -> broken: Received signal 6 [1.045= s] >>>>> lib/msun/fenv_test:main -> broken: Received signal 6 [1.048s] >>>>> lib/msun/fma_test:main -> broken: Received signal 6 [1.080s] >>>>> lib/msun/invctrig_test:main -> broken: Received signal 6 [1.091s] >>>>> lib/msun/invtrig_test:main -> broken: Received signal 6 [1.086s] >>>>> lib/msun/logarithm_test:main -> broken: Received signal 6 [1.054s] >>>>> lib/msun/lrint_test:main -> broken: Received signal 6 [1.069s] >>>>> lib/msun/nearbyint_test:main -> broken: Received signal 6 [1.066s] >>>>> lib/msun/rem_test:main -> broken: Received signal 6 [1.069s] >>>>> lib/msun/trig_test:main -> broken: Received signal 6 [1.070s] >>>>> sbin/growfs/legacy_test:main -> broken: Reported plan differs from = actual executed tests [0.459s] >>>>> sys/geom/class/eli/integrity_copy_test:main -> broken: Test case ti= med out [1200.082s] >>>>> sys/geom/class/eli/integrity_hmac_test:main -> broken: Test case ti= med out [600.138s] >>>>> sys/geom/class/eli/onetime_a_test:main -> broken: Test case timed o= ut [600.044s] >>>>> sys/sys/bitstring_test:bit_clear -> broken: Test case body timed ou= t [300.032s] >>>>> sys/sys/bitstring_test:bit_count -> broken: Premature exit; test ca= se received signal 11 (core dumped) [1.080s] >>>>> sys/sys/bitstring_test:bit_ffc -> broken: Premature exit; test case= received signal 11 (core dumped) [1.077s] >>>>> sys/sys/bitstring_test:bit_ffc_at -> broken: Premature exit; test c= ase received signal 11 (core dumped) [1.081s] >>>>> sys/sys/bitstring_test:bit_ffs -> broken: Premature exit; test case= received signal 11 (core dumped) [1.082s] >>>>> sys/sys/bitstring_test:bit_ffs_at -> broken: Premature exit; test c= ase received signal 11 (core dumped) [1.077s] >>>>> sys/sys/bitstring_test:bit_nclear -> broken: Premature exit; test c= ase received signal 11 (core dumped) [1.083s] >>>>> sys/sys/bitstring_test:bit_nset -> broken: Premature exit; test cas= e received signal 11 (core dumped) [1.079s] >>>> >>>> >>>>> =3D=3D=3D> Failed tests >>>>> lib/libc/c063/fstatat_test:fstatat_fd -> failed: /usr/src/contrib/n= etbsd-tests/lib/libc/c063/t_fstatat.c:74: memcmp(&st1, &st2, sizeof(st1)) = =3D=3D 0 not met [0. >>>>> 027s] >>>>> lib/libc/nss/gethostby_test:getipnodebyname_getaddrinfo_ipv4 -> fai= led: /usr/src/lib/libc/tests/nss/gethostby_test.c:1335: run_tests(_hostlist= _file, _snapshot >>>>> _file, 2, TEST_GETHOSTBYNAME2_GETADDRINFO, 0) =3D=3D 0 not met [15.3= 15s] >>>>> lib/libc/ssp/ssp_test:fgets -> failed: Test case body returned a no= n-ok exit code, but this is not allowed [0.153s] >>>>> lib/libc/ssp/ssp_test:gets -> failed: Test case body returned a non= -ok exit code, but this is not allowed [0.158s] >>>>> lib/libc/ssp/ssp_test:memcpy -> failed: atf-check failed; see the o= utput of the test for details [0.148s] >>>>> lib/libc/ssp/ssp_test:memmove -> failed: atf-check failed; see the = output of the test for details [0.147s] >>>>> lib/libc/ssp/ssp_test:memset -> failed: atf-check failed; see the o= utput of the test for details [0.147s] >>>>> lib/libc/ssp/ssp_test:read -> failed: Test case body returned a non= -ok exit code, but this is not allowed [0.154s] >>>>> lib/libc/ssp/ssp_test:readlink -> failed: atf-check failed; see the= output of the test for details [0.155s] >>>>> lib/libc/ssp/ssp_test:snprintf -> failed: atf-check failed; see the= output of the test for details [0.149s] >>>>> lib/libc/ssp/ssp_test:sprintf -> failed: atf-check failed; see the = output of the test for details [0.149s] >>>>> lib/libc/ssp/ssp_test:stpcpy -> failed: atf-check failed; see the o= utput of the test for details [0.149s] >>>>> lib/libc/ssp/ssp_test:stpncpy -> failed: atf-check failed; see the = output of the test for details [0.147s] >>>>> lib/libc/ssp/ssp_test:strcat -> failed: atf-check failed; see the o= utput of the test for details [0.147s] >>>>> lib/libc/ssp/ssp_test:strcpy -> failed: atf-check failed; see the o= utput of the test for details [0.147s] >>>>> lib/libc/ssp/ssp_test:strncat -> failed: atf-check failed; see the = output of the test for details [0.147s] >>>>> lib/libc/ssp/ssp_test:strncpy -> failed: atf-check failed; see the = output of the test for details [0.146s] >>>>> lib/libc/ssp/ssp_test:vsnprintf -> failed: atf-check failed; see th= e output of the test for details [0.150s] >>>>> lib/libc/ssp/ssp_test:vsprintf -> failed: atf-check failed; see the= output of the test for details [0.148s] >>>>> lib/libc/stdio/printbasic_test:int_within_limits -> failed: printf(= "%tu", (size_t)-1) =3D=3D> [18446744073709551615], expected [4294967295]<<N= EWLINE>> [0.030s] >>>>> lib/libc/stdio/scanfloat_test:infinities_and_nans -> failed: /usr/s= rc/lib/libc/tests/stdio/scanfloat_test.c:191: fetestexcept(FE_INVALID) =3D= =3D 0 not met [0.031 >>>>> s] >>>>> lib/libc/sys/mincore_test:mincore_resid -> failed: /usr/src/contrib= /netbsd-tests/lib/libc/sys/t_mincore.c:225: check_residency(addr, npgs) =3D= =3D 0 not met [0.04 >>>>> 0s] >>>>> lib/libc/sys/mincore_test:mincore_shmseg -> failed: /usr/src/contri= b/netbsd-tests/lib/libc/sys/t_mincore.c:298: check_residency(addr, npgs) = =3D=3D 0 not met [0.0 >>>>> 29s] >>>>> lib/libc/tls/tls_dynamic_test:t_tls_dynamic -> failed: 15 checks fa= iled; see output for more details [0.035s] >>>>> lib/libproc/proc_test:symbol_lookup -> failed: /usr/src/lib/libproc= /tests/proc_test.c:116: state !=3D PS_STOP: process has state 4 [0.177s] >>>>> lib/libxo/functional_test:test_02__E -> failed: atf-check failed; s= ee the output of the test for details [0.166s] >>>>> lib/libxo/functional_test:test_02__H -> failed: atf-check failed; s= ee the output of the test for details [0.168s] >>>>> lib/libxo/functional_test:test_02__HIPx -> failed: atf-check failed= ; see the output of the test for details [0.170s] >>>>> lib/libxo/functional_test:test_02__HP -> failed: atf-check failed; = see the output of the test for details [0.164s] >>>>> lib/libxo/functional_test:test_02__J -> failed: atf-check failed; s= ee the output of the test for details [0.169s] >>>>> lib/libxo/functional_test:test_02__JP -> failed: atf-check failed; = see the output of the test for details [0.166s] >>>>> lib/libxo/functional_test:test_02__T -> failed: atf-check failed; s= ee the output of the test for details [0.168s] >>>>> lib/libxo/functional_test:test_02__X -> failed: atf-check failed; s= ee the output of the test for details [0.169s] >>>>> lib/libxo/functional_test:test_02__XP -> failed: atf-check failed; = see the output of the test for details [0.168s] >>>>> lib/msun/conj_test:main -> failed: 9 tests of 42 failed [0.034s] >>>>> lib/msun/ldexp_test:ldexp_denormal -> failed: 4 checks failed; see = output for more details [0.034s] >>>>> local/kyua/model/metadata_test:override_all_with_set_string -> fail= ed: Line 253: disk_space !=3D md.required_disk_space() (16777216.00T !=3D 2= .00G) [0.047s] >>>>> local/kyua/testers/stacktrace_test:dump__cannot_find_gdb -> failed:= testers/stacktrace_test.c:281: atf_utils_grep_file("execvp failed", "stack= trace") not met >>>>> [0.611s] >>>>> local/kyua/testers/stacktrace_test:dump__gdb_fail -> failed: tester= s/stacktrace_test.c:294: atf_utils_grep_file("foo", "stacktrace") not met = [0.610s] >>>>> local/kyua/testers/stacktrace_test:dump__gdb_times_out -> failed: t= esters/stacktrace_test.c:311: atf_utils_grep_file("foo", "stacktrace") not = met [0.614s] >>>>> local/kyua/testers/stacktrace_test:dump__integration -> failed: tes= ters/stacktrace_test.c:233: atf_utils_grep_file("#0", "stacktrace") not met= [0.613s] >>>>> local/kyua/testers/stacktrace_test:dump__ok -> failed: testers/stac= ktrace_test.c:249: atf_utils_grep_file("frame 1", "stacktrace") not met [0= .614s] >>>>> local/kyua/testers/stacktrace_test:find_core__found__long -> failed= : Core dumped, but no candidates found [0.606s] >>>>> local/kyua/testers/stacktrace_test:find_core__found__short -> faile= d: Core dumped, but no candidates found [0.603s] >>>>> local/kyua/testers/tap_parser_test:try_parse_plan__insane -> failed= : testers/tap_parser_test.c:135: 'too long' not matched in 'Plan line inclu= des out of range >>>>> numbers' [0.032s] >>>>> sys/geom/class/eli/resize_test:main -> failed: 15 tests of 27 faile= d [1.292s] >>>>> sys/kern/pipe/pipe_fstat_bug_test:main -> failed: Returned non-succ= ess exit status 1 [0.044s] >>>>> usr.bin/lastcomm/legacy_test:main -> failed: 4 tests of 6 failed [= 0.151s] >>>>> usr.sbin/rpcbind/addrmerge_test:addrmerge_bindip -> failed: 1 check= s failed; see output for more details [0.035s] >>>>> usr.sbin/rpcbind/addrmerge_test:addrmerge_bindip_rev -> failed: 1 c= hecks failed; see output for more details [0.035s] >>>>> usr.sbin/rpcbind/addrmerge_test:addrmerge_localhost_only -> failed:= 1 checks failed; see output for more details [0.034s] >>>>> usr.sbin/rpcbind/addrmerge_test:addrmerge_one_addr_on_each_subnet ->= failed: 1 checks failed; see output for more details [0.035s] >>>>> usr.sbin/rpcbind/addrmerge_test:addrmerge_one_addr_on_each_subnet_rev= -> failed: 1 checks failed; see output for more details [0.035s] >>>>> usr.sbin/rpcbind/addrmerge_test:addrmerge_point2point -> failed: 1 = checks failed; see output for more details [0.035s] >>>>> usr.sbin/rpcbind/addrmerge_test:addrmerge_point2point_rev -> failed= : 1 checks failed; see output for more details [0.033s] >>>>> usr.sbin/rpcbind/addrmerge_test:addrmerge_recvdstaddr -> failed: 1 = checks failed; see output for more details [0.035s] >>>>> usr.sbin/rpcbind/addrmerge_test:addrmerge_recvdstaddr_rev -> failed= : 1 checks failed; see output for more details [0.035s] >>>>> usr.sbin/rpcbind/addrmerge_test:addrmerge_singlehomed -> failed: 1 = checks failed; see output for more details [0.032s] >>>>> usr.sbin/sa/legacy_test:main -> failed: 12 tests of 13 failed [0.3= 40s] >>>> >>>> >>>> >>>> Context details: >>>> >>>>> # uname -apKU >>>>> FreeBSD rpi2 11.0-ALPHA3 FreeBSD 11.0-ALPHA3 #0 r301815M: Sat Jun 11 = 23:43:48 PDT 2016 markmi@FreeBSDx64:/usr/obj/clang/arm.armv6/usr/src/sy= s/RPI2-NODBG ar >>>>> m armv6 1100116 1100116 >>>> >>>> In use for the system build was: >>>> >>>>> XCFLAGS+=3D -march=3Darmv7-a -mcpu=3Dcortex-a7 >>>>> XCXXFLAGS+=3D -march=3Darmv7-a -mcpu=3Dcortex-a7 >>>> >>>> I do have a few local /usr/src changes/additions, but nearly all are o= nly for powerpc and/or powerpc64 contexts: >>>> >>>>> # svnlite status /usr/src/ >>>>> M /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBu= ilder.cpp >>>>> M /usr/src/lib/csu/powerpc64/Makefile >>>>> ? /usr/src/sys/amd64/include/include >>>>> ? /usr/src/sys/arm/conf/RPI2-NODBG >>>>> ? /usr/src/sys/arm/include/include >>>>> M /usr/src/sys/boot/ofw/Makefile.inc >>>>> M /usr/src/sys/boot/powerpc/Makefile >>>>> M /usr/src/sys/boot/powerpc/Makefile.inc >>>>> M /usr/src/sys/boot/uboot/Makefile.inc >>>>> M /usr/src/sys/conf/Makefile.powerpc >>>>> M /usr/src/sys/conf/kern.mk >>>>> M /usr/src/sys/conf/kmod.mk >>>>> M /usr/src/sys/dev/cxgb/ulp/tom/cxgb_listen.c >>>>> M /usr/src/sys/dev/cxgbe/tom/t4_listen.c >>>>> ? /usr/src/sys/powerpc/conf/GENERIC64-NODBG >>>>> ? /usr/src/sys/powerpc/conf/GENERIC64vtsc >>>>> ? /usr/src/sys/powerpc/conf/GENERIC64vtsc-NODEBUG >>>>> ? /usr/src/sys/powerpc/conf/GENERICvtsc >>>>> ? /usr/src/sys/powerpc/conf/GENERICvtsc-NODEBUG >>>>> ? /usr/src/sys/powerpc/include/include >>>>> M /usr/src/sys/powerpc/ofw/ofw_machdep.c >>>>> M /usr/src/sys/powerpc/powerpc/exec_machdep.c >>>>> ? /usr/src/sys/x86/include/include >>>> >>>> [The cxbg and cxbge changes just remove redundant declarations that st= opped a amd64-gcc based build. But other areas have such issues and I quit = trying eliminating such blocks to that tool chain. The include/include's ar= e from something making symbolic links back to the parent include.] >>>> >>>> The kernel configuration was via: >>>> >>>>> # more /usr/src/sys/arm/conf/RPI2-NODBG >>>>> # >>>>> # RPI2 -- Custom configuration for the Raspberry Pi 2 >>>>> # >>>>> # For more information on this file, please read the config(5) manual= page, >>>>> # and/or the handbook section on Kernel Configuration Files: >>>>> # >>>>> # http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernel= config-config.html >>>>> # >>>>> # The handbook is also available locally in /usr/share/doc/handbook >>>>> # if you've installed the doc distribution, otherwise always see the >>>>> # FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the >>>>> # latest information. >>>>> # >>>>> # An exhaustive list of options and more detailed explanations of the >>>>> # device lines is also present in the ../../conf/NOTES and NOTES file= s. >>>>> # If you are in doubt as to the purpose or necessity of a line, check= first >>>>> # in NOTES. >>>>> # >>>>> >>>>> ident RPI2-NODBG >>>>> >>>>> include "RPI2" >>>>> >>>>> makeoptions DEBUG=3D-g # Build kernel with gdb(1) = debug symbols >>>>> options ALT_BREAK_TO_DEBUGGER >>>>> #options VERBOSE_SYSINIT # Enable verbose sysinit mess= ages >>>>> >>>>> options KDB # Enable kernel debugger supp= ort >>>>> >>>>> # For minimum debugger support (stable branch) use: >>>>> #options KDB_TRACE # Print a stack trace for a p= anic >>>>> options DDB # Enable the kernel debugger >>>>> >>>>> nooptions INVARIANTS # Enable calls of extra sanit= y checking >>>>> nooptions INVARIANT_SUPPORT # Extra sanity checks of inte= rnal structures, required by INVARIANTS >>>>> nooptions WITNESS # Enable checks to detect dea= dlocks and cycles >>>>> nooptions WITNESS_SKIPSPIN # Don't run witness on spinlo= cks for speed >>>>> nooptions DIAGNOSTIC >>>> >>>> >>>> The armv6 11.0 -r301815 system was cross built from amd64, built using= src.conf: >>>> >>>>> # more ~/src.configs/src.conf.rpi2-clang-bootstrap.amd64-host >>>>> TO_TYPE=3Darmv6 >>>>> # >>>>> KERNCONF=3DRPI2-NODBG >>>>> TARGET=3Darm >>>>> .if ${.MAKE.LEVEL} =3D=3D 0 >>>>> TARGET_ARCH=3D${TO_TYPE} >>>>> .export TARGET_ARCH >>>>> .endif >>>>> # >>>>> WITH_CROSS_COMPILER=3D >>>>> WITHOUT_SYSTEM_COMPILER=3D >>>>> # >>>>> #CPUTYPE=3Dsoft >>>>> WITH_LIBSOFT=3D >>>>> WITH_LIBCPLUSPLUS=3D >>>>> WITH_BINUTILS_BOOTSTRAP=3D >>>>> WITH_CLANG_BOOTSTRAP=3D >>>>> WITH_CLANG=3D >>>>> WITH_CLANG_IS_CC=3D >>>>> WITH_CLANG_FULL=3D >>>>> WITH_CLANG_EXTRAS=3D >>>>> WITH_LLDB=3D >>>>> # >>>>> WITH_BOOT=3D >>>>> WITHOUT_LIB32=3D >>>>> # >>>>> WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=3D >>>>> WITHOUT_GCC_BOOTSTRAP=3D >>>>> WITHOUT_GCC=3D >>>>> WITHOUT_GCC_IS_CC=3D >>>>> WITHOUT_GNUCXX=3D >>>>> # >>>>> NO_WERROR=3D >>>>> #WERROR=3D >>>>> MALLOC_PRODUCTION=3D >>>>> # >>>>> WITH_DEBUG_FILES=3D >>>>> # >>>>> XCFLAGS+=3D -march=3Darmv7-a -mcpu=3Dcortex-a7 >>>>> XCXXFLAGS+=3D -march=3Darmv7-a -mcpu=3Dcortex-a7 >>>>> # There is no XCPPFLAGS but XCPP ets XCFLAGS content. >>>> >>>> and with the make.conf for the system build being empty: >>>> >>>>> # more ~/src.configs/make.conf >>>>> # >>>> >>>> =3D=3D=3D >>>> Mark Millard >>>> markmi at dsl-only.net >>>> >>>> _______________________________________________ >>>> freebsd-current@freebsd.org mailing list >>>> https://lists.freebsd.org/mailman/listinfo/freebsd-current >>>> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.= org" >>> _______________________________________________ >>> freebsd-current@freebsd.org mailing list >>> https://lists.freebsd.org/mailman/listinfo/freebsd-current >>> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.o= rg"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2i_kyfyPvBQd9t%2BLk4343_=4CUmx0jwB8%2Bqxf81LPqerA>