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
(4) |
2
(2) |
|
3
(1) |
4
(1) |
5
|
6
|
7
|
8
(1) |
9
(1) |
|
10
(4) |
11
(1) |
12
(2) |
13
(2) |
14
(3) |
15
(2) |
16
(2) |
|
17
|
18
(1) |
19
(5) |
20
|
21
|
22
(8) |
23
(4) |
|
24
(1) |
25
|
26
(3) |
27
(8) |
28
(4) |
29
(4) |
30
(1) |
|
From: Philippe W. <phi...@so...> - 2017-09-23 14:44:24
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=fdc75efce6e027743ed2c2259584e784e523f446 commit fdc75efce6e027743ed2c2259584e784e523f446 Author: Philippe Waroquiers <phi...@sk...> Date: Sat Sep 23 16:41:18 2017 +0200 Follow up to 'On ppc, add generic_start_main.isra.0 as a below main function' massif/tests/mmapunmap on ppc now indicates a below main function. Note: this ppc53 specific file is needed because the valgrind stack unwinder does not properly unwind in main. At the mmap syscall, gdb backtrace gives: Breakpoint 3, 0x00000000041dbae0 in .__GI_mmap () from /lib64/libc.so.6 (gdb) bt while the valgrind stack trace gives: Thread 1: status = VgTs_Runnable (lwpid 64207) ==64207== at 0x41DBAE0: mmap (in /usr/lib64/libc-2.17.so) ==64207== by 0x10000833: f (mmapunmap.c:9) ==64207== by 0x40E6BEB: (below main) (in /usr/lib64/libc-2.17.so) client stack range: [0x1FFEFF0000 0x1FFF00FFFF] client SP: 0x1FFF00ECE0 valgrind stack top usage: 15632 of 1048576 Diff: --- massif/tests/mmapunmap.post.exp-ppc64 | 2 +- massif/tests/mmapunmap.vgtest | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/massif/tests/mmapunmap.post.exp-ppc64 b/massif/tests/mmapunmap.post.exp-ppc64 index 59550a3..1ef9eef 100644 --- a/massif/tests/mmapunmap.post.exp-ppc64 +++ b/massif/tests/mmapunmap.post.exp-ppc64 @@ -1 +1 @@ - n1: 81920000 0x........: generic_start_main.isra.0 (in /...libc...) + n0: 81920000 0x........: (below main) diff --git a/massif/tests/mmapunmap.vgtest b/massif/tests/mmapunmap.vgtest index 40e5664..9cf746e 100644 --- a/massif/tests/mmapunmap.vgtest +++ b/massif/tests/mmapunmap.vgtest @@ -2,5 +2,5 @@ prog: mmapunmap vgopts: --pages-as-heap=yes --threshold=30.0 -q vgopts: --stacks=no --time-unit=B --depth=8 --massif-out-file=massif.out vgopts: --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 -post: grep -A4 -e =peak massif.out | grep -e 'main (mmapunmap.c:16)\|generic_start_main.isra.0' | tr -s ' ' | ../../tests/filter_addresses | ../../tests/filter_libc +post: grep -A4 -e =peak massif.out | grep -e 'main (mmapunmap.c:16)\|(below main)' | tr -s ' ' | ../../tests/filter_addresses | ../../tests/filter_libc cleanup: rm massif.out |
|
From: Philippe W. <phi...@so...> - 2017-09-23 11:52:08
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=8259193f1cfd8cfb3b5a3362261cf5c7f00f3495 commit 8259193f1cfd8cfb3b5a3362261cf5c7f00f3495 Author: Philippe Waroquiers <phi...@sk...> Date: Sat Sep 23 13:49:05 2017 +0200 On ppc, add generic_start_main.isra.0 as a below main function We can have stacktraces such as: ==41840== by 0x10000927: a1 (deep.c:27) ==41840== by 0x1000096F: main (deep.c:35) ==41840== by 0x4126BEB: generic_start_main.isra.0 (in /usr/lib64/libc-2.17.so) ==41840== by 0x4126E13: __libc_start_main (in /usr/lib64/libc-2.17.so) So, add generic_start_main.isra.0 as a below main function. This fixes the test massif/tests/deep-D Diff: --- coregrind/m_debuginfo/debuginfo.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/coregrind/m_debuginfo/debuginfo.c b/coregrind/m_debuginfo/debuginfo.c index e01f19a..3817ecf 100644 --- a/coregrind/m_debuginfo/debuginfo.c +++ b/coregrind/m_debuginfo/debuginfo.c @@ -1987,6 +1987,9 @@ Vg_FnNameKind VG_(get_fnname_kind) ( const HChar* name ) # if defined(VGO_linux) VG_STREQ("__libc_start_main", name) || // glibc glibness VG_STREQ("generic_start_main", name) || // Yellow Dog doggedness +# if defined(VGA_ppc32) || defined(VGA_ppc64be) || defined(VGA_ppc64le) + VG_STREQ("generic_start_main.isra.0", name) || // ppc glibness +# endif # elif defined(VGO_darwin) // See readmacho.c for an explanation of this. VG_STREQ("start_according_to_valgrind", name) || // Darwin, darling |
|
From: Philippe W. <phi...@so...> - 2017-09-23 11:32:29
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=d1232dd32a94f7b3dabd66e8cac3c0cf12d014f3 commit d1232dd32a94f7b3dabd66e8cac3c0cf12d014f3 Author: Philippe Waroquiers <phi...@sk...> Date: Sat Sep 23 13:26:12 2017 +0200 massif: match --ignore-fn with the first IP that has a fnname Currently, --ignore-fn is only matched with the top IP entries that have a fnname. With this change, we first search for the first IP that has a fnname. This e.g. allows to ignore the allocation for a stacktrace such as: 0x1 0x2 0x3 fn_to_ignore otherfn This is then used in massif c++ tests new-cpp and overloaded-new to ignore the c++ libstdc++ allocation similar to: ==10754== 72,704 bytes in 1 blocks are still reachable in loss record 10 of 10 ==10754== at 0x4C2BBCD: malloc (vg_replace_malloc.c:299) ==10754== by 0x4EC39BF: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22) ==10754== by 0x400F8A9: call_init.part.0 (dl-init.c:72) ==10754== by 0x400F9BA: call_init (dl-init.c:30) ==10754== by 0x400F9BA: _dl_init (dl-init.c:120) ==10754== by 0x4000C59: ??? (in /lib/x86_64-linux-gnu/ld-2.24.so) Diff: --- massif/ms_main.c | 25 +++++++++++++++---------- massif/tests/new-cpp.post.exp | 2 +- massif/tests/new-cpp.vgtest | 2 +- massif/tests/overloaded-new.post.exp | 2 +- massif/tests/overloaded-new.vgtest | 2 +- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/massif/ms_main.c b/massif/ms_main.c index 953eda7..3748821 100644 --- a/massif/ms_main.c +++ b/massif/ms_main.c @@ -507,7 +507,7 @@ void filter_IPs (Addr* ips, Int n_ips, UInt* top, UInt* n_ips_sel) { Int i; - Bool top_has_fnname; + Bool top_has_fnname = False; const HChar *fnname; *top = 0; @@ -519,7 +519,7 @@ void filter_IPs (Addr* ips, Int n_ips, // 'sliding' a bunch of functions without names by removing an // alloc function 'inside' a stacktrace e.g. // 0x1 0x2 0x3 alloc func1 main - // becomes 0x1 0x2 0x3 func1 main + // became 0x1 0x2 0x3 func1 main for (i = *top; i < n_ips; i++) { top_has_fnname = VG_(get_fnname)(ips[*top], &fnname); if (top_has_fnname && VG_(strIsMemberXA)(alloc_fns, fnname)) { @@ -532,14 +532,19 @@ void filter_IPs (Addr* ips, Int n_ips, } // filter the whole stacktrace if this allocation has to be ignored. - if (*n_ips_sel > 0 - && top_has_fnname - && VG_(strIsMemberXA)(ignore_fns, fnname)) { - VERB(4, "ignored allocation from fn %s\n", fnname); - *top = n_ips; - *n_ips_sel = 0; - } - + if (*n_ips_sel > 0 && VG_(sizeXA)(ignore_fns) > 0) { + if (!top_has_fnname) { + // top has no fnname => search for the first entry that has a fnname + for (i = *top; i < n_ips && !top_has_fnname; i++) { + top_has_fnname = VG_(get_fnname)(ips[i], &fnname); + } + } + if (top_has_fnname && VG_(strIsMemberXA)(ignore_fns, fnname)) { + VERB(4, "ignored allocation from fn %s\n", fnname); + *top = n_ips; + *n_ips_sel = 0; + } + } if (!VG_(clo_show_below_main) && *n_ips_sel > 0 ) { Int mbm = VG_(XT_offset_main_or_below_main)(ips, n_ips); diff --git a/massif/tests/new-cpp.post.exp b/massif/tests/new-cpp.post.exp index 1fe91e6..9d90cf6 100644 --- a/massif/tests/new-cpp.post.exp +++ b/massif/tests/new-cpp.post.exp @@ -1,6 +1,6 @@ -------------------------------------------------------------------------------- Command: ./new-cpp -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 --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc +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 --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc --ignore-fn=call_init.part.0 ms_print arguments: massif.out -------------------------------------------------------------------------------- diff --git a/massif/tests/new-cpp.vgtest b/massif/tests/new-cpp.vgtest index 09dba32..88bdf93 100644 --- a/massif/tests/new-cpp.vgtest +++ b/massif/tests/new-cpp.vgtest @@ -1,6 +1,6 @@ prog: new-cpp vgopts: --stacks=no --time-unit=B --massif-out-file=massif.out vgopts: --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook -vgopts: --ignore-fn=get_or_create_key_element --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc +vgopts: --ignore-fn=get_or_create_key_element --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc --ignore-fn=call_init.part.0 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses cleanup: rm massif.out diff --git a/massif/tests/overloaded-new.post.exp b/massif/tests/overloaded-new.post.exp index 2a53b90..e55885f 100644 --- a/massif/tests/overloaded-new.post.exp +++ b/massif/tests/overloaded-new.post.exp @@ -1,6 +1,6 @@ -------------------------------------------------------------------------------- Command: ./overloaded-new -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 --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc +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 --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc --ignore-fn=call_init.part.0 ms_print arguments: massif.out -------------------------------------------------------------------------------- diff --git a/massif/tests/overloaded-new.vgtest b/massif/tests/overloaded-new.vgtest index 2ffb3ec..20bcd97 100644 --- a/massif/tests/overloaded-new.vgtest +++ b/massif/tests/overloaded-new.vgtest @@ -1,6 +1,6 @@ prog: overloaded-new vgopts: --stacks=no --time-unit=B --massif-out-file=massif.out vgopts: --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook -vgopts: --ignore-fn=get_or_create_key_element --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc +vgopts: --ignore-fn=get_or_create_key_element --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc --ignore-fn=call_init.part.0 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses cleanup: rm massif.out |
|
From: Julian S. <js...@ac...> - 2017-09-23 06:55:21
|
Carl, I see you found https://bugs.kde.org/show_bug.cgi?id=375839, which is good as a reference point, because this is a POWER-esque re-run of the same problem. As a short term workaround, you can possibly get around this by running V with --vex-guest-max-insns=<N> where <N> is, say, 30, 20, 10 or even 5. This limits the number of guest insns incorporated into each IRSB to the given value. The default is 50, I think. Going below about 10 isn't good though; you'll lose performance. For a proper fix, the underlying problem is that the ppc front end is generating excessively verbose translations of some particular instruction. As a first step, I'd recommend finding out which (using the normal --trace-flags= technique) and seeing if you can easily make it less verbose. I've found these problems normally to be associated with vector insns which get implemented by "doing" each lane separately (I think you mentioned that). It would be helpful if you could find and show an example of the problematic translation. If the translation can't easily be improved (or improving it doesn't fix this), then we can also use the dynamic hinting mechanism that you found. In short the PPC front end needs to mark the relevant instruction's disassembly-status return value (I forget the name now) to set it's .hint field to Dis_HintVerbose. Look in the amd64 front end for examples. We'll probably need both approaches. Please also file a bug, so we don't have to track this by email. J |