[LTP] [PATCH] syscalls/signal06: fix test for regression with earlier version of gcc and kernel

Guangwen Feng fenggw-fnst@cn.fujitsu.com
Thu Oct 6 12:31:11 CEST 2016


Hi!

Thanks for your comments!

On 10/05/2016 09:43 PM, Cyril Hrubis wrote:
> Hi!
> First of all sorry for the delay.
> 
>> 1. Currently, following code is incorrect on some releases with
>>    earlier version of gcc(tested on RHEL5.11GA):
>>
>> 	while (D == d && loop < LOOPS) {
>>
>>    Because the argument in function test(double d) is used via (%rsp),
>>    but here we actually need a xmm register to trigger the fpu bug.
>>    So use global value instead to make sure to take use of xmm.
> 
> This looks OK.
> 
>> 2. Although this regression test is designed to trigger SIGSEGV
>>    intentionally, on some releases with old kernel(tested on RHEL5.11GA),
>>    this will still lead to segmentation fault that terminate the program
>>    and break the test even though compiling with -O2.  So slightly adjust
>>    the weight of the codes in child thread to depress SIGSEGV trigger's
>>    chance while increase LOOPS to ensure reproducible.
> 
> Hmm, what is the exact problem here? Does the old kernel break if we
> send the signal too fast?

Yes, running signal06 reports segmentation fault and breaks the test
if we send the signal too fast on the old kernel.

> 
> I do not like much that the test takes ten times more time to finish
> now.

Yes, it will take ten times more time than before, but it only takes
3~4 seconds to finish...

By current LOOPS(10000), most of the time, the buggy kernel can be
reproduced, but there is still a chance(about 0.5% in my environment)
to miss.


Best Regards,
Guangwen Feng




More information about the ltp mailing list