Re: [tip:timers/core] kselftests: timers: set-timer-lat: Tweak reporting when timer fires early

From: Shuah Khan
Date: Thu Sep 21 2017 - 15:42:36 EST


On 09/21/2017 01:40 PM, Greg Hackmann wrote:
> On 09/20/2017 04:38 PM, Shuah Khan wrote:
>> On 09/20/2017 06:31 AM, Prarit Bhargava wrote:
>>> On 09/19/2017 11:36 PM, John Stultz wrote:
>>>> On Tue, Sep 19, 2017 at 6:02 PM, Shuah Khan <shuah@xxxxxxxxxx> wrote:
>>>>> Hi Greg,
>>>>>
>>>>> On 08/20/2017 03:56 AM, tip-bot for Greg Hackmann wrote:
>>>>>> Commit-ID: a524b1184b8e86141d689fa78ad150fbf2db9b4c
>>>>>> Gitweb: http://git.kernel.org/tip/a524b1184b8e86141d689fa78ad150fbf2db9b4c
>>>>>> Author: Greg Hackmann <ghackmann@xxxxxxxxxx>
>>>>>> AuthorDate: Tue, 25 Jul 2017 14:36:25 -0700
>>>>>> Committer: John Stultz <john.stultz@xxxxxxxxxx>
>>>>>> CommitDate: Thu, 17 Aug 2017 12:14:54 -0700
>>>>>>
>>>>>> kselftests: timers: set-timer-lat: Tweak reporting when timer fires early
>>>>>>
>>>>>> Rather than printing an error inside the alarm signal handler, set a
>>>>>> flag that we check later. This keeps the test from spamming the console
>>>>>> every time the alarm fires early. It also fixes the test exiting with
>>>>>> error code 0 if this was the only test failure.
>>>>>>
>>>>>> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>>>>>> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
>>>>>> Cc: Miroslav Lichvar <mlichvar@xxxxxxxxxx>
>>>>>> Cc: Richard Cochran <richardcochran@xxxxxxxxx>
>>>>>> Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
>>>>>> Cc: Stephen Boyd <stephen.boyd@xxxxxxxxxx>
>>>>>> Cc: Shuah Khan <shuah@xxxxxxxxxx>
>>>>>> Cc: linux-kselftest@xxxxxxxxxxxxxxx
>>>>>> Signed-off-by: Greg Hackmann <ghackmann@xxxxxxxxxx>
>>>>>> Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
>>>>>
>>>>> This commit is making the set-timer-lat hang. I reverted this commit
>>>>> and there is no hang. Could you please take a look and see if this
>>>>> commit should be reverted.
>>>>>
>>>>> make kselftest as well as make -C tools/testing/selftests/timers run_tests
>>>>> hang.
>>>>
>>>> Do you have any specific details as to how the test hangs? (ie: Log
>>>> data, as in where it might be when it hangs? Any details about the
>>>> machine?)
>>>>
>>>> I'm not seeing it so far in my testing.
>>>>
>>>
>>> I just ran it here and don't see any issues. I'll try on a few other boxes
>>> to make sure.
>>>
>>> # make -C tools/testing/selftests/timers run_tests
>>
>> John/Prarit,
>>
>> Thanks for getting back to me. I isolated the problem to redirecting
>> test output. If I redirect the output it hangs.
>>
>> ./set-timer-lat > /tmp/set-timer-lat 2>&1
>>
>> it hangs. The reason I am seeing this is because there is a patch
>> that came in recently to redirect individual test output to a separate
>> file to make it easier to understand the test results.
>>
>> Looks like Commits 28be3f8f48cfb3cf024860f042d424cd4824f5f7 and/or
>> a524b1184b8e86141d689fa78ad150fbf2db9b4c add dependency on stdin/out/err
>> to the test.
>>
>> Anyway just an update. It can be reproduced easily. If we have tests
>> that can't tolerate redirecting output, I might end up dropping the
>> patch that is in linux-kselftest fixes
>>
>> fbcab13d2e2511a858590846ac2e2d7cbd830591
>>
>> So fat set-timer-lat is the only one I found.
>>
>> thanks,
>> -- Shuah
>>
> I'm able to reproduce this locally, though I'm not sure it's a redirection issue. 28be3f8f48cf ("kselftests: timers: set-timer-lat: Add one-shot timer test cases") appears to have a regression where if timer_create() fails due to missing CAP_WAKE_ALARM, do_timer() will still try to run the test anyway.

Yeah I found two problems - patches on their way. The first one returning 0 for unsupported
alarm cases and a second in select. Just about to send patches. Will cc on those.

thanks,
-- Shuah