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
|
4
(3) |
5
(3) |
6
(5) |
7
(7) |
8
(1) |
9
(7) |
|
10
(7) |
11
(1) |
12
(13) |
13
(4) |
14
|
15
(5) |
16
|
|
17
(1) |
18
(2) |
19
(3) |
20
|
21
|
22
|
23
(1) |
|
24
|
25
|
26
|
27
(1) |
28
(3) |
29
|
30
|
|
31
|
|
|
|
|
|
|
|
From: Mark W. <ma...@kl...> - 2021-10-12 22:14:01
|
An RC1 tarball for 3.18.0 is now available at https://sourceware.org/pub/valgrind/valgrind-3.18.0.RC1.tar.bz2 (md5sum = 6babaf9e145055a2c9b50cbd2ddfefc0) (sha1sum = ccc73895097cba83cf7664b02edc66866e98a31b) Please give it a try in configurations that are important for you and report any problems you have, either on this mailing list, or (preferably) via our bug tracker at https://bugs.kde.org/enter_bug.cgi?product=valgrind If nothing critical emerges, a final release will happen on Friday 15 October. Note that the NEWS file hasn't been fully updated yet. |
|
From: Mark W. <ma...@so...> - 2021-10-12 21:57:51
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=20abe9e1489a6443d5330ff507fac0aef7ddb4ae commit 20abe9e1489a6443d5330ff507fac0aef7ddb4ae Author: Mark Wielaard <ma...@kl...> Date: Tue Oct 12 23:57:00 2021 +0200 -> 3.18.0.RC1 Diff: --- NEWS | 3 ++- configure.ac | 2 +- docs/xml/vg-entities.xml | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 73add35e5c..c294c85c3a 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -Release 3.??.? (?? 2021) +Release 3.18.0 (15 Oct 2021) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux, @@ -94,6 +94,7 @@ To see details of a given bug, visit https://bugs.kde.org/show_bug.cgi?id=XXXXXX where XXXXXX is the bug number as listed below. +(3.18.0.RC1: 12 Oct 2021) Release 3.17.0 (19 Mar 2021) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/configure.ac b/configure.ac index 3f51bc5c62..3caebab1b8 100755 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ ##------------------------------------------------------------## # Process this file with autoconf to produce a configure script. -AC_INIT([Valgrind],[3.18.0.GIT],[val...@li...]) +AC_INIT([Valgrind],[3.18.0.RC1],[val...@li...]) AC_CONFIG_SRCDIR(coregrind/m_main.c) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE([foreign dist-bzip2 subdir-objects]) diff --git a/docs/xml/vg-entities.xml b/docs/xml/vg-entities.xml index ce3219b523..d986a02573 100644 --- a/docs/xml/vg-entities.xml +++ b/docs/xml/vg-entities.xml @@ -6,8 +6,8 @@ <!-- valgrind release + version stuff --> <!ENTITY rel-type "Release"> -<!ENTITY rel-version "3.17.0"> -<!ENTITY rel-date "19 Mar 2021"> +<!ENTITY rel-version "3.18.0"> +<!ENTITY rel-date "15 Oct 2021"> <!-- where the docs are installed --> <!ENTITY vg-docs-path "$INSTALL/share/doc/valgrind/html/index.html"> |
|
From: Paul F. <pa...@so...> - 2021-10-12 21:33:32
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=5675b90cc07ca30a18ea653f51fb4973e0f73ff9 commit 5675b90cc07ca30a18ea653f51fb4973e0f73ff9 Author: Paul Floyd <pj...@wa...> Date: Tue Oct 12 23:04:52 2021 +0200 Previous fix was out by one version tag. memalign must have been added with FreeBSD 12.2 Diff: --- memcheck/tests/memalign2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/memcheck/tests/memalign2.c b/memcheck/tests/memalign2.c index c5a8b0e07c..a7bdb34c5d 100644 --- a/memcheck/tests/memalign2.c +++ b/memcheck/tests/memalign2.c @@ -31,7 +31,7 @@ int main ( void ) int res; assert(sizeof(long int) == sizeof(void*)); -#if !defined(VGO_freebsd) || (FREEBSD_VERS >= FREEBSD_12) +#if !defined(VGO_freebsd) || (FREEBSD_VERS >= FREEBSD_12_2) // Check behaviour of memalign/free for big alignment. // In particular, the below aims at checking that a // superblock with a big size is not marked as reclaimable |
|
From: Mark W. <ma...@so...> - 2021-10-12 21:27:33
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=970820852e542506dd7a4c722fecd73e34363fde commit 970820852e542506dd7a4c722fecd73e34363fde Author: Mark Wielaard <ma...@kl...> Date: Tue Oct 12 23:25:32 2021 +0200 vgdb: only queue up to 64 pending signals when waiting for SIGSTOP We should not queue infinite pending signals so we won't run out of memory when the SIGSTOP never arrives. Diff: --- coregrind/vgdb-invoker-ptrace.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/coregrind/vgdb-invoker-ptrace.c b/coregrind/vgdb-invoker-ptrace.c index 389748960f..07f3400f95 100644 --- a/coregrind/vgdb-invoker-ptrace.c +++ b/coregrind/vgdb-invoker-ptrace.c @@ -300,6 +300,10 @@ Bool waitstopped (pid_t pid, int signal_expected, const char *msg) // realloc a bigger queue, and store new signal at the end. // This is not very efficient but we assume not many sigs are queued. + if (signal_queue_sz >= 64) { + DEBUG(0, "too many queued signals while waiting for SIGSTOP\n"); + return False; + } signal_queue_sz++; signal_queue = vrealloc(signal_queue, sizeof(siginfo_t) * signal_queue_sz); |
|
From: Mark W. <ma...@so...> - 2021-10-12 21:19:31
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=ef95220ddae1af65c85d8d59a8f0dcbb9d7af90f commit ef95220ddae1af65c85d8d59a8f0dcbb9d7af90f Author: Mark Wielaard <ma...@kl...> Date: Tue Oct 12 23:15:41 2021 +0200 Implement BPF_MAP_LOOKUP_AND_DELETE_ELEM and BPF_MAP_FREEZE Implement BPF_MAP_LOOKUP_AND_DELETE_ELEM (command 21) and BPF_MAP_FREEZE (command 22) and produce a WARNING instead of a fatal error for unrecognized BPF commands. https://bugs.kde.org/show_bug.cgi?id=426148 Diff: --- NEWS | 1 + coregrind/m_syswrap/syswrap-linux.c | 34 ++++++++++++++++++++++++++++++---- include/vki/vki-linux.h | 2 ++ 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 1127583013..73add35e5c 100644 --- a/NEWS +++ b/NEWS @@ -44,6 +44,7 @@ are not entered into bugzilla tend to get forgotten about or ignored. 368960 WARNING: unhandled amd64-linux syscall: 163 (acct) 407589 [Linux] Add support for C11 aligned_alloc() and GNU reallocarray() 423963 Error in child thread when CLONE_PIDFD is used +426148 crash with "impossible happened" when running BPF CO-RE programs 429375 PPC ISA 3.1 support is missing, part 9 431157 PPC_FEATURE2_SCV needs to be masked in AT_HWCAP2 431306 Update demangler to support Rust v0 name mangling diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index 63dd1fb66e..50203eca09 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -12954,10 +12954,30 @@ PRE(sys_bpf) } } break; + case VKI_BPF_MAP_LOOKUP_AND_DELETE_ELEM: + /* Perform a lookup on an eBPF map. Read key, write value (delete key) */ + PRE_MEM_READ("bpf(attr->key)", (Addr)&attr->key, sizeof(attr->key)); + PRE_MEM_READ("bpf(attr->value)", (Addr)&attr->value, sizeof(attr->value)); + PRE_MEM_READ("bpf(attr->map_fd)", (Addr)&attr->map_fd, sizeof(attr->map_fd)); + if (ML_(safe_to_deref)(attr, ARG3)) { + if (!ML_(fd_allowed)(attr->map_fd, "bpf", tid, False)) { + SET_STATUS_Failure(VKI_EBADF); + break; + } + /* Get size of key and value for this map. */ + if (bpf_map_get_sizes(attr->map_fd, &key_size, &value_size)) { + PRE_MEM_READ("bpf(attr->key)", attr->key, key_size); + PRE_MEM_WRITE("bpf(attr->value)", attr->value, value_size); + } + } + break; + case VKI_BPF_MAP_FREEZE: + /* Freeze map, read map_fd (write frozen flag, not visible to user space). */ + PRE_MEM_READ("bpf(attr->map_fd)", (Addr)&attr->map_fd, sizeof(attr->map_fd)); + break; default: VG_(message)(Vg_DebugMsg, - "FATAL: unhandled eBPF command %lu\n", ARG1); - VG_(core_panic)("... bye!\n"); + "WARNING: unhandled eBPF command %lu\n", ARG1); break; } } @@ -13054,10 +13074,16 @@ POST(sys_bpf) POST_MEM_WRITE((Addr)&attr->task_fd_query.probe_offset, sizeof(attr->task_fd_query.probe_offset)); POST_MEM_WRITE((Addr)&attr->task_fd_query.probe_addr, sizeof(attr->task_fd_query.probe_addr)); break; + case VKI_BPF_MAP_LOOKUP_AND_DELETE_ELEM: + if (bpf_map_get_sizes(attr->map_fd, &key_size, &value_size)) + POST_MEM_WRITE(attr->value, value_size); + break; + case VKI_BPF_MAP_FREEZE: + /* Freeze map, read map_fd (write frozen flag, not visible to user space). */ + break; default: VG_(message)(Vg_DebugMsg, - "FATAL: unhandled eBPF command %lu\n", ARG1); - VG_(core_panic)("... bye!\n"); + "WARNING: unhandled eBPF command %lu\n", ARG1); break; } } diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h index eb4e01b337..e6cef7dfff 100644 --- a/include/vki/vki-linux.h +++ b/include/vki/vki-linux.h @@ -4966,6 +4966,8 @@ enum vki_bpf_cmd { VKI_BPF_BTF_LOAD, VKI_BPF_BTF_GET_FD_BY_ID, VKI_BPF_TASK_FD_QUERY, + VKI_BPF_MAP_LOOKUP_AND_DELETE_ELEM, + VKI_BPF_MAP_FREEZE, }; enum vki_bpf_map_type { |
|
From: Mark W. <ma...@so...> - 2021-10-12 21:04:55
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=a21e890f82258c17ee47895fa28bb62937eb1af9 commit a21e890f82258c17ee47895fa28bb62937eb1af9 Author: Lubomir Rintel <lku...@v3...> Date: Mon Oct 4 15:40:29 2021 +0200 Add close_range(2) support This is a system call introduced in Linux 5.9. It's typically used to bulk-close file descriptors that a process inherited without having desired so and doesn't want to pass them to its offspring for security reasons. For this reason the sensible upper limit value tends to be unknown and the users prefer to stay on the safe side by setting it high. This is a bit peculiar because, if unfiltered, the syscall could end up closing descriptors Valgrind uses for its purposes, ending in no end of mayhem and suffering. This patch adjusts the upper bounds to a safe value and then skips over the descriptor Valgrind uses by potentially calling the real system call with sub-ranges that are safe to close. The call can fail on negative ranges and bad flags -- we're dealing with the first condition ourselves while letting the real call fail on bad flags. https://bugs.kde.org/show_bug.cgi?id=439090 Diff: --- NEWS | 1 + coregrind/m_syswrap/priv_syswrap-linux.h | 3 ++ coregrind/m_syswrap/syswrap-amd64-linux.c | 1 + coregrind/m_syswrap/syswrap-arm-linux.c | 1 + coregrind/m_syswrap/syswrap-arm64-linux.c | 1 + coregrind/m_syswrap/syswrap-linux.c | 62 ++++++++++++++++++++++++++++ coregrind/m_syswrap/syswrap-mips32-linux.c | 1 + coregrind/m_syswrap/syswrap-mips64-linux.c | 1 + coregrind/m_syswrap/syswrap-nanomips-linux.c | 1 + coregrind/m_syswrap/syswrap-ppc32-linux.c | 1 + coregrind/m_syswrap/syswrap-ppc64-linux.c | 1 + coregrind/m_syswrap/syswrap-s390x-linux.c | 1 + coregrind/m_syswrap/syswrap-x86-linux.c | 1 + include/vki/vki-linux.h | 3 ++ include/vki/vki-scnums-shared-linux.h | 1 + 15 files changed, 80 insertions(+) diff --git a/NEWS b/NEWS index bd4458daef..1127583013 100644 --- a/NEWS +++ b/NEWS @@ -70,6 +70,7 @@ are not entered into bugzilla tend to get forgotten about or ignored. have debug information 438871 unhandled instruction bytes: 0xF3 0x49 0xF 0x6F 0x9C 0x24 0x60 0x2 0x0 0x0 439046 valgrind is unusably large when linked with lld +439090 Implement close_range(2) 439326 Valgrind 3.17.0 won't compile with Intel 2021 oneAPI compilers 439590 glibc-2.34 breaks suppressions against obj:*/lib*/libc-2.*so* 440670 unhandled ppc64le-linux syscall: 252 (statfs64) and 253 (fstatfs64) diff --git a/coregrind/m_syswrap/priv_syswrap-linux.h b/coregrind/m_syswrap/priv_syswrap-linux.h index 110f7c832d..baf362f112 100644 --- a/coregrind/m_syswrap/priv_syswrap-linux.h +++ b/coregrind/m_syswrap/priv_syswrap-linux.h @@ -320,6 +320,9 @@ DECL_TEMPLATE(linux, sys_io_uring_setup); DECL_TEMPLATE(linux, sys_io_uring_enter); DECL_TEMPLATE(linux, sys_io_uring_register); +// Linux-specific (new in Linux 5.9) +DECL_TEMPLATE(linux, sys_close_range); + /* --------------------------------------------------------------------- Wrappers for sockets and ipc-ery. These are split into standalone procedures because x86-linux hides them inside multiplexors diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c index 46d6b5bebd..5062324a1e 100644 --- a/coregrind/m_syswrap/syswrap-amd64-linux.c +++ b/coregrind/m_syswrap/syswrap-amd64-linux.c @@ -875,6 +875,7 @@ static SyscallTableEntry syscall_table[] = { LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 GENX_(__NR_clone3, sys_ni_syscall), // 435 + LINXY(__NR_close_range, sys_close_range), // 436 LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c index 7f41b07491..556dd844b9 100644 --- a/coregrind/m_syswrap/syswrap-arm-linux.c +++ b/coregrind/m_syswrap/syswrap-arm-linux.c @@ -1052,6 +1052,7 @@ static SyscallTableEntry syscall_main_table[] = { LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 GENX_(__NR_clone3, sys_ni_syscall), // 435 + LINXY(__NR_close_range, sys_close_range), // 436 LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c index 0d717f44be..b871077276 100644 --- a/coregrind/m_syswrap/syswrap-arm64-linux.c +++ b/coregrind/m_syswrap/syswrap-arm64-linux.c @@ -831,6 +831,7 @@ static SyscallTableEntry syscall_main_table[] = { LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 GENX_(__NR_clone3, sys_ni_syscall), // 435 + LINXY(__NR_close_range, sys_close_range), // 436 LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index 818b11ff6e..63dd1fb66e 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -13315,6 +13315,68 @@ PRE(sys_execveat) } +PRE(sys_close_range) +{ + SysRes res = VG_(mk_SysRes_Success)(0); + unsigned int beg, end; + unsigned int last = ARG2; + + FUSE_COMPATIBLE_MAY_BLOCK(); + PRINT("sys_close_range ( %" FMT_REGWORD "u, %" FMT_REGWORD "u, %" + FMT_REGWORD "u )", ARG1, ARG2, ARG3); + PRE_REG_READ3(long, "close_range", + unsigned int, first, unsigned int, last, + unsigned int, flags); + + if (ARG1 > last) { + SET_STATUS_Failure( VKI_EINVAL ); + return; + } + + if (last >= VG_(fd_hard_limit)) + last = VG_(fd_hard_limit) - 1; + + if (ARG1 > last) { + SET_STATUS_Success ( 0 ); + return; + } + + beg = end = ARG1; + do { + if (end > last + || (end == 2/*stderr*/ && VG_(debugLog_getLevel)() > 0) + || end == VG_(log_output_sink).fd + || end == VG_(xml_output_sink).fd) { + /* Split the range if it contains a file descriptor we're not + * supposed to close. */ + if (end - 1 >= beg) + res = VG_(do_syscall3)(__NR_close_range, (UWord)beg, (UWord)end - 1, ARG3 ); + beg = end + 1; + } + } while (end++ <= last); + + /* If it failed along the way, it's presumably the flags being wrong. */ + SET_STATUS_from_SysRes (res); +} + +POST(sys_close_range) +{ + unsigned int fd; + unsigned int last = ARG2; + + if (!VG_(clo_track_fds) + || (ARG3 & VKI_CLOSE_RANGE_CLOEXEC) != 0) + return; + + if (last >= VG_(fd_hard_limit)) + last = VG_(fd_hard_limit) - 1; + + for (fd = ARG1; fd <= last; fd++) + if ((fd != 2/*stderr*/ || VG_(debugLog_getLevel)() == 0) + && fd != VG_(log_output_sink).fd + && fd != VG_(xml_output_sink).fd) + ML_(record_fd_close)(fd); +} #undef PRE #undef POST diff --git a/coregrind/m_syswrap/syswrap-mips32-linux.c b/coregrind/m_syswrap/syswrap-mips32-linux.c index f957c6f583..f556e063f0 100644 --- a/coregrind/m_syswrap/syswrap-mips32-linux.c +++ b/coregrind/m_syswrap/syswrap-mips32-linux.c @@ -1137,6 +1137,7 @@ static SyscallTableEntry syscall_main_table[] = { LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 GENX_(__NR_clone3, sys_ni_syscall), // 435 + LINXY(__NR_close_range, sys_close_range), // 436 LINX_ (__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c index 94f38366f0..41a5404c55 100644 --- a/coregrind/m_syswrap/syswrap-mips64-linux.c +++ b/coregrind/m_syswrap/syswrap-mips64-linux.c @@ -816,6 +816,7 @@ static SyscallTableEntry syscall_main_table[] = { LINXY (__NR_io_uring_enter, sys_io_uring_enter), LINXY (__NR_io_uring_register, sys_io_uring_register), GENX_ (__NR_clone3, sys_ni_syscall), + LINXY (__NR_close_range, sys_close_range), LINX_ (__NR_faccessat2, sys_faccessat2), }; diff --git a/coregrind/m_syswrap/syswrap-nanomips-linux.c b/coregrind/m_syswrap/syswrap-nanomips-linux.c index 102c155507..f9d4b19f4a 100644 --- a/coregrind/m_syswrap/syswrap-nanomips-linux.c +++ b/coregrind/m_syswrap/syswrap-nanomips-linux.c @@ -825,6 +825,7 @@ static SyscallTableEntry syscall_main_table[] = { LINXY (__NR_io_uring_enter, sys_io_uring_enter), LINXY (__NR_io_uring_register, sys_io_uring_register), GENX_ (__NR_clone3, sys_ni_syscall), + LINXY (__NR_close_range, sys_close_range), LINX_ (__NR_faccessat2, sys_faccessat2), }; diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c index 7f9c9fa9bc..6263ab8451 100644 --- a/coregrind/m_syswrap/syswrap-ppc32-linux.c +++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c @@ -1055,6 +1055,7 @@ static SyscallTableEntry syscall_table[] = { LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 GENX_(__NR_clone3, sys_ni_syscall), // 435 + LINXY(__NR_close_range, sys_close_range), // 436 LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c index 43cde73271..a26b41c321 100644 --- a/coregrind/m_syswrap/syswrap-ppc64-linux.c +++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c @@ -1024,6 +1024,7 @@ static SyscallTableEntry syscall_table[] = { LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 GENX_(__NR_clone3, sys_ni_syscall), // 435 + LINXY(__NR_close_range, sys_close_range), // 436 LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c index 5283c19fe4..5c9209859f 100644 --- a/coregrind/m_syswrap/syswrap-s390x-linux.c +++ b/coregrind/m_syswrap/syswrap-s390x-linux.c @@ -865,6 +865,7 @@ static SyscallTableEntry syscall_table[] = { LINXY(__NR_io_uring_register, sys_io_uring_register), // 427 GENX_(__NR_clone3, sys_ni_syscall), // 435 + LINXY(__NR_close_range, sys_close_range), // 436 LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c index 418c769750..1d8f45d33a 100644 --- a/coregrind/m_syswrap/syswrap-x86-linux.c +++ b/coregrind/m_syswrap/syswrap-x86-linux.c @@ -1646,6 +1646,7 @@ static SyscallTableEntry syscall_table[] = { LINXY(__NR_io_uring_register, sys_io_uring_register),// 427 GENX_(__NR_clone3, sys_ni_syscall), // 435 + LINXY(__NR_close_range, sys_close_range), // 436 LINX_(__NR_faccessat2, sys_faccessat2), // 439 }; diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h index 426d9db92f..eb4e01b337 100644 --- a/include/vki/vki-linux.h +++ b/include/vki/vki-linux.h @@ -5369,6 +5369,9 @@ struct vki_itimerspec64 { #define VKI_RLIM64_INFINITY (~0ULL) +#define VKI_CLOSE_RANGE_UNSHARE (1U << 1) +#define VKI_CLOSE_RANGE_CLOEXEC (1U << 2) + /*--------------------------------------------------------------------*/ /*--- end ---*/ /*--------------------------------------------------------------------*/ diff --git a/include/vki/vki-scnums-shared-linux.h b/include/vki/vki-scnums-shared-linux.h index 6c70c9981d..fa63c7a9bc 100644 --- a/include/vki/vki-scnums-shared-linux.h +++ b/include/vki/vki-scnums-shared-linux.h @@ -40,6 +40,7 @@ #define __NR_fspick 433 #define __NR_clone3 435 +#define __NR_close_range 436 #define __NR_faccessat2 439 |
|
From: Mark W. <ma...@so...> - 2021-10-12 20:53:24
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=cf9ebf8313952caed53394498fe849251f477c97 commit cf9ebf8313952caed53394498fe849251f477c97 Author: Mark Wielaard <ma...@kl...> Date: Tue Oct 12 22:47:57 2021 +0200 coregrind: Don't call final_tidyup (__libc_freeres) on FatalSignal When a program gets a fatal signal (one it doesn't handle) valgrind terminates the program. Before termination it will try to call final_tidyup which tries to run __libc_freeres and __gnu_cxx::__freeres to get rid of some memory glibc or libstdc++ don't normally release. But when the program got the fatal signal in a critical section inside glibc it might leave the datastructures in a bad state and cause __libc_freeres to crash. This makes valgrind itself crash just before producing its own error summary, making the valgrind run unusable. A reproducer can found at https://bugzilla.redhat.com/show_bug.cgi?id=1952836 and https://bugzilla.redhat.com/show_bug.cgi?id=1225994#c7 This reproducer is really a worse case scenario with multiple threads racing to get into the critical section that when interrupted will make __libc_freeres unable to cleanup. But it seems a good policy in general. If a program is terminated by a fatal signal instead of normal termination, it seems not having some of the glibc/libstdc++ resource cleaned up is an expected thing. https://bugs.kde.org/show_bug.cgi?id=443605 Diff: --- NEWS | 1 + coregrind/m_main.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index d8addbb203..bd4458daef 100644 --- a/NEWS +++ b/NEWS @@ -86,6 +86,7 @@ are not entered into bugzilla tend to get forgotten about or ignored. 443180 The subnormal test and the ISA 3.0 test generate compiler warnings. 443314 In the latest GIT version, Valgrind with "--trace-flags" crashes at "al" register +443605 Don't call final_tidyup (__libc_freeres) on FatalSignal To see details of a given bug, visit https://bugs.kde.org/show_bug.cgi?id=XXXXXX diff --git a/coregrind/m_main.c b/coregrind/m_main.c index 56f9c6cbf0..70b6c05495 100644 --- a/coregrind/m_main.c +++ b/coregrind/m_main.c @@ -2168,6 +2168,7 @@ void shutdown_actions_NORETURN( ThreadId tid, || tids_schedretcode == VgSrc_ExitProcess || tids_schedretcode == VgSrc_FatalSig ); + /* Try to do final tidyup on "normal" exit, not on FatalSig. */ if (tids_schedretcode == VgSrc_ExitThread) { // We are the last surviving thread. Right? @@ -2185,7 +2186,7 @@ void shutdown_actions_NORETURN( ThreadId tid, vg_assert(VG_(is_running_thread)(tid)); vg_assert(VG_(count_living_threads)() == 1); - } else { + } else if (tids_schedretcode == VgSrc_ExitProcess) { // We may not be the last surviving thread. However, we // want to shut down the entire process. We hold the lock |
|
From: Mark W. <ma...@so...> - 2021-10-12 20:44:45
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=3eba47604df85d93bbd4301a316dda8b71c385b1 commit 3eba47604df85d93bbd4301a316dda8b71c385b1 Author: Mark Wielaard <ma...@kl...> Date: Tue Oct 12 22:41:30 2021 +0200 filter_gdb: Handle r = SYSCALL_CANCEL as alternative for return SYSCALL_CANCEL This happens with glibc 2.33 when debuginfo is installed. Diff: --- gdbserver_tests/filter_gdb.in | 1 + 1 file changed, 1 insertion(+) diff --git a/gdbserver_tests/filter_gdb.in b/gdbserver_tests/filter_gdb.in index fd20621842..d0c94f3f1a 100755 --- a/gdbserver_tests/filter_gdb.in +++ b/gdbserver_tests/filter_gdb.in @@ -125,6 +125,7 @@ s/in __select$/in syscall .../ /sysv\/linux\/select\.c/d /sysv\/linux\/generic\/select.c/d /return SYSCALL_CANCEL /d +/r = SYSCALL_CANCEL /d # a more specialised system call select stack trace part # (on 32 bits, we have an int_80, on 64 bits, directly select) |
|
From: Paul F. <pa...@so...> - 2021-10-12 19:48:08
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=79a1439786c18f0d38f230616c1ab06b9255577f commit 79a1439786c18f0d38f230616c1ab06b9255577f Author: Paul Floyd <pj...@wa...> Date: Tue Oct 12 21:47:45 2021 +0200 Fix building memalign2 test on older FreeBSD Diff: --- memcheck/tests/memalign2.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/memcheck/tests/memalign2.c b/memcheck/tests/memalign2.c index 95d13354e7..c5a8b0e07c 100644 --- a/memcheck/tests/memalign2.c +++ b/memcheck/tests/memalign2.c @@ -16,6 +16,7 @@ #include <assert.h> #include "tests/malloc.h" #include <errno.h> +#include "../../config.h" int main ( void ) { @@ -30,6 +31,7 @@ int main ( void ) int res; assert(sizeof(long int) == sizeof(void*)); +#if !defined(VGO_freebsd) || (FREEBSD_VERS >= FREEBSD_12) // Check behaviour of memalign/free for big alignment. // In particular, the below aims at checking that a // superblock with a big size is not marked as reclaimable @@ -78,6 +80,7 @@ int main ( void ) p = memalign(4 * 1024 * 1024, 100); assert(0 == (long)p % (4 * 1024 * 1024)); p = memalign(16 * 1024 * 1024, 100); assert(0 == (long)p % (16 * 1024 * 1024)); +#endif # define PM(a,b,c) posix_memalign((void**)a, b, c) |
|
From: Mark W. <ma...@so...> - 2021-10-12 18:06:58
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=0b86d267c60d5977ae3426475fb73df226ba8c0b commit 0b86d267c60d5977ae3426475fb73df226ba8c0b Author: Mark Wielaard <ma...@kl...> Date: Tue Oct 12 20:01:45 2021 +0200 filter_xml: Filter out '@*' from <fn> symbol names With glibc 2.34 we would start seeing some function names ending in '@*' this was already filtered out using drd/tests/filter_stderr.in but not when using the drd xml tests. This would make drd/tests/thread_name_xml and drd/tests/bar_bad_xml fail. Filter this out in the memcheck/tests/filter_xml script, which is also used by the drd test filters. Tested against glibc 2.34, 2.33 and 2.17 on x86_64. Diff: --- memcheck/tests/filter_xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/memcheck/tests/filter_xml b/memcheck/tests/filter_xml index 6de4e930b5..e8c0b75cf5 100755 --- a/memcheck/tests/filter_xml +++ b/memcheck/tests/filter_xml @@ -11,6 +11,8 @@ sed "s/<obj>.*<\/obj>/<obj>...<\/obj>/" | sed "s/<line>.*<\/line>/<line>...<\/line>/" | sed "s/<dir>.*<\/dir>/<dir>...<\/dir>/" | sed "s/<count>.*<\/count>/<count>...<\/count>/" | +# Filter out @* version symbol function names +sed "s/<fn>\(.*\)\@\*<\/fn>/<fn>\1<\/fn>/" | sed "s/of size [48]</of size N</" | perl -p -e "s/(m_replacemalloc\/)?vg_replace_malloc.c/vg_replace_malloc.c/" | perl -0 -p -e "s/<suppcounts>.*<\/suppcounts>/<suppcounts>...<\/suppcounts>/s" | |
|
From: Paul F. <pa...@so...> - 2021-10-12 17:32:18
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=22857ddd1da007a4f5b54086acb3cd82925d5ff6 commit 22857ddd1da007a4f5b54086acb3cd82925d5ff6 Author: Paul Floyd <pj...@wa...> Date: Tue Oct 12 19:31:04 2021 +0200 filter_stderr also needs to handle FreeBSD libthr Diff: --- drd/tests/filter_stderr.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drd/tests/filter_stderr.in b/drd/tests/filter_stderr.in index e7d975b81b..81a48ab7b8 100755 --- a/drd/tests/filter_stderr.in +++ b/drd/tests/filter_stderr.in @@ -37,7 +37,7 @@ $SED \ -e "s/_swapcontext/swapcontext/" \ -e "s/[A-Za-z_]* (pthread_create.c:[0-9]*)/(within libpthread-?.?.so)/" \ -e "s/[A-Za-z_]* (in [^ ]*libpthread-[0-9.]*\.so)/(within libpthread-?.?.so)/" \ --e "s/... (in \/lib\/libthr.so.3)/(within libpthread-?.?.so)/" \ +-e "s/... (in \/lib\/libthr.so.3)/start_thread/" \ -e "s:(within /lib[0-9]*/ld-[0-9.]*\.so):(within ld-?.?.so):" \ -e "s/was held during [0-9][0-9]*/was held during .../" \ -e "s: BSS section of [^<]*/: BSS section of :g" \ |
|
From: Mark W. <ma...@so...> - 2021-10-12 16:56:49
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=df838bccab28311b06836d032f54df9973c9cb74 commit df838bccab28311b06836d032f54df9973c9cb74 Author: Mark Wielaard <ma...@kl...> Date: Tue Oct 12 18:51:23 2021 +0200 drd/tests: Extract start_thread which can come from libpthread or libc The drd/tests/tc21_pthonce and drd/tests/annotate_barrier tests would fail if start_thread came from libc (as it does in glibc 2.34) instead of from libpthread. Extract start_thread in filter_stderr.in and update the backtraces in annotate_barrier.stderr.exp and in tc21_pthonce.stderr.exp Tested against glibc 2.34, 2.33 and 2.17 on x86_64. Diff: --- drd/tests/annotate_barrier.stderr.exp | 2 +- drd/tests/filter_stderr.in | 2 ++ drd/tests/tc21_pthonce.stderr.exp | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drd/tests/annotate_barrier.stderr.exp b/drd/tests/annotate_barrier.stderr.exp index 1ae8934c34..41296531a9 100644 --- a/drd/tests/annotate_barrier.stderr.exp +++ b/drd/tests/annotate_barrier.stderr.exp @@ -25,7 +25,7 @@ Thread 2: Conflicting store by thread 2 at 0x........ size 4 at 0x........: threadfunc (annotate_barrier.c:?) by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?) - by 0x........: (within libpthread-?.?.so) + by 0x........: start_thread Address 0x........ is at offset 0 from 0x......... Allocation context: at 0x........: malloc (vg_replace_malloc.c:...) by 0x........: barriers_and_races (annotate_barrier.c:?) diff --git a/drd/tests/filter_stderr.in b/drd/tests/filter_stderr.in index aec1d60f5d..e7d975b81b 100755 --- a/drd/tests/filter_stderr.in +++ b/drd/tests/filter_stderr.in @@ -19,6 +19,7 @@ fi | # Remove line numbers referring to drd's source code. # Remove libpthread's version number. # Remove line numbers from stack traces. +# Extract start_thread because it can be in libpthread or libc. $SED \ -e "/^drd, a thread error detector$/d" \ -e "s/^Allocation context: stack of thread \([0-9]*\), offset -[0-9]*$/Allocation context: stack of thread \1, offset .../" \ @@ -30,6 +31,7 @@ $SED \ -e "s/(\(functional\|thread\):[0-9]*)/(\1:...)/" \ -e "s/(tc20_verifywrap.c:261)/(tc20_verifywrap.c:262)/" \ -e "/^Copyright (C) 2006-20.., and GNU GPL'd, by Bart Van Assche.$/d" \ +-e "s/start_thread ([^)]*)/start_thread/" \ -e "s/\([A-Za-z_]*\) (clone.S:[0-9]*)/\1 (in \/...libc...)/" \ -e "s/\([A-Za-z_]*\) (swapcontext.S:[0-9]*)/\1 (in \/...libc...)/" \ -e "s/_swapcontext/swapcontext/" \ diff --git a/drd/tests/tc21_pthonce.stderr.exp b/drd/tests/tc21_pthonce.stderr.exp index b6458280f1..3179b98859 100644 --- a/drd/tests/tc21_pthonce.stderr.exp +++ b/drd/tests/tc21_pthonce.stderr.exp @@ -3,7 +3,7 @@ Thread 3: Conflicting load by thread 3 at 0x........ size 4 at 0x........: child (tc21_pthonce.c:74) by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?) - by 0x........: (within libpthread-?.?.so) + by 0x........: start_thread Allocation context: BSS section of tc21_pthonce Other segment start (thread 2) (thread finished, call stack no longer available) @@ -13,7 +13,7 @@ Other segment end (thread 2) Conflicting store by thread 3 at 0x........ size 4 at 0x........: child (tc21_pthonce.c:74) by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?) - by 0x........: (within libpthread-?.?.so) + by 0x........: start_thread Allocation context: BSS section of tc21_pthonce Other segment start (thread 2) (thread finished, call stack no longer available) |
|
From: Mark W. <ma...@kl...> - 2021-10-12 13:19:00
|
Hi valgrind hackers, On Wed, 2021-09-22 at 15:02 +0200, Mark Wielaard wrote: > I would like to propose we do a valgrind 3.18.0 release next month. > There have been various useful changes since 3.17.0 for power10, > s390x z15 updates, arm64 v8.2, glibc 2.34 updates (which are really > needed, without them things simply break). I believe things are looking pretty good, the DWARF reader speedups are in, as are the Power PC fixes and the freebsd port, the libiberty demangler has been updated to support Rust v0 mangling. The bug database was cleaned up a bit and various smaller fixes have landed. And as a bonus both make and make check should now have zero compiler warnings (at least on x86_64 with latest gcc 11). There are 4 issue with patches which I like to land today and then do an RC1 release to more general testing: https://bugs.kde.org/show_bug.cgi?id=443605 Don't call final_tidyup (__libc_freeres) on FatalSignal https://bugs.kde.org/show_bug.cgi?id=439090 Implement close_range(2) https://bugs.kde.org/show_bug.cgi?id=426148 Valgrind crash with "impossible happened" when running BPF CO-RE This isn't a full fix, there are still various BPF syscall commands we don't support, but it should help those using bpf under valgrind to report better bug reports about which support is needed (most). https://bugs.kde.org/show_bug.cgi?id=441474 vgdb might eat all memory while waiting for sigstop This is only a workaround for an issue on s390x which I have been unable to track fully down. But it makes sure we don't eat all memory on the machine. We'll stop after we get more than 64 pending signals. There are also still some issues in the testsuite when running against glibc 2.34 and libstdc++ 11.2. I don't think they are critical, but it would be nice if we could clean them up: On x86_64: == 721 tests, 9 stderr failures, 0 stdout failures, 1 stderrB failure, 0 stdoutB failures, 3 post failures == gdbserver_tests/hginfo (stderrB) memcheck/tests/leak_cpp_interior (stderr) memcheck/tests/overlap (stderr) memcheck/tests/supp_unknown (stderr) helgrind/tests/tls_threads (stderr) drd/tests/annotate_barrier (stderr) drd/tests/bar_bad_xml (stderr) drd/tests/pth_barrier_thr_cr (stderr) drd/tests/tc21_pthonce (stderr) drd/tests/thread_name_xml (stderr) massif/tests/deep-D (post) massif/tests/new-cpp (post) massif/tests/overloaded-new (post) - hginfo detects an extra lock, which I don't know how to suppress: Lock ga 0x........ { Address 0x........ is 2440 bytes inside data symbol "_rtld_local" kind mbRec } - leak_cpp_interior detects slightly different leaks, which I believe are inside libstdc++: - possibly lost: x (-x) bytes in 5 (+1) blocks - still reachable: x (+x) bytes in 3 (-1) blocks + possibly lost: x (-x) bytes in 4 (+0) blocks + still reachable: x (+x) bytes in 5 (+0) blocks of which reachable via heuristic: - newarray : x (+x) bytes in 1 (+1) blocks + newarray : x (+x) bytes in 2 (+2) blocks - overlap is a known issue https://bugs.kde.org/show_bug.cgi?id=402833 - supp_unknown doesn't work because we are missing the main frame somehow - tls_threads sched WARNING: pthread stack cache cannot be disabled! This was changed in glibc 2.34, there is a new mechanism. Also helgrind seems to detect a race in pthread_create@* itself which seems odd, bad suppression? - annotate_barrier expects a backtrace in libpthread, but symbols have moved into main libc.so - by 0x........: (within libpthread-?.?.so) + by 0x........: start_thread (in /...libc...) Needs an alternate .exp file? - bar_bad_xml, we expect an unversioned pthread_barrier_init in the xml output, but get a versioned one. <frame> <ip>0x........</ip> <obj>...</obj> - <fn>pthread_barrier_init</fn> + <fn>pthread_barrier_init@*</fn> <dir>...</dir> <file>drd_pthread_intercepts.c</file> Should we just filter out the @* ? - pth_barrier_thr_cr Number of concurrent pthread_barrier_wait() calls exceeds the barrier count Not analyzed yet. - tc21_pthonce same as annotate_barrier - thread_name_xml same as bar_bad_xml but now for pthread_mutex_unlock - The massif post outputs seem to need adjustments for some internal allocation patterns in glibc/libstdc++ Cheers, Mark |