On Mon, 5 Nov 2018 at 02:29, Rafael David Tinoco rafael.tinoco@linaro.org wrote:
On Sun, Nov 4, 2018, at 10:46 PM, Linaro QA wrote:
Summary
kernel: 4.14.79 git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git git branch: linux-4.14.y git commit: 50961e4888a1d53544ac4ea6f185fc27ee4fee4f git describe: v4.14.79 Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-4.14-oe/build/v4.14.79
Regressions (compared to build v4.14.78-144-gb825fd9fbad5)
hi6220-hikey - arm64: libhugetlbfs: * mmap-cow-199-200-2M-64
This test creates a mmap for memory backed by hugepages using the file descriptor provided by libhugetlbfs (hugetlbfs_unlined_fd). It creates several childs that will mmap() this same region, mapped by parent, using MAP_PRIVATE flag. This flat will make child virtual memory pages COW. Whenever allocated memory is touched by a child, it has to be duplicated and not to touch parents memory.
This is the first time this tests fails for v4.14. Unfortunately, without stdout for the test, it is impossible to know why the thread has failed - if it failed because the lack of resources or because a child has touched parent's allocated memory - all we got was:
mmap-cow 199 200 (2M: 64): FAIL Thread 68 (pid=3536) failed
And this is the result of parent thread checking
if (WEXITSTATUS(status) != 0)
With that, checking why the thread could have failed:
if (mmap_file(fd, &addr, size, MAP_PRIVATE)) CHILD_FAIL(thread, "mmap() failed: %s", strerror(errno));
meaning it could NOT mmap the file (lack of resources ?)
OR
if (msync(addr, size, MS_SYNC)) CHILD_FAIL(thread, "msync() failed: %s", strerror(errno));
meaning it could NOT flush changes made to child's pages (lack of resources -> to allocated new pages and sync contents).
OR
/* Verify the pattern */ for (i = 0; i < size; i++) if (addr[i] != pattern) CHILD_FAIL(thread, "Corruption at %p; " "Got %c, Expected %c", &addr[i], addr[i], pattern);
meaning child has corrupted parent's memory, when it should not.
@Naresh,
Is it possible to get the output for those tests ? Based on this:
https://lkft.validation.linaro.org/scheduler/job/496395#L1490
libhugetlbfs isn't very chatty. The only stdout from this test is: mmap-cow 199 200 (2M: 64): FAIL Thread 68 (pid=3536) failed set shmmax limit to 419430400
https://lkft.validation.linaro.org/scheduler/job/496395#L1605
I'm not even sure the 'failed set shmmax' line comes from this test.
milosz
I wonder if I can get the output for the tests, checking which message it has. I bet it was something related to lack of resources, specially if hugepages on hikey was under pressure... like we've seen in other tests. But, since this is the 1st time it happens for this test, I thought investigating further would be beneficial.
Best, Rafael