[PATCH COMMITTED] Do not require memset elimination in explicit_bzero test
Stefan Liebler
stli@linux.vnet.ibm.com
Tue Jan 10 08:23:00 GMT 2017
On 12/30/2016 01:16 PM, Florian Weimer wrote:
> On 12/21/2016 07:04 PM, Florian Weimer wrote:
>> On 12/20/2016 11:09 AM, Florian Weimer wrote:
>>> Some targets fail to apply dead store elimination to the
>>> memset call in setup_ordinary_clear. Before this commit,
>>> this causes the test case to fail. Instead, the test case
>>> now logs lack of memset elimination as an informational
>>> message.
>>>
>>> 2016-12-20 Florian Weimer <fweimer@redhat.com>
>>>
>>> Do not require memset elimination in explicit_bzero test.
>>> * string/tst-xbzero-opt.c (prepare_test_buffer): Force inlining.
>>> (enum test_expectation): Add NO_EXPECTATIONS.
>>> (subtests): NO_EXPECTATIONS for ordinary clear.
>>> (check_test_buffer): Handle NO_EXPECTATIONS.
>>> * string/Makefile (CFLAGS-tst-xbzero-opt.c): Compile with -O3.
>>
>> Stefan, this test still fails for me on s390x:
>>
>> PASS: no clear/prepare: expected 32 got 32
>> PASS: no clear/test: expected some got 32
>> PASS: ordinary clear/prepare: expected 32 got 32
>> INFO: ordinary clear/test: found 0 patterns (memset not eliminated)
>> PASS: explicit clear/prepare: expected 32 got 32
>> FAIL: explicit clear/test: expected 0 got 1
>>
>> Do you have an idea what's going on there?
>
> I filed bug 21006 and will add it as a release blocker.
>
> Thanks,
> Florian
>
Hi Florian,
the test is also failing on my system and I've had a look into it.
In setup_explicit_clear, the buffer is filled with the test_pattern.
On s390x the memcpy in prepare_test_buffer is done by loading
r4 / r5 with the test_pattern and using store multiple instruction
to store r4 / r5 to buf.
If explicit_bzero is resolved in setup_explicit_clear, r4 / r5 is
stored to stack by _dl_runtime_resolve and the call to memmem in
count_test_patterns finds a hit of the test_pattern on the stack.
The attached patch resolves all symbols at program startup by linking
with -z now. This omits the call of _dl_runtime_resolve within
setup_explicit_clear and the test passes.
If this is okay, I'll commit this patch and clear this bug in the
release blockers list in the release-wiki.
Bye
Stefan
ChangeLog:
[BZ #21006]
* string/Makefile (LDFLAGS-tst-xbzero-opt): New variable.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20170110_string_tst_xbzero_opt.patch
Type: text/x-patch
Size: 1910 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20170110/d078594a/attachment.bin>
More information about the Libc-alpha
mailing list