Re: [PATCH v4 0/6] selftests: Add futex functional tests

From: Darren Hart
Date: Wed May 13 2015 - 19:35:15 EST


On 5/13/15, 4:22 PM, "Shuah Khan" <shuahkh@xxxxxxxxxxxxxxx> wrote:

>On 05/12/2015 10:07 PM, Darren Hart wrote:
>> Hi Shuah,
>>
>> This series begins the process of migrating my futextest tests into
>>kselftest.
>> I've started with only the functional tests, as the performance and
>>stress may
>> not be appropriate for kselftest as they stand.
>>
>> I cleaned up various complaints from checkpatch, but I ignored others
>>that would
>> require significant rework of the testcases, such as not using volatile
>>and not
>> creating new typedefs.
>>
>
>Daren,
>
>This patch series is good. kselftest run and install
>are good. I see the following results. Something you
>would expect??

Yes, that is all expected behavior if you don't run as root and your user
doesn't have the necessary capabilities added - similar to other tests
with privileged operations.

> No Issues and I am going to get them
>into 4.2 - should show up in linux-kselftest next.

Great, thanks. Perhaps some explicit capabilities tests and clearer error
messages would make sense as a follow-on patch.

Thanks for working with me to get these into the kernel, I think it will
improve futex test exposure and hopefully encourage people to write more
tests to fill some of the gaps.

--
Darren

>
>Thanks for adding these.
>
>thanks,
>-- Shuah
>
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=0 locked=0 owner=0 timeout=0ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=1 locked=0 owner=0 timeout=0ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=1 locked=1 owner=0 timeout=0ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=1 locked=0 owner=1 timeout=0ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating third party blocker thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=0 locked=1 owner=0 timeout=0ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=0 locked=0 owner=1 timeout=0ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating third party blocker thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=1 locked=1 owner=0 timeout=5000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=0 locked=1 owner=0 timeout=5000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=1 locked=1 owner=0 timeout=500000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=0 locked=1 owner=0 timeout=500000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=1 locked=0 owner=0 timeout=5000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=0 locked=0 owner=0 timeout=5000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=1 locked=0 owner=0 timeout=500000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=0 locked=0 owner=0 timeout=500000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=1 locked=0 owner=1 timeout=5000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating third party blocker thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=0 locked=1 owner=0 timeout=5000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=1 locked=0 owner=1 timeout=500000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating third party blocker thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=0 locked=1 owner=0 timeout=500000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=1 locked=1 owner=0 timeout=2000000000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>futex_requeue_pi: Test requeue functionality
> Arguments: broadcast=0 locked=1 owner=0 timeout=2000000000ns
> ERROR: Operation not permitted: pthread_create
> ERROR: Creating waiting thread failed
>Result: ERROR
>
>futex_requeue_pi_mismatched_ops: Detect mismatched requeue_pi operations
>Result: PASS
>
>futex_requeue_pi_signal_restart: Test signal handling during requeue_pi
> Arguments: <none>
> ERROR: Operation not permitted: pthread_create
> ERROR: Unknown error -1: Creating waiting thread failedResult: ERROR
>
>futex_wait_timeout: Block on a futex and wait for timeout
> Arguments: timeout=100000ns
>Result: PASS
>
>futex_wait_wouldblock: Test the unexpected futex value in FUTEX_WAIT
>Result: PASS
>
>futex_wait_uninitialized_heap: Test the uninitialized futex value in
>FUTEX_WAIT
>Result: PASS
>futex_wait_private_mapped_file: Test the futex value of private file
>mappings in FUTEX_WAIT
>Result: PASS
>
>
>--
>Shuah Khan
>Sr. Linux Kernel Developer
>Open Source Innovation Group
>Samsung Research America (Silicon Valley)
>shuahkh@xxxxxxxxxxxxxxx | (970) 217-8978
>


--
Darren Hart
Intel Open Source Technology Center



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/