axboe / liburing

Library providing helpers for the Linux kernel io_uring support
MIT License
2.78k stars 397 forks source link

ppc64le: Tests failed (2): <no-mmap-inval.t> <reg-fd-only.t> #1207

Open vt-alt opened 3 weeks ago

vt-alt commented 3 weeks ago

JFYI, two tests fail on ppc64 on Linux v6.6.46 for liburing-2.7. They succeed or skipped on x86_64.

+ make runtests
...
[00:01:36] Running test no-mmap-inval.t                                        Got -2, wanted -EFAULT
[00:01:36] Test no-mmap-inval.t failed with ret 1
...
[00:01:49] Running test reg-fd-only.t                                          ring setup failed
[00:01:49] test 8 failed
[00:01:49] Test reg-fd-only.t failed with ret 1

On x86_64:

[00:01:22] Running test no-mmap-inval.t                                        0 sec
...
[00:01:29] Running test reg-fd-only.t                                          Enable huge pages to test big rings
[00:01:29] Skipped
vt-alt commented 3 weeks ago

Also, the same version suddenly got on aarch64:

[00:00:40] Running test accept-non-empty.t                                     Test accept-non-empty.t failed with ret 78
...
[00:02:40] Tests failed (1): <accept-non-empty.t>
axboe commented 3 weeks ago

Pushed a fix for accept-non-empty, that was a bug in the test.

For ppc64, the -ENOENT for mmap-no-inval is very (very) odd. For reg-fd-only, I'll push a commit to dump 'ret'. Can you try and re-run it? I'm wondering what it's returning. Maybe both are the same arch odditiy and it'll be -ENOENT?!

vt-alt commented 3 weeks ago

Thanks. Now with ebd6c8ff4bbc05492185f937f002b119a8f91964 it failed only on ppc64le (and i586 where is usually exclude sqpoll-sleep.t). Kernel is also changed to v6.6.47.

isilence commented 3 weeks ago

Thanks. Now with ebd6c8f it failed only on ppc64le (and i586 where is usually exclude sqpoll-sleep.t). Kernel is also changed to v6.6.47.

* ppc64le :

... [00:01:52] Running test send-zerocopy.t invalid cqe->res -90 expected 65536 [00:01:52] send failed fixed buf 0, conn 0, addr 1, cork 0

It's UDP for which we "expect" 65536 bytes in a datagram, more than usually supported by UDP. Looks the test wasn't prepared for 16K pages.

if (!tcp && len > 4 * page_sz)
    continue; // skip test