From: bauerman at linux.ibm.com (Thiago Jung Bauermann)
Subject: [PATCH v2 1/4] userfaultfd: selftest: Fix checking of userfaultfd_open() result
Date: Fri, 3 Aug 2018 19:00:43 -0300 [thread overview]
Message-ID: <20180803220046.4019-2-bauerman@linux.ibm.com> (raw)
In-Reply-To: <20180803220046.4019-1-bauerman@linux.ibm.com>
If the userfaultfd test is run on a kernel with CONFIG_USERFAULTFD=n, it
will report that the system call is not available yet go ahead and continue
anyway:
# ./userfaultfd anon 30 1
nr_pages: 480, nr_pages_per_cpu: 120
userfaultfd syscall not available in this kernel
bounces: 0, mode:, register failure
This is because userfaultfd_open() returns 0 on success and 1 on error but
all callers assume that it returns < 0 on error.
Since the convention of the test as a whole is the one used by
userfault_open(), fix its callers instead. Now the test behaves correctly:
# ./userfaultfd anon 30 1
nr_pages: 480, nr_pages_per_cpu: 120
userfaultfd syscall not available in this kernel
Signed-off-by: Thiago Jung Bauermann <bauerman at linux.ibm.com>
---
tools/testing/selftests/vm/userfaultfd.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
index 7b8171e3128a..e4099afe7557 100644
--- a/tools/testing/selftests/vm/userfaultfd.c
+++ b/tools/testing/selftests/vm/userfaultfd.c
@@ -859,7 +859,7 @@ static int userfaultfd_zeropage_test(void)
if (uffd_test_ops->release_pages(area_dst))
return 1;
- if (userfaultfd_open(0) < 0)
+ if (userfaultfd_open(0))
return 1;
uffdio_register.range.start = (unsigned long) area_dst;
uffdio_register.range.len = nr_pages * page_size;
@@ -902,7 +902,7 @@ static int userfaultfd_events_test(void)
features = UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP |
UFFD_FEATURE_EVENT_REMOVE;
- if (userfaultfd_open(features) < 0)
+ if (userfaultfd_open(features))
return 1;
fcntl(uffd, F_SETFL, uffd_flags | O_NONBLOCK);
@@ -961,7 +961,7 @@ static int userfaultfd_sig_test(void)
return 1;
features = UFFD_FEATURE_EVENT_FORK|UFFD_FEATURE_SIGBUS;
- if (userfaultfd_open(features) < 0)
+ if (userfaultfd_open(features))
return 1;
fcntl(uffd, F_SETFL, uffd_flags | O_NONBLOCK);
@@ -1027,7 +1027,7 @@ static int userfaultfd_stress(void)
if (!area_dst)
return 1;
- if (userfaultfd_open(0) < 0)
+ if (userfaultfd_open(0))
return 1;
count_verify = malloc(nr_pages * sizeof(unsigned long long));
--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: bauerman@linux.ibm.com (Thiago Jung Bauermann)
Subject: [PATCH v2 1/4] userfaultfd: selftest: Fix checking of userfaultfd_open() result
Date: Fri, 3 Aug 2018 19:00:43 -0300 [thread overview]
Message-ID: <20180803220046.4019-2-bauerman@linux.ibm.com> (raw)
Message-ID: <20180803220043.m_bGgRWSdaObxaylZ7hHEbKdL_jINJF81EkQNeVTHx8@z> (raw)
In-Reply-To: <20180803220046.4019-1-bauerman@linux.ibm.com>
If the userfaultfd test is run on a kernel with CONFIG_USERFAULTFD=n, it
will report that the system call is not available yet go ahead and continue
anyway:
# ./userfaultfd anon 30 1
nr_pages: 480, nr_pages_per_cpu: 120
userfaultfd syscall not available in this kernel
bounces: 0, mode:, register failure
This is because userfaultfd_open() returns 0 on success and 1 on error but
all callers assume that it returns < 0 on error.
Since the convention of the test as a whole is the one used by
userfault_open(), fix its callers instead. Now the test behaves correctly:
# ./userfaultfd anon 30 1
nr_pages: 480, nr_pages_per_cpu: 120
userfaultfd syscall not available in this kernel
Signed-off-by: Thiago Jung Bauermann <bauerman at linux.ibm.com>
---
tools/testing/selftests/vm/userfaultfd.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
index 7b8171e3128a..e4099afe7557 100644
--- a/tools/testing/selftests/vm/userfaultfd.c
+++ b/tools/testing/selftests/vm/userfaultfd.c
@@ -859,7 +859,7 @@ static int userfaultfd_zeropage_test(void)
if (uffd_test_ops->release_pages(area_dst))
return 1;
- if (userfaultfd_open(0) < 0)
+ if (userfaultfd_open(0))
return 1;
uffdio_register.range.start = (unsigned long) area_dst;
uffdio_register.range.len = nr_pages * page_size;
@@ -902,7 +902,7 @@ static int userfaultfd_events_test(void)
features = UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP |
UFFD_FEATURE_EVENT_REMOVE;
- if (userfaultfd_open(features) < 0)
+ if (userfaultfd_open(features))
return 1;
fcntl(uffd, F_SETFL, uffd_flags | O_NONBLOCK);
@@ -961,7 +961,7 @@ static int userfaultfd_sig_test(void)
return 1;
features = UFFD_FEATURE_EVENT_FORK|UFFD_FEATURE_SIGBUS;
- if (userfaultfd_open(features) < 0)
+ if (userfaultfd_open(features))
return 1;
fcntl(uffd, F_SETFL, uffd_flags | O_NONBLOCK);
@@ -1027,7 +1027,7 @@ static int userfaultfd_stress(void)
if (!area_dst)
return 1;
- if (userfaultfd_open(0) < 0)
+ if (userfaultfd_open(0))
return 1;
count_verify = malloc(nr_pages * sizeof(unsigned long long));
--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Thiago Jung Bauermann <bauerman@linux.ibm.com>
To: linux-kselftest@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, Shuah Khan <shuah@kernel.org>,
Andrea Arcangeli <aarcange@redhat.com>,
Mike Rapoport <rppt@linux.vnet.ibm.com>,
Prakash Sangappa <prakash.sangappa@oracle.com>,
Thiago Jung Bauermann <bauerman@linux.ibm.com>
Subject: [PATCH v2 1/4] userfaultfd: selftest: Fix checking of userfaultfd_open() result
Date: Fri, 3 Aug 2018 19:00:43 -0300 [thread overview]
Message-ID: <20180803220046.4019-2-bauerman@linux.ibm.com> (raw)
In-Reply-To: <20180803220046.4019-1-bauerman@linux.ibm.com>
If the userfaultfd test is run on a kernel with CONFIG_USERFAULTFD=n, it
will report that the system call is not available yet go ahead and continue
anyway:
# ./userfaultfd anon 30 1
nr_pages: 480, nr_pages_per_cpu: 120
userfaultfd syscall not available in this kernel
bounces: 0, mode:, register failure
This is because userfaultfd_open() returns 0 on success and 1 on error but
all callers assume that it returns < 0 on error.
Since the convention of the test as a whole is the one used by
userfault_open(), fix its callers instead. Now the test behaves correctly:
# ./userfaultfd anon 30 1
nr_pages: 480, nr_pages_per_cpu: 120
userfaultfd syscall not available in this kernel
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
---
tools/testing/selftests/vm/userfaultfd.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
index 7b8171e3128a..e4099afe7557 100644
--- a/tools/testing/selftests/vm/userfaultfd.c
+++ b/tools/testing/selftests/vm/userfaultfd.c
@@ -859,7 +859,7 @@ static int userfaultfd_zeropage_test(void)
if (uffd_test_ops->release_pages(area_dst))
return 1;
- if (userfaultfd_open(0) < 0)
+ if (userfaultfd_open(0))
return 1;
uffdio_register.range.start = (unsigned long) area_dst;
uffdio_register.range.len = nr_pages * page_size;
@@ -902,7 +902,7 @@ static int userfaultfd_events_test(void)
features = UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP |
UFFD_FEATURE_EVENT_REMOVE;
- if (userfaultfd_open(features) < 0)
+ if (userfaultfd_open(features))
return 1;
fcntl(uffd, F_SETFL, uffd_flags | O_NONBLOCK);
@@ -961,7 +961,7 @@ static int userfaultfd_sig_test(void)
return 1;
features = UFFD_FEATURE_EVENT_FORK|UFFD_FEATURE_SIGBUS;
- if (userfaultfd_open(features) < 0)
+ if (userfaultfd_open(features))
return 1;
fcntl(uffd, F_SETFL, uffd_flags | O_NONBLOCK);
@@ -1027,7 +1027,7 @@ static int userfaultfd_stress(void)
if (!area_dst)
return 1;
- if (userfaultfd_open(0) < 0)
+ if (userfaultfd_open(0))
return 1;
count_verify = malloc(nr_pages * sizeof(unsigned long long));
next prev parent reply other threads:[~2018-08-03 22:00 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-03 22:00 [PATCH v2 0/4] userfaultfd: selftest: Improve behavior with older kernels bauerman
2018-08-03 22:00 ` Thiago Jung Bauermann
2018-08-03 22:00 ` Thiago Jung Bauermann
2018-08-03 22:00 ` bauerman [this message]
2018-08-03 22:00 ` [PATCH v2 1/4] userfaultfd: selftest: Fix checking of userfaultfd_open() result Thiago Jung Bauermann
2018-08-03 22:00 ` Thiago Jung Bauermann
2018-08-07 6:50 ` rppt
2018-08-07 6:50 ` Mike Rapoport
2018-08-07 6:50 ` Mike Rapoport
2018-08-03 22:00 ` [PATCH v2 2/4] userfaultfd: selftest: Skip test if userfaultfd() syscall not supported bauerman
2018-08-03 22:00 ` Thiago Jung Bauermann
2018-08-03 22:00 ` Thiago Jung Bauermann
2018-08-07 6:50 ` rppt
2018-08-07 6:50 ` Mike Rapoport
2018-08-07 6:50 ` Mike Rapoport
2018-08-03 22:00 ` [PATCH v2 3/4] userfaultfd: selftest: Skip test if a feature isn't supported bauerman
2018-08-03 22:00 ` Thiago Jung Bauermann
2018-08-03 22:00 ` Thiago Jung Bauermann
2018-08-07 6:51 ` rppt
2018-08-07 6:51 ` Mike Rapoport
2018-08-07 6:51 ` Mike Rapoport
2018-08-03 22:00 ` [PATCH v2 4/4] userfaultfd: selftest: Cope if shmem doesn't support zeropage bauerman
2018-08-03 22:00 ` Thiago Jung Bauermann
2018-08-03 22:00 ` Thiago Jung Bauermann
2018-08-07 6:56 ` rppt
2018-08-07 6:56 ` Mike Rapoport
2018-08-07 6:56 ` Mike Rapoport
2018-08-28 2:46 ` bauerman
2018-08-28 2:46 ` Thiago Jung Bauermann
2018-08-28 2:46 ` Thiago Jung Bauermann
2018-08-28 6:15 ` rppt
2018-08-28 6:15 ` Mike Rapoport
2018-08-28 6:15 ` Mike Rapoport
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180803220046.4019-2-bauerman@linux.ibm.com \
--to=unknown@example.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.