| Date | Wed, 6 Apr 2016 01:44:12 +0300 | From | Yury Norov <> | Subject | Re: [RFC6 PATCH v6 00/21] ILP32 for ARM64 - LTP results |
| |
There are about 20 failing tests of 782 in lite scenario. float_bessel float_exp_log float_iperb float_power float_trigo pipeio_1 pipeio_3 pipeio_5 pipeio_8 abort01 clone02 kill11 mmap16 open12 pause01 rename11 rmdir02 umount2_01 umount2_02 umount2_03 utime06 mtest06
The list is rough because some tests fail not every time.
Tests abort01 and kill11 fail for lp64 too, so maybe there's a reason unrelated to ilp32 itself.
float_xxx tests fail because they call unwind() from signal context, and GCC for ilp32 has problem with it, as Andrew told.
pipeio_x tests are very unstable and may fail randomly. I strongly suspect race conditions, as they all work like a charm if pinned to single CPU with taskset. Probably, race is the reason of clone02 too. Though I'm not sure, is the race in kernel, glibc or test itself.
But I know for sure that pause01 fails due to test design: if (setitimer(ITIMER_REAL, &it, NULL)) // For 1000us tst_brkm(TBROK | TERRNO, NULL, "setitimer() failed");
TEST(pause());
As setitimer() and pause() calls are not atomic, alarm may come before pause() is called, and be silently dropped by the handler. Next pause() call hangs test forever. I already reported to LTP list.
open12, rename11, rmdir02, mmap16, mtest06 - all call mkfs tool, and it returns error code. I didn't investigate it much yet.
umount02_x, utime06 - cannot reproduce out of scenario, even run it in infinite loop - they work fine.
Full test log is attached.
Yury [unhandled content-type:application/gzip] |