coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: coreutils-9.1.198-e68b1.tar.xz on Linux/s390


From: Pádraig Brady
Subject: Re: coreutils-9.1.198-e68b1.tar.xz on Linux/s390
Date: Sun, 19 Mar 2023 12:28:38 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Thunderbird/109.0

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]