Re: [PATCH 1/5] selftests: Add futex functional tests

From: Darren Hart
Date: Mon May 11 2015 - 17:50:17 EST


On 5/11/15, 1:51 PM, "Shuah Khan" <shuahkh@xxxxxxxxxxxxxxx> wrote:

>On 05/11/2015 01:47 PM, Darren Hart wrote:
>> On 5/11/15, 11:55 AM, "Shuah Khan" <shuahkh@xxxxxxxxxxxxxxx> wrote:
>>
>>> On 05/11/2015 12:22 PM, Darren Hart wrote:
>>>> On 5/11/15, 11:06 AM, "Shuah Khan" <shuahkh@xxxxxxxxxxxxxxx> wrote:
>>>>
>>>>> On 05/08/2015 04:09 PM, Darren Hart wrote:
>>>>>> The futextest testsuite [1] provides functional, stress, and
>>>>>> performance tests for the various futex op codes. Those tests will
>>>>>>be
>>>>>> of
>>>>>> more use to futex developers if they are included with the kernel
>>>>>> source.
>>>>>>
>>>>>> Copy the core infrastructure and the functional tests into
>>>>>>selftests,
>>>>>> but adapt them for inclusion in the kernel:
>>>>>>
>>>>>> - Update the Makefile to include the run_tests target, remove
>>>>>> reference
>>>>>> to the performance and stress tests from the contributed sources.
>>>>>> - Replace my dead IBM email address with my current Intel email
>>>>>> address.
>>>>>> - Remove the warrantee and write-to paragraphs from the license
>>>>>> blurbs.
>>>>>> - Remove the NAME section as the filename is easily determined. ;-)
>>>>>> - Make the whitespace usage consistent in a couple of places.
>>>>>> - Cleanup various CodingStyle violations.
>>>>>>
>>>>>> A future effort will explore moving the performance and stress tests
>>>>>> into the kernel.
>>>>>>
>>>>>> 1. http://git.kernel.org/cgit/linux/kernel/git/dvhart/futextest.git
>>>>>>
>>>>>> Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
>>>>>> Cc: linux-api@xxxxxxxxxxxxxxx
>>>>>> Cc: Ingo Molnar <mingo@xxxxxxx>
>>>>>> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
>>>>>> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>>>>>> Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
>>>>>> Cc: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>
>>>>>> Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx>
>>>>>> ---
>>>>>
>>>>> Daren,
>>>>>
>>>>> I am seeing
>>>>>
>>>>> fatal: cannot convert from y to UTF-8
>>>>>
>>>>> when I try to apply the patch. Did you use git send-email?
>>>>
>>>> Hi Shuah,
>>>>
>>>> I've seen that from one of my contributors earlier this month as
>>>>well. I
>>>> dropped the Content... Header and it applied without problems.
>>>>
>>>> I created the patch using git format-patch and then sent them using
>>>>git
>>>> send-email - via a script I've been using for years now...
>>>>
>>>> Checking the files locally:
>>>> $ file *
>>>> 0000-cover-letter.patch: ASCII
>>>> text
>>>> 0001-selftests-Add-futex-functional-tests.patch:
>>>>unified
>>>> diff output, UTF-8 Unicode text
>>>> 0002-selftest-futex-Update-Makefile-to-use-lib.mk.patch:
>>>>unified
>>>> diff output, ASCII text
>>>> 0003-selftest-futex-Increment-ksft-pass-and-fail-counters.patch:
>>>>unified
>>>> diff output, ASCII text
>>>> 0004-selftest-Add-futex-tests-to-the-top-level-Makefile.patch:
>>>>unified
>>>> diff output, ASCII text
>>>> 0005-kselftest-Add-exit-code-defines.patch:
>>>>unified
>>>> diff output, ASCII text
>>>>
>>>>
>>>> This shows that only the first in UTF-8 and the rest are ASCII. I
>>>> presume
>>>> this is due to the Copyright notices in the original files:
>>>>
>>>> Copyright © International Business Machines Corp., 2006-2008
>>>>
>>>> Which use © instead of (C). I just checked and there are 545 instances
>>>> of
>>>> © in the kernel itself, so this should not present a problem.
>>>>
>>>> I apologize for the glitch in applying. If you use the pull request I
>>>> included that will avoid the mail transport issues, and I will be sure
>>>> to
>>>> fix my scripts to avoid the issue in the future.
>>>>
>>>> If you want to use the patches directly, please have a look at 1 of 5
>>>> and
>>>> just remove the "Content..." header, and I think you'll find "git am"
>>>> will
>>>> apply it without complaint.
>>>>
>>>
>>> Hi Daren,
>>>
>>> Removing the Content header got me past the utf error. However, git am
>>> complains:
>>>
>>> git am --signoff
>>>
>>>../4.2_patches/futex_tests/PATCH_1_5selftestsAddfutexfunctionaltests.mbo
>>>x
>>> Applying: selftests: Add futex functional tests
>>> /mnt/data/lkml/linux-kselftest/.git/rebase-apply/patch:1457: new blank
>>> line at EOF.
>>> +
>>> warning: 1 line adds whitespace errors.
>>>
>>> Could you look into these. Rest of the patches applied fine.
>>
>> Hi Shuah,
>>
>> This was due to a newline at the end of:
>> tools/testing/selftests/futex/functional/run.sh
>>
>> Which unfortunately checkpatch.pl doesn't catch. My fault for not
>>applying
>> the series from the generated patches first. Sorry for the hassle.
>>
>> I have corrected this in the first patch and pushed v3 of the series to:
>>
>> git://git.infradead.org/users/dvhart/linux.git futextest-v3
>>
>>
>> $ git diff infradead/futextest-v2 infradead/futextest-v3
>> diff --git a/tools/testing/selftests/futex/functional/run.sh
>> b/tools/testing/selftests/futex/functional/run.sh
>> index 46827a8..e87dbe2 100755
>> --- a/tools/testing/selftests/futex/functional/run.sh
>> +++ b/tools/testing/selftests/futex/functional/run.sh
>> @@ -77,4 +77,3 @@ echo
>> echo
>> ./futex_wait_uninitialized_heap $COLOR
>> ./futex_wait_private_mapped_file $COLOR
>> -
>>
>>
>
>No need for a new pull request. Have you seen these errors before:
>
>make[2]: Entering directory
>'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex'
>for DIR in functional; do make -C $DIR all ; done
>make[3]: Entering directory
>'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional'
>gcc -g -O2 -Wall -D_GNU_SOURCE -I../include -I../../ -lpthread -lrt
>futex_requeue_pi.c ../include/futextest.h -o futex_requeue_pi
>/tmp/cc2UgUVs.o: In function `create_rt_thread':
>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional/fu
>tex_requeue_pi.c:102:
>undefined reference to `pthread_create'
>/tmp/cc2UgUVs.o: In function `unit_test':
>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional/fu
>tex_requeue_pi.c:342:
>undefined reference to `pthread_join'
>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional/fu
>tex_requeue_pi.c:347:
>undefined reference to `pthread_join'
>/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional/fu
>tex_requeue_pi.c:346:
>undefined reference to `pthread_join'
>collect2: error: ld returned 1 exit status
><builtin>: recipe for target 'futex_requeue_pi' failed
>make[3]: *** [futex_requeue_pi] Error 1
>make[3]: Leaving directory
>'/mnt/data/lkml/linux-kselftest/tools/testing/selftests/futex/functional'
>Makefile:7: recipe for target 'all' failed
>
>I am running make kselftest target when I saw the above build failures.
>kselftest run doesn't fail which is good, however futex tests won't
>run with this failure.

I have not seen these errors whilst developing with futextest for the
kernel. That looks like you may be missing the pthread development headers
from your build machine.

Those are provided by libc6-dev on my Debian systems.

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