linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BUGFIX PATCH v2 0/5] selftests: Fixes for 32bit arch
@ 2019-10-21  8:27 Masami Hiramatsu
  2019-10-21  8:28 ` [BUGFIX PATCH v2 1/5] selftests: proc: Make va_max 1GB on " Masami Hiramatsu
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Masami Hiramatsu @ 2019-10-21  8:27 UTC (permalink / raw)
  To: Shuah Khan
  Cc: linux-kselftest, linux-kernel, jaswinder.singh, Alexey Dobriyan,
	Anshuman Khandual, Aneesh Kumar K . V, Eric Dumazet,
	David S . Miller, Willem de Bruijn, Emilio López

Hi,

Here are the 2nd version of kselftest fixes some on 32bit arch
(e.g. arm). In this version, I updated [1/5] to make va_max 1GB
instead of 3GB, according to Alexey's comment.

When I built the ksefltest on arm, I hit some 32bit related warnings.
Here are the patches to fix those issues.


 - [1/5] va_max was set 2^32 even on 32bit arch. This can make
        va_max == 0 and always fail. Make it 3GB on 32bit.
 - [2/5] Some VM tests requires 64bit user space, which should
        not run on 32bit arch.
 - [3/5] For counting the size of large file, we should use
        size_t instead of unsinged long.
 - [4/5] Gcc warns printf format for size_t and int64_t on
        32bit arch. Use %llu and cast it.
 - [5/5] Gcc warns __u64 and pointer type castings. It should
        once translated to unsigned long.

Thank you,

---

Masami Hiramatsu (5):
      selftests: proc: Make va_max 1GB on 32bit arch
      selftests: vm: Build/Run 64bit tests only on 64bit arch
      selftests: net: Use size_t and ssize_t for counting file size
      selftests: net: Fix printf format warnings on arm
      selftests: sync: Fix cast warnings on arm


 tools/testing/selftests/net/so_txtime.c            |    4 ++--
 tools/testing/selftests/net/tcp_mmap.c             |    8 ++++----
 tools/testing/selftests/net/udpgso.c               |    3 ++-
 tools/testing/selftests/net/udpgso_bench_tx.c      |    3 ++-
 .../selftests/proc/proc-self-map-files-002.c       |   11 ++++++++++-
 tools/testing/selftests/sync/sync.c                |    6 +++---
 tools/testing/selftests/vm/Makefile                |    5 +++++
 tools/testing/selftests/vm/run_vmtests             |   10 ++++++++++
 8 files changed, 38 insertions(+), 12 deletions(-)

--
Masami Hiramatsu (Linaro) <mhiramat@kernel.org>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [BUGFIX PATCH v2 1/5] selftests: proc: Make va_max 1GB on 32bit arch
  2019-10-21  8:27 [BUGFIX PATCH v2 0/5] selftests: Fixes for 32bit arch Masami Hiramatsu
@ 2019-10-21  8:28 ` Masami Hiramatsu
  2019-10-21 17:30   ` Alexey Dobriyan
  2019-10-21  8:28 ` [BUGFIX PATCH v2 2/5] selftests: vm: Build/Run 64bit tests only on 64bit arch Masami Hiramatsu
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Masami Hiramatsu @ 2019-10-21  8:28 UTC (permalink / raw)
  To: Shuah Khan
  Cc: linux-kselftest, linux-kernel, jaswinder.singh, Alexey Dobriyan

Currently proc-self-map-files-002.c sets va_max (max test address
of user virtual address) to 4GB, but it is too big for 32bit
arch and 1UL << 32 is overflow on 32bit long.

Make va_max 1GB on 32bit arch like i386 and arm.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
---
 Changes in v2:
  - Make the va_max 1GB according to Alexey's comment.
---
 .../selftests/proc/proc-self-map-files-002.c       |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/proc/proc-self-map-files-002.c b/tools/testing/selftests/proc/proc-self-map-files-002.c
index 47b7473dedef..5d372d66d6ad 100644
--- a/tools/testing/selftests/proc/proc-self-map-files-002.c
+++ b/tools/testing/selftests/proc/proc-self-map-files-002.c
@@ -22,6 +22,7 @@
 #include <unistd.h>
 #include <sys/mman.h>
 #include <stdlib.h>
+#include <asm/bitsperlong.h>
 
 static void pass(const char *fmt, unsigned long a, unsigned long b)
 {
@@ -44,10 +45,18 @@ static void fail(const char *fmt, unsigned long a, unsigned long b)
 	exit(1);
 }
 
+#if __BITS_PER_LONG == 32
+# define VA_MAX (1UL << 30)
+#elif __BITS_PER_LONG == 64
+# define VA_MAX (1UL << 32)
+#else
+# define VA_MAX 0
+#endif
+
 int main(void)
 {
 	const int PAGE_SIZE = sysconf(_SC_PAGESIZE);
-	const unsigned long va_max = 1UL << 32;
+	const unsigned long va_max = VA_MAX;
 	unsigned long va;
 	void *p;
 	int fd;


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [BUGFIX PATCH v2 2/5] selftests: vm: Build/Run 64bit tests only on 64bit arch
  2019-10-21  8:27 [BUGFIX PATCH v2 0/5] selftests: Fixes for 32bit arch Masami Hiramatsu
  2019-10-21  8:28 ` [BUGFIX PATCH v2 1/5] selftests: proc: Make va_max 1GB on " Masami Hiramatsu
@ 2019-10-21  8:28 ` Masami Hiramatsu
  2019-10-21  8:28 ` [BUGFIX PATCH v2 3/5] selftests: net: Use size_t and ssize_t for counting file size Masami Hiramatsu
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Masami Hiramatsu @ 2019-10-21  8:28 UTC (permalink / raw)
  To: Shuah Khan
  Cc: linux-kselftest, linux-kernel, jaswinder.singh,
	Anshuman Khandual, Aneesh Kumar K . V

Some virtual address range tests requires 64bit address space,
and we can not build and run those tests on the 32bit machine.

Filter the 64bit architectures in Makefile and run_vmtests,
so that those tests are built/run only on 64bit archs.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
---
 tools/testing/selftests/vm/Makefile    |    5 +++++
 tools/testing/selftests/vm/run_vmtests |   10 ++++++++++
 2 files changed, 15 insertions(+)

diff --git a/tools/testing/selftests/vm/Makefile b/tools/testing/selftests/vm/Makefile
index 9534dc2bc929..7f9a8a8c31da 100644
--- a/tools/testing/selftests/vm/Makefile
+++ b/tools/testing/selftests/vm/Makefile
@@ -1,5 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 # Makefile for vm selftests
+uname_M := $(shell uname -m 2>/dev/null || echo not)
+ARCH ?= $(shell echo $(uname_M) | sed -e 's/aarch64.*/arm64/')
 
 CFLAGS = -Wall -I ../../../../usr/include $(EXTRA_CFLAGS)
 LDLIBS = -lrt
@@ -16,8 +18,11 @@ TEST_GEN_FILES += on-fault-limit
 TEST_GEN_FILES += thuge-gen
 TEST_GEN_FILES += transhuge-stress
 TEST_GEN_FILES += userfaultfd
+
+ifneq (,$(filter $(ARCH),arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sh64 sparc64 x86_64))
 TEST_GEN_FILES += va_128TBswitch
 TEST_GEN_FILES += virtual_address_range
+endif
 
 TEST_PROGS := run_vmtests
 
diff --git a/tools/testing/selftests/vm/run_vmtests b/tools/testing/selftests/vm/run_vmtests
index 951c507a27f7..a692ea828317 100755
--- a/tools/testing/selftests/vm/run_vmtests
+++ b/tools/testing/selftests/vm/run_vmtests
@@ -58,6 +58,14 @@ else
 	exit 1
 fi
 
+#filter 64bit architectures
+ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sh64 sparc64 x86_64"
+if [ -z $ARCH ]; then
+  ARCH=`uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/'`
+fi
+VADDR64=0
+echo "$ARCH64STR" | grep $ARCH && VADDR64=1
+
 mkdir $mnt
 mount -t hugetlbfs none $mnt
 
@@ -189,6 +197,7 @@ else
 	echo "[PASS]"
 fi
 
+if [ $VADDR64 -ne 0 ]; then
 echo "-----------------------------"
 echo "running virtual_address_range"
 echo "-----------------------------"
@@ -210,6 +219,7 @@ if [ $? -ne 0 ]; then
 else
     echo "[PASS]"
 fi
+fi # VADDR64
 
 echo "------------------------------------"
 echo "running vmalloc stability smoke test"


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [BUGFIX PATCH v2 3/5] selftests: net: Use size_t and ssize_t for counting file size
  2019-10-21  8:27 [BUGFIX PATCH v2 0/5] selftests: Fixes for 32bit arch Masami Hiramatsu
  2019-10-21  8:28 ` [BUGFIX PATCH v2 1/5] selftests: proc: Make va_max 1GB on " Masami Hiramatsu
  2019-10-21  8:28 ` [BUGFIX PATCH v2 2/5] selftests: vm: Build/Run 64bit tests only on 64bit arch Masami Hiramatsu
@ 2019-10-21  8:28 ` Masami Hiramatsu
  2019-10-21  8:28 ` [BUGFIX PATCH v2 4/5] selftests: net: Fix printf format warnings on arm Masami Hiramatsu
  2019-10-21  8:28 ` [BUGFIX PATCH v2 5/5] selftests: sync: Fix cast " Masami Hiramatsu
  4 siblings, 0 replies; 9+ messages in thread
From: Masami Hiramatsu @ 2019-10-21  8:28 UTC (permalink / raw)
  To: Shuah Khan
  Cc: linux-kselftest, linux-kernel, jaswinder.singh, Eric Dumazet,
	David S . Miller

Use size_t and ssize_t correctly for counting send file size
instead of unsigned long and long, because long is 32bit on
32bit arch, which is not enough for counting long file size (>4GB).

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Eric Dumazet <edumazet@google.com>
Cc: David S. Miller <davem@davemloft.net>
---
 tools/testing/selftests/net/tcp_mmap.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tools/testing/selftests/net/tcp_mmap.c b/tools/testing/selftests/net/tcp_mmap.c
index 31ced79f4f25..33035d1b3f6d 100644
--- a/tools/testing/selftests/net/tcp_mmap.c
+++ b/tools/testing/selftests/net/tcp_mmap.c
@@ -71,7 +71,7 @@
 #define MSG_ZEROCOPY    0x4000000
 #endif
 
-#define FILE_SZ (1UL << 35)
+#define FILE_SZ (1ULL << 35)
 static int cfg_family = AF_INET6;
 static socklen_t cfg_alen = sizeof(struct sockaddr_in6);
 static int cfg_port = 8787;
@@ -155,7 +155,7 @@ void *child_thread(void *arg)
 			socklen_t zc_len = sizeof(zc);
 			int res;
 
-			zc.address = (__u64)addr;
+			zc.address = (__u64)((unsigned long)addr);
 			zc.length = chunk_size;
 			zc.recv_skip_hint = 0;
 			res = getsockopt(fd, IPPROTO_TCP, TCP_ZEROCOPY_RECEIVE,
@@ -302,7 +302,7 @@ int main(int argc, char *argv[])
 {
 	struct sockaddr_storage listenaddr, addr;
 	unsigned int max_pacing_rate = 0;
-	unsigned long total = 0;
+	size_t total = 0;
 	char *host = NULL;
 	int fd, c, on = 1;
 	char *buffer;
@@ -417,7 +417,7 @@ int main(int argc, char *argv[])
 		zflg = 0;
 	}
 	while (total < FILE_SZ) {
-		long wr = FILE_SZ - total;
+		ssize_t wr = FILE_SZ - total;
 
 		if (wr > chunk_size)
 			wr = chunk_size;


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [BUGFIX PATCH v2 4/5] selftests: net: Fix printf format warnings on arm
  2019-10-21  8:27 [BUGFIX PATCH v2 0/5] selftests: Fixes for 32bit arch Masami Hiramatsu
                   ` (2 preceding siblings ...)
  2019-10-21  8:28 ` [BUGFIX PATCH v2 3/5] selftests: net: Use size_t and ssize_t for counting file size Masami Hiramatsu
@ 2019-10-21  8:28 ` Masami Hiramatsu
  2019-10-21  8:28 ` [BUGFIX PATCH v2 5/5] selftests: sync: Fix cast " Masami Hiramatsu
  4 siblings, 0 replies; 9+ messages in thread
From: Masami Hiramatsu @ 2019-10-21  8:28 UTC (permalink / raw)
  To: Shuah Khan
  Cc: linux-kselftest, linux-kernel, jaswinder.singh, Willem de Bruijn,
	David S . Miller

Fix printf format warnings on arm (and other 32bit arch).

 - udpgso.c and udpgso_bench_tx use %lu for size_t but it
   should be unsigned long long on 32bit arch.

 - so_txtime.c uses %ld for int64_t, but it should be
   unsigned long long on 32bit arch.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Willem de Bruijn <willemb@google.com>
Cc: David S. Miller <davem@davemloft.net>
---
 tools/testing/selftests/net/so_txtime.c       |    4 ++--
 tools/testing/selftests/net/udpgso.c          |    3 ++-
 tools/testing/selftests/net/udpgso_bench_tx.c |    3 ++-
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/tools/testing/selftests/net/so_txtime.c b/tools/testing/selftests/net/so_txtime.c
index 53f598f06647..34df4c8882af 100644
--- a/tools/testing/selftests/net/so_txtime.c
+++ b/tools/testing/selftests/net/so_txtime.c
@@ -105,8 +105,8 @@ static void do_recv_one(int fdr, struct timed_send *ts)
 	tstop = (gettime_ns() - glob_tstart) / 1000;
 	texpect = ts->delay_us >= 0 ? ts->delay_us : 0;
 
-	fprintf(stderr, "payload:%c delay:%ld expected:%ld (us)\n",
-			rbuf[0], tstop, texpect);
+	fprintf(stderr, "payload:%c delay:%lld expected:%lld (us)\n",
+			rbuf[0], (long long)tstop, (long long)texpect);
 
 	if (rbuf[0] != ts->data)
 		error(1, 0, "payload mismatch. expected %c", ts->data);
diff --git a/tools/testing/selftests/net/udpgso.c b/tools/testing/selftests/net/udpgso.c
index b8265ee9923f..cab334e51ac1 100644
--- a/tools/testing/selftests/net/udpgso.c
+++ b/tools/testing/selftests/net/udpgso.c
@@ -448,7 +448,8 @@ static bool __send_one(int fd, struct msghdr *msg, int flags)
 	if (ret == -1)
 		error(1, errno, "sendmsg");
 	if (ret != msg->msg_iov->iov_len)
-		error(1, 0, "sendto: %d != %lu", ret, msg->msg_iov->iov_len);
+		error(1, 0, "sendto: %d != %llu", ret,
+			(unsigned long long)msg->msg_iov->iov_len);
 	if (msg->msg_flags)
 		error(1, 0, "sendmsg: return flags 0x%x\n", msg->msg_flags);
 
diff --git a/tools/testing/selftests/net/udpgso_bench_tx.c b/tools/testing/selftests/net/udpgso_bench_tx.c
index ada99496634a..17512a43885e 100644
--- a/tools/testing/selftests/net/udpgso_bench_tx.c
+++ b/tools/testing/selftests/net/udpgso_bench_tx.c
@@ -405,7 +405,8 @@ static int send_udp_segment(int fd, char *data)
 	if (ret == -1)
 		error(1, errno, "sendmsg");
 	if (ret != iov.iov_len)
-		error(1, 0, "sendmsg: %u != %lu\n", ret, iov.iov_len);
+		error(1, 0, "sendmsg: %u != %llu\n", ret,
+			(unsigned long long)iov.iov_len);
 
 	return 1;
 }


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [BUGFIX PATCH v2 5/5] selftests: sync: Fix cast warnings on arm
  2019-10-21  8:27 [BUGFIX PATCH v2 0/5] selftests: Fixes for 32bit arch Masami Hiramatsu
                   ` (3 preceding siblings ...)
  2019-10-21  8:28 ` [BUGFIX PATCH v2 4/5] selftests: net: Fix printf format warnings on arm Masami Hiramatsu
@ 2019-10-21  8:28 ` Masami Hiramatsu
  4 siblings, 0 replies; 9+ messages in thread
From: Masami Hiramatsu @ 2019-10-21  8:28 UTC (permalink / raw)
  To: Shuah Khan
  Cc: linux-kselftest, linux-kernel, jaswinder.singh, Emilio López

Fix warnings on __u64 and pointer translation on arm and
other 32bit architectures. Since the pointer is 32bits on
those archs, we should not directly cast those types.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Emilio López <emilio.lopez@collabora.co.uk>
---
 tools/testing/selftests/sync/sync.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/sync/sync.c b/tools/testing/selftests/sync/sync.c
index f3d599f249b9..7741c0518d18 100644
--- a/tools/testing/selftests/sync/sync.c
+++ b/tools/testing/selftests/sync/sync.c
@@ -109,7 +109,7 @@ static struct sync_file_info *sync_file_info(int fd)
 			return NULL;
 		}
 
-		info->sync_fence_info = (uint64_t)fence_info;
+		info->sync_fence_info = (uint64_t)(unsigned long)fence_info;
 
 		err = ioctl(fd, SYNC_IOC_FILE_INFO, info);
 		if (err < 0) {
@@ -124,7 +124,7 @@ static struct sync_file_info *sync_file_info(int fd)
 
 static void sync_file_info_free(struct sync_file_info *info)
 {
-	free((void *)info->sync_fence_info);
+	free((void *)(unsigned long)info->sync_fence_info);
 	free(info);
 }
 
@@ -152,7 +152,7 @@ int sync_fence_count_with_status(int fd, int status)
 	if (!info)
 		return -1;
 
-	fence_info = (struct sync_fence_info *)info->sync_fence_info;
+	fence_info = (struct sync_fence_info *)(unsigned long)info->sync_fence_info;
 	for (i = 0 ; i < info->num_fences ; i++) {
 		if (fence_info[i].status == status)
 			count++;


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [BUGFIX PATCH v2 1/5] selftests: proc: Make va_max 1GB on 32bit arch
  2019-10-21  8:28 ` [BUGFIX PATCH v2 1/5] selftests: proc: Make va_max 1GB on " Masami Hiramatsu
@ 2019-10-21 17:30   ` Alexey Dobriyan
  2019-10-23  1:56     ` Masami Hiramatsu
  0 siblings, 1 reply; 9+ messages in thread
From: Alexey Dobriyan @ 2019-10-21 17:30 UTC (permalink / raw)
  To: Masami Hiramatsu
  Cc: Shuah Khan, linux-kselftest, linux-kernel, jaswinder.singh

On Mon, Oct 21, 2019 at 05:28:09PM +0900, Masami Hiramatsu wrote:
> Currently proc-self-map-files-002.c sets va_max (max test address
> of user virtual address) to 4GB, but it is too big for 32bit
> arch and 1UL << 32 is overflow on 32bit long.
> 
> Make va_max 1GB on 32bit arch like i386 and arm.

> +#if __BITS_PER_LONG == 32
> +# define VA_MAX (1UL << 30)
> +#elif __BITS_PER_LONG == 64
> +# define VA_MAX (1UL << 32)
> +#else
> +# define VA_MAX 0
> +#endif
> +
>  int main(void)
>  {
>  	const int PAGE_SIZE = sysconf(_SC_PAGESIZE);
> -	const unsigned long va_max = 1UL << 32;
> +	const unsigned long va_max = VA_MAX;

No, just make it like 1MB unconditionally.
This is not intended to cover all address space, just large enough part
(larger than reasonable vm.mmap_min_addr)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [BUGFIX PATCH v2 1/5] selftests: proc: Make va_max 1GB on 32bit arch
  2019-10-21 17:30   ` Alexey Dobriyan
@ 2019-10-23  1:56     ` Masami Hiramatsu
  2019-10-23  4:51       ` Masami Hiramatsu
  0 siblings, 1 reply; 9+ messages in thread
From: Masami Hiramatsu @ 2019-10-23  1:56 UTC (permalink / raw)
  To: Alexey Dobriyan
  Cc: Shuah Khan, linux-kselftest, linux-kernel, jaswinder.singh

On Mon, 21 Oct 2019 20:30:53 +0300
Alexey Dobriyan <adobriyan@gmail.com> wrote:

> On Mon, Oct 21, 2019 at 05:28:09PM +0900, Masami Hiramatsu wrote:
> > Currently proc-self-map-files-002.c sets va_max (max test address
> > of user virtual address) to 4GB, but it is too big for 32bit
> > arch and 1UL << 32 is overflow on 32bit long.
> > 
> > Make va_max 1GB on 32bit arch like i386 and arm.
> 
> > +#if __BITS_PER_LONG == 32
> > +# define VA_MAX (1UL << 30)
> > +#elif __BITS_PER_LONG == 64
> > +# define VA_MAX (1UL << 32)
> > +#else
> > +# define VA_MAX 0
> > +#endif
> > +
> >  int main(void)
> >  {
> >  	const int PAGE_SIZE = sysconf(_SC_PAGESIZE);
> > -	const unsigned long va_max = 1UL << 32;
> > +	const unsigned long va_max = VA_MAX;
> 
> No, just make it like 1MB unconditionally.

Ah, I sse. BTW, would you mean 1GB?

> This is not intended to cover all address space, just large enough part
> (larger than reasonable vm.mmap_min_addr)

Then, should we better to check the /proc/sys/vm/mmap_min_addr?

Thank you,

-- 
Masami Hiramatsu <mhiramat@kernel.org>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [BUGFIX PATCH v2 1/5] selftests: proc: Make va_max 1GB on 32bit arch
  2019-10-23  1:56     ` Masami Hiramatsu
@ 2019-10-23  4:51       ` Masami Hiramatsu
  0 siblings, 0 replies; 9+ messages in thread
From: Masami Hiramatsu @ 2019-10-23  4:51 UTC (permalink / raw)
  To: Masami Hiramatsu
  Cc: Alexey Dobriyan, Shuah Khan, linux-kselftest, linux-kernel,
	jaswinder.singh

On Wed, 23 Oct 2019 10:56:18 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> On Mon, 21 Oct 2019 20:30:53 +0300
> Alexey Dobriyan <adobriyan@gmail.com> wrote:
> 
> > On Mon, Oct 21, 2019 at 05:28:09PM +0900, Masami Hiramatsu wrote:
> > > Currently proc-self-map-files-002.c sets va_max (max test address
> > > of user virtual address) to 4GB, but it is too big for 32bit
> > > arch and 1UL << 32 is overflow on 32bit long.
> > > 
> > > Make va_max 1GB on 32bit arch like i386 and arm.
> > 
> > > +#if __BITS_PER_LONG == 32
> > > +# define VA_MAX (1UL << 30)
> > > +#elif __BITS_PER_LONG == 64
> > > +# define VA_MAX (1UL << 32)
> > > +#else
> > > +# define VA_MAX 0
> > > +#endif
> > > +
> > >  int main(void)
> > >  {
> > >  	const int PAGE_SIZE = sysconf(_SC_PAGESIZE);
> > > -	const unsigned long va_max = 1UL << 32;
> > > +	const unsigned long va_max = VA_MAX;
> > 
> > No, just make it like 1MB unconditionally.
> 
> Ah, I sse. BTW, would you mean 1GB?

I understand that 1MB will be good enough, since vm.mmap_min_addr is
64KB by default (except for arm/arm64 which is 32KB).
OK, I'll update and resend.

Thank you,

> 
> > This is not intended to cover all address space, just large enough part
> > (larger than reasonable vm.mmap_min_addr)
> 
> Then, should we better to check the /proc/sys/vm/mmap_min_addr?
> 
> Thank you,
> 
> -- 
> Masami Hiramatsu <mhiramat@kernel.org>


-- 
Masami Hiramatsu <mhiramat@kernel.org>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2019-10-23  4:51 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-21  8:27 [BUGFIX PATCH v2 0/5] selftests: Fixes for 32bit arch Masami Hiramatsu
2019-10-21  8:28 ` [BUGFIX PATCH v2 1/5] selftests: proc: Make va_max 1GB on " Masami Hiramatsu
2019-10-21 17:30   ` Alexey Dobriyan
2019-10-23  1:56     ` Masami Hiramatsu
2019-10-23  4:51       ` Masami Hiramatsu
2019-10-21  8:28 ` [BUGFIX PATCH v2 2/5] selftests: vm: Build/Run 64bit tests only on 64bit arch Masami Hiramatsu
2019-10-21  8:28 ` [BUGFIX PATCH v2 3/5] selftests: net: Use size_t and ssize_t for counting file size Masami Hiramatsu
2019-10-21  8:28 ` [BUGFIX PATCH v2 4/5] selftests: net: Fix printf format warnings on arm Masami Hiramatsu
2019-10-21  8:28 ` [BUGFIX PATCH v2 5/5] selftests: sync: Fix cast " Masami Hiramatsu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).