Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Jun 2016 11:05:58 -0700
From:      Conrad Meyer <cem@freebsd.org>
To:        Alan Somers <asomers@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:  <CAG6CVpVCjQB8mxPzYogMVn06GzU9S4eei6U_jRtX1WBOa_weQg@mail.gmail.com>
In-Reply-To: <CAG6CVpUWuC2ys0cpfRnfV91MPpNOFU4%2BfMLRLCLkESmm=Nohyw@mail.gmail.com>
References:  <F86BEFBC-9A3D-48A5-A389-2C97267ADE37@dsl-only.net> <CAOtMX2geyMO1wk9r4iusQ8uS=07DQZWYKFnidY7kCtjjAckymg@mail.gmail.com> <CAG6CVpUWuC2ys0cpfRnfV91MPpNOFU4%2BfMLRLCLkESmm=Nohyw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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> wrote=
:
>> 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> wro=
te:
>>> With the newly less strict alignment requirements "kyua test -k /usr/te=
sts/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, 5=
9 failed
>>>> Total time: 8723.243s
>>>
>>>
>>> I only list the one line summaries below. Then I list various context d=
etails.
>>>
>>>> =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.045s=
]
>>>> 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 a=
ctual executed tests  [0.459s]
>>>> sys/geom/class/eli/integrity_copy_test:main  ->  broken: Test case tim=
ed out  [1200.082s]
>>>> sys/geom/class/eli/integrity_hmac_test:main  ->  broken: Test case tim=
ed out  [600.138s]
>>>> sys/geom/class/eli/onetime_a_test:main  ->  broken: Test case timed ou=
t  [600.044s]
>>>> sys/sys/bitstring_test:bit_clear  ->  broken: Test case body timed out=
  [300.032s]
>>>> sys/sys/bitstring_test:bit_count  ->  broken: Premature exit; test cas=
e 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 ca=
se 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 ca=
se received signal 11 (core dumped)  [1.077s]
>>>> sys/sys/bitstring_test:bit_nclear  ->  broken: Premature exit; test ca=
se received signal 11 (core dumped)  [1.083s]
>>>> sys/sys/bitstring_test:bit_nset  ->  broken: Premature exit; test case=
 received signal 11 (core dumped)  [1.079s]
>>>
>>>
>>>> =3D=3D=3D> Failed tests
>>>> lib/libc/c063/fstatat_test:fstatat_fd  ->  failed: /usr/src/contrib/ne=
tbsd-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  ->  fail=
ed: /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.31=
5s]
>>>> lib/libc/ssp/ssp_test:fgets  ->  failed: Test case body returned a non=
-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 ou=
tput of the test for details  [0.148s]
>>>> lib/libc/ssp/ssp_test:memmove  ->  failed: atf-check failed; see the o=
utput of the test for details  [0.147s]
>>>> lib/libc/ssp/ssp_test:memset  ->  failed: atf-check failed; see the ou=
tput 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 o=
utput of the test for details  [0.149s]
>>>> lib/libc/ssp/ssp_test:stpcpy  ->  failed: atf-check failed; see the ou=
tput of the test for details  [0.149s]
>>>> lib/libc/ssp/ssp_test:stpncpy  ->  failed: atf-check failed; see the o=
utput of the test for details  [0.147s]
>>>> lib/libc/ssp/ssp_test:strcat  ->  failed: atf-check failed; see the ou=
tput of the test for details  [0.147s]
>>>> lib/libc/ssp/ssp_test:strcpy  ->  failed: atf-check failed; see the ou=
tput of the test for details  [0.147s]
>>>> lib/libc/ssp/ssp_test:strncat  ->  failed: atf-check failed; see the o=
utput of the test for details  [0.147s]
>>>> lib/libc/ssp/ssp_test:strncpy  ->  failed: atf-check failed; see the o=
utput of the test for details  [0.146s]
>>>> lib/libc/ssp/ssp_test:vsnprintf  ->  failed: atf-check failed; see the=
 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]<<NE=
WLINE>>  [0.030s]
>>>> lib/libc/stdio/scanfloat_test:infinities_and_nans  ->  failed: /usr/sr=
c/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/contrib=
/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 fai=
led; 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; se=
e the output of the test for details  [0.166s]
>>>> lib/libxo/functional_test:test_02__H  ->  failed: atf-check failed; se=
e 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; s=
ee the output of the test for details  [0.164s]
>>>> lib/libxo/functional_test:test_02__J  ->  failed: atf-check failed; se=
e the output of the test for details  [0.169s]
>>>> lib/libxo/functional_test:test_02__JP  ->  failed: atf-check failed; s=
ee the output of the test for details  [0.166s]
>>>> lib/libxo/functional_test:test_02__T  ->  failed: atf-check failed; se=
e the output of the test for details  [0.168s]
>>>> lib/libxo/functional_test:test_02__X  ->  failed: atf-check failed; se=
e the output of the test for details  [0.169s]
>>>> lib/libxo/functional_test:test_02__XP  ->  failed: atf-check failed; s=
ee 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 o=
utput for more details  [0.034s]
>>>> local/kyua/model/metadata_test:override_all_with_set_string  ->  faile=
d: 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", "stackt=
race") not met
>>>>  [0.611s]
>>>> local/kyua/testers/stacktrace_test:dump__gdb_fail  ->  failed: testers=
/stacktrace_test.c:294: atf_utils_grep_file("foo", "stacktrace") not met  [=
0.610s]
>>>> local/kyua/testers/stacktrace_test:dump__gdb_times_out  ->  failed: te=
sters/stacktrace_test.c:311: atf_utils_grep_file("foo", "stacktrace") not m=
et  [0.614s]
>>>> local/kyua/testers/stacktrace_test:dump__integration  ->  failed: test=
ers/stacktrace_test.c:233: atf_utils_grep_file("#0", "stacktrace") not met =
 [0.613s]
>>>> local/kyua/testers/stacktrace_test:dump__ok  ->  failed: testers/stack=
trace_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  ->  failed=
: 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 includ=
es out of range
>>>>  numbers'  [0.032s]
>>>> sys/geom/class/eli/resize_test:main  ->  failed: 15 tests of 27 failed=
  [1.292s]
>>>> sys/kern/pipe/pipe_fstat_bug_test:main  ->  failed: Returned non-succe=
ss 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 checks=
 failed; see output for more details  [0.035s]
>>>> usr.sbin/rpcbind/addrmerge_test:addrmerge_bindip_rev  ->  failed: 1 ch=
ecks 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 c=
hecks 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 c=
hecks 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 c=
hecks failed; see output for more details  [0.032s]
>>>> usr.sbin/sa/legacy_test:main  ->  failed: 12 tests of 13 failed  [0.34=
0s]
>>>
>>>
>>>
>>> Context details:
>>>
>>>> # uname -apKU
>>>> FreeBSD rpi2 11.0-ALPHA3 FreeBSD 11.0-ALPHA3 #0 r301815M: Sat Jun 11 2=
3:43:48 PDT 2016     markmi@FreeBSDx64:/usr/obj/clang/arm.armv6/usr/src/sys=
/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 on=
ly for powerpc and/or powerpc64 contexts:
>>>
>>>> # svnlite status /usr/src/
>>>> M       /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBui=
lder.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 sto=
pped a amd64-gcc based build. But other areas have such issues and I quit t=
rying eliminating such blocks to that tool chain. The include/include's are=
 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/kernelc=
onfig-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 files=
.
>>>> # 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) d=
ebug symbols
>>>> options         ALT_BREAK_TO_DEBUGGER
>>>> #options        VERBOSE_SYSINIT         # Enable verbose sysinit messa=
ges
>>>>
>>>> options         KDB                     # Enable kernel debugger suppo=
rt
>>>>
>>>> # For minimum debugger support (stable branch) use:
>>>> #options        KDB_TRACE               # Print a stack trace for a pa=
nic
>>>> options         DDB                     # Enable the kernel debugger
>>>>
>>>> nooptions       INVARIANTS              # Enable calls of extra sanity=
 checking
>>>> nooptions       INVARIANT_SUPPORT       # Extra sanity checks of inter=
nal structures, required by INVARIANTS
>>>> nooptions       WITNESS                 # Enable checks to detect dead=
locks and cycles
>>>> nooptions       WITNESS_SKIPSPIN        # Don't run witness on spinloc=
ks 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.o=
rg"
>> _______________________________________________
>> freebsd-current@freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.or=
g"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG6CVpVCjQB8mxPzYogMVn06GzU9S4eei6U_jRtX1WBOa_weQg>