On 10/13/22 11:12, Vlastimil Babka wrote:
On 10/13/22 19:10, Shuah Khan wrote:
On 10/13/22 11:01, David Hildenbrand wrote:
On 13.10.22 18:54, Vlastimil Babka wrote:
Hi,
I've been trying the hmm_tests as of today's commit:
a185a0995518 ("Merge tag 'linux-kselftest-kunit-6.1-rc1-2' ...)
and run into several issues that seemed worth reporting.
First, it seems the FIXTURE_TEARDOWN(hmm) in
tools/testing/selftests/vm/hmm-tests.c
using ASSERT_EQ(ret, 0); can run into an infinite loop of reporting the
assertion failure. Dunno if it's a kselftests issue or it's a bug to
use asserts in teardown. I hacked it up like this locally to proceed:
--- a/tools/testing/selftests/vm/hmm-tests.c
+++ b/tools/testing/selftests/vm/hmm-tests.c
@@ -154,6 +154,11 @@ FIXTURE_TEARDOWN(hmm)
{
int ret = close(self->fd);
+ if (ret != 0) {
+ fprintf(stderr, "close returned (%d) fd is (%d)\n", ret,self->fd);
+ exit(1);
+ }
+
ASSERT_EQ(ret, 0);
self->fd = -1;
}
Next, there are some tests that fail (and thus also trigger the issue above)
# RUN hmm.hmm_device_private.exclusive ...
# hmm-tests.c:1702:exclusive:Expected ret (-16) == 0 (0)
close returned (-1) fd is (3)
# exclusive: Test failed at step #1
# FAIL hmm.hmm_device_private.exclusive
not ok 20 hmm.hmm_device_private.exclusive
# RUN hmm.hmm_device_private.exclusive_mprotect ...
# hmm-tests.c:1756:exclusive_mprotect:Expected ret (-16) == 0 (0)
close returned (-1) fd is (3)
# exclusive_mprotect: Test failed at step #1
# FAIL hmm.hmm_device_private.exclusive_mprotect
not ok 21 hmm.hmm_device_private.exclusive_mprotect
# RUN hmm.hmm_device_private.exclusive_cow ...
# hmm-tests.c:1809:exclusive_cow:Expected ret (-16) == 0 (0)
close returned (-1) fd is (3)
# exclusive_cow: Test failed at step #1
# FAIL hmm.hmm_device_private.exclusive_cow
not ok 22 hmm.hmm_device_private.exclusive_cow
When did that test start failing? Was it still ok for 6.0?
Didn't test yet, will try, in case it's my system/config specific thing.
commit 4fe89d07dcc2804c8b562f6c7896a45643d34b2f (tag: v6.0, linux/master)
# FAILED: 25 / 50 tests passed.
# Totals: pass:25 fail:25 xfail:0 xpass:0 skip:0 error:0
Looks good to me.
Hmm but there's 25 that failed? Or are those also misreported SKIPs?
Likely the case. Here is an observation. All of these FAILs are coming
from line 141 which is FIXTURE_SETUP. See the result:
# hmm-tests.c:141:open_close:Expected self->fd (-1) >= 0 (0)
# open_close: Test terminated by assertion
# FAIL hmm.hmm_device_private.open_close
not ok 1 hmm.hmm_device_private.open_close
However the code is:
FIXTURE_SETUP(hmm)
{
self->page_size = sysconf(_SC_PAGE_SIZE);
self->page_shift = ffs(self->page_size) - 1;
self->fd = hmm_open(variant->device_number);
if (self->fd < 0 && hmm_is_coherent_type(variant->device_number))
SKIP(exit(0), "DEVICE_COHERENT not available");
Note: It is SKIP(). It appears it will be reported as fail unless both of
the above conditions are true. Perhaps this check should be either of these
conditions is true, it is skip.
ASSERT_GE(self->fd, 0);
}
Looks like this test could a review to see if all these conditions should
be a FAIL or SKIP. This problem exists in 6.0.
thanks,
-- Shuah