google / gemmlowp

Low-precision matrix multiplication

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[BUG] Failed to build on several architectures

cdluminate opened this issue · comments

thanks for the report. this test seems to work fine when I run it locally. I would welcome patches making it work also for buildd.debian.org.

Note that the failure pattern is "test hangs on 32bit architectures".

We've recently looked at what looked like a hang on a futex in this test and the conclusion is

insufficient user memory space, because test (indirectly) tries to map more than 2GB.
Test program tries to create hundreds of threads and each thread has stack of 8MB (default size for MIPS). After ~250 threads have been created, whole user address space is mapped and next call to pthread_create() fails, which isn't handled by test. As a consequence of this, main thread stays blocked, waiting indefinitely for signal. Other 32-bit architectures have smaller stack size (by default), and have enough address space. Possible solution is to use smaller stack size for the threads, and to check return value of pthread_create().

Thanks for debugging that, and sorry about the trouble. I'd gladly take a PR fixing this however way works for you, including if it lowers test coverage by lowering the number of threads / cases being covered.

Interestingly hurd-i386 can build and pass the test: https://buildd.debian.org/status/package.php?p=gemmlowp