|
From: Christian B. <bor...@de...> - 2011-09-05 19:36:28
|
As you might know the locked_vs_unlocked testcases fail on s390x:
> helgrind/tests/locked_vs_unlocked1_fwd (stderr)
> helgrind/tests/locked_vs_unlocked1_rev (stderr)
> helgrind/tests/locked_vs_unlocked2 (stderr)
> helgrind/tests/locked_vs_unlocked3 (stderr)
The only difference for all tests is in the backtrace:
on sles
at 0x........: clone (in /...libc...)
- by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
+ by 0x........: do_clone (in /...libpthread...)
+ by 0x........: pthread_create@@GLIBC_2.2 (in /...libpthread...)
on fedora
- by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
+ by 0x........: pthread_create@@GLIBC_2.2 (in /...libpthread...)
The full callchain on s390 is something like
pthread_create-->do_clone-->clone instead of pthread_create-->clone.
As you can see, newer version of gcc even create multiple clones of
do_clone (for partial inlining etc). the cleanest solution seems to me
to change the --num-callers=3 in the vgtest to --num-callers=1.
Otherwise I have to add at least 2 expect files to these tests.
Opinions?
Christian
|