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
(30) |
2
(8) |
3
(5) |
4
(5) |
|
5
(3) |
6
(9) |
7
(5) |
8
(14) |
9
(17) |
10
(27) |
11
(10) |
|
12
(6) |
13
(10) |
14
(7) |
15
(16) |
16
(9) |
17
(14) |
18
(8) |
|
19
(5) |
20
(13) |
21
(21) |
22
(13) |
23
(4) |
24
(1) |
25
(4) |
|
26
(2) |
27
(7) |
28
(4) |
29
(5) |
30
(12) |
|
|
|
From: <sv...@va...> - 2015-04-25 18:23:29
|
Author: florian
Date: Sat Apr 25 19:23:21 2015
New Revision: 15144
Log:
Fix BZ #342683. Based on patch by Ivo Raisr.
What this does is to make sure that the initial client data segment
is marked as unaddressable. This is consistent with the behaviour of
brk when the data segment is shrunk. The "freed" memory is marked
as unaddressable.
Special tweaks were needed for s390 which was returning early from
the funtion to avoid sloppy register definedness initialisation.
Modified:
trunk/NEWS
trunk/coregrind/m_initimg/initimg-linux.c
trunk/memcheck/tests/dw4.stderr.exp
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Sat Apr 25 19:23:21 2015
@@ -108,6 +108,7 @@
342353 Allow dumping full massif output while valgrind is still running
342603 Add I2C_SMBUS ioctl support
342635 OS X 10.10 (Yosemite) - missing system calls and fcntl code
+342683 Mark memory past the initial brk limit as unaddressable
342795 Internal glibc __GI_mempcpy call should be intercepted
343012 Unhandled syscall 319 (memfd_create)
343069 Patch updating v4l2 API support
Modified: trunk/coregrind/m_initimg/initimg-linux.c
==============================================================================
--- trunk/coregrind/m_initimg/initimg-linux.c (original)
+++ trunk/coregrind/m_initimg/initimg-linux.c Sat Apr 25 19:23:21 2015
@@ -1143,7 +1143,12 @@
VG_TRACK(post_reg_write, Vg_CoreStartup, /*tid*/1, VG_O_STACK_PTR, 8);
VG_TRACK(post_reg_write, Vg_CoreStartup, /*tid*/1, VG_O_FPC_REG, 4);
VG_TRACK(post_reg_write, Vg_CoreStartup, /*tid*/1, VG_O_INSTR_PTR, 8);
- return;
+
+ /* At the end of this function there is code to mark all guest state
+ registers as defined. For s390 that would be wrong, because the ABI
+ says that all registers except SP, IA, and FPC are undefined upon
+ process startup. */
+#define PRECISE_GUEST_REG_DEFINEDNESS_AT_STARTUP 1
# elif defined(VGP_mips32_linux)
vg_assert(0 == sizeof(VexGuestMIPS32State) % 16);
@@ -1192,9 +1197,20 @@
# error Unknown platform
# endif
+# if !defined(PRECISE_GUEST_REG_DEFINEDNESS_AT_STARTUP)
/* Tell the tool that we just wrote to the registers. */
VG_TRACK( post_reg_write, Vg_CoreStartup, /*tid*/1, /*offset*/0,
sizeof(VexGuestArchState));
+# endif
+
+ /* Tell the tool about the client data segment and then kill it which will
+ make it inaccessible/unaddressable. */
+ const NSegment *seg = VG_(am_find_nsegment)(VG_(brk_base));
+ vg_assert(seg);
+ vg_assert(seg->kind == SkAnonC);
+ VG_TRACK(new_mem_brk, VG_(brk_base), seg->end + 1 - VG_(brk_base),
+ 1/*tid*/);
+ VG_TRACK(die_mem_brk, VG_(brk_base), seg->end + 1 - VG_(brk_base));
}
#endif // defined(VGO_linux)
Modified: trunk/memcheck/tests/dw4.stderr.exp
==============================================================================
--- trunk/memcheck/tests/dw4.stderr.exp (original)
+++ trunk/memcheck/tests/dw4.stderr.exp Sat Apr 25 19:23:21 2015
@@ -27,8 +27,8 @@
by 0x........: main (dw4.c:82)
Address 0x........ is in a rw- mapped file valgrind-dw4-test.PID segment
-Uninitialised byte(s) found during client check request
- at 0x........: croak (dw4.c:32)
+Unaddressable byte(s) found during client check request
+ at 0x........: croak (dw4.c:25)
by 0x........: main (dw4.c:87)
Address 0x........ is 0 bytes after the brk data segment limit 0x........
|
|
From: <sv...@va...> - 2015-04-25 18:14:24
|
Author: florian
Date: Sat Apr 25 19:14:17 2015
New Revision: 15143
Log:
Fix the writev / readv wrappers. Do not read the array pointed to
by the 2nd argument, if the element count is negative.
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
trunk/memcheck/tests/writev1.c
trunk/memcheck/tests/writev1.stderr.exp
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-generic.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c Sat Apr 25 19:14:17 2015
@@ -4006,7 +4006,8 @@
if (!ML_(fd_allowed)(ARG1, "readv", tid, False)) {
SET_STATUS_Failure( VKI_EBADF );
} else {
- PRE_MEM_READ( "readv(vector)", ARG2, ARG3 * sizeof(struct vki_iovec) );
+ if ((Int)ARG3 >= 0)
+ PRE_MEM_READ( "readv(vector)", ARG2, ARG3 * sizeof(struct vki_iovec) );
if (ARG2 != 0) {
/* ToDo: don't do any of the following if the vector is invalid */
@@ -4335,8 +4336,9 @@
if (!ML_(fd_allowed)(ARG1, "writev", tid, False)) {
SET_STATUS_Failure( VKI_EBADF );
} else {
- PRE_MEM_READ( "writev(vector)",
- ARG2, ARG3 * sizeof(struct vki_iovec) );
+ if ((Int)ARG3 >= 0)
+ PRE_MEM_READ( "writev(vector)",
+ ARG2, ARG3 * sizeof(struct vki_iovec) );
if (ARG2 != 0) {
/* ToDo: don't do any of the following if the vector is invalid */
vec = (struct vki_iovec *)ARG2;
Modified: trunk/memcheck/tests/writev1.c
==============================================================================
--- trunk/memcheck/tests/writev1.c (original)
+++ trunk/memcheck/tests/writev1.c Sat Apr 25 19:14:17 2015
@@ -80,7 +80,7 @@
fprintf(stderr, "expected errno = EINVAL, got %d\n", errno);
}
else
- fprintf(stderr, "Error writev returned a positive value\n");
+ fprintf(stderr, "Error readv returned a positive value\n");
unlink(f_name);
Modified: trunk/memcheck/tests/writev1.stderr.exp
==============================================================================
--- trunk/memcheck/tests/writev1.stderr.exp (original)
+++ trunk/memcheck/tests/writev1.stderr.exp Sat Apr 25 19:14:17 2015
@@ -5,15 +5,5 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
Received EFAULT as expected
-Syscall param writev(vector) points to unaddressable byte(s)
- ...
- by 0x........: main (writev1.c:68)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
Received EINVAL as expected
-Syscall param readv(vector) points to unaddressable byte(s)
- ...
- by 0x........: main (writev1.c:76)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
Received EINVAL as expected
|
|
From: <sv...@va...> - 2015-04-25 14:53:43
|
Author: philippe
Date: Sat Apr 25 15:53:35 2015
New Revision: 15142
Log:
Replace adler32 by sdbm_hash in m_deduppoolalloc.c
adler32 is not very good as a hash function.
sdbm_hash gives more different keys that adler32,
and in a large majority of the cases, shorter chains.
Modified:
trunk/coregrind/m_deduppoolalloc.c
Modified: trunk/coregrind/m_deduppoolalloc.c
==============================================================================
--- trunk/coregrind/m_deduppoolalloc.c (original)
+++ trunk/coregrind/m_deduppoolalloc.c Sat Apr 25 15:53:35 2015
@@ -231,6 +231,19 @@
ddpa->ht_node_pa = NULL;
}
+
+// hash function used by gawk and SDBM.
+static UInt sdbm_hash (const UChar* buf, UInt len )
+{
+ UInt h;
+ UInt i;
+
+ h = 0;
+ for (i = 0; i < len; i++)
+ h = *buf++ + (h<<6) + (h<<16) - h;
+ return h;
+}
+
const void* VG_(allocEltDedupPA) (DedupPoolAlloc *ddpa, SizeT eltSzB,
const void *elt)
{
@@ -243,14 +256,7 @@
ddpa->nr_alloc_calls++;
- // Currently using adler32 as hash function.
- // Many references tells adler32 is bad as a hash function.
- // And effectively, some tests on dwarf debug string shows
- // a lot of collisions (at least for short elements).
- // (A lot can be 10% of the elements colliding, even on
- // small nr of elements such as 10_000).
- ht_elt.key = VG_(adler32) (0, NULL, 0);
- ht_elt.key = VG_(adler32) (ht_elt.key, elt, eltSzB);
+ ht_elt.key = sdbm_hash (elt, eltSzB);
ht_elt.eltSzB = eltSzB;
ht_elt.elt = elt;
|
|
From: <sv...@va...> - 2015-04-25 14:00:32
|
Author: philippe
Date: Sat Apr 25 15:00:24 2015
New Revision: 15141
Log:
Give statistics about RCEC helgrind hash table chains.
Improve statistic in coregrind hash table
Modified:
trunk/coregrind/m_hashtable.c
trunk/helgrind/libhb_core.c
Modified: trunk/coregrind/m_hashtable.c
==============================================================================
--- trunk/coregrind/m_hashtable.c (original)
+++ trunk/coregrind/m_hashtable.c Sat Apr 25 15:00:24 2015
@@ -320,8 +320,11 @@
ncno += cno_occurences[i];
}
VG_(message)(Vg_DebugMsg,
- "total nr of unique chains: %6d, keys %6d, elts %6d\n",
- ncno, nkey, nelt);
+ "total nr of unique slots: %6d, keys %6d, elts %6d."
+ " Avg chain len %3.1f\n",
+ ncno, nkey, nelt,
+ (Double)nelt/(Double)(ncno == cno_occurences[0] ?
+ 1 : ncno - cno_occurences[0]));
}
Modified: trunk/helgrind/libhb_core.c
==============================================================================
--- trunk/helgrind/libhb_core.c (original)
+++ trunk/helgrind/libhb_core.c Sat Apr 25 15:00:24 2015
@@ -911,10 +911,10 @@
*fixp = (Word)i;
return;
}
- }
+ }
- /*NOTREACHED*/
- tl_assert(0);
+ /*NOTREACHED*/
+ tl_assert(0);
}
@@ -6159,6 +6159,40 @@
(UWord)N_RCEC_TAB,
stats__ctxt_tab_curr, RCEC_referenced,
stats__ctxt_tab_max );
+ {
+# define MAXCHAIN 10
+ UInt chains[MAXCHAIN+1]; // [MAXCHAIN] gets all chains >= MAXCHAIN
+ UInt non0chain = 0;
+ UInt n;
+ UInt i;
+ RCEC *p;
+
+ for (i = 0; i <= MAXCHAIN; i++) chains[i] = 0;
+ for (i = 0; i < N_RCEC_TAB; i++) {
+ n = 0;
+ for (p = contextTab[i]; p; p = p->next)
+ n++;
+ if (n < MAXCHAIN)
+ chains[n]++;
+ else
+ chains[MAXCHAIN]++;
+ if (n > 0)
+ non0chain++;
+ }
+ VG_(printf)( " libhb: contextTab chain of [length]=nchain."
+ " Avg chain len %3.1f\n"
+ " ",
+ (Double)stats__ctxt_tab_curr
+ / (Double)(non0chain ? non0chain : 1));
+ for (i = 0; i <= MAXCHAIN; i++) {
+ if (chains[i] != 0)
+ VG_(printf)( "[%d%s]=%d ",
+ i, i == MAXCHAIN ? "+" : "",
+ chains[i]);
+ }
+ VG_(printf)( "\n");
+# undef MAXCHAIN
+ }
VG_(printf)( " libhb: contextTab: %lu queries, %lu cmps\n",
stats__ctxt_tab_qs,
stats__ctxt_tab_cmps );
|