All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thiago Jung Bauermann <bauerman@linux.ibm.com>
To: Mike Rapoport <rppt@linux.vnet.ibm.com>
Cc: linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org,
	Shuah Khan <shuah@kernel.org>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Prakash Sangappa <prakash.sangappa@oracle.com>
Subject: Re: [PATCH 3/3] userfaultfd: selftest: Report XFAIL if shmem doesn't support zeropage
Date: Mon, 30 Jul 2018 21:01:56 -0300	[thread overview]
Message-ID: <87zhy89ssr.fsf@morokweng.localdomain> (raw)
In-Reply-To: <20180725141849.GE25188@rapoport-lnx>


Mike Rapoport <rppt@linux.vnet.ibm.com> writes:

> Hi,
>
> On Tue, Jul 24, 2018 at 11:42:09PM -0300, Thiago Jung Bauermann wrote:
>> If userfaultfd runs on a system that doesn't support UFFDIO_ZEROPAGE for
>> shared memory, it currently ends with error code 1 which indicates test
>> failure:
>>
>>   # ./userfaultfd shmem 10 10
>>   nr_pages: 160, nr_pages_per_cpu: 80
>>   bounces: 9, mode: rnd poll, unexpected missing ioctl for anon memory
>>   # echo $?
>>   1
>>
>> This is a real failure, but expected so signal that to the test harness:
>
> I don't think its a real failure. If the kernel does not support
> UFFDIO_ZEROPAGE for shared memory the userfaultfd_zeropage_test can be
> simply skipped.

Ok, good point. I'll make that change in v2.

>>   # ./userfaultfd shmem 10 10
>>   nr_pages: 160, nr_pages_per_cpu: 80
>>   bounces: 9, mode: rnd poll, UFFDIO_ZEROPAGE unsupported in shmem VMAs
>>   # echo $?
>>   2
>>
>> Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
>> ---
>>  tools/testing/selftests/vm/userfaultfd.c | 8 ++++++++
>>  1 file changed, 8 insertions(+)
>>
>> diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
>> index bc9ec38fbc34..686fe96f617f 100644
>> --- a/tools/testing/selftests/vm/userfaultfd.c
>> +++ b/tools/testing/selftests/vm/userfaultfd.c
>> @@ -1115,6 +1115,14 @@ static int userfaultfd_stress(void)
>>  		expected_ioctls = uffd_test_ops->expected_ioctls;
>>  		if ((uffdio_register.ioctls & expected_ioctls) !=
>>  		    expected_ioctls) {
>> +			if (test_type == TEST_SHMEM &&
>> +			    (uffdio_register.ioctls & expected_ioctls) ==
>> +			    UFFD_API_RANGE_IOCTLS_BASIC) {
>> +				fprintf(stderr,
>> +					"UFFDIO_ZEROPAGE unsupported in shmem VMAs\n");
>> +				return KSFT_XFAIL;
>> +			}
>> +
>
> By all means, this check should be moved to userfaultfd_zeropage_test().

I made that change in v2.

> Ideally, we should call here ksft_test_result_skip() and simply return from
> the function.

In my understanding, calling ksft_test_result_skip() would require
converting the testcase to use the functions that generate TAP output.

Also, returning here isn't actually necessary: from my testing
userfaultfd_stress() doesn't require zeropage support in shmem so if the
only bit missing from uffdio_register.ioctls is the one for
UFFDIO_ZEROPAGE then this error can simply be ignored and the test can
continue. Do you agree?

>>  			fprintf(stderr,
>>  				"unexpected missing ioctl for anon memory\n");
>>  			return 1;


--
Thiago Jung Bauermann
IBM Linux Technology Center


WARNING: multiple messages have this Message-ID (diff)
From: bauerman at linux.ibm.com (Thiago Jung Bauermann)
Subject: [PATCH 3/3] userfaultfd: selftest: Report XFAIL if shmem doesn't support zeropage
Date: Mon, 30 Jul 2018 21:01:56 -0300	[thread overview]
Message-ID: <87zhy89ssr.fsf@morokweng.localdomain> (raw)
In-Reply-To: <20180725141849.GE25188@rapoport-lnx>


Mike Rapoport <rppt at linux.vnet.ibm.com> writes:

> Hi,
>
> On Tue, Jul 24, 2018 at 11:42:09PM -0300, Thiago Jung Bauermann wrote:
>> If userfaultfd runs on a system that doesn't support UFFDIO_ZEROPAGE for
>> shared memory, it currently ends with error code 1 which indicates test
>> failure:
>>
>>   # ./userfaultfd shmem 10 10
>>   nr_pages: 160, nr_pages_per_cpu: 80
>>   bounces: 9, mode: rnd poll, unexpected missing ioctl for anon memory
>>   # echo $?
>>   1
>>
>> This is a real failure, but expected so signal that to the test harness:
>
> I don't think its a real failure. If the kernel does not support
> UFFDIO_ZEROPAGE for shared memory the userfaultfd_zeropage_test can be
> simply skipped.

Ok, good point. I'll make that change in v2.

>>   # ./userfaultfd shmem 10 10
>>   nr_pages: 160, nr_pages_per_cpu: 80
>>   bounces: 9, mode: rnd poll, UFFDIO_ZEROPAGE unsupported in shmem VMAs
>>   # echo $?
>>   2
>>
>> Signed-off-by: Thiago Jung Bauermann <bauerman at linux.ibm.com>
>> ---
>>  tools/testing/selftests/vm/userfaultfd.c | 8 ++++++++
>>  1 file changed, 8 insertions(+)
>>
>> diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
>> index bc9ec38fbc34..686fe96f617f 100644
>> --- a/tools/testing/selftests/vm/userfaultfd.c
>> +++ b/tools/testing/selftests/vm/userfaultfd.c
>> @@ -1115,6 +1115,14 @@ static int userfaultfd_stress(void)
>>  		expected_ioctls = uffd_test_ops->expected_ioctls;
>>  		if ((uffdio_register.ioctls & expected_ioctls) !=
>>  		    expected_ioctls) {
>> +			if (test_type == TEST_SHMEM &&
>> +			    (uffdio_register.ioctls & expected_ioctls) ==
>> +			    UFFD_API_RANGE_IOCTLS_BASIC) {
>> +				fprintf(stderr,
>> +					"UFFDIO_ZEROPAGE unsupported in shmem VMAs\n");
>> +				return KSFT_XFAIL;
>> +			}
>> +
>
> By all means, this check should be moved to userfaultfd_zeropage_test().

I made that change in v2.

> Ideally, we should call here ksft_test_result_skip() and simply return from
> the function.

In my understanding, calling ksft_test_result_skip() would require
converting the testcase to use the functions that generate TAP output.

Also, returning here isn't actually necessary: from my testing
userfaultfd_stress() doesn't require zeropage support in shmem so if the
only bit missing from uffdio_register.ioctls is the one for
UFFDIO_ZEROPAGE then this error can simply be ignored and the test can
continue. Do you agree?

>>  			fprintf(stderr,
>>  				"unexpected missing ioctl for anon memory\n");
>>  			return 1;


--
Thiago Jung Bauermann
IBM Linux Technology Center

--
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 3/3] userfaultfd: selftest: Report XFAIL if shmem doesn't support zeropage
Date: Mon, 30 Jul 2018 21:01:56 -0300	[thread overview]
Message-ID: <87zhy89ssr.fsf@morokweng.localdomain> (raw)
Message-ID: <20180731000156.qdQkKsx20lpaU_etkoj028d5fTX6_GVdfs-FjxFeDww@z> (raw)
In-Reply-To: <20180725141849.GE25188@rapoport-lnx>


Mike Rapoport <rppt at linux.vnet.ibm.com> writes:

> Hi,
>
> On Tue, Jul 24, 2018@11:42:09PM -0300, Thiago Jung Bauermann wrote:
>> If userfaultfd runs on a system that doesn't support UFFDIO_ZEROPAGE for
>> shared memory, it currently ends with error code 1 which indicates test
>> failure:
>>
>>   # ./userfaultfd shmem 10 10
>>   nr_pages: 160, nr_pages_per_cpu: 80
>>   bounces: 9, mode: rnd poll, unexpected missing ioctl for anon memory
>>   # echo $?
>>   1
>>
>> This is a real failure, but expected so signal that to the test harness:
>
> I don't think its a real failure. If the kernel does not support
> UFFDIO_ZEROPAGE for shared memory the userfaultfd_zeropage_test can be
> simply skipped.

Ok, good point. I'll make that change in v2.

>>   # ./userfaultfd shmem 10 10
>>   nr_pages: 160, nr_pages_per_cpu: 80
>>   bounces: 9, mode: rnd poll, UFFDIO_ZEROPAGE unsupported in shmem VMAs
>>   # echo $?
>>   2
>>
>> Signed-off-by: Thiago Jung Bauermann <bauerman at linux.ibm.com>
>> ---
>>  tools/testing/selftests/vm/userfaultfd.c | 8 ++++++++
>>  1 file changed, 8 insertions(+)
>>
>> diff --git a/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
>> index bc9ec38fbc34..686fe96f617f 100644
>> --- a/tools/testing/selftests/vm/userfaultfd.c
>> +++ b/tools/testing/selftests/vm/userfaultfd.c
>> @@ -1115,6 +1115,14 @@ static int userfaultfd_stress(void)
>>  		expected_ioctls = uffd_test_ops->expected_ioctls;
>>  		if ((uffdio_register.ioctls & expected_ioctls) !=
>>  		    expected_ioctls) {
>> +			if (test_type == TEST_SHMEM &&
>> +			    (uffdio_register.ioctls & expected_ioctls) ==
>> +			    UFFD_API_RANGE_IOCTLS_BASIC) {
>> +				fprintf(stderr,
>> +					"UFFDIO_ZEROPAGE unsupported in shmem VMAs\n");
>> +				return KSFT_XFAIL;
>> +			}
>> +
>
> By all means, this check should be moved to userfaultfd_zeropage_test().

I made that change in v2.

> Ideally, we should call here ksft_test_result_skip() and simply return from
> the function.

In my understanding, calling ksft_test_result_skip() would require
converting the testcase to use the functions that generate TAP output.

Also, returning here isn't actually necessary: from my testing
userfaultfd_stress() doesn't require zeropage support in shmem so if the
only bit missing from uffdio_register.ioctls is the one for
UFFDIO_ZEROPAGE then this error can simply be ignored and the test can
continue. Do you agree?

>>  			fprintf(stderr,
>>  				"unexpected missing ioctl for anon memory\n");
>>  			return 1;


--
Thiago Jung Bauermann
IBM Linux Technology Center

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

  reply	other threads:[~2018-07-31  0:02 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-25  2:42 [PATCH 0/3] userfaultfd: selftest: Improve behavior with older kernels Thiago Jung Bauermann
2018-07-25  2:42 ` Thiago Jung Bauermann
2018-07-25  2:42 ` bauerman
2018-07-25  2:42 ` [PATCH 1/3] userfaultfd: selftest: Fix checking of userfaultfd_open() result Thiago Jung Bauermann
2018-07-25  2:42   ` Thiago Jung Bauermann
2018-07-25  2:42   ` bauerman
2018-07-25 13:59   ` Mike Rapoport
2018-07-25 13:59     ` Mike Rapoport
2018-07-25 13:59     ` rppt
2018-07-30 23:53     ` Thiago Jung Bauermann
2018-07-30 23:53       ` Thiago Jung Bauermann
2018-07-30 23:53       ` bauerman
2018-07-25  2:42 ` [PATCH 2/3] userfaultfd: selftest: Skip test if a feature isn't supported Thiago Jung Bauermann
2018-07-25  2:42   ` Thiago Jung Bauermann
2018-07-25  2:42   ` bauerman
2018-07-25 14:11   ` Mike Rapoport
2018-07-25 14:11     ` Mike Rapoport
2018-07-25 14:11     ` rppt
2018-07-30 23:54     ` Thiago Jung Bauermann
2018-07-30 23:54       ` Thiago Jung Bauermann
2018-07-30 23:54       ` bauerman
2018-07-25  2:42 ` [PATCH 3/3] userfaultfd: selftest: Report XFAIL if shmem doesn't support zeropage Thiago Jung Bauermann
2018-07-25  2:42   ` Thiago Jung Bauermann
2018-07-25  2:42   ` bauerman
2018-07-25 14:18   ` Mike Rapoport
2018-07-25 14:18     ` Mike Rapoport
2018-07-25 14:18     ` rppt
2018-07-31  0:01     ` Thiago Jung Bauermann [this message]
2018-07-31  0:01       ` Thiago Jung Bauermann
2018-07-31  0:01       ` bauerman

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=87zhy89ssr.fsf@morokweng.localdomain \
    --to=bauerman@linux.ibm.com \
    --cc=aarcange@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=prakash.sangappa@oracle.com \
    --cc=rppt@linux.vnet.ibm.com \
    --cc=shuah@kernel.org \
    /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.