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

Cyril Hrubis chrubis@suse.cz
Thu Feb 9 17:19:22 CET 2017


Hi!
> 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.
> 
> 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.

This needs to be worded a bit better, I had to read the email discussion
to remember what we are trying to avoid here.

Something as:

2. Although this regresssion test is designed to trigger SIGSEGV
   intentionally in order to invoke signal handler, producing it too
   fast can lead to a program termination on older kernels (found in
   RHEL5.11GA). Hence we divide the frequency in half and increase
   number of LOOPS at the same time as a compensation to make sure
   that the bug is 100% reproducible.

OK to commit with this change to the patch description?

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list