You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
1
(5) |
2
(3) |
|
3
(2) |
4
(3) |
5
(16) |
6
(8) |
7
(6) |
8
(2) |
9
(4) |
|
10
(10) |
11
(22) |
12
(7) |
13
(10) |
14
(11) |
15
(8) |
16
(6) |
|
17
(11) |
18
|
19
(6) |
20
(8) |
21
(5) |
22
(11) |
23
(6) |
|
24
(1) |
25
(6) |
26
(4) |
27
(2) |
28
(1) |
29
|
30
(2) |
|
31
(5) |
|
|
|
|
|
|
|
From: Carl E. L. <ce...@us...> - 2015-05-05 23:16:20
|
On Tue, 2015-05-05 at 16:56 -0500, Will Schmidt wrote:
> A handful of patches intended to clean up the valgrind regtest results as seen
> on powerpc platforms. I've locally been running against Fedora20 and
> Fedora21 installations, on Power6, Power7, and Power8 (LE and BE) platforms.
> With these changes in place, the tests are significantly cleaned up.
>
> At a high level, there are several spots where some ifdiffery needed to be
> updated to handle ppc64LE versus BE, and some new .exp files to handle
> the output generated on ppc64*.
Will:
Thanks for the patches, I will review and test them. I will not be able
to get to them for a day or so.
Carl Love
|
|
From: Philippe W. <phi...@sk...> - 2015-05-05 23:06:24
|
On Tue, 2015-05-05 at 16:56 -0500, Will Schmidt wrote:
> A handful of patches intended to clean up the valgrind regtest results as seen
> on powerpc platforms. I've locally been running against Fedora20 and
> Fedora21 installations, on Power6, Power7, and Power8 (LE and BE) platforms.
> With these changes in place, the tests are significantly cleaned up.
>
> At a high level, there are several spots where some ifdiffery needed to be
> updated to handle ppc64LE versus BE, and some new .exp files to handle
> the output generated on ppc64*.
Having better tests on ppc64 is nice.
I quickly looked at the patches. Only one remark: adding new .exp files
is not the preferred approach, as these different .exp files implies a
heavier maintenance that e.g. modifying a filter_xxxxxxx to ensure
the output is the same on all platforms.
Maybe some of these ppc64 specific .exp can be avoided/removed
by enhancing the filters ?
For info, I have setup a nightly regression test on gcc112.
The results of last night are:
== 585 tests, 6 stderr failures, 0 stdout failures, 0 stderrB failures, 1 stdoutB failure, 2 post failures ==
gdbserver_tests/hgtls (stdoutB)
memcheck/tests/badjump2 (stderr)
memcheck/tests/leak_cpp_interior (stderr)
memcheck/tests/overlap (stderr)
memcheck/tests/supp_unknown (stderr)
massif/tests/big-alloc (post)
massif/tests/deep-D (post)
helgrind/tests/tc06_two_races_xml (stderr)
drd/tests/pth_create_chain (stderr)
The results are not (yet?) reaching valgrind-testresults, due to
mail setup problems.
Julian,
I suspect that the results are not reaching
the result mailing list, because gcc112 puts
phi...@gc...
as mail originator. I could not configure my email address as
originator on this system. Support request was filed to gcc compile
farm admin but no feedback yet since more than a week.
To solve that, would it be possible to add this email address to
the 'authorised users' of valgrind-testresults
but configuring it so that the posts are not sent to this
address. In other words, the mailing list should accept
mails from this address, but should not send the posts to
that address.
Thanks
Philippe
|
|
From: Will S. <wil...@vn...> - 2015-05-05 22:27:29
|
Temporarily remove assert from arch_2_07 check, allow continued
function on Power6, etc.
This is a temporary remove, code needs further rework.
Signed-off-by: Will Schmidt <wil...@vn...>
---
coregrind/m_initimg/initimg-linux.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/coregrind/m_initimg/initimg-linux.c b/coregrind/m_initimg/initimg-linux.c
index cd0b7f3..44f28c9 100644
--- a/coregrind/m_initimg/initimg-linux.c
+++ b/coregrind/m_initimg/initimg-linux.c
@@ -733,7 +733,7 @@ Addr setup_client_stack( void* init_sp,
/* Verify if PPC_FEATURE2_ARCH_2_07 is set in HWCAP2
* that arch_2_07 is also set in VEX HWCAPS
*/
- vg_assert((vex_archinfo->hwcaps & VEX_HWCAPS_PPC64_ISA2_07) == VEX_HWCAPS_PPC64_ISA2_07);
+// vg_assert((vex_archinfo->hwcaps & VEX_HWCAPS_PPC64_ISA2_07) == VEX_HWCAPS_PPC64_ISA2_07);
}
break;
|
|
From: Will S. <wil...@vn...> - 2015-05-05 22:27:28
|
add updated pth_cond_destroy_busy for ppc64 (BE). For BE, the summary reports "6 errors" rather than "3 errors". ppc64LE seems OK with the existing "3 errors" value. I've not done a deep dive to verify the output, but expect this is accurate. Signed-off-by: Will Schmidt <wil...@vn...> --- helgrind/tests/Makefile.am | 1 .../tests/pth_cond_destroy_busy.stderr.exp-ppc64be | 50 ++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64be diff --git a/helgrind/tests/Makefile.am b/helgrind/tests/Makefile.am index 06078b1..5922fbc 100644 --- a/helgrind/tests/Makefile.am +++ b/helgrind/tests/Makefile.am @@ -46,6 +46,7 @@ EXTRA_DIST = \ pth_destroy_cond.vgtest \ pth_destroy_cond.stdout.exp pth_destroy_cond.stderr.exp \ pth_cond_destroy_busy.vgtest pth_cond_destroy_busy.stderr.exp \ + pth_cond_destroy_busy.stderr.exp-ppc64be \ pth_spinlock.vgtest pth_spinlock.stdout.exp pth_spinlock.stderr.exp \ rwlock_race.vgtest rwlock_race.stdout.exp rwlock_race.stderr.exp \ rwlock_test.vgtest rwlock_test.stdout.exp rwlock_test.stderr.exp \ diff --git a/helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64be b/helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64be new file mode 100644 index 0000000..2da688e --- /dev/null +++ b/helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64be @@ -0,0 +1,50 @@ + +---Thread-Announcement------------------------------------------ + +Thread #x is the program's root thread + +---Thread-Announcement------------------------------------------ + +Thread #x was created + ... + by 0x........: pthread_create@* (hg_intercepts.c:...) + by 0x........: main (pth_cond_destroy_busy.c:45) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + at 0x........: my_memcmp (hg_intercepts.c:...) + by 0x........: pthread_cond_destroy_WRK (hg_intercepts.c:...) + by 0x........: pthread_cond_destroy@* (hg_intercepts.c:...) + by 0x........: main (pth_cond_destroy_busy.c:52) + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) + by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) + by 0x........: thread_func (pth_cond_destroy_busy.c:31) + by 0x........: mythread_wrapper (hg_intercepts.c:...) + ... + Address 0x........ is 4 bytes inside data symbol "s_cond" + +---------------------------------------------------------------- + +Thread #x: pthread_cond_destroy: destruction of condition variable being waited upon + at 0x........: pthread_cond_destroy_WRK (hg_intercepts.c:...) + by 0x........: pthread_cond_destroy@* (hg_intercepts.c:...) + by 0x........: main (pth_cond_destroy_busy.c:52) + +---------------------------------------------------------------- + +Thread #x's call to pthread_cond_destroy failed + with error code 16 (EBUSY: Device or resource busy) + at 0x........: pthread_cond_destroy_WRK (hg_intercepts.c:...) + by 0x........: pthread_cond_destroy@* (hg_intercepts.c:...) + by 0x........: main (pth_cond_destroy_busy.c:52) + +First pthread_cond_destroy() call returned EBUSY. +Second pthread_cond_destroy() call returned success. + +ERROR SUMMARY: 6 errors from 3 contexts (suppressed: 0 from 0) |
|
From: Will S. <wil...@vn...> - 2015-05-05 22:27:23
|
add leak_cpp_interior test .exp results to match current ppc64* output Signed-off-by: Will Schmidt <wil...@vn...> --- memcheck/tests/Makefile.am | 1 .../tests/leak_cpp_interior.stderr.exp-ppc64le | 144 ++++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 memcheck/tests/leak_cpp_interior.stderr.exp-ppc64le diff --git a/memcheck/tests/Makefile.am b/memcheck/tests/Makefile.am index ba24af1..2467cfe 100644 --- a/memcheck/tests/Makefile.am +++ b/memcheck/tests/Makefile.am @@ -90,6 +90,7 @@ EXTRA_DIST = \ cond_st.stderr.exp-64bit-non-arm \ cond_st.stderr.exp-32bit-non-arm \ leak_cpp_interior.stderr.exp leak_cpp_interior.stderr.exp-64bit leak_cpp_interior.vgtest \ + leak_cpp_interior.stderr.exp-ppc64le \ custom_alloc.stderr.exp custom_alloc.vgtest \ custom_alloc.stderr.exp-s390x-mvc \ custom-overlap.stderr.exp custom-overlap.vgtest \ diff --git a/memcheck/tests/leak_cpp_interior.stderr.exp-ppc64le b/memcheck/tests/leak_cpp_interior.stderr.exp-ppc64le new file mode 100644 index 0000000..1676210 --- /dev/null +++ b/memcheck/tests/leak_cpp_interior.stderr.exp-ppc64le @@ -0,0 +1,144 @@ + +valgrind output will go to log +VALGRIND_DO_LEAK_CHECK +8 bytes in 1 blocks are definitely lost in loss record ... of ... + by 0x........: doit() (leak_cpp_interior.cpp:112) + by 0x........: main (leak_cpp_interior.cpp:127) + +16 bytes in 1 blocks are possibly lost in loss record ... of ... + by 0x........: doit() (leak_cpp_interior.cpp:115) + by 0x........: main (leak_cpp_interior.cpp:127) + +32 bytes in 1 blocks are possibly lost in loss record ... of ... + by 0x........: doit() (leak_cpp_interior.cpp:117) + by 0x........: main (leak_cpp_interior.cpp:127) + +LEAK SUMMARY: + definitely lost: 8 bytes in 1 blocks + indirectly lost: 0 bytes in 0 blocks + possibly lost: 48 bytes in 2 blocks + still reachable: 191 bytes in 6 blocks + of which reachable via heuristic: + stdstring : 80 bytes in 2 blocks + length64 : 31 bytes in 1 blocks + newarray : 32 bytes in 1 blocks + suppressed: 0 bytes in 0 blocks +Reachable blocks (those to which a pointer was found) are not shown. +To see them, rerun with: --leak-check=full --show-leak-kinds=all + +leak_check summary heuristics multipleinheritance +LEAK SUMMARY: + definitely lost: 8 (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: 191 (+143) bytes in 6 (+4) blocks + still reachable: 48 (-143) bytes in 2 (-4) blocks + of which reachable via heuristic: + stdstring : 0 (-80) bytes in 0 (-2) blocks + length64 : 0 (-31) bytes in 0 (-1) blocks + newarray : 0 (-32) bytes in 0 (-1) blocks + suppressed: 0 (+0) bytes in 0 (+0) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary any heuristics newarray +LEAK SUMMARY: + definitely lost: 8 (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: 128 (-63) bytes in 4 (-2) blocks + still reachable: 111 (+63) bytes in 4 (+2) blocks + of which reachable via heuristic: + newarray : 63 (+63) bytes in 2 (+2) blocks + suppressed: 0 (+0) bytes in 0 (+0) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary heuristics length64 +LEAK SUMMARY: + definitely lost: 8 (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: 160 (+32) bytes in 5 (+1) blocks + still reachable: 79 (-32) bytes in 3 (-1) blocks + of which reachable via heuristic: + length64 : 31 (+31) bytes in 1 (+1) blocks + newarray : 0 (-63) bytes in 0 (-2) blocks + suppressed: 0 (+0) bytes in 0 (+0) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary heuristics stdstring +LEAK SUMMARY: + definitely lost: 8 (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: 111 (-49) bytes in 4 (-1) blocks + still reachable: 128 (+49) bytes in 4 (+1) blocks + of which reachable via heuristic: + stdstring : 80 (+80) bytes in 2 (+2) blocks + length64 : 0 (-31) bytes in 0 (-1) blocks + suppressed: 0 (+0) bytes in 0 (+0) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary heuristics multipleinheritance,newarray,stdstring,length64 +LEAK SUMMARY: + definitely lost: 8 (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: 48 (-63) bytes in 2 (-2) blocks + still reachable: 191 (+63) bytes in 6 (+2) blocks + of which reachable via heuristic: + stdstring : 80 (+0) bytes in 2 (+0) blocks + length64 : 31 (+31) bytes in 1 (+1) blocks + newarray : 32 (+32) bytes in 1 (+1) blocks + suppressed: 0 (+0) bytes in 0 (+0) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary heuristics all +LEAK SUMMARY: + definitely lost: 8 (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: 48 (+0) bytes in 2 (+0) blocks + still reachable: 191 (+0) bytes in 6 (+0) blocks + of which reachable via heuristic: + stdstring : 80 (+0) bytes in 2 (+0) blocks + length64 : 31 (+0) bytes in 1 (+0) blocks + newarray : 32 (+0) bytes in 1 (+0) blocks + suppressed: 0 (+0) bytes in 0 (+0) blocks +To see details of leaked memory, give 'full' arg to leak_check + +leak_check summary heuristics none +LEAK SUMMARY: + definitely lost: 8 (+0) bytes in 1 (+0) blocks + indirectly lost: 0 (+0) bytes in 0 (+0) blocks + possibly lost: 191 (+143) bytes in 6 (+4) blocks + still reachable: 48 (-143) bytes in 2 (-4) blocks + of which reachable via heuristic: + stdstring : 0 (-80) bytes in 0 (-2) blocks + length64 : 0 (-31) bytes in 0 (-1) blocks + newarray : 0 (-32) bytes in 0 (-1) blocks + suppressed: 0 (+0) bytes in 0 (+0) blocks +To see details of leaked memory, give 'full' arg to leak_check + +Searching for pointers pointing in 20 bytes from 0x........ +*0x........ interior points at 8 bytes inside 0x........ + Address 0x........ is 0 bytes inside data symbol "ptr" +block at 0x........ considered reachable by ptr 0x........ using newarray heuristic +destruct MyClass +destruct MyClass +destruct MyClass +destruct Ce +destruct Be +destruct Ae +destruct Ce +destruct Be +destruct Ae +destruct C +destruct B +destruct A +destruct C +destruct B +destruct A +Finished! + +HEAP SUMMARY: + in use at exit: 0 bytes in 0 blocks + total heap usage: 9 allocs, 9 frees, 247 bytes allocated + +All heap blocks were freed -- no leaks are possible + +For counts of detected and suppressed errors, rerun with: -v +ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0) |
|
From: Will S. <wil...@vn...> - 2015-05-05 22:27:18
|
Add a helper script to determine if the platform is ppc64le. This is specifically used to help exclude the 32-bit tests from being run on a ppc64LE (ABIV2) platform. The 32-bit targets, specifically ppc32/* is not not built on LE. Signed-off-by: Will Schmidt <wil...@vn...> --- none/tests/ppc32/jm_vec_isa_2_07.vgtest | 2 +- tests/check_ppc64le_cap | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100755 tests/check_ppc64le_cap diff --git a/none/tests/ppc32/jm_vec_isa_2_07.vgtest b/none/tests/ppc32/jm_vec_isa_2_07.vgtest index a93060a..f69c126 100644 --- a/none/tests/ppc32/jm_vec_isa_2_07.vgtest +++ b/none/tests/ppc32/jm_vec_isa_2_07.vgtest @@ -1,2 +1,2 @@ -prereq: ../../../tests/check_isa-2_07_cap +prereq: ../../../tests/check_isa-2_07_cap && ! ../../../tests/check_ppc64le_cap prog: test_isa_2_07_part1 -a diff --git a/tests/check_ppc64le_cap b/tests/check_ppc64le_cap new file mode 100755 index 0000000..9f48888 --- /dev/null +++ b/tests/check_ppc64le_cap @@ -0,0 +1,14 @@ +#!/bin/sh + +# Helper script to indicate if we are ppc64 LE. +# Note: The ELFV2 ABI (for ppc64le) specifically does not +# support the 32-bit environment. + +UNAME_M="$(uname -m)" + +if [ $UNAME_M != "ppc64le" ]; then + exit 1 +else + exit 0 +fi + |
|
From: Will S. <wil...@vn...> - 2015-05-05 22:27:14
|
Add exp output for supp_unknown test for ppc64*. Powerpc* reports an additional "Jump to the invalid address..." message that does not show up in the base .exp. Signed-off-by: Will Schmidt <wil...@vn...> --- memcheck/tests/Makefile.am | 2 +- memcheck/tests/supp_unknown.stderr.exp-ppc64 | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 memcheck/tests/supp_unknown.stderr.exp-ppc64 diff --git a/memcheck/tests/Makefile.am b/memcheck/tests/Makefile.am index f177167..ba24af1 100644 --- a/memcheck/tests/Makefile.am +++ b/memcheck/tests/Makefile.am @@ -234,7 +234,7 @@ EXTRA_DIST = \ str_tester.stderr.exp str_tester.vgtest \ supp-dir.vgtest supp-dir.stderr.exp \ supp_unknown.stderr.exp supp_unknown.vgtest supp_unknown.supp \ - supp_unknown.stderr.exp-kfail \ + supp_unknown.stderr.exp-kfail supp_unknown.stderr.exp-ppc64 \ supp1.stderr.exp supp1.vgtest \ supp2.stderr.exp supp2.vgtest \ supp.supp \ diff --git a/memcheck/tests/supp_unknown.stderr.exp-ppc64 b/memcheck/tests/supp_unknown.stderr.exp-ppc64 new file mode 100644 index 0000000..16933fe --- /dev/null +++ b/memcheck/tests/supp_unknown.stderr.exp-ppc64 @@ -0,0 +1,13 @@ +Jump to the invalid address stated on the next line + ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd + + +Process terminating with default action of signal 11 (SIGSEGV) + Access not within mapped region at address 0x........ + ... + If you believe this happened as a result of a stack + overflow in your program's main thread (unlikely but + possible), you can try to increase the size of the + main thread stack using the --main-stacksize= flag. + The main thread stack size used in this run was .... |
|
From: Will S. <wil...@vn...> - 2015-05-05 22:27:12
|
Add deep-D test .exp values for ppc64.
Depending on the system and tne endianness, there are variances in the
library reference, and/or to the specific line number in the library,
so a handful of new .exp files are here to cover those variations.
This change allows the ppc64 targets to pass the massif/deep-D test.
Signed-off-by: Will Schmidt <wil...@vn...>
---
massif/tests/Makefile.am | 1 +
massif/tests/deep-D.post.exp-ppc64 | 55 +++++++++++++++++++++++++++++++
massif/tests/deep-D.post.exp-ppc64-lib | 55 +++++++++++++++++++++++++++++++
massif/tests/deep-D.post.exp-ppc64-line | 55 +++++++++++++++++++++++++++++++
4 files changed, 166 insertions(+)
create mode 100644 massif/tests/deep-D.post.exp-ppc64
create mode 100644 massif/tests/deep-D.post.exp-ppc64-lib
create mode 100644 massif/tests/deep-D.post.exp-ppc64-line
diff --git a/massif/tests/Makefile.am b/massif/tests/Makefile.am
index 50fcf6c..0495afd 100644
--- a/massif/tests/Makefile.am
+++ b/massif/tests/Makefile.am
@@ -14,6 +14,7 @@ EXTRA_DIST = \
deep-B.post.exp deep-B.stderr.exp deep-B.vgtest \
deep-C.post.exp deep-C.stderr.exp deep-C.vgtest \
deep-D.post.exp deep-D.stderr.exp deep-D.vgtest \
+ deep-D.post.exp-ppc64 deep-D.post.exp-ppc64-lib deep-D.post.exp-ppc64-line \
culling1.stderr.exp culling1.vgtest \
culling2.stderr.exp culling2.vgtest \
custom_alloc.post.exp custom_alloc.stderr.exp custom_alloc.vgtest \
diff --git a/massif/tests/deep-D.post.exp-ppc64 b/massif/tests/deep-D.post.exp-ppc64
new file mode 100644
index 0000000..766072f
--- /dev/null
+++ b/massif/tests/deep-D.post.exp-ppc64
@@ -0,0 +1,55 @@
+--------------------------------------------------------------------------------
+Command: ./deep
+Massif arguments: --stacks=no --time-unit=B --alloc-fn=a1 --alloc-fn=a2 --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 --alloc-fn=main --depth=20 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+3.984^ :
+ | :
+ | @@@@@@@:
+ | @ :
+ | :::::::@ :
+ | : @ :
+ | :::::::: @ :
+ | : : @ :
+ | :::::::: : @ :
+ | : : : @ :
+ | :::::::: : : @ :
+ | : : : : @ :
+ | ::::::::: : : : @ :
+ | : : : : : @ :
+ | :::::::: : : : : @ :
+ | : : : : : : @ :
+ | :::::::: : : : : : @ :
+ | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
+ | : : : : : : : : @ :
+ 0 +----------------------------------------------------------------------->KB
+ 0 3.984
+
+Number of snapshots: 11
+ Detailed snapshots: [9]
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 408 408 400 8 0
+ 2 816 816 800 16 0
+ 3 1,224 1,224 1,200 24 0
+ 4 1,632 1,632 1,600 32 0
+ 5 2,040 2,040 2,000 40 0
+ 6 2,448 2,448 2,400 48 0
+ 7 2,856 2,856 2,800 56 0
+ 8 3,264 3,264 3,200 64 0
+ 9 3,672 3,672 3,600 72 0
+98.04% (3,600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->98.04% (3,600B) 0x........: generic_start_main.isra.0 (libc-start.c:285)
+ ->98.04% (3,600B) 0x........: (below main)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 10 4,080 4,080 4,000 80 0
diff --git a/massif/tests/deep-D.post.exp-ppc64-lib b/massif/tests/deep-D.post.exp-ppc64-lib
new file mode 100644
index 0000000..ce68e3b
--- /dev/null
+++ b/massif/tests/deep-D.post.exp-ppc64-lib
@@ -0,0 +1,55 @@
+--------------------------------------------------------------------------------
+Command: ./deep
+Massif arguments: --stacks=no --time-unit=B --alloc-fn=a1 --alloc-fn=a2 --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 --alloc-fn=main --depth=20 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+3.984^ :
+ | :
+ | @@@@@@@:
+ | @ :
+ | :::::::@ :
+ | : @ :
+ | :::::::: @ :
+ | : : @ :
+ | :::::::: : @ :
+ | : : : @ :
+ | :::::::: : : @ :
+ | : : : : @ :
+ | ::::::::: : : : @ :
+ | : : : : : @ :
+ | :::::::: : : : : @ :
+ | : : : : : : @ :
+ | :::::::: : : : : : @ :
+ | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
+ | : : : : : : : : @ :
+ 0 +----------------------------------------------------------------------->KB
+ 0 3.984
+
+Number of snapshots: 11
+ Detailed snapshots: [9]
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 408 408 400 8 0
+ 2 816 816 800 16 0
+ 3 1,224 1,224 1,200 24 0
+ 4 1,632 1,632 1,600 32 0
+ 5 2,040 2,040 2,000 40 0
+ 6 2,448 2,448 2,400 48 0
+ 7 2,856 2,856 2,800 56 0
+ 8 3,264 3,264 3,200 64 0
+ 9 3,672 3,672 3,600 72 0
+98.04% (3,600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->98.04% (3,600B) 0x........: generic_start_main.isra.0 (in /...libc...)
+ ->98.04% (3,600B) 0x........: (below main)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 10 4,080 4,080 4,000 80 0
diff --git a/massif/tests/deep-D.post.exp-ppc64-line b/massif/tests/deep-D.post.exp-ppc64-line
new file mode 100644
index 0000000..39b1216
--- /dev/null
+++ b/massif/tests/deep-D.post.exp-ppc64-line
@@ -0,0 +1,55 @@
+--------------------------------------------------------------------------------
+Command: ./deep
+Massif arguments: --stacks=no --time-unit=B --alloc-fn=a1 --alloc-fn=a2 --alloc-fn=a3 --alloc-fn=a4 --alloc-fn=a5 --alloc-fn=a6 --alloc-fn=a7 --alloc-fn=a8 --alloc-fn=a9 --alloc-fn=a10 --alloc-fn=a11 --alloc-fn=a12 --alloc-fn=main --depth=20 --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element
+ms_print arguments: massif.out
+--------------------------------------------------------------------------------
+
+
+ KB
+3.984^ :
+ | :
+ | @@@@@@@:
+ | @ :
+ | :::::::@ :
+ | : @ :
+ | :::::::: @ :
+ | : : @ :
+ | :::::::: : @ :
+ | : : : @ :
+ | :::::::: : : @ :
+ | : : : : @ :
+ | ::::::::: : : : @ :
+ | : : : : : @ :
+ | :::::::: : : : : @ :
+ | : : : : : : @ :
+ | :::::::: : : : : : @ :
+ | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
+ | : : : : : : : : @ :
+ 0 +----------------------------------------------------------------------->KB
+ 0 3.984
+
+Number of snapshots: 11
+ Detailed snapshots: [9]
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 0 0 0 0 0 0
+ 1 408 408 400 8 0
+ 2 816 816 800 16 0
+ 3 1,224 1,224 1,200 24 0
+ 4 1,632 1,632 1,600 32 0
+ 5 2,040 2,040 2,000 40 0
+ 6 2,448 2,448 2,400 48 0
+ 7 2,856 2,856 2,800 56 0
+ 8 3,264 3,264 3,200 64 0
+ 9 3,672 3,672 3,600 72 0
+98.04% (3,600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->98.04% (3,600B) 0x........: generic_start_main.isra.0 (libc-start.c:287)
+ ->98.04% (3,600B) 0x........: (below main)
+
+--------------------------------------------------------------------------------
+ n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
+--------------------------------------------------------------------------------
+ 10 4,080 4,080 4,000 80 0
|
|
From: Will S. <wil...@vn...> - 2015-05-05 22:27:07
|
Add a tc06_two_races_xml exp output for ppc64. This differs from the other .exp in that it removes the pthread_create_WRK entry from the expected output for ppc64. Note that the filter_stderr helper also removes the pthread_create_WRK content, so I believe this to be an extension of that change. Signed-off-by: Will Schmidt <wil...@vn...> --- helgrind/tests/Makefile.am | 1 helgrind/tests/tc06_two_races_xml.stderr.exp-ppc64 | 259 ++++++++++++++++++++ 2 files changed, 260 insertions(+) create mode 100644 helgrind/tests/tc06_two_races_xml.stderr.exp-ppc64 diff --git a/helgrind/tests/Makefile.am b/helgrind/tests/Makefile.am index 7ed3478..06078b1 100644 --- a/helgrind/tests/Makefile.am +++ b/helgrind/tests/Makefile.am @@ -65,6 +65,7 @@ EXTRA_DIST = \ tc06_two_races.stderr.exp \ tc06_two_races_xml.vgtest tc06_two_races_xml.stdout.exp \ tc06_two_races_xml.stderr.exp \ + tc06_two_races_xml.stderr.exp-ppc64 \ tc07_hbl1.vgtest tc07_hbl1.stdout.exp tc07_hbl1.stderr.exp \ tc08_hbl2.vgtest tc08_hbl2.stdout.exp tc08_hbl2.stderr.exp \ tc09_bad_unlock.vgtest tc09_bad_unlock.stdout.exp \ diff --git a/helgrind/tests/tc06_two_races_xml.stderr.exp-ppc64 b/helgrind/tests/tc06_two_races_xml.stderr.exp-ppc64 new file mode 100644 index 0000000..e75829e --- /dev/null +++ b/helgrind/tests/tc06_two_races_xml.stderr.exp-ppc64 @@ -0,0 +1,259 @@ +<?xml version="1.0"?> + +<valgrindoutput> + +<protocolversion>4</protocolversion> +<protocoltool>helgrind</protocoltool> + +<preamble> + <line>Helgrind, a thread error detector</line> + <line>Copyright (C) XXXX-YYYY, and GNU GPL'd, by OpenWorks LLP et al.</line> + <line>Using Valgrind-X.Y.X and LibVEX; rerun with -h for copyright info</line> + <line>Command: ./tc06_two_races</line> +</preamble> + +<pid>...</pid> +<ppid>...</ppid> +<tool>helgrind</tool> + +<args> + <vargv> + <exe>...</exe> + <arg>--command-line-only=yes</arg> + <arg>--memcheck:leak-check=no</arg> + <arg>--tool=helgrind</arg> + <arg>--read-var-info=yes</arg> + <arg>--xml=yes</arg> + <arg>--xml-fd=2</arg> + <arg>--log-file=/dev/null</arg> + </vargv> + <argv> + <exe>...</exe> + </argv> +</args> + +<status> + <state>RUNNING</state> + <time>...</time> +</status> + +<announcethread> + <hthreadid>1</hthreadid> + <isrootthread></isrootthread> +</announcethread> + +<announcethread> + <hthreadid>2</hthreadid> + <stack> + <frame>...</frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>pthread_create@*</fn> + <dir>...</dir> + <file>hg_intercepts.c</file> + <line>...</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>tc06_two_races.c</file> + <line>26</line> + </frame> + </stack> +</announcethread> + +<error> + <unique>...</unique> + <tid>...</tid> + <kind>Race</kind> + <xwhat> + <text>Possible data race during read of size 4 at 0x........ by thread #x</text> + <hthreadid>1</hthreadid> + </xwhat> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>tc06_two_races.c</file> + <line>31</line> + </frame> + </stack> + <xauxwhat> + <text>This conflicts with a previous write of size 4 by thread #x</text> + <hthreadid>2</hthreadid> + </xauxwhat> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>child_fn</fn> + <dir>...</dir> + <file>tc06_two_races.c</file> + <line>14</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>mythread_wrapper</fn> + <dir>...</dir> + <file>hg_intercepts.c</file> + <line>...</line> + </frame> + <frame>...</frame> + </stack> + <auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat> + <xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>9</line> </xauxwhat> +</error> + +<error> + <unique>...</unique> + <tid>...</tid> + <kind>Race</kind> + <xwhat> + <text>Possible data race during write of size 4 at 0x........ by thread #x</text> + <hthreadid>1</hthreadid> + </xwhat> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>tc06_two_races.c</file> + <line>31</line> + </frame> + </stack> + <xauxwhat> + <text>This conflicts with a previous write of size 4 by thread #x</text> + <hthreadid>2</hthreadid> + </xauxwhat> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>child_fn</fn> + <dir>...</dir> + <file>tc06_two_races.c</file> + <line>14</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>mythread_wrapper</fn> + <dir>...</dir> + <file>hg_intercepts.c</file> + <line>...</line> + </frame> + <frame>...</frame> + </stack> + <auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat> + <xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>9</line> </xauxwhat> +</error> + +<error> + <unique>...</unique> + <tid>...</tid> + <kind>Race</kind> + <xwhat> + <text>Possible data race during read of size 4 at 0x........ by thread #x</text> + <hthreadid>1</hthreadid> + </xwhat> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>tc06_two_races.c</file> + <line>35</line> + </frame> + </stack> + <xauxwhat> + <text>This conflicts with a previous write of size 4 by thread #x</text> + <hthreadid>2</hthreadid> + </xauxwhat> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>child_fn</fn> + <dir>...</dir> + <file>tc06_two_races.c</file> + <line>18</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>mythread_wrapper</fn> + <dir>...</dir> + <file>hg_intercepts.c</file> + <line>...</line> + </frame> + <frame>...</frame> + </stack> + <auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat> + <xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>9</line> </xauxwhat> +</error> + +<error> + <unique>...</unique> + <tid>...</tid> + <kind>Race</kind> + <xwhat> + <text>Possible data race during write of size 4 at 0x........ by thread #x</text> + <hthreadid>1</hthreadid> + </xwhat> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>main</fn> + <dir>...</dir> + <file>tc06_two_races.c</file> + <line>35</line> + </frame> + </stack> + <xauxwhat> + <text>This conflicts with a previous write of size 4 by thread #x</text> + <hthreadid>2</hthreadid> + </xauxwhat> + <stack> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>child_fn</fn> + <dir>...</dir> + <file>tc06_two_races.c</file> + <line>18</line> + </frame> + <frame> + <ip>0x........</ip> + <obj>...</obj> + <fn>mythread_wrapper</fn> + <dir>...</dir> + <file>hg_intercepts.c</file> + <line>...</line> + </frame> + <frame>...</frame> + </stack> + <auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat> + <xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>9</line> </xauxwhat> +</error> + + +<status> + <state>FINISHED</state> + <time>...</time> +</status> + +<errorcounts>...</errorcounts> + +<suppcounts>...</suppcounts> + +</valgrindoutput> + |
|
From: Will S. <wil...@vn...> - 2015-05-05 22:27:06
|
Update the pth_create_chain vgtest prereq to handle the ppc64le architecture in the same way as ppc64 (BE). Signed-off-by: Will Schmidt <wil...@vn...> --- drd/tests/pth_create_chain.vgtest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drd/tests/pth_create_chain.vgtest b/drd/tests/pth_create_chain.vgtest index b8c2422..5fc5ced 100644 --- a/drd/tests/pth_create_chain.vgtest +++ b/drd/tests/pth_create_chain.vgtest @@ -1,2 +1,2 @@ -prereq: ./supported_libpthread && [ `uname -m` != ppc ] && [ `uname -m` != ppc64 ] +prereq: ./supported_libpthread && [ `uname -m` != ppc ] && [ `uname -m` != ppc64 ] && [ `uname -m` != ppc64le ] prog: pth_create_chain 100 |
|
From: Will S. <wil...@vn...> - 2015-05-05 22:27:06
|
Update the massif/big-alloc test for ppc64*. In comparision to the existing .exp files, a few of the values generated on ppc64* are simply off. I expect the generated values are OK, but I've not done a deep dive to fully verify. This .exp allows the ppc64 targets to pass the test. Signed-off-by: Will Schmidt <wil...@vn...> --- massif/tests/Makefile.am | 2 + massif/tests/big-alloc.post.exp-ppc64 | 54 +++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 massif/tests/big-alloc.post.exp-ppc64 diff --git a/massif/tests/Makefile.am b/massif/tests/Makefile.am index 5017543..50fcf6c 100644 --- a/massif/tests/Makefile.am +++ b/massif/tests/Makefile.am @@ -8,7 +8,7 @@ EXTRA_DIST = \ alloc-fns-B.post.exp alloc-fns-B.stderr.exp alloc-fns-B.vgtest \ basic.post.exp basic.stderr.exp basic.vgtest \ basic2.post.exp basic2.stderr.exp basic2.vgtest \ - big-alloc.post.exp big-alloc.post.exp-64bit \ + big-alloc.post.exp big-alloc.post.exp-64bit big-alloc.post.exp-ppc64 \ big-alloc.stderr.exp big-alloc.vgtest \ deep-A.post.exp deep-A.stderr.exp deep-A.vgtest \ deep-B.post.exp deep-B.stderr.exp deep-B.vgtest \ diff --git a/massif/tests/big-alloc.post.exp-ppc64 b/massif/tests/big-alloc.post.exp-ppc64 new file mode 100644 index 0000000..1d2c906 --- /dev/null +++ b/massif/tests/big-alloc.post.exp-ppc64 @@ -0,0 +1,54 @@ +-------------------------------------------------------------------------------- +Command: ./big-alloc +Massif arguments: --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element +ms_print arguments: massif.out +-------------------------------------------------------------------------------- + + + MB +100.6^ : + | : + | @@@@@@@: + | @ : + | :::::::@ : + | : @ : + | :::::::: @ : + | : : @ : + | :::::::: : @ : + | : : : @ : + | :::::::: : : @ : + | : : : : @ : + | ::::::::: : : : @ : + | : : : : : @ : + | :::::::: : : : : @ : + | : : : : : : @ : + | :::::::: : : : : : @ : + | : : : : : : : @ : + | :::::::: : : : : : : @ : + | : : : : : : : : @ : + 0 +----------------------------------------------------------------------->MB + 0 100.6 + +Number of snapshots: 11 + Detailed snapshots: [9] + +-------------------------------------------------------------------------------- + n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B) +-------------------------------------------------------------------------------- + 0 0 0 0 0 0 + 1 10,551,240 10,551,240 10,485,760 65,480 0 + 2 21,102,480 21,102,480 20,971,520 130,960 0 + 3 31,653,720 31,653,720 31,457,280 196,440 0 + 4 42,204,960 42,204,960 41,943,040 261,920 0 + 5 52,756,200 52,756,200 52,428,800 327,400 0 + 6 63,307,440 63,307,440 62,914,560 392,880 0 + 7 73,858,680 73,858,680 73,400,320 458,360 0 + 8 84,409,920 84,409,920 83,886,080 523,840 0 + 9 94,961,160 94,961,160 94,371,840 589,320 0 +99.38% (94,371,840B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc. +->99.38% (94,371,840B) 0x........: main (big-alloc.c:12) + +-------------------------------------------------------------------------------- + n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B) +-------------------------------------------------------------------------------- + 10 105,512,400 105,512,400 104,857,600 654,800 0 |
|
From: Will S. <wil...@vn...> - 2015-05-05 22:26:55
|
Update ifdefs around the bogus-LR-value-handling code to allow ppc64le to
behave as ppc64 (BE) does.
This fixes the overlap test case, where the stack unwinding code was
otherwise coming up with bad instruction pointers.
Signed-off-by: Will Schmidt <wil...@vn...>
---
coregrind/m_stacktrace.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/coregrind/m_stacktrace.c b/coregrind/m_stacktrace.c
index c0d4c11..b2d1886 100644
--- a/coregrind/m_stacktrace.c
+++ b/coregrind/m_stacktrace.c
@@ -708,7 +708,7 @@ UInt VG_(get_StackTrace_wrk) ( ThreadId tid_if_known,
redirs_used = 0;
# endif
-# if defined(VG_PLAT_USES_PPCTOC)
+# if defined(VG_PLAT_USES_PPCTOC) || defined (VGP_ppc64le_linux)
/* Deal with bogus LR values caused by function
interception/wrapping on ppc-TOC platforms; see comment on
similar code a few lines further down. */
|
|
From: Will S. <wil...@vn...> - 2015-05-05 22:26:50
|
Adjust the badjump2 test for ppc64le/ABIV2. Under the ABIV2 there
is no function descriptor, so the fn[] setup does not apply.
This fixes the badjump2 test failure as seen on ppc64le.
Signed-off-by: Will Schmidt <wil...@vn...>
---
memcheck/tests/badjump2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/memcheck/tests/badjump2.c b/memcheck/tests/badjump2.c
index ad7329f..7e09af5 100644
--- a/memcheck/tests/badjump2.c
+++ b/memcheck/tests/badjump2.c
@@ -35,7 +35,7 @@ int main(void)
if (setjmp(myjmpbuf) == 0) {
// Jump to zero; will cause seg fault
-#if defined(__powerpc64__)
+#if defined(__powerpc64__) && (_CALL_ELF != 2)
unsigned long int fn[3];
fn[0] = 0;
fn[1] = 0;
|
|
From: Will S. <wil...@vn...> - 2015-05-05 22:26:48
|
A handful of patches intended to clean up the valgrind regtest results as seen on powerpc platforms. I've locally been running against Fedora20 and Fedora21 installations, on Power6, Power7, and Power8 (LE and BE) platforms. With these changes in place, the tests are significantly cleaned up. At a high level, there are several spots where some ifdiffery needed to be updated to handle ppc64LE versus BE, and some new .exp files to handle the output generated on ppc64*. Thanks, -Will |
|
From: <sv...@va...> - 2015-05-05 20:33:29
|
Author: florian
Date: Tue May 5 21:33:17 2015
New Revision: 15182
Log:
Merge from trunk.
Added:
branches/ASPACEM_TWEAKS/docs/internals/qemu-aarch64-linux-HOWTO.txt
- copied unchanged from r15181, trunk/docs/internals/qemu-aarch64-linux-HOWTO.txt
branches/ASPACEM_TWEAKS/docs/internals/qemu-mips64-linux-HOWTO.txt
- copied unchanged from r15181, trunk/docs/internals/qemu-mips64-linux-HOWTO.txt
Removed:
branches/ASPACEM_TWEAKS/docs/internals/aarch64-linux-on-qemu-HOWTO.txt
Modified:
branches/ASPACEM_TWEAKS/ (props changed)
branches/ASPACEM_TWEAKS/NEWS
branches/ASPACEM_TWEAKS/coregrind/m_aspacemgr/aspacemgr-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_coredump/coredump-elf.c
branches/ASPACEM_TWEAKS/coregrind/m_coredump/coredump-macho.c
branches/ASPACEM_TWEAKS/coregrind/m_debugger.c
branches/ASPACEM_TWEAKS/coregrind/m_debuginfo/debuginfo.c
branches/ASPACEM_TWEAKS/coregrind/m_errormgr.c
branches/ASPACEM_TWEAKS/coregrind/m_execontext.c
branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/m_gdbserver.c
branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/server.c
branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/server.h
branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-darwin.c
branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_libcassert.c
branches/ASPACEM_TWEAKS/coregrind/m_machine.c
branches/ASPACEM_TWEAKS/coregrind/m_main.c
branches/ASPACEM_TWEAKS/coregrind/m_mallocfree.c
branches/ASPACEM_TWEAKS/coregrind/m_scheduler/scheduler.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-amd64-darwin.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-amd64-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-arm-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-arm64-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-mips32-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-mips64-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-ppc32-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-ppc64-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-s390x-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-tilegx-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-x86-darwin.c
branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-x86-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_signals.c
branches/ASPACEM_TWEAKS/coregrind/m_stacktrace.c
branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c
branches/ASPACEM_TWEAKS/coregrind/m_threadstate.c
branches/ASPACEM_TWEAKS/coregrind/m_translate.c
branches/ASPACEM_TWEAKS/coregrind/m_transtab.c
branches/ASPACEM_TWEAKS/coregrind/m_xarray.c
branches/ASPACEM_TWEAKS/darwin12.supp
branches/ASPACEM_TWEAKS/docs/Makefile.am
branches/ASPACEM_TWEAKS/drd/tests/Makefile.am
branches/ASPACEM_TWEAKS/exp-bbv/tests/Makefile.am
branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/complex_rep.vgtest
branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/fldcw_check.vgtest
branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/million.vgtest
branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/rep_prefix.vgtest
branches/ASPACEM_TWEAKS/helgrind/hg_main.c
branches/ASPACEM_TWEAKS/helgrind/libhb_core.c
branches/ASPACEM_TWEAKS/include/pub_tool_xarray.h
branches/ASPACEM_TWEAKS/memcheck/mc_translate.c
branches/ASPACEM_TWEAKS/none/tests/libvex_test.c
branches/ASPACEM_TWEAKS/perf/memrw.c
Modified: branches/ASPACEM_TWEAKS/NEWS
==============================================================================
--- branches/ASPACEM_TWEAKS/NEWS (original)
+++ branches/ASPACEM_TWEAKS/NEWS Tue May 5 21:33:17 2015
@@ -157,6 +157,7 @@
345394 Fix memcheck/tests/strchr on OS X
345637 Fix memcheck/tests/sendmsg on OS X
345695 Add POWERPC support for AT_DCACHESIZE and HWCAP2
+345824 Fix aspacem segment mismatch: seen with none/tests/bigcode
345887 Fix an assertion in the address space manager
346267 Compiler warnings for PPC64 code on call to LibVEX_GuestPPC64_get_XER()
and LibVEX_GuestPPC64_get_CR()
@@ -168,6 +169,7 @@
346474 PPC64 Power 8, spr TEXASRU register not supported
346487 Compiler generates "note" about a future ABI change for PPC64
346801 Fix link error on OS X: _vgModuleLocal_sf_maybe_extend_stack
+347151 Fix suppression for pthread_rwlock_init on OS X 10.8
n-i-bz Provide implementations of certain compiler builtins to support
compilers who may not provide those
n-i-bz Old STABS code is still being compiled, but never used. Remove it.
Modified: branches/ASPACEM_TWEAKS/coregrind/m_aspacemgr/aspacemgr-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_aspacemgr/aspacemgr-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_aspacemgr/aspacemgr-linux.c Tue May 5 21:33:17 2015
@@ -815,8 +815,9 @@
# endif
/* Some kernels on s390 provide 'r' permission even when it was not
- explicitly requested. It seems that 'x' permission implies 'r'. */
-# if defined(VGA_s390x)
+ explicitly requested. It seems that 'x' permission implies 'r'.
+ This behaviour also occurs on OS X. */
+# if defined(VGA_s390x) || defined(VGO_darwin)
sloppyRcheck = True;
# else
sloppyRcheck = False;
Modified: branches/ASPACEM_TWEAKS/coregrind/m_coredump/coredump-elf.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_coredump/coredump-elf.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_coredump/coredump-elf.c Tue May 5 21:33:17 2015
@@ -42,7 +42,6 @@
#include "pub_core_libcproc.h" // VG_(geteuid), VG_(getegid)
#include "pub_core_libcassert.h" // VG_(exit), vg_assert
#include "pub_core_mallocfree.h" // VG_(malloc), VG_(free)
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_xarray.h"
#include "pub_core_clientstate.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_coredump/coredump-macho.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_coredump/coredump-macho.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_coredump/coredump-macho.c Tue May 5 21:33:17 2015
@@ -33,7 +33,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_coredump.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
void VG_(make_coredump)(ThreadId tid, const vki_siginfo_t *si, ULong max_size)
Modified: branches/ASPACEM_TWEAKS/coregrind/m_debugger.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_debugger.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_debugger.c Tue May 5 21:33:17 2015
@@ -30,7 +30,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
-#include "pub_core_libcsetjmp.h"
#include "pub_core_threadstate.h"
#include "pub_core_xarray.h"
#include "pub_core_clientstate.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_debuginfo/debuginfo.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_debuginfo/debuginfo.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_debuginfo/debuginfo.c Tue May 5 21:33:17 2015
@@ -32,7 +32,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_debuginfo.h" /* self */
#include "pub_core_demangle.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_errormgr.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_errormgr.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_errormgr.c Tue May 5 21:33:17 2015
@@ -30,7 +30,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
-#include "pub_core_libcsetjmp.h"
#include "pub_core_threadstate.h" // For VG_N_THREADS
#include "pub_core_debugger.h"
#include "pub_core_debuginfo.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_execontext.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_execontext.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_execontext.c Tue May 5 21:33:17 2015
@@ -36,8 +36,6 @@
#include "pub_core_options.h"
#include "pub_core_stacktrace.h"
#include "pub_core_machine.h" // VG_(get_IP)
-#include "pub_core_vki.h" // To keep pub_core_threadstate.h happy
-#include "pub_core_libcsetjmp.h" // Ditto
#include "pub_core_threadstate.h" // VG_(is_valid_tid)
#include "pub_core_execontext.h" // self
Modified: branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/m_gdbserver.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/m_gdbserver.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/m_gdbserver.c Tue May 5 21:33:17 2015
@@ -33,12 +33,9 @@
#include "pub_core_libcproc.h"
#include "pub_core_libcprint.h"
#include "pub_core_mallocfree.h"
-#include "pub_core_libcsetjmp.h"
#include "pub_core_threadstate.h"
#include "pub_core_gdbserver.h"
#include "pub_core_options.h"
-#include "pub_core_libcsetjmp.h"
-#include "pub_core_threadstate.h"
#include "pub_core_transtab.h"
#include "pub_core_hashtable.h"
#include "pub_core_xarray.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/server.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/server.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/server.c Tue May 5 21:33:17 2015
@@ -157,7 +157,9 @@
VG_(message)(Vg_DebugMsg,
"------ Valgrind's internal memory use stats follow ------\n" );
VG_(sanity_check_malloc_all)();
- VG_(message)(Vg_DebugMsg, "------\n" );
+ VG_(message)(Vg_DebugMsg,
+ "------ %llu bytes have already been mmap-ed ANONYMOUS.\n",
+ VG_(am_get_anonsize_total)());
VG_(print_all_arena_stats)();
if (VG_(clo_profile_heap))
VG_(print_arena_cc_analysis) ();
@@ -384,7 +386,7 @@
VG_(gdbserver_status_output)();
break;
case 4: /* memory */
- VG_(printf) ("%llu bytes have already been allocated.\n",
+ VG_(printf) ("%llu bytes have already been mmap-ed ANONYMOUS.\n",
VG_(am_get_anonsize_total)());
VG_(print_all_arena_stats) ();
if (VG_(clo_profile_heap))
Modified: branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/server.h
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/server.h (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_gdbserver/server.h Tue May 5 21:33:17 2015
@@ -40,7 +40,6 @@
#include "pub_core_libcassert.h"
#include "pub_core_libcbase.h"
#include "pub_core_options.h"
-#include "pub_core_libcsetjmp.h"
#include "pub_core_threadstate.h"
#include "pub_core_gdbserver.h"
#include "pub_core_vki.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-darwin.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-darwin.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-darwin.c Tue May 5 21:33:17 2015
@@ -47,7 +47,6 @@
#include "pub_core_ume.h"
#include "pub_core_options.h"
#include "pub_core_tooliface.h" /* VG_TRACK */
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h" /* ThreadArchState */
#include "priv_initimg_pathscan.h"
#include "pub_core_initimg.h" /* self */
Modified: branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-linux.c Tue May 5 21:33:17 2015
@@ -50,7 +50,6 @@
#include "pub_core_syscall.h"
#include "pub_core_signals.h" /* VG_(extend_stack) */
#include "pub_core_tooliface.h" /* VG_TRACK */
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h" /* ThreadArchState */
#include "priv_initimg_pathscan.h"
#include "pub_core_initimg.h" /* self */
Modified: branches/ASPACEM_TWEAKS/coregrind/m_libcassert.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_libcassert.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_libcassert.c Tue May 5 21:33:17 2015
@@ -31,7 +31,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
-#include "pub_core_libcsetjmp.h" // to keep threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_gdbserver.h"
#include "pub_core_aspacemgr.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_machine.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_machine.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_machine.c Tue May 5 21:33:17 2015
@@ -29,7 +29,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
-#include "pub_core_libcsetjmp.h" // setjmp facilities
#include "pub_core_threadstate.h"
#include "pub_core_libcassert.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_main.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_main.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_main.c Tue May 5 21:33:17 2015
@@ -31,7 +31,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_xarray.h"
#include "pub_core_clientstate.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_mallocfree.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_mallocfree.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_mallocfree.c Tue May 5 21:33:17 2015
@@ -38,7 +38,6 @@
#include "pub_core_libcprint.h"
#include "pub_core_mallocfree.h"
#include "pub_core_options.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h" // For VG_INVALID_THREADID
#include "pub_core_gdbserver.h"
#include "pub_core_transtab.h"
@@ -759,7 +758,7 @@
"\n"
" Valgrind's memory management: out of memory:\n"
" %s's request for %llu bytes failed.\n"
- " %llu bytes have already been allocated.\n"
+ " %llu bytes have already been mmap-ed ANONYMOUS.\n"
" Valgrind cannot continue. Sorry.\n\n"
" There are several possible reasons for this.\n"
" - You have some kind of memory limit in place. Look at the\n"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_scheduler/scheduler.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_scheduler/scheduler.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_scheduler/scheduler.c Tue May 5 21:33:17 2015
@@ -62,7 +62,6 @@
#include "pub_core_debuglog.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h" // __NR_sched_yield
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_clientstate.h"
#include "pub_core_aspacemgr.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-amd64-darwin.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-amd64-darwin.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-amd64-darwin.c Tue May 5 21:33:17 2015
@@ -34,7 +34,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-amd64-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-amd64-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-amd64-linux.c Tue May 5 21:33:17 2015
@@ -33,7 +33,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-arm-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-arm-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-arm-linux.c Tue May 5 21:33:17 2015
@@ -38,7 +38,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-arm64-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-arm64-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-arm64-linux.c Tue May 5 21:33:17 2015
@@ -33,7 +33,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-mips32-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-mips32-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-mips32-linux.c Tue May 5 21:33:17 2015
@@ -34,7 +34,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-mips64-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-mips64-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-mips64-linux.c Tue May 5 21:33:17 2015
@@ -34,7 +34,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
-#include "pub_core_libcsetjmp.h" /* to keep _threadstate.h happy */
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-ppc32-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-ppc32-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-ppc32-linux.c Tue May 5 21:33:17 2015
@@ -36,7 +36,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-ppc64-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-ppc64-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-ppc64-linux.c Tue May 5 21:33:17 2015
@@ -36,7 +36,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-s390x-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-s390x-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-s390x-linux.c Tue May 5 21:33:17 2015
@@ -33,7 +33,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-tilegx-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-tilegx-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-tilegx-linux.c Tue May 5 21:33:17 2015
@@ -35,7 +35,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-x86-darwin.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-x86-darwin.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-x86-darwin.c Tue May 5 21:33:17 2015
@@ -34,7 +34,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-x86-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-x86-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_sigframe/sigframe-x86-linux.c Tue May 5 21:33:17 2015
@@ -33,7 +33,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_aspacemgr.h" /* find_segment */
#include "pub_core_libcbase.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_signals.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_signals.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_signals.c Tue May 5 21:33:17 2015
@@ -203,7 +203,6 @@
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
#include "pub_core_debuglog.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_xarray.h"
#include "pub_core_clientstate.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_stacktrace.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_stacktrace.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_stacktrace.c Tue May 5 21:33:17 2015
@@ -30,7 +30,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_debuginfo.h" // XXX: circular dependency
#include "pub_core_aspacemgr.h" // For VG_(is_addressable)()
Modified: branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c Tue May 5 21:33:17 2015
@@ -1220,10 +1220,7 @@
and that segment is writable. */
NSegment const * seg2;
- if (VG_(brk_limit) > VG_(brk_base))
- seg2 = VG_(am_find_nsegment)( VG_(brk_limit)-1 );
- else
- seg2 = VG_(am_find_nsegment)( VG_(brk_limit) );
+ seg2 = VG_(am_find_nsegment)( VG_(brk_limit) - 1 );
vg_assert(seg2);
if (seg == seg2 && seg->hasW)
Modified: branches/ASPACEM_TWEAKS/coregrind/m_threadstate.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_threadstate.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_threadstate.c Tue May 5 21:33:17 2015
@@ -30,7 +30,6 @@
#include "pub_core_basics.h"
#include "pub_core_vki.h"
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h"
#include "pub_core_mallocfree.h" // VG_(malloc)
#include "pub_core_libcassert.h"
Modified: branches/ASPACEM_TWEAKS/coregrind/m_translate.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_translate.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_translate.c Tue May 5 21:33:17 2015
@@ -53,7 +53,6 @@
#include "pub_core_dispatch.h" // VG_(run_innerloop__dispatch_{un}profiled)
// VG_(run_a_noredir_translation__return_point)
-#include "pub_core_libcsetjmp.h" // to keep _threadstate.h happy
#include "pub_core_threadstate.h" // VexGuestArchState
#include "pub_core_trampoline.h" // VG_(ppctoc_magic_redirect_return_stub)
Modified: branches/ASPACEM_TWEAKS/coregrind/m_transtab.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_transtab.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_transtab.c Tue May 5 21:33:17 2015
@@ -569,6 +569,7 @@
XArray *var = VG_(newXA)(ttaux_malloc, "transtab.IEA__add",
ttaux_free,
sizeof(InEdge));
+ VG_(hintSizeXA) (var, iea->n_fixed + 1);
UWord i;
for (i = 0; i < iea->n_fixed; i++) {
VG_(addToXA)(var, &iea->edges.fixed[i]);
@@ -649,6 +650,7 @@
XArray *var = VG_(newXA)(ttaux_malloc, "transtab.OEA__add",
ttaux_free,
sizeof(OutEdge));
+ VG_(hintSizeXA) (var, oea->n_fixed+1);
UWord i;
for (i = 0; i < oea->n_fixed; i++) {
VG_(addToXA)(var, &oea->edges.fixed[i]);
Modified: branches/ASPACEM_TWEAKS/coregrind/m_xarray.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_xarray.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_xarray.c Tue May 5 21:33:17 2015
@@ -133,6 +133,24 @@
return ((char*)xa->arr) + n * xa->elemSzB;
}
+void VG_(hintSizeXA) ( XArray* xa, Word n)
+{
+ /* Currently, we support giving a size hint only just after the
+ call to VG_(newXA). So, we could instead have done
+ a function VG_(newXA_with_SizeHint). The separate VG_(hintSizeXA)
+ function is however chosen as we might one day accept to
+ give a size hint after having added elements. That could be useful
+ for reducing the size of an xarray to just the size currently needed
+ or to give a size hint when it is known that a lot more elements
+ are needed or when the final nr of elements is known. */
+ vg_assert(xa);
+ vg_assert(xa->usedsizeE == 0);
+ vg_assert(xa->totsizeE == 0);
+ vg_assert(!xa->arr);
+ xa->arr = xa->alloc_fn(xa->cc, n * xa->elemSzB);
+ xa->totsizeE = n;
+}
+
static inline void ensureSpaceXA ( XArray* xa )
{
if (xa->usedsizeE == xa->totsizeE) {
Modified: branches/ASPACEM_TWEAKS/darwin12.supp
==============================================================================
--- branches/ASPACEM_TWEAKS/darwin12.supp (original)
+++ branches/ASPACEM_TWEAKS/darwin12.supp Tue May 5 21:33:17 2015
@@ -237,6 +237,13 @@
fun:*ImageLoaderMachO*doModInitFunctions*
}
+# See https://bugs.kde.org/show_bug.cgi?id=196528
+{
+ macos-__pthread_rwlock_init-see-our-bug-196528
+ Memcheck:Cond
+ fun:pthread_rwlock_init
+}
+
#########################################################
## Leaks (apparently) in even hello-world style programs
Modified: branches/ASPACEM_TWEAKS/docs/Makefile.am
==============================================================================
--- branches/ASPACEM_TWEAKS/docs/Makefile.am (original)
+++ branches/ASPACEM_TWEAKS/docs/Makefile.am Tue May 5 21:33:17 2015
@@ -30,7 +30,6 @@
internals/3_9_BUGSTATUS.txt \
internals/3_10_BUGSTATUS.txt \
internals/MERGE_3_10_1.txt \
- internals/aarch64-linux-on-qemu-HOWTO.txt
internals/arm_thumb_notes_gdbserver.txt \
internals/avx-notes.txt \
internals/BIG_APP_NOTES.txt \
@@ -48,6 +47,8 @@
internals/porting-HOWTO.txt \
internals/mpi2entries.txt \
internals/porting-to-ARM.txt \
+ internals/qemu-aarch64-linux-HOWTO.txt \
+ internals/qemu-mips64-linux-HOWTO.txt \
internals/register-uses.txt \
internals/release-HOWTO.txt \
internals/segments-seginfos.txt \
Removed: branches/ASPACEM_TWEAKS/docs/internals/aarch64-linux-on-qemu-HOWTO.txt
==============================================================================
--- branches/ASPACEM_TWEAKS/docs/internals/aarch64-linux-on-qemu-HOWTO.txt (original)
+++ branches/ASPACEM_TWEAKS/docs/internals/aarch64-linux-on-qemu-HOWTO.txt (removed)
@@ -1,102 +0,0 @@
-
-How to install and configure a QEMU aarch64-linux installation.
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Last updated 30 April 2015
-
-This gives a fairly usable, and not entirely slow, arm64-linux
-install. It has the advantage that the idle loop works right and so
-when the guest becomes idle, qemu uses only very little host cpu, so
-you can leave the guest idling for long periods without bad
-performance effects on the host.
-
-More or less following
-https://gmplib.org/~tege/qemu.html, section 14 (for arm64)
-
-Build qemu-2.2.1 with --target-list including aarch64-softmmu
-
-mkdir Arm64-2
-cd Arm64-2
-
-wget http://d-i.debian.org/daily-images/arm64/daily/netboot/debian-installer/arm64/linux
-
-wget http://d-i.debian.org/daily-images/arm64/daily/netboot/debian-installer/arm64/initrd.gz
-
-# Note. 6G is easily enough to install debian and do a build of Valgrind.
-# If you envisage needing more space, now is the time to choose a larger
-# number.
-
-/path/to/Qemu221/bin/qemu-img create disk6G.img 6G
-
-/path/to/Qemu221/bin/qemu-system-aarch64 \
- -M virt -cpu cortex-a57 -m 256 \
- -drive file=disk6G.img,if=none,id=blk -device virtio-blk-device,drive=blk \
- -net user,hostfwd=tcp::5555-:22 -device virtio-net-device,vlan=0 \
- -kernel linux \
- -initrd initrd.gz \
- -append "console=ttyAMA0 --" \
- -nographic
-
-Do an install, be as vanilla as possible, allow it to create a user
-"username", and do not ask it to install any extra software. But,
-when you get to here
-
- ââââââââââââââââââââ⤠[!!] Finish the installation ââââââââââââââââââââââ
- â â
- ââ Installation complete â
- ââ Installation is complete, so it is time to boot into your new system. â
- ââ Make sure to remove the installation media (CD-ROM, floppies), so â
- ââ that you boot into the new system rather than restarting the â
- ââ installation. â
- ââ â
- ââ <Go Back> <Continue> â
- â â
- âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
-
-do "Go Back"
-then in the next menu "Execute a shell", "Continue"
-
-This gives you a root shell in the new VM. In that shell:
-
- mount -t proc proc /target/proc
- mount --rbind /sys /target/sys
- mount --rbind /dev /target/dev
- chroot /target bash
- /etc/init.d/ssh start
- mv /boot/initrd.img-3.16.0-4-arm64 /boot/initrd.img-3.16.0-4-arm64
- echo virtio-mmio >>/etc/initramfs-tools/modules
- /usr/sbin/update-initramfs -c -k 3.16.0-4-arm64
-
-Then on the host, copy out the files that the above created.
-
-cd Arm64-2
-ssh -p 5555 username@localhost \
- "tar -c -f - --exclude=lost+found /boot" | tar xf -
-
-Now back in the VM, we can finish the installation.
-
- exit
- exit
- Select "Finish the installation"
- Continue
-
-When it reboots, kill qemu from another shell, else it will try to reinstall.
-
-Now start the installation:
-
-/path/to/Qemu221/bin/qemu-system-aarch64 -M virt \
- -cpu cortex-a57 -m 1024 -drive file=disk6G.img,if=none,id=blk \
- -device virtio-blk-device,drive=blk -net user,hostfwd=tcp::5555-:22 \
- -device virtio-net-device,vlan=0 -kernel boot/vmlinuz-3.16.0-4-arm64 \
- -initrd boot/initrd.img-3.16.0-4-arm64 \
- -append "root=/dev/vda2 rw console=ttyAMA0 --" -nographic
-
-Now you can ssh into the VM and install stuff as usual:
-
-ssh -XC -p 5555 username@localhost
-
- (on the guest)
- become root
- apt-get install make gcc g++ automake autoconf emacs subversion gdb
-
-Hack on, etc.
Modified: branches/ASPACEM_TWEAKS/drd/tests/Makefile.am
==============================================================================
--- branches/ASPACEM_TWEAKS/drd/tests/Makefile.am (original)
+++ branches/ASPACEM_TWEAKS/drd/tests/Makefile.am Tue May 5 21:33:17 2015
@@ -373,7 +373,6 @@
sem_as_mutex \
sem_open \
sigalrm \
- thread_name \
threaded-fork \
trylock \
unit_bitmap \
@@ -417,7 +416,7 @@
if HAVE_PTHREAD_BARRIER
check_PROGRAMS += matinv pth_barrier pth_barrier_race pth_barrier_reinit \
- pth_barrier_thr_cr
+ pth_barrier_thr_cr thread_name
endif
if HAVE_PTHREAD_CREATE_GLIBC_2_0
Modified: branches/ASPACEM_TWEAKS/exp-bbv/tests/Makefile.am
==============================================================================
--- branches/ASPACEM_TWEAKS/exp-bbv/tests/Makefile.am (original)
+++ branches/ASPACEM_TWEAKS/exp-bbv/tests/Makefile.am Tue May 5 21:33:17 2015
@@ -5,8 +5,10 @@
# Platform-specific tests
if VGCONF_ARCHS_INCLUDE_X86
+if !VGCONF_OS_IS_DARWIN
SUBDIRS += x86
endif
+endif
if VGCONF_PLATFORMS_INCLUDE_X86_LINUX
SUBDIRS += x86-linux
endif
Modified: branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/complex_rep.vgtest
==============================================================================
--- branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/complex_rep.vgtest (original)
+++ branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/complex_rep.vgtest Tue May 5 21:33:17 2015
@@ -1,3 +1,4 @@
+prereq: test -e complex_rep
prog: complex_rep
vgopts: --interval-size=100000 --bb-out-file=complex_rep.out.bb
cleanup: rm complex_rep.out.bb
Modified: branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/fldcw_check.vgtest
==============================================================================
--- branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/fldcw_check.vgtest (original)
+++ branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/fldcw_check.vgtest Tue May 5 21:33:17 2015
@@ -1,3 +1,4 @@
+prereq: test -e fldcw_check
prog: fldcw_check
vgopts: --interval-size=10000 --bb-out-file=fldcw_check.out.bb
cleanup: rm fldcw_check.out.bb
Modified: branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/million.vgtest
==============================================================================
--- branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/million.vgtest (original)
+++ branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/million.vgtest Tue May 5 21:33:17 2015
@@ -1,4 +1,5 @@
-prog: million
+prereq: test -e million
+prog: million
vgopts: --interval-size=100000 --bb-out-file=million.out.bb --pc-out-file=million.out.pc
post: cat million.out.bb
cleanup: rm million.out.bb million.out.pc
Modified: branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/rep_prefix.vgtest
==============================================================================
--- branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/rep_prefix.vgtest (original)
+++ branches/ASPACEM_TWEAKS/exp-bbv/tests/x86/rep_prefix.vgtest Tue May 5 21:33:17 2015
@@ -1,3 +1,4 @@
+prereq: test -e rep_prefix
prog: rep_prefix
vgopts: --interval-size=100000 --bb-out-file=rep_prefix.out.bb
cleanup: rm rep_prefix.out.bb
Modified: branches/ASPACEM_TWEAKS/helgrind/hg_main.c
==============================================================================
--- branches/ASPACEM_TWEAKS/helgrind/hg_main.c (original)
+++ branches/ASPACEM_TWEAKS/helgrind/hg_main.c Tue May 5 21:33:17 2015
@@ -3420,11 +3420,6 @@
* sizeof(Bool) );
// univ_laog_seen[*] set to 0 (False) by zalloc.
- if (VG_(clo_stats))
- VG_(message)(Vg_DebugMsg,
- "univ_laog_do_GC enter cardinality %'10d\n",
- (Int)univ_laog_cardinality);
-
VG_(initIterFM)( laog );
links = NULL;
while (VG_(nextIterFM)( laog, NULL, (UWord*)&links )) {
@@ -3482,8 +3477,8 @@
if (VG_(clo_stats))
VG_(message)
(Vg_DebugMsg,
- "univ_laog_do_GC exit seen %'8d next gc at cardinality %'10d\n",
- (Int)seen, next_gc_univ_laog);
+ "univ_laog_do_GC cardinality entered %d exit %d next gc at %d\n",
+ (Int)univ_laog_cardinality, (Int)seen, next_gc_univ_laog);
}
Modified: branches/ASPACEM_TWEAKS/helgrind/libhb_core.c
==============================================================================
--- branches/ASPACEM_TWEAKS/helgrind/libhb_core.c (original)
+++ branches/ASPACEM_TWEAKS/helgrind/libhb_core.c Tue May 5 21:33:17 2015
@@ -2541,19 +2541,23 @@
If .vts == NULL, then this entry is not in use, so:
- .rc == 0
- this entry is on the freelist (unfortunately, does not imply
- any constraints on value for .freelink)
+ any constraints on value for u.freelink)
If .vts != NULL, then this entry is in use:
- .vts is findable in vts_set
- .vts->id == this entry number
- no specific value for .rc (even 0 is OK)
- - this entry is not on freelist, so .freelink == VtsID_INVALID
+ - this entry is not on freelist, so u.freelink == VtsID_INVALID
*/
typedef
struct {
VTS* vts; /* vts, in vts_set */
UWord rc; /* reference count - enough for entire aspace */
- VtsID freelink; /* chain for free entries, VtsID_INVALID at end */
- VtsID remap; /* used only during pruning */
+ union {
+ VtsID freelink; /* chain for free entries, VtsID_INVALID at end */
+ VtsID remap; /* used only during pruning, for used entries */
+ } u;
+ /* u.freelink only used when vts == NULL,
+ u.remap only used when vts != NULL, during pruning. */
}
VtsTE;
@@ -2583,8 +2587,8 @@
VtsTE* ie = VG_(indexXA)( vts_tab, ii );
tl_assert(ie->vts == NULL);
tl_assert(ie->rc == 0);
- tl_assert(ie->freelink == VtsID_INVALID);
- ie->freelink = vts_tab_freelist;
+ tl_assert(ie->u.freelink == VtsID_INVALID);
+ ie->u.freelink = vts_tab_freelist;
vts_tab_freelist = ii;
}
@@ -2600,7 +2604,7 @@
ie = VG_(indexXA)( vts_tab, ii );
tl_assert(ie->vts == NULL);
tl_assert(ie->rc == 0);
- vts_tab_freelist = ie->freelink;
+ vts_tab_freelist = ie->u.freelink;
return ii;
}
@@ -2615,8 +2619,7 @@
return ii;
te.vts = NULL;
te.rc = 0;
- te.freelink = VtsID_INVALID;
- te.remap = VtsID_INVALID;
+ te.u.freelink = VtsID_INVALID;
ii = (VtsID)VG_(addToXA)( vts_tab, &te );
return ii;
}
@@ -2669,7 +2672,7 @@
VtsTE* ie = VG_(indexXA)( vts_tab, ii );
ie->vts = in_tab;
ie->rc = 0;
- ie->freelink = VtsID_INVALID;
+ ie->u.freelink = VtsID_INVALID;
in_tab->id = ii;
return ii;
}
@@ -2717,7 +2720,7 @@
old_id = *ii;
old_te = VG_(indexXA)( old_tab, old_id );
old_te->rc--;
- new_id = old_te->remap;
+ new_id = old_te->u.remap;
new_te = VG_(indexXA)( new_tab, new_id );
new_te->rc++;
*ii = new_id;
@@ -2793,7 +2796,7 @@
VTS__delete(te->vts);
te->vts = NULL;
/* and finally put this entry on the free list */
- tl_assert(te->freelink == VtsID_INVALID); /* can't already be on it */
+ tl_assert(te->u.freelink == VtsID_INVALID); /* can't already be on it */
add_to_free_list( i );
nFreed++;
}
@@ -2857,10 +2860,10 @@
verydead_thread_table_sort_and_check (verydead_thread_table_not_pruned);
/* We will run through the old table, and create a new table and
- set, at the same time setting the .remap entries in the old
+ set, at the same time setting the u.remap entries in the old
table to point to the new entries. Then, visit every VtsID in
the system, and replace all of them with new ones, using the
- .remap entries in the old table. Finally, we can delete the old
+ u.remap entries in the old table. Finally, we can delete the old
table and set. */
XArray* /* of VtsTE */ new_tab
@@ -2898,13 +2901,13 @@
/* For each old VTS .. */
VtsTE* old_te = VG_(indexXA)( vts_tab, i );
VTS* old_vts = old_te->vts;
- tl_assert(old_te->remap == VtsID_INVALID);
/* Skip it if not in use */
if (old_te->rc == 0) {
tl_assert(old_vts == NULL);
continue;
}
+ tl_assert(old_te->u.remap == VtsID_INVALID);
tl_assert(old_vts != NULL);
tl_assert(old_vts->id == i);
tl_assert(old_vts->ts != NULL);
@@ -2960,8 +2963,7 @@
VtsTE new_te;
new_te.vts = new_vts;
new_te.rc = 0;
- new_te.freelink = VtsID_INVALID;
- new_te.remap = VtsID_INVALID;
+ new_te.u.freelink = VtsID_INVALID;
Word j = VG_(addToXA)( new_tab, &new_te );
tl_assert(j <= i);
tl_assert(j == new_VtsID_ctr - 1);
@@ -2969,7 +2971,7 @@
nAfterPruning++;
nSTSsAfter += new_vts->usedTS;
}
- old_te->remap = new_vts->id;
+ old_te->u.remap = new_vts->id;
} /* for (i = 0; i < nTab; i++) */
@@ -2989,12 +2991,12 @@
}
/* At this point, we have:
- * the old VTS table, with its .remap entries set,
+ * the old VTS table, with its u.remap entries set,
and with all .vts == NULL.
* the old VTS tree should be empty, since it and the old VTSs
it contained have been incrementally deleted was we worked
through the old table.
- * the new VTS table, with all .rc == 0, all .freelink and .remap
+ * the new VTS table, with all .rc == 0, all u.freelink and u.remap
== VtsID_INVALID.
* the new VTS tree.
*/
@@ -3009,7 +3011,7 @@
Nowhere else, AFAICS. Not in the zsm cache, because that just
got invalidated.
- Using the .remap fields in vts_tab, map each old VtsID to a new
+ Using the u.remap fields in vts_tab, map each old VtsID to a new
VtsID. For each old VtsID, dec its rc; and for each new one,
inc it. This sets up the new refcounts, and it also gives a
cheap sanity check of the old ones: all old refcounts should be
@@ -3080,8 +3082,7 @@
VtsTE* te = VG_(indexXA)( vts_tab, i );
tl_assert(te->vts == NULL);
/* This is the assert proper. Note we're also asserting
- zeroness for old entries which are unmapped (hence have
- .remap == VtsID_INVALID). That's OK. */
+ zeroness for old entries which are unmapped. That's OK. */
tl_assert(te->rc == 0);
}
@@ -3123,8 +3124,8 @@
tl_assert(te->vts);
tl_assert(te->vts->id == i);
tl_assert(te->rc > 0); /* 'cos we just GC'd */
- tl_assert(te->freelink == VtsID_INVALID); /* in use */
- tl_assert(te->remap == VtsID_INVALID); /* not relevant */
+ tl_assert(te->u.freelink == VtsID_INVALID); /* in use */
+ /* value of te->u.remap not relevant */
}
/* And we're done. Bwahahaha. Ha. Ha. Ha. */
@@ -6075,6 +6076,7 @@
stats__vts_set__focaa, stats__vts_set__focaa_a );
VG_(printf)( " libhb: VTSops: indexAt_SLOW %'lu\n",
stats__vts__indexat_slow );
+ show_vts_stats ("libhb stats");
VG_(printf)("%s","\n");
VG_(printf)(
Modified: branches/ASPACEM_TWEAKS/include/pub_tool_xarray.h
==============================================================================
--- branches/ASPACEM_TWEAKS/include/pub_tool_xarray.h (original)
+++ branches/ASPACEM_TWEAKS/include/pub_tool_xarray.h Tue May 5 21:33:17 2015
@@ -104,6 +104,13 @@
/* How elements are there in this XArray now? */
extern Word VG_(sizeXA) ( const XArray* );
+/* If you know how many elements an XArray will have, you can
+ optimise memory usage and number of reallocation needed
+ to insert these elements. The call to VG_(hintSizeXA) must be
+ done just after the call to VG_(newXA), before any element
+ has been inserted. */
+extern void VG_(hintSizeXA) ( XArray*, Word);
+
/* Index into the XArray. Checks bounds and bombs if the index is
invalid. What this returns is the address of the specified element
in the array, not (of course) the element itself. Note that the
Modified: branches/ASPACEM_TWEAKS/memcheck/mc_translate.c
==============================================================================
--- branches/ASPACEM_TWEAKS/memcheck/mc_translate.c (original)
+++ branches/ASPACEM_TWEAKS/memcheck/mc_translate.c Tue May 5 21:33:17 2015
@@ -6303,6 +6303,7 @@
mce.tmpMap = VG_(newXA)( VG_(malloc), "mc.MC_(instrument).1", VG_(free),
sizeof(TempMapEnt));
+ VG_(hintSizeXA) (mce.tmpMap, sb_in->tyenv->types_used);
for (i = 0; i < sb_in->tyenv->types_used; i++) {
TempMapEnt ent;
ent.kind = Orig;
Modified: branches/ASPACEM_TWEAKS/none/tests/libvex_test.c
==============================================================================
--- branches/ASPACEM_TWEAKS/none/tests/libvex_test.c (original)
+++ branches/ASPACEM_TWEAKS/none/tests/libvex_test.c Tue May 5 21:33:17 2015
@@ -1,6 +1,10 @@
#include <stdio.h>
#include <stdlib.h>
+# if !defined(VGO_darwin)
#include <endian.h>
+# else
+#include <machine/endian.h>
+# endif
#include "../../VEX/pub/libvex.h"
Bool return_false(void*cb, Addr ad)
Modified: branches/ASPACEM_TWEAKS/perf/memrw.c
==============================================================================
--- branches/ASPACEM_TWEAKS/perf/memrw.c (original)
+++ branches/ASPACEM_TWEAKS/perf/memrw.c Tue May 5 21:33:17 2015
@@ -19,42 +19,44 @@
// model e.g. multiple threads, many different stack traces touching
// the memory, better working set distribution, ...
-static int nr_mb = 0; // total nr of mb used by the program
-static int nr_mb_ws = 0; // nr_mb in program working set
-static int nr_loops = 0; // nr of loops reading or writing the ws
+static int sz_b; // size of a block
+static int nr_b; // total nr of blocks used by the program
+static int nr_b_ws; // nr_b in program working set
+static int nr_loops; // nr of loops reading or writing the ws
static int nr_thr; // nr of threads (hardcoded to 1 currently)
+static int nr_repeat; // nr of times we will allocate, use, then free total+ws
-// Note: the total nr of mb is what is explicitely allocated.
+// Note: the total nr of MB is what is explicitely allocated.
// On top of that, we have the stacks, local vars, lib vars, ...
-// The working set is just the first nr_mb_ws of nr_mb.
+// The working set is just the first nr_b_ws blocks of nr_b.
static int verbose = 0;
-static unsigned char **mb;
+static unsigned char **t_b; // Pointers to all blocks
static void *memrw_fn(void *v)
{
int loops, m, b;
- int write;
+ int dowrite;
int differs = 0;
unsigned char prev = 0;
for (loops = 0; loops < nr_loops; loops++) {
- // printf("loop %d write %d\n", loops, write);
+ // printf("loop %d dowrite %d\n", loops, dowrite);
// Note: in case of multiple threads, we will have
// to add lock/unlock somewhere in the below, maybe to lock
// the MB we are reading or writing.
- for (m = 0; m < nr_mb_ws; m++) {
- for (b = 0; b < 1024 * 1024; b++) {
- write = b % 5 == 0;
+ for (m = 0; m < nr_b_ws; m++) {
+ for (b = 0; b < sz_b; b++) {
+ dowrite = b % 5 == 0;
// Do some write or read operations.
- if (write) {
- if (mb[m][b] < 255)
- mb[m][b] += differs;
+ if (dowrite) {
+ if (t_b[m][b] < 255)
+ t_b[m][b] += differs;
else
- mb[m][b] = 0;
+ t_b[m][b] = 0;
} else {
- differs = mb[m][b] != prev;
- prev = mb[m][b];
+ differs = t_b[m][b] != prev;
+ prev = t_b[m][b];
}
}
}
@@ -67,62 +69,80 @@
int a;
int ret;
int i;
+ int r;
pthread_t thr;
- // usage: memrw [-t nr_mb default 10] [-w nr_mb_ws default 10]
+ // usage: memrw [-b blocksize default 1MB ]
+ // [-t nr_b default 10] [-w nr_b_ws default 10]
// [-l nr_loops_on_ws default 3]
+ // [-r nr_repeat default 1]
// [-f fan_out default 0]
// [-v verbosity default 0]
- nr_mb = 10;
- nr_mb_ws = 10;
+ sz_b = 1024 * 1024;
+ nr_b = 10;
+ nr_b_ws = 10;
nr_loops = 3;
+ nr_repeat = 1;
verbose = 0;
for (a = 1; a < argc; a+=2) {
- if (strcmp(argv[a], "-t") == 0) {
- nr_mb = atoi(argv[a+1]);
+ if (strcmp(argv[a], "-b") == 0) {
+ sz_b = atoi(argv[a+1]);
+ } else if (strcmp(argv[a], "-t") == 0) {
+ nr_b = atoi(argv[a+1]);
} else if (strcmp(argv[a], "-w") == 0) {
- nr_mb_ws = atoi(argv[a+1]);
+ nr_b_ws = atoi(argv[a+1]);
} else if (strcmp(argv[a], "-l") == 0) {
nr_loops = atoi(argv[a+1]);
+ } else if (strcmp(argv[a], "-r") == 0) {
+ nr_repeat = atoi(argv[a+1]);
} else if (strcmp(argv[a], "-v") == 0) {
verbose = atoi(argv[a+1]);
} else {
printf("unknown arg %s\n", argv[a]);
}
}
- if (nr_mb_ws > nr_mb)
- nr_mb_ws = nr_mb; // to make it easy to do loops combining values
+ if (nr_b_ws > nr_b)
+ nr_b_ws = nr_b; // to make it easy to do loops combining values
nr_thr = 1;
printf ("total program memory -t %d MB"
- " working set -w %d MB"
- " working set R or W -l %d times"
- "\n",
- nr_mb,
- nr_mb_ws,
- nr_loops);
-
- printf ("creating and initialising the total program memory\n");
- mb = malloc(nr_mb * sizeof(char*));
- if (mb == NULL)
- perror("malloc mb");
- for (i = 0; i < nr_mb; i++) {
- mb[i] = calloc(1024*1024, 1);
- if (mb[i] == NULL)
- perror("malloc mb[i]");
+ " working set -w %d MB\n",
+ (nr_b * sz_b) / (1024*1024),
+ (nr_b_ws * sz_b) / (1024*1024));
+ printf (" working set R or W -l %d times"
+ " repeat the whole stuff -r %d times\n",
+ nr_loops,
+ nr_repeat);
+
+ for (r = 0; r < nr_repeat; r++) {
+ printf ("creating and initialising the total program memory\n");
+ t_b = malloc(nr_b * sizeof(char*));
+ if (t_b == NULL)
+ perror("malloc t_b");
+ for (i = 0; i < nr_b; i++) {
+ t_b[i] = calloc(sz_b, 1);
+ if (t_b[i] == NULL)
+ perror("malloc t_b[i]");
+ }
+
+ printf("starting thread that will read or write the working set\n");
+ ret = pthread_create(&thr, NULL, memrw_fn, &nr_thr);
+ if (ret != 0)
+ perror("pthread_create");
+ printf("waiting for thread termination\n");
+
+ ret = pthread_join(thr, NULL);
+ if (ret != 0)
+ perror("pthread_join");
+ printf("thread terminated\n");
+
+ /* Now, free the memory used, for the next repeat */
+ for (i = 0; i < nr_b; i++)
+ free (t_b[i]);
+ free (t_b);
+ printf("memory freed\n");
}
- printf("starting thread that will read or write the working set\n");
- ret = pthread_create(&thr, NULL, memrw_fn, &nr_thr);
- if (ret != 0)
- perror("pthread_create");
- printf("waiting for thread termination\n");
-
- ret = pthread_join(thr, NULL);
- if (ret != 0)
- perror("pthread_join");
- printf("thread terminated\n");
-
return 0;
}
|
|
From: <sv...@va...> - 2015-05-05 06:14:17
|
Author: florian
Date: Tue May 5 07:14:10 2015
New Revision: 15181
Log:
Simplify. The condition on line 1223 is always true.
Here's why:
The condition
if (VG_(brk_limit) > VG_(brk_base)) line 1223
is reachable iff
newbrk < VG_(brk_base) on line 1201 is false AND
newbrk < VG_(brk_limit) on line 1205 is true
Rewrite as
newbrk >= VG_(brk_base) is true AND
newbrk < VG_(brk_limit) is true
Rewrite as
newbrk >= VG_(brk_base) is true AND
newbrk <= VG_(brk_limit) - 1 is true
Combine
VG_(brk_base) <= newbrk <= VG_(brk_limit) - 1
Therefore
VG_(brk_base) <= VG_(brk_limit) - 1
Or
VG_(brk_base) < VG_(brk_limit)
Which is the same as
VG_(brk_limit) > VG_(brk_base)
qed.
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-generic.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c Tue May 5 07:14:10 2015
@@ -1220,10 +1220,7 @@
and that segment is writable. */
NSegment const * seg2;
- if (VG_(brk_limit) > VG_(brk_base))
- seg2 = VG_(am_find_nsegment)( VG_(brk_limit)-1 );
- else
- seg2 = VG_(am_find_nsegment)( VG_(brk_limit) );
+ seg2 = VG_(am_find_nsegment)( VG_(brk_limit) - 1 );
vg_assert(seg2);
if (seg == seg2 && seg->hasW)
|