On 2021-08-23, Shuah Khan skhan@linuxfoundation.org wrote:
Hi Baolin,
On 8/22/21 8:40 PM, Baolin Wang wrote:
Hi Shuah,
On 2021/7/28 20:32, Baolin Wang wrote:
Hi,
When running the openat2 test suite on ARM64 platform, we got below failure, since the definition of the O_LARGEFILE is different on ARM64. So we can set the correct O_LARGEFILE definition on ARM64 to fix this issue.
Sorry, I forgot to copy the failure log:
Please cc everybody get_maintainers.pl suggests. You are missing key reviewers for this change.
Adding Christian Brauner and Aleksa Sarai to the thread.
# openat2 unexpectedly returned # 3['/lkp/benchmarks/kernel_selftests/tools/testing/selftests/openat2'] with 208000 (!= 208000)
Not sure I understand this. 208000 (!= 208000) look sthe same to me.
not ok 102 openat2 with incompatible flags (O_PATH | O_LARGEFILE) fails with -22 (Invalid argument)
Signed-off-by: Baolin Wang baolin.wang@linux.alibaba.com
Could you apply this patch if no objection from your side? Thanks.
Ideally this define should come from an include file.
The issue is that O_LARGEFILE is set to 0 by glibc because glibc appears to hide the nuts and bolts of largefile support from userspace. I couldn't find a nice way of doing a architecture-dependent includes of include/uapi from kselftests, so I just went with this instead -- but I agree that a proper include would be better if someone can figure out how to do it.
Christian, Aleksa,
Can you review this patch and let me know if this approach looks right.
Reviewed-by: Aleksa Sarai cyphar@cyphar.com
It'd be nice to fix this for the other architectures I mention in the comment (mips, parisc, powerpc, sparc) -- which are the ones that I could find that had a custom O_LARGEFILE definition.
tools/testing/selftests/openat2/openat2_test.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/tools/testing/selftests/openat2/openat2_test.c b/tools/testing/selftests/openat2/openat2_test.c index d7ec1e7..1bddbe9 100644 --- a/tools/testing/selftests/openat2/openat2_test.c +++ b/tools/testing/selftests/openat2/openat2_test.c @@ -22,7 +22,11 @@ * XXX: This is wrong on {mips, parisc, powerpc, sparc}. */ #undef O_LARGEFILE +#ifdef __aarch64__ +#define O_LARGEFILE 0x20000 +#else #define O_LARGEFILE 0x8000 +#endif struct open_how_ext { struct open_how inner;
thanks, -- Shuah