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

Cyril Hrubis
2017-02-09T16:19:22Z

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