# \[PATCH\] selftests/memfd: Run test on all architectures

- Subsystems: KERNEL SELFTEST FRAMEWORK, MEMORY MANAGEMENT - SHARED MEMORY (SHMEM/TMPFS/MEMFD), THE REST
- Maintainers: Shuah Khan, Shuah Khan, Hugh Dickins, David Hildenbrand, Linus Torvalds
- List: linux-api
- 6 messages, 3 authors
- Page: https://ratatoskr.run/linux-api/2014/09/4334527/t

## \[PATCH\] selftests/memfd: Run test on all architectures

- From: Pranith Kumar \<hidden\>
- Date: 2014-09-15 22:59:51 
- Message: https://ratatoskr.run/linux-api/2014/09/4334527.md

```text
Remove the dependence on x86 to run the memfd test. Verfied on 32-bit powerpc.

Signed-off-by: Pranith Kumar <redacted>
---
 tools/testing/selftests/memfd/Makefile | 21 ---------------------
 1 file changed, 21 deletions(-)

diff --git a/tools/testing/selftests/memfd/Makefile b/tools/testing/selftests/memfd/Makefile
index ad4ab01..b80cd10 100644
--- a/tools/testing/selftests/memfd/Makefile
+++ b/tools/testing/selftests/memfd/Makefile
@@ -1,38 +1,17 @@
-uname_M := $(shell uname -m 2>/dev/null || echo not)
-ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/i386/)
-ifeq ($(ARCH),i386)
-	ARCH := x86
-endif
-ifeq ($(ARCH),x86_64)
-	ARCH := x86
-endif
-
 CFLAGS += -D_FILE_OFFSET_BITS=64
-CFLAGS += -I../../../../arch/x86/include/generated/uapi/
-CFLAGS += -I../../../../arch/x86/include/uapi/
 CFLAGS += -I../../../../include/uapi/
 CFLAGS += -I../../../../include/
 
 all:
-ifeq ($(ARCH),x86)
 	gcc $(CFLAGS) memfd_test.c -o memfd_test
-else
-	echo "Not an x86 target, can't build memfd selftest"
-endif
 
 run_tests: all
-ifeq ($(ARCH),x86)
 	gcc $(CFLAGS) memfd_test.c -o memfd_test
-endif
 	@./memfd_test || echo "memfd_test: [FAIL]"
 
 build_fuse:
-ifeq ($(ARCH),x86)
 	gcc $(CFLAGS) fuse_mnt.c `pkg-config fuse --cflags --libs` -o fuse_mnt
 	gcc $(CFLAGS) fuse_test.c -o fuse_test
-else
-	echo "Not an x86 target, can't build memfd selftest"
-endif
 
 run_fuse: build_fuse
 	@./run_fuse_test.sh || echo "fuse_test: [FAIL]"
-- 
2.1.0
```

## Re: \[PATCH\] selftests/memfd: Run test on all architectures

- From: David Herrmann \<hidden\>
- Date: 2014-09-17 12:28:04 
- Message: https://ratatoskr.run/linux-api/2014/09/4335692.md

```text
Hi

On Tue, Sep 16, 2014 at 12:59 AM, Pranith Kumar [ref] wrote:
> Remove the dependence on x86 to run the memfd test. Verfied on 32-bit powerpc.
>
> Signed-off-by: Pranith Kumar <redacted>

Now that most archs have __NR_memfd_create, this is:

Reviewed-by: David Herrmann <redacted>

Thanks
David

> ---
>  tools/testing/selftests/memfd/Makefile | 21 ---------------------
>  1 file changed, 21 deletions(-)
>
> diff --git a/tools/testing/selftests/memfd/Makefile b/tools/testing/selftests/memfd/Makefile
> index ad4ab01..b80cd10 100644
> --- a/tools/testing/selftests/memfd/Makefile
> +++ b/tools/testing/selftests/memfd/Makefile
> @@ -1,38 +1,17 @@
> -uname_M := $(shell uname -m 2>/dev/null || echo not)
> -ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/i386/)
> -ifeq ($(ARCH),i386)
> -       ARCH := x86
> -endif
> -ifeq ($(ARCH),x86_64)
> -       ARCH := x86
> -endif
> -
>  CFLAGS += -D_FILE_OFFSET_BITS=64
> -CFLAGS += -I../../../../arch/x86/include/generated/uapi/
> -CFLAGS += -I../../../../arch/x86/include/uapi/
>  CFLAGS += -I../../../../include/uapi/
>  CFLAGS += -I../../../../include/
>
>  all:
> -ifeq ($(ARCH),x86)
>         gcc $(CFLAGS) memfd_test.c -o memfd_test
> -else
> -       echo "Not an x86 target, can't build memfd selftest"
> -endif
>
>  run_tests: all
> -ifeq ($(ARCH),x86)
>         gcc $(CFLAGS) memfd_test.c -o memfd_test
> -endif
>         @./memfd_test || echo "memfd_test: [FAIL]"
>
>  build_fuse:
> -ifeq ($(ARCH),x86)
>         gcc $(CFLAGS) fuse_mnt.c `pkg-config fuse --cflags --libs` -o fuse_mnt
>         gcc $(CFLAGS) fuse_test.c -o fuse_test
> -else
> -       echo "Not an x86 target, can't build memfd selftest"
> -endif
>
>  run_fuse: build_fuse
>         @./run_fuse_test.sh || echo "fuse_test: [FAIL]"
> --
> 2.1.0
>
```

## Re: \[PATCH\] selftests/memfd: Run test on all architectures

- From: Shuah Khan \<hidden\>
- Date: 2014-09-17 15:36:22 
- Message: https://ratatoskr.run/linux-api/2014/09/4335800.md

```text
On 09/17/2014 06:28 AM, David Herrmann wrote:
> Hi
> 
> On Tue, Sep 16, 2014 at 12:59 AM, Pranith Kumar [ref] wrote:
>> Remove the dependence on x86 to run the memfd test. Verfied on 32-bit powerpc.
>>
>> Signed-off-by: Pranith Kumar <redacted>
> 
> Now that most archs have __NR_memfd_create, this is:
> 
> Reviewed-by: David Herrmann <redacted>
> 

Hmm. I am seeing failures on x86_64 on top of Linus's tree
(without this patch)

make -C tools/testing/selftests/memfd/make: Entering directory
`/lkml/linus_git_3.14/tools/testing/selftests/memfd'
gcc -D_FILE_OFFSET_BITS=64
-I../../../../arch/x86/include/generated/uapi/
-I../../../../arch/x86/include/uapi/ -I../../../../include/uapi/
-I../../../../include/ memfd_test.c -o memfd_test
memfd_test.c: In function ‘sys_memfd_create’:
memfd_test.c:26:17: error: ‘__NR_memfd_create’ undeclared (first use in
this function)
  return syscall(__NR_memfd_create, name, flags);
                 ^
memfd_test.c:26:17: note: each undeclared identifier is reported only
once for each function it appears in

Could you please look into this?? It appears __NR_memfd_create isn't
defined on x86_64???

thanks,
-- Shuah

-- 
Shuah Khan
Sr. Linux Kernel Developer
Samsung Research America (Silicon Valley)
shuahkh@osg.samsung.com | (970) 217-8978
```

## Re: \[PATCH\] selftests/memfd: Run test on all architectures

- From: David Herrmann \<hidden\>
- Date: 2014-09-17 15:39:57 
- Message: https://ratatoskr.run/linux-api/2014/09/4335801.md

```text
Hi

On Wed, Sep 17, 2014 at 5:36 PM, Shuah Khan [ref] wrote:
> On 09/17/2014 06:28 AM, David Herrmann wrote:
>> Hi
>>
>> On Tue, Sep 16, 2014 at 12:59 AM, Pranith Kumar [ref] wrote:
>>> Remove the dependence on x86 to run the memfd test. Verfied on 32-bit powerpc.
>>>
>>> Signed-off-by: Pranith Kumar <redacted>
>>
>> Now that most archs have __NR_memfd_create, this is:
>>
>> Reviewed-by: David Herrmann <redacted>
>>
>
> Hmm. I am seeing failures on x86_64 on top of Linus's tree
> (without this patch)
>
> make -C tools/testing/selftests/memfd/make: Entering directory
> `/lkml/linus_git_3.14/tools/testing/selftests/memfd'
> gcc -D_FILE_OFFSET_BITS=64
> -I../../../../arch/x86/include/generated/uapi/
> -I../../../../arch/x86/include/uapi/ -I../../../../include/uapi/
> -I../../../../include/ memfd_test.c -o memfd_test
> memfd_test.c: In function ‘sys_memfd_create’:
> memfd_test.c:26:17: error: ‘__NR_memfd_create’ undeclared (first use in
> this function)
>   return syscall(__NR_memfd_create, name, flags);
>                  ^
> memfd_test.c:26:17: note: each undeclared identifier is reported only
> once for each function it appears in
>
> Could you please look into this?? It appears __NR_memfd_create isn't
> defined on x86_64???

You need the headers installed in your system. By dropping the
arch-includes from the Makefile, we require 3.17 headers in
/usr/include.

Thanks
David
```

## Re: \[PATCH\] selftests/memfd: Run test on all architectures

- From: Pranith Kumar \<hidden\>
- Date: 2014-09-17 15:40:26 
- Message: https://ratatoskr.run/linux-api/2014/09/4335802.md

```text
On Wed, Sep 17, 2014 at 11:36 AM, Shuah Khan [ref] wrote:

> Hmm. I am seeing failures on x86_64 on top of Linus's tree
> (without this patch)
>
> make -C tools/testing/selftests/memfd/make: Entering directory
> `/lkml/linus_git_3.14/tools/testing/selftests/memfd'
> gcc -D_FILE_OFFSET_BITS=64
> -I../../../../arch/x86/include/generated/uapi/
> -I../../../../arch/x86/include/uapi/ -I../../../../include/uapi/
> -I../../../../include/ memfd_test.c -o memfd_test
> memfd_test.c: In function ‘sys_memfd_create’:
> memfd_test.c:26:17: error: ‘__NR_memfd_create’ undeclared (first use in
> this function)
>   return syscall(__NR_memfd_create, name, flags);
>                  ^
> memfd_test.c:26:17: note: each undeclared identifier is reported only
> once for each function it appears in
>
> Could you please look into this?? It appears __NR_memfd_create isn't
> defined on x86_64???
>

Hi Shuah,

Did you compile the tree before trying to compile this test? Compiling
the kernel will generate the required symbols which are used in this
test.

Thanks!
-- 
Pranith
```

## Re: \[PATCH\] selftests/memfd: Run test on all architectures

- From: Shuah Khan \<hidden\>
- Date: 2014-09-17 15:41:20 
- Message: https://ratatoskr.run/linux-api/2014/09/4335804.md

```text
On 09/17/2014 09:39 AM, David Herrmann wrote:
> Hi
> 
> On Wed, Sep 17, 2014 at 5:36 PM, Shuah Khan [ref] wrote:
>> On 09/17/2014 06:28 AM, David Herrmann wrote:
>>> Hi
>>>
>>> On Tue, Sep 16, 2014 at 12:59 AM, Pranith Kumar [ref] wrote:
>>>> Remove the dependence on x86 to run the memfd test. Verfied on 32-bit powerpc.
>>>>
>>>> Signed-off-by: Pranith Kumar <redacted>
>>>
>>> Now that most archs have __NR_memfd_create, this is:
>>>
>>> Reviewed-by: David Herrmann <redacted>
>>>
>>
>> Hmm. I am seeing failures on x86_64 on top of Linus's tree
>> (without this patch)
>>
>> make -C tools/testing/selftests/memfd/make: Entering directory
>> `/lkml/linus_git_3.14/tools/testing/selftests/memfd'
>> gcc -D_FILE_OFFSET_BITS=64
>> -I../../../../arch/x86/include/generated/uapi/
>> -I../../../../arch/x86/include/uapi/ -I../../../../include/uapi/
>> -I../../../../include/ memfd_test.c -o memfd_test
>> memfd_test.c: In function ‘sys_memfd_create’:
>> memfd_test.c:26:17: error: ‘__NR_memfd_create’ undeclared (first use in
>> this function)
>>   return syscall(__NR_memfd_create, name, flags);
>>                  ^
>> memfd_test.c:26:17: note: each undeclared identifier is reported only
>> once for each function it appears in
>>
>> Could you please look into this?? It appears __NR_memfd_create isn't
>> defined on x86_64???
> 
> You need the headers installed in your system. By dropping the
> arch-includes from the Makefile, we require 3.17 headers in
> /usr/include.
> 

Sorry - wrong system without the headers installed. My bad.

-- Shuah


-- 
Shuah Khan
Sr. Linux Kernel Developer
Samsung Research America (Silicon Valley)
shuahkh@osg.samsung.com | (970) 217-8978
```
