On 18/03/2023 23:39, Sam James wrote:
Pádraig Brady <p...@draigbrady.com> writes:
On 18/03/2023 22:55, Sam James wrote:
Pádraig Brady <p...@draigbrady.com> writes:
On 16/03/2023 20:44, Sam James wrote:
# grep -rsin "FAIL:"
/var/tmp/portage/sys-apps/coreutils-9.1_p20230313/temp/build.log
8833:# XFAIL: 0
8834:# FAIL: 3
12578:FAIL: tests/misc/cksum-raw
17775:FAIL: tests/df/df-symlink
18973:FAIL: tests/dd/nocache_eof
For nocache_eof:
```
+ strace_dd if=in.f of=out.f bs=1M iflag=nocache oflag=nocache,sync
+ strace -o dd.strace -e fadvise64,fadvise64_64 dd status=none if=in.f
of=out.f bs=1M iflag=nocache oflag=nocache,sync
+ advised_to_eof
+ grep -F ' 0, POSIX_FADV_DONTNEED' dd.strace
+ fail=1
I suspect the fadvise64,fadvise64_64 strace filter isn't working on s390.
An unfiltered strace output from one of those dd commands would be useful.
See http://sprunge.us/G0TUET. I chucked it in
for the other invocations too.
Interesting. So from strace's point of view
we're requesting POSIX_FADV_NORMAL rather than POSIX_FADV_DONTNEED.
POSIX_FADV_NORMAL is 0 which suggests to be some ABI issue
rather than an API or user logic issue.
For example perhaps there is some parameter conversion issue in the s390 kernel.
For e.g. the following bug fix may not have been applied to s390?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e412ac4971d27ea84f3d63ce425c6ab2d6a67f23
I also see in the glibc code that:
"s390 implements fadvice64_64 using a specific struct with arguments
packed inside. This is the only implementation handled in arch-specific code."
The issue might even be in strace.
In any case nothing has changed on the coreutils side of things in this regard,
and there is no gnulib wrapping of this function either.
I suspect a separate simple C program that just calls posix_fadvise(...)
would be enough to repo, or if GNU dd is available the simplest check is:
strace -e fadvise64,fadvise64_64 dd oflag=nocache if=/dev/null of=/dev/null
status=none
cheers,
Pádraig