2021-07-28 12:30:14

by Baolin Wang

[permalink] [raw]
Subject: [PATCH] selftests: openat2: Fix testing failure for O_LARGEFILE flag

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.

Signed-off-by: Baolin Wang <[email protected]>
---
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;
--
1.8.3.1



2021-07-28 12:35:51

by Baolin Wang

[permalink] [raw]
Subject: Re: [PATCH] selftests: openat2: Fix testing failure for O_LARGEFILE flag

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:

# openat2 unexpectedly returned #
3['/lkp/benchmarks/kernel_selftests/tools/testing/selftests/openat2']
with 208000 (!= 208000)
not ok 102 openat2 with incompatible flags (O_PATH | O_LARGEFILE) fails
with -22 (Invalid argument)

>
> Signed-off-by: Baolin Wang <[email protected]>
> ---
> 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;
>

2021-08-23 02:43:25

by Baolin Wang

[permalink] [raw]
Subject: Re: [PATCH] selftests: openat2: Fix testing failure for O_LARGEFILE flag

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:
>
> # openat2 unexpectedly returned #
> 3['/lkp/benchmarks/kernel_selftests/tools/testing/selftests/openat2']
> with 208000 (!= 208000)
> not ok 102 openat2 with incompatible flags (O_PATH | O_LARGEFILE) fails
> with -22 (Invalid argument)
>
>>
>> Signed-off-by: Baolin Wang <[email protected]>

Could you apply this patch if no objection from your side? Thanks.

>> ---
>>   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;
>>

2021-08-23 19:25:45

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH] selftests: openat2: Fix testing failure for O_LARGEFILE flag

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 <[email protected]>
>
> Could you apply this patch if no objection from your side? Thanks.
>

Ideally this define should come from an include file.

Christian, Aleksa,

Can you review this patch and let me know if this approach looks right.

>>> ---
>>>   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

2021-08-24 05:26:26

by Baolin Wang

[permalink] [raw]
Subject: Re: [PATCH] selftests: openat2: Fix testing failure for O_LARGEFILE flag

Hi Shuah,

On 2021/8/24 3:23, Shuah Khan 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.

Thanks.

>
>>> # 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.

These are not the error message, just show the fd flags. The error is it
should return -22 (-EINVAL) for this test case, but it returns 3 which
indicates a successful openat2() calling.

>>> not ok 102 openat2 with incompatible flags (O_PATH | O_LARGEFILE)
>>> fails with -22 (Invalid argument)
>>>
>>>>
>>>> Signed-off-by: Baolin Wang <[email protected]>
>>
>> Could you apply this patch if no objection from your side? Thanks.
>>
>
> Ideally this define should come from an include file.
>
> Christian, Aleksa,
>
> Can you review this patch and let me know if this approach looks right.
>
>>>> ---
>>>>   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

2021-08-24 11:23:26

by Aleksa Sarai

[permalink] [raw]
Subject: Re: [PATCH] selftests: openat2: Fix testing failure for O_LARGEFILE flag

On 2021-08-23, Shuah Khan <[email protected]> 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 <[email protected]>
> >
> > 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 <[email protected]>

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

--
Aleksa Sarai
Senior Software Engineer (Containers)
SUSE Linux GmbH
<https://www.cyphar.com/>


Attachments:
(No filename) (2.82 kB)
signature.asc (235.00 B)
Download all attachments

2021-08-24 11:40:44

by Christian Brauner

[permalink] [raw]
Subject: Re: [PATCH] selftests: openat2: Fix testing failure for O_LARGEFILE flag

On Tue, Aug 24, 2021 at 09:21:29PM +1000, Aleksa Sarai wrote:
> On 2021-08-23, Shuah Khan <[email protected]> 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 <[email protected]>
> > >
> > > 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.

I'd just add arch-dependent defines for now and call it good. So seems
good enough for me:

Thanks!
Acked-by: Christian Brauner <[email protected]>

>
> > Christian, Aleksa,
> >
> > Can you review this patch and let me know if this approach looks right.
>
> Reviewed-by: Aleksa Sarai <[email protected]>

2021-08-24 14:34:59

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH] selftests: openat2: Fix testing failure for O_LARGEFILE flag

On 8/24/21 5:36 AM, Christian Brauner wrote:
> On Tue, Aug 24, 2021 at 09:21:29PM +1000, Aleksa Sarai wrote:
>> On 2021-08-23, Shuah Khan <[email protected]> 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 <[email protected]>
>>>>
>>>> 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.
>

From a quick look, it will take sone work to consolidate multiple
O_LARGEFILE defines.

> I'd just add arch-dependent defines for now and call it good. So seems
> good enough for me:
>
> Thanks!
> Acked-by: Christian Brauner <[email protected]>
>
>>
>>> Christian, Aleksa,
>>>
>>> Can you review this patch and let me know if this approach looks right.
>>
>> Reviewed-by: Aleksa Sarai <[email protected]>

Thank you for the patch and the reviews. I will apply this for 5.15-rc1

thanks,
-- Shuah

2021-08-24 16:52:13

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH] selftests: openat2: Fix testing failure for O_LARGEFILE flag

On 8/24/21 8:33 AM, Shuah Khan wrote:
> On 8/24/21 5:36 AM, Christian Brauner wrote:
>> On Tue, Aug 24, 2021 at 09:21:29PM +1000, Aleksa Sarai wrote:
>>> On 2021-08-23, Shuah Khan <[email protected]> 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 send me v2 with failure log included in the commit log.

thanks,
-- Shuah

2021-08-25 01:53:05

by Baolin Wang

[permalink] [raw]
Subject: Re: [PATCH] selftests: openat2: Fix testing failure for O_LARGEFILE flag



On 2021/8/25 0:50, Shuah Khan wrote:
> On 8/24/21 8:33 AM, Shuah Khan wrote:
>> On 8/24/21 5:36 AM, Christian Brauner wrote:
>>> On Tue, Aug 24, 2021 at 09:21:29PM +1000, Aleksa Sarai wrote:
>>>> On 2021-08-23, Shuah Khan <[email protected]> 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 send me v2 with failure log included in the commit log.

Sure. Thanks for reviewing.