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
(8) |
2
(2) |
3
(1) |
4
(2) |
|
5
(1) |
6
(4) |
7
(6) |
8
(5) |
9
(3) |
10
(5) |
11
(1) |
|
12
(6) |
13
(4) |
14
(1) |
15
(4) |
16
(1) |
17
|
18
|
|
19
|
20
|
21
(2) |
22
(28) |
23
(17) |
24
(6) |
25
(4) |
|
26
(2) |
27
(2) |
28
|
29
(5) |
30
(8) |
31
(14) |
|
|
From: Matthias S. <zz...@ge...> - 2015-07-23 19:12:37
|
There are two testcases using partial defined bytes (bz2 and heap_pdb4).
Adding larger caches did not enlarge the hit rate, so I implemented only
a one element cache.
Pdb testcases get faster by 2 to 2.9 percent.
The only strange observation is that bz2 gets slower on amd64.
hitrate:
perf/bz2: 8142653/8405577 = 96.9%
perf/heap_pdb4: 6000000/9600000 = 62.5%
x86 performance (--reps=10):
-- bz2 --
bz2 orig :0.42s me:5.08s (12.10x, -----)
bz2 withcache :0.42s me:4.98s (11.86x, 2.0%)
-- heap_pdb4 --
heap_pdb4 orig :0.08s me:7.18s (89.75x, -----)
heap_pdb4 withcache :0.08s me:6.97s (87.12x, 2.9%)
== 2 programs, 4 timings =================
amd64 performance:
-- bz2 --
bz2 orig :0.42s me:4.47s (10.64x, -----)
bz2 withcache :0.42s me:4.54s (10.81x, -1.6%)
-- heap_pdb4 --
heap_pdb4 orig :0.07s me:6.42s (91.71x, -----)
heap_pdb4 withcache :0.07s me:6.29s (89.86x, 2.0%)
== 2 programs, 4 timings =================
---
memcheck/mc_main.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 66 insertions(+), 2 deletions(-)
diff --git a/memcheck/mc_main.c b/memcheck/mc_main.c
index f30460a..ed0b73e 100644
--- a/memcheck/mc_main.c
+++ b/memcheck/mc_main.c
@@ -918,6 +918,53 @@ typedef
}
SecVBitNode;
+// Additional cache of one element.
+// No perf testcase did perform better with a larger cache.
+typedef
+ struct {
+ Addr alignedAddr;
+ SecVBitNode *node;
+ }
+ SecVBitCache;
+static SecVBitCache secVBitCache;
+
+static void SecVBitCacheAdd(Addr aAligned, SecVBitNode * n)
+{
+ DEBUG("SecVBitCacheAdd %#lx %#lx\n", (long)aAligned, (long)n);
+ PROF_EVENT(141, "SecVBitCacheAdd");
+ secVBitCache.alignedAddr = aAligned;
+ secVBitCache.node = n;
+}
+
+static SecVBitNode *SecVBitCacheGet(Addr aAligned)
+{
+ SecVBitNode * n;
+ PROF_EVENT(142, "SecVBitCacheGet");
+ if (LIKELY(secVBitCache.alignedAddr == aAligned))
+ {
+ PROF_EVENT(143, "SecVBitCacheGet_hit");
+ DEBUG("SecVBitCacheGet hit: %#lx %#lx\n", (long)aAligned, (long)secVBitCache.node);
+ return secVBitCache.node;
+ }
+
+ PROF_EVENT(144, "SecVBitCacheGet_miss");
+ n = VG_(OSetGen_Lookup)(secVBitTable, &aAligned);
+ DEBUG("SecVBitCacheGet miss %#lx %#lx\n", (long)aAligned, (long)n);
+
+ // Is unconditionally writing faster than branching?
+ // If the value is NULL, a node will be created irectly after this call.
+ if (LIKELY(n))
+ SecVBitCacheAdd(aAligned, n);
+ return n;
+}
+
+static void SecVBitCacheClear(void)
+{
+ PROF_EVENT(140, "SecVBitCacheClear");
+ DEBUG("SecVBitCacheClear\n");
+ secVBitCache.alignedAddr = 0;
+}
+
static OSet* createSecVBitTable(void)
{
OSet* newSecVBitTable;
@@ -938,6 +985,7 @@ static void gcSecVBitTable(void)
Int i, n_nodes = 0, n_survivors = 0;
GCs_done++;
+ SecVBitCacheClear();
// Create the new table.
secVBitTable2 = createSecVBitTable();
@@ -999,7 +1047,7 @@ static UWord get_sec_vbits8(Addr a)
{
Addr aAligned = VG_ROUNDDN(a, BYTES_PER_SEC_VBIT_NODE);
Int amod = a % BYTES_PER_SEC_VBIT_NODE;
- SecVBitNode* n = VG_(OSetGen_Lookup)(secVBitTable, &aAligned);
+ SecVBitNode* n = SecVBitCacheGet(aAligned);
UChar vbits8;
tl_assert2(n, "get_sec_vbits8: no node for address %p (%p)\n", aAligned, a);
// Shouldn't be fully defined or fully undefined -- those cases shouldn't
@@ -1013,7 +1061,7 @@ static void set_sec_vbits8(Addr a, UWord vbits8)
{
Addr aAligned = VG_ROUNDDN(a, BYTES_PER_SEC_VBIT_NODE);
Int i, amod = a % BYTES_PER_SEC_VBIT_NODE;
- SecVBitNode* n = VG_(OSetGen_Lookup)(secVBitTable, &aAligned);
+ SecVBitNode* n = SecVBitCacheGet(aAligned);
// Shouldn't be fully defined or fully undefined -- those cases shouldn't
// make it to the secondary V bits table.
tl_assert(V_BITS8_DEFINED != vbits8 && V_BITS8_UNDEFINED != vbits8);
@@ -1043,6 +1091,8 @@ static void set_sec_vbits8(Addr a, UWord vbits8)
n_secVBit_nodes = VG_(OSetGen_Size)(secVBitTable);
if (n_secVBit_nodes > max_secVBit_nodes)
max_secVBit_nodes = n_secVBit_nodes;
+
+ SecVBitCacheAdd(aAligned, n);
}
}
@@ -1359,6 +1409,13 @@ ULong mc_LOADVn_slow ( Addr a, SizeT nBits, Bool bigendian )
UChar vbits8;
Bool ok;
+ if ((nBits == 16 && a & 1)
+ || (nBits == 32 && a & 3)
+ || (nBits == 64 && a & 7)
+ )
+ {
+ PROF_EVENT(32, "mc_LOADVn_slow_unaligned");
+ }
tl_assert(nBits == 64 || nBits == 32 || nBits == 16 || nBits == 8);
/* Make up a 64-bit result V word, which contains the loaded data
@@ -1525,6 +1582,13 @@ void mc_STOREVn_slow ( Addr a, SizeT nBits, ULong vbytes, Bool bigendian )
}
/* ------------ END semi-fast cases ------------ */
+ if ((nBits == 16 && a & 1)
+ || (nBits == 32 && a & 3)
+ || (nBits == 64 && a & 7)
+ )
+ {
+ PROF_EVENT(37, "mc_STOREVn_slow_unaligned");
+ }
tl_assert(nBits == 64 || nBits == 32 || nBits == 16 || nBits == 8);
/* Dump vbytes in memory, iterating from least to most significant
--
2.4.5
|
|
From: Matthias S. <zz...@ge...> - 2015-07-23 17:36:47
|
An additional comment to memcheck profiling.
The counter values should be printed unsigned. For same cases it might
even be useful to have 64bit counters instead.
--- a/memcheck/mc_main.c
+++ b/memcheck/mc_main.c
@@ -6363,7 +6363,7 @@ static void done_prof_mem ( void )
}
if (MC_(event_ctr)[i] > 0) {
spaced = False;
- VG_(printf)( "prof mem event %3d: %9d %s\n",
+ VG_(printf)( "prof mem event %3d: %9u %s\n",
i, MC_(event_ctr)[i],
MC_(event_ctr_name)[i]
? MC_(event_ctr_name)[i] : "unnamed");
Regards
Matthias
|
|
From: <sv...@va...> - 2015-07-23 13:25:03
|
Author: florian
Date: Tue Jul 21 22:37:23 2015
New Revision: 15429
Log:
Fix BZ #338606. Basically, the bug was that it was believed that
the interpreter following the #! has to be an absolute path name.
Not so; relative path works just fine.
Added:
trunk/none/tests/scripts/relative1 (with props)
trunk/none/tests/scripts/relative1.stderr.exp
trunk/none/tests/scripts/relative1.stdout.exp
trunk/none/tests/scripts/relative1.vgtest
trunk/none/tests/scripts/relative2 (with props)
trunk/none/tests/scripts/relative2.stderr.exp
trunk/none/tests/scripts/relative2.stdout.exp
trunk/none/tests/scripts/relative2.vgtest
trunk/none/tests/scripts/say-hello.helper (with props)
Modified:
trunk/NEWS
trunk/coregrind/m_ume/script.c
trunk/none/tests/scripts/Makefile.am
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Tue Jul 21 22:37:23 2015
@@ -128,6 +128,7 @@
== 343175
== 342740
335907 segfault when running wine's ddrawex/tests/surface.c under valgrind
+338606 Strange message for scripts with invalid interpreter
338731 ppc: Fix testuite build for toolchains not supporting -maltivec
338995 shmat with hugepages (SHM_HUGETLB) fails with EINVAL
339045 Getting valgrind to compile and run on OS X Yosemite (10.10)
Modified: trunk/coregrind/m_ume/script.c
==============================================================================
--- trunk/coregrind/m_ume/script.c (original)
+++ trunk/coregrind/m_ume/script.c Tue Jul 21 22:37:23 2015
@@ -1,3 +1,4 @@
+/* -*- mode: C; c-basic-offset: 3; -*- */
/*--------------------------------------------------------------------*/
/*--- User-mode execve() for #! scripts. m_ume_script.c ---*/
@@ -41,35 +42,27 @@
#include "priv_ume.h"
+/* Return true, if the first line begins with #! and contains an
+ interpreter. */
Bool VG_(match_script)(const void *hdr, SizeT len)
{
const HChar* script = hdr;
const HChar* end = script + len;
const HChar* interp = script + 2;
- // len < 4: need '#', '!', plus at least a '/' and one more char
- if (len < 4) return False;
+ if (len < 2) return False;
if (0 != VG_(memcmp)(hdr, "#!", 2)) return False;
- // Find interpreter name, make sure it's an absolute path (starts with
- // '/') and has at least one more char. First, skip over any space
- // between the #! and the start of the interpreter name
+ // Find interpreter name, which may be absolute or relative.
+ // First, skip over any space between the #! and the start of the
+ // interpreter name
while (interp < end && (*interp == ' ' || *interp == '\t')) interp++;
// overrun?
if (interp >= end) return False; // can't find start of interp name
- // interp should now point at the /
- if (*interp != '/') return False; // absolute path only for interpreter
-
- // check for something plausible after the /
- interp++;
- if (interp >= end) return False;
- if (VG_(isspace)(*interp)) return False;
-
- // Here we should get the full interpreter name and check it with
- // check_executable(). See the "EXEC FAILED" failure when running shell
- // for an example.
+ // No interpreter found.
+ if (*interp == '\n') return False;
return True; // looks like a #! script
}
@@ -103,8 +96,6 @@
while (interp < end && (*interp == ' ' || *interp == '\t'))
interp++;
- vg_assert(*interp == '/'); /* absolute path only for interpreter */
-
/* skip over interpreter name */
for (cp = interp; cp < end && !VG_(isspace)(*cp); cp++)
;
Modified: trunk/none/tests/scripts/Makefile.am
==============================================================================
--- trunk/none/tests/scripts/Makefile.am (original)
+++ trunk/none/tests/scripts/Makefile.am Tue Jul 21 22:37:23 2015
@@ -7,7 +7,9 @@
filter_stderr
EXTRA_DIST = \
+ say-hello.helper \
bug231357.vgtest bug231357.stderr.exp bug231357.stdout.exp \
+ bug338606.vgtest bug338606.stderr.exp \
shell shell.vgtest shell.stderr.exp shell.stderr.exp-dash \
shell.stdout.exp shell.stderr.exp-dash2 shell.stderr.exp-illumos \
shell.stderr.exp-solaris shell.stderr.exp-solaris-spawn \
@@ -22,6 +24,8 @@
shell_nointerp3.stdout.exp \
shell_nonexec.vgtest shell_nonexec.stderr.exp \
shell_nosuchfile.vgtest shell_nosuchfile.stderr.exp \
+ relative1 relative1.vgtest relative1.stderr.exp relative1.stdout.exp \
+ relative2 relative2.vgtest relative2.stderr.exp relative2.stdout.exp \
shell_valid1 shell_valid1.vgtest shell_valid1.stderr.exp \
shell_valid4 shell_valid4.vgtest shell_valid4.stderr.exp \
shell_valid4.stdout.exp \
Added: trunk/none/tests/scripts/relative1
==============================================================================
--- trunk/none/tests/scripts/relative1 (added)
+++ trunk/none/tests/scripts/relative1 Tue Jul 21 22:37:23 2015
@@ -0,0 +1 @@
+#!./say-hello.helper
Added: trunk/none/tests/scripts/relative1.stderr.exp
==============================================================================
(empty)
Added: trunk/none/tests/scripts/relative1.stdout.exp
==============================================================================
--- trunk/none/tests/scripts/relative1.stdout.exp (added)
+++ trunk/none/tests/scripts/relative1.stdout.exp Tue Jul 21 22:37:23 2015
@@ -0,0 +1 @@
+hello
Added: trunk/none/tests/scripts/relative1.vgtest
==============================================================================
--- trunk/none/tests/scripts/relative1.vgtest (added)
+++ trunk/none/tests/scripts/relative1.vgtest Tue Jul 21 22:37:23 2015
@@ -0,0 +1,2 @@
+prog: relative1
+vgopts: -q
Added: trunk/none/tests/scripts/relative2
==============================================================================
--- trunk/none/tests/scripts/relative2 (added)
+++ trunk/none/tests/scripts/relative2 Tue Jul 21 22:37:23 2015
@@ -0,0 +1 @@
+#! ../scripts/./say-hello.helper
Added: trunk/none/tests/scripts/relative2.stderr.exp
==============================================================================
(empty)
Added: trunk/none/tests/scripts/relative2.stdout.exp
==============================================================================
--- trunk/none/tests/scripts/relative2.stdout.exp (added)
+++ trunk/none/tests/scripts/relative2.stdout.exp Tue Jul 21 22:37:23 2015
@@ -0,0 +1 @@
+hello
Added: trunk/none/tests/scripts/relative2.vgtest
==============================================================================
--- trunk/none/tests/scripts/relative2.vgtest (added)
+++ trunk/none/tests/scripts/relative2.vgtest Tue Jul 21 22:37:23 2015
@@ -0,0 +1,2 @@
+prog: relative2
+vgopts: -q
Added: trunk/none/tests/scripts/say-hello.helper
==============================================================================
--- trunk/none/tests/scripts/say-hello.helper (added)
+++ trunk/none/tests/scripts/say-hello.helper Tue Jul 21 22:37:23 2015
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo hello
|
|
From: <sv...@va...> - 2015-07-23 13:25:03
|
Author: florian
Date: Tue Jul 21 22:01:40 2015
New Revision: 15428
Log:
Update list of ignored files from solaris port.
Modified:
trunk/coregrind/ (props changed)
trunk/gdbserver_tests/solaris/ (props changed)
trunk/memcheck/tests/amd64-solaris/ (props changed)
trunk/memcheck/tests/solaris/ (props changed)
trunk/memcheck/tests/x86-solaris/ (props changed)
trunk/none/tests/amd64/ (props changed)
trunk/none/tests/amd64-solaris/ (props changed)
trunk/none/tests/solaris/ (props changed)
trunk/none/tests/x86-solaris/ (props changed)
trunk/solaris/ (props changed)
|
|
From: <sv...@va...> - 2015-07-23 13:25:03
|
Author: florian
Date: Tue Jul 21 22:49:06 2015
New Revision: 15431
Log:
Add testcase. Should have been in r15429.
Added:
trunk/none/tests/scripts/bug338606 (with props)
trunk/none/tests/scripts/bug338606.stderr.exp
trunk/none/tests/scripts/bug338606.vgtest
Added: trunk/none/tests/scripts/bug338606
==============================================================================
--- trunk/none/tests/scripts/bug338606 (added)
+++ trunk/none/tests/scripts/bug338606 Tue Jul 21 22:49:06 2015
@@ -0,0 +1,4 @@
+#!usr/bin/perl
+
+print "hello\n";
+exit 0;
Added: trunk/none/tests/scripts/bug338606.stderr.exp
==============================================================================
--- trunk/none/tests/scripts/bug338606.stderr.exp (added)
+++ trunk/none/tests/scripts/bug338606.stderr.exp Tue Jul 21 22:49:06 2015
@@ -0,0 +1 @@
+valgrind: ./bug338606: bad interpreter: No such file or directory
Added: trunk/none/tests/scripts/bug338606.vgtest
==============================================================================
--- trunk/none/tests/scripts/bug338606.vgtest (added)
+++ trunk/none/tests/scripts/bug338606.vgtest Tue Jul 21 22:49:06 2015
@@ -0,0 +1,7 @@
+# This test used to produce a most bizarre message:
+#
+# Warning: unknown mime-type for "hello\n" -- using "application/octet-stream"
+# Error: no such file "hello\n"
+#
+prog: bug338606
+vgopts: -q
|
|
From: <sv...@va...> - 2015-07-23 13:25:03
|
Author: sewardj
Date: Tue Jul 21 16:38:43 2015
New Revision: 15427
Log:
Fix incorrect implementation of LOADV64le that was added in r15418.
Modified:
trunk/memcheck/mc_main.c
Modified: trunk/memcheck/mc_main.c
==============================================================================
--- trunk/memcheck/mc_main.c (original)
+++ trunk/memcheck/mc_main.c Tue Jul 21 16:38:43 2015
@@ -4562,7 +4562,7 @@
" ldr r2, [r3, r2, lsl #2] \n"
" uxth r1, r0 \n" // r1 is 0-(16)-0 X-(13)-X 000
" movw r3, #0xAAAA \n"
-" lsr r1, r1, #3 \n"
+" lsr r1, r1, #2 \n" // r1 is 0-(16)-0 00 X-(13)-X 0
" ldrh r1, [r2, r1] \n"
" cmp r1, r3 \n" // 0xAAAA == VA_BITS16_DEFINED
" bne .LLV64LEc0 \n" // if !all_defined
|
|
From: <sv...@va...> - 2015-07-23 13:23:26
|
Author: florian
Date: Thu Jul 16 22:43:30 2015
New Revision: 15414
Log:
Announce bug fix for BZ #350251
Modified:
trunk/NEWS
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Jul 16 22:43:30 2015
@@ -318,6 +318,7 @@
340807 disInstr(arm): unhandled instruction: 0xEE989B20
340856 disInstr(arm64): unhandled instruction 0x1E634C45 (fcsel)
340922 arm64: unhandled getgroups/setgroups syscalls
+350251 Fix typo in VEX utility program (test_main.c).
n-i-bz DRD and Helgrind: Handle Imbe_CancelReservation (clrex on ARM)
n-i-bz Add missing ]] to terminate CDATA.
n-i-bz Glibc versions prior to 2.5 do not define PTRACE_GETSIGINFO
|
|
From: <sv...@va...> - 2015-07-23 06:21:13
|
Author: rhyskidd
Date: Thu Jul 23 07:21:07 2015
New Revision: 15443
Log:
Resolve makefile consistency error at conclusion of make regtest
Modified:
trunk/none/tests/x86/Makefile.am
Modified: trunk/none/tests/x86/Makefile.am
==============================================================================
--- trunk/none/tests/x86/Makefile.am (original)
+++ trunk/none/tests/x86/Makefile.am Thu Jul 23 07:21:07 2015
@@ -59,6 +59,8 @@
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
$(addsuffix .vgtest,$(INSN_TESTS)) \
insn_fpu.stdout.exp insn_fpu.stderr.exp insn_fpu.vgtest \
+ insn_sse.stdout.exp insn_sse.stderr.exp insn_sse.vgtest \
+ insn_sse2.stdout.exp insn_sse2.stderr.exp insn_sse2.vgtest \
insn_sse3.stdout.exp insn_sse3.stderr.exp insn_sse3.vgtest \
insn_ssse3.stdout.exp insn_ssse3.stderr.exp insn_ssse3.vgtest \
jcxz.stdout.exp jcxz.stderr.exp jcxz.vgtest \
|
|
From: <sv...@va...> - 2015-07-23 05:49:20
|
Author: rhyskidd
Date: Thu Jul 23 06:49:13 2015
New Revision: 15442
Log:
Complete fix for bz#344416 - Fix make regtest does not work cleanly on OS X (3).
Modified:
trunk/NEWS
trunk/docs/internals/3_10_BUGSTATUS.txt
trunk/none/tests/amd64/Makefile.am
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Jul 23 06:49:13 2015
@@ -198,6 +198,7 @@
344314 callgrind_annotate ... warnings about commands containing newlines
344318 socketcall should wrap recvmmsg and sendmmsg
344337 Fix unhandled syscall: mach:41 (_kernelrpc_mach_port_guard_trap)
+344416 Fix âmake regtest' does not work cleanly on OS X
344499 Fix compilation for Linux kernel >= 4. With this, also require
a Linux kernel >= 2.6 as 2.4 is mostly untested and might trigger
obvious and non-obvious issues
Modified: trunk/docs/internals/3_10_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_10_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_10_BUGSTATUS.txt Thu Jul 23 06:49:13 2015
@@ -329,7 +329,6 @@
leak regardless of the simplicity of the program.
344416 'make regtest' does not work cleanly on OS X
- meta-bug
348565 unknown warning options on clang/osx:
Wmissing-parameter-type Wold-style-declaration
Modified: trunk/none/tests/amd64/Makefile.am
==============================================================================
--- trunk/none/tests/amd64/Makefile.am (original)
+++ trunk/none/tests/amd64/Makefile.am Thu Jul 23 06:49:13 2015
@@ -116,16 +116,6 @@
pcmpstr64 pcmpxstrx64 sse4-64 crc32 aes \
pcmpstr64w pcmpxstrx64w
endif
-if BUILD_AVX_TESTS
-if BUILD_VPCLMULQDQ_TESTS
- check_PROGRAMS += avx-1
-endif
-endif
-if BUILD_AVX2_TESTS
-if !COMPILER_IS_ICC
- check_PROGRAMS += avx2-1
-endif
-endif
if BUILD_TSX_TESTS
check_PROGRAMS += tm1 xacq_xrel
endif
@@ -157,6 +147,16 @@
if BUILD_MOVBE_TESTS
check_PROGRAMS += movbe
endif
+if BUILD_AVX_TESTS
+if BUILD_VPCLMULQDQ_TESTS
+ check_PROGRAMS += avx-1
+endif
+endif
+if BUILD_AVX2_TESTS
+if !COMPILER_IS_ICC
+ check_PROGRAMS += avx2-1
+endif
+endif
endif
AM_CFLAGS += @FLAG_M64@
|
|
From: <sv...@va...> - 2015-07-23 05:33:38
|
Author: rhyskidd
Date: Thu Jul 23 06:33:31 2015
New Revision: 15441
Log:
Partial fix for bz#344416 - Fix make regtest does not work cleanly on OS X (2).
Modified:
trunk/none/tests/x86/Makefile.am
Modified: trunk/none/tests/x86/Makefile.am
==============================================================================
--- trunk/none/tests/x86/Makefile.am (original)
+++ trunk/none/tests/x86/Makefile.am Thu Jul 23 06:33:31 2015
@@ -5,18 +5,25 @@
CLEANFILES = $(addsuffix .c,$(INSN_TESTS))
-INSN_TESTS = insn_basic insn_cmov insn_mmx insn_mmxext \
- insn_sse insn_sse2
+INSN_TESTS = insn_basic insn_cmov insn_mmx insn_mmxext
+
+if !COMPILER_IS_CLANG
+ INSN_TESTS += insn_sse insn_sse2
if BUILD_SSSE3_TESTS
INSN_TESTS += insn_ssse3
endif
+if BUILD_SSE3_TESTS
if !SOLARIS_SUN_STUDIO_AS
# Sun Studio assembler fails to build some tests (illegal mnemonic).
-INSN_TESTS += insn_fpu
-if BUILD_SSE3_TESTS
INSN_TESTS += insn_sse3
endif
endif
+endif
+
+if !SOLARIS_SUN_STUDIO_AS
+# Sun Studio assembler fails to build some tests (illegal mnemonic).
+ INSN_TESTS += insn_fpu
+endif
# Explicitly include insn_sse3 even if ! BUILD_SSE3_TESTS,
# to avoid packaging screwups if 'make dist' is run on a machine
|
|
From: <sv...@va...> - 2015-07-23 05:04:48
|
Author: rhyskidd
Date: Thu Jul 23 06:04:36 2015
New Revision: 15440
Log:
Partial fix for bz#344416 - Fix make regtest does not work cleanly on OS X.
Modified:
trunk/none/tests/amd64/Makefile.am
trunk/none/tests/x86/Makefile.am
Modified: trunk/none/tests/amd64/Makefile.am
==============================================================================
--- trunk/none/tests/amd64/Makefile.am (original)
+++ trunk/none/tests/amd64/Makefile.am Thu Jul 23 06:04:36 2015
@@ -135,9 +135,6 @@
if BUILD_FMA_TESTS
check_PROGRAMS += fma
endif
-if BUILD_MOVBE_TESTS
- check_PROGRAMS += movbe
-endif
if BUILD_MPX_TESTS
check_PROGRAMS += mpx
endif
@@ -157,6 +154,9 @@
if BUILD_LOOPNEL_TESTS
check_PROGRAMS += loopnel
endif
+if BUILD_MOVBE_TESTS
+ check_PROGRAMS += movbe
+endif
endif
AM_CFLAGS += @FLAG_M64@
Modified: trunk/none/tests/x86/Makefile.am
==============================================================================
--- trunk/none/tests/x86/Makefile.am (original)
+++ trunk/none/tests/x86/Makefile.am Thu Jul 23 06:04:36 2015
@@ -111,14 +111,14 @@
check_PROGRAMS += lzcnt32
endif
if !VGCONF_OS_IS_DARWIN
+if BUILD_MOVBE_TESTS
+ check_PROGRAMS += movbe
+endif
if !SOLARIS_SUN_STUDIO_AS
# Sun Studio assembler fails to assemble the bound instruction
check_PROGRAMS += faultstatus
endif
endif
-if BUILD_MOVBE_TESTS
- check_PROGRAMS += movbe
-endif
if !SOLARIS_SUN_STUDIO_AS
# Sun Studio assembler fails to assemble pushw %fs, popw %fs
check_PROGRAMS += pushpopseg
|
|
From: <jr...@bi...> - 2015-07-23 03:26:13
|
On Wed, July 22, 2015, Julian Seward wrote: > > On 15/07/15 14:19, John Reiser wrote: > >> [...] but instruction decode often is a bottleneck for memcheck. [...] >> > > That's interesting. Can you expand on that? Do you have some > measurements or such, that show this? If a taken branch is mis-predicted, or if the branch is indirect through a register or memory (such as "call *%rax") then the prefetch+decoder starts behind until it has decoded a cumulative average of at least 2 instructions per cycle. In particular if the prefetch [8-bytes, aligned] at the target does not contain 2 complete instructions then it will be behind for at least one more cycle. A data fetch from memory is the surest opportunity to catch up, because the cache latency is 3 or 4 cycles. For JIT code, it would pay to replicate the several most-frequent helper targets at the beginning or end of a large block of JIT code, so that a CALL to those helpers could be made by 32-bit pc-relative displacement instead of by "movabs $64-bits, %rax; call *%rax". A replicated JIT helper that is within 31-bit range of the master can tail merge into the master with a "jmp displ32", preferably in the shadow of a cache fetch. A replicated JIT helper that is not within 31-bit range of the master probably must use equivalent code with carefully-scheduled fetches of 64-bit pointers. |
|
From: <sv...@va...> - 2015-07-23 03:12:48
|
Author: bart
Date: Thu Jul 23 03:47:42 2015
New Revision: 15439
Log:
regression tests: Remove superfluous backticks
Backticks are not needed around a shell statement that does not produce
any output.
Modified:
trunk/helgrind/tests/pth_cond_destroy_busy.vgtest
trunk/memcheck/tests/leak-segv-jmp.vgtest
trunk/memcheck/tests/linux/getregset.vgtest
trunk/memcheck/tests/linux/proc-auxv.vgtest
trunk/memcheck/tests/test-plo-yes.vgtest
trunk/memcheck/tests/x86/fxsave.vgtest
Modified: trunk/helgrind/tests/pth_cond_destroy_busy.vgtest
==============================================================================
--- trunk/helgrind/tests/pth_cond_destroy_busy.vgtest (original)
+++ trunk/helgrind/tests/pth_cond_destroy_busy.vgtest Thu Jul 23 03:47:42 2015
@@ -1,2 +1,2 @@
-prereq: ! `../../tests/os_test darwin`
+prereq: ! ../../tests/os_test darwin
prog: ../../drd/tests/pth_cond_destroy_busy
Modified: trunk/memcheck/tests/leak-segv-jmp.vgtest
==============================================================================
--- trunk/memcheck/tests/leak-segv-jmp.vgtest (original)
+++ trunk/memcheck/tests/leak-segv-jmp.vgtest Thu Jul 23 03:47:42 2015
@@ -1,2 +1,2 @@
-prereq: test ! `../../tests/os_test darwin` && ! `../../tests/arch_test mips32` && ! `../../tests/arch_test ppc64`
+prereq: ! ../../tests/os_test darwin && ! ../../tests/arch_test mips32 && ! ../../tests/arch_test ppc64
prog: leak-segv-jmp
Modified: trunk/memcheck/tests/linux/getregset.vgtest
==============================================================================
--- trunk/memcheck/tests/linux/getregset.vgtest (original)
+++ trunk/memcheck/tests/linux/getregset.vgtest Thu Jul 23 03:47:42 2015
@@ -1,4 +1,4 @@
prog: getregset
vgopts: -q
-prereq: ../../../tests/os_test linux 2.6.33 && ! ../../../tests/arch_test mips32 && ! `../../../tests/arch_test ppc64`
+prereq: ../../../tests/os_test linux 2.6.33 && ! ../../../tests/arch_test mips32 && ! ../../../tests/arch_test ppc64
Modified: trunk/memcheck/tests/linux/proc-auxv.vgtest
==============================================================================
--- trunk/memcheck/tests/linux/proc-auxv.vgtest (original)
+++ trunk/memcheck/tests/linux/proc-auxv.vgtest Thu Jul 23 03:47:42 2015
@@ -1,3 +1,3 @@
-prereq: `LD_SHOW_AUXV=1 /bin/echo | grep AT_PLATFORM > /dev/null`
+prereq: LD_SHOW_AUXV=1 /bin/echo | grep -q AT_PLATFORM
prog: proc-auxv
vgopts: -q
Modified: trunk/memcheck/tests/test-plo-yes.vgtest
==============================================================================
--- trunk/memcheck/tests/test-plo-yes.vgtest (original)
+++ trunk/memcheck/tests/test-plo-yes.vgtest Thu Jul 23 03:47:42 2015
@@ -1,3 +1,3 @@
-prereq: test ! `../../tests/arch_test ppc32` && ! `../../tests/arch_test ppc64` && ! `../../tests/arch_test s390x` && ! `../../tests/mips_features mips-be`
+prereq: ! ../../tests/arch_test ppc32 && ! ../../tests/arch_test ppc64 && ! ../../tests/arch_test s390x && ! ../../tests/mips_features mips-be
prog: test-plo
vgopts: -q --partial-loads-ok=yes
Modified: trunk/memcheck/tests/x86/fxsave.vgtest
==============================================================================
--- trunk/memcheck/tests/x86/fxsave.vgtest (original)
+++ trunk/memcheck/tests/x86/fxsave.vgtest Thu Jul 23 03:47:42 2015
@@ -1,4 +1,4 @@
prog: fxsave
-prereq: ../../../tests/x86_amd64_features x86-sse && ! `../../../tests/os_test darwin`
+prereq: ../../../tests/x86_amd64_features x86-sse && ! ../../../tests/os_test darwin
vgopts: -q
args: x
|
|
From: <sv...@va...> - 2015-07-23 02:46:55
|
Author: bart
Date: Thu Jul 23 03:46:44 2015
New Revision: 15438
Log:
tests/vg_regtest: Always evaluate prerequisite expressions with sh
This avoids that expressions like ! <stmnt> fail with a mysterious
error message.
Modified:
trunk/tests/vg_regtest.in
Modified: trunk/tests/vg_regtest.in
==============================================================================
--- trunk/tests/vg_regtest.in (original)
+++ trunk/tests/vg_regtest.in Thu Jul 23 03:46:44 2015
@@ -443,7 +443,7 @@
read_vgtest_file($vgtest);
if (defined $prereq) {
- my $prereq_res = system("$prereq");
+ my $prereq_res = system("/bin/sh", "-c", $prereq);
if (0 == $prereq_res) {
# Do nothing (ie. continue with the test)
} elsif (256 == $prereq_res) {
|
|
From: <sv...@va...> - 2015-07-23 01:07:49
|
Author: rhyskidd
Date: Thu Jul 23 02:07:38 2015
New Revision: 15437
Log:
Set svn:ignore on new gdbserver_test/solaris folder
Modified:
trunk/gdbserver_tests/solaris/ (props changed)
|
|
From: <sv...@va...> - 2015-07-23 00:08:37
|
Author: rhyskidd
Date: Thu Jul 23 01:08:30 2015
New Revision: 15436
Log:
Unbreak the OS X/clang build from r15419. This handrolled assembly on x86 will need more work to build with Apple's clang variant.
Modified:
trunk/memcheck/mc_main.c
Modified: trunk/memcheck/mc_main.c
==============================================================================
--- trunk/memcheck/mc_main.c (original)
+++ trunk/memcheck/mc_main.c Thu Jul 23 01:08:30 2015
@@ -4587,7 +4587,7 @@
);
#elif ENABLE_ASSEMBLY_HELPERS && defined(PERF_FAST_LOADV) \
- && (defined(VGP_x86_linux) || defined(VGP_x86_darwin))
+ && defined(VGP_x86_linux)
__asm__(
".text\n"
".align 16\n"
@@ -4622,7 +4622,7 @@
);
#else
-// Generic for all platforms except arm32-linux, x86-{linux,darwin}
+// Generic for all platforms except {arm32,x86}-linux
VG_REGPARM(1) ULong MC_(helperc_LOADV64le) ( Addr a )
{
return mc_LOADV64(a, False);
@@ -4785,7 +4785,7 @@
);
#elif ENABLE_ASSEMBLY_HELPERS && defined(PERF_FAST_LOADV) \
- && (defined(VGP_x86_linux) || defined(VGP_x86_darwin))
+ && defined(VGP_x86_linux)
__asm__(
".text\n"
".align 16\n"
@@ -4818,7 +4818,7 @@
);
#else
-// Generic for all platforms except arm32-linux, x86-{linux,darwin}
+// Generic for all platforms except {arm32,x86}-linux
VG_REGPARM(1) UWord MC_(helperc_LOADV32le) ( Addr a )
{
return mc_LOADV32(a, False);
@@ -4998,7 +4998,7 @@
);
#elif ENABLE_ASSEMBLY_HELPERS && defined(PERF_FAST_LOADV) \
- && (defined(VGP_x86_linux) || defined(VGP_x86_darwin))
+ && defined(VGP_x86_linux)
__asm__(
".text\n"
".align 16\n"
@@ -5043,7 +5043,7 @@
);
#else
-// Generic for all platforms except arm32-linux, x86-{linux,darwin}
+// Generic for all platforms except {arm32,x86}-linux
VG_REGPARM(1) UWord MC_(helperc_LOADV16le) ( Addr a )
{
return mc_LOADV16(a, False);
@@ -5192,7 +5192,7 @@
/* Non-generic assembly for x86-linux */
#elif ENABLE_ASSEMBLY_HELPERS && defined(PERF_FAST_LOADV) \
- && (defined(VGP_x86_linux) || defined(VGP_x86_darwin))
+ && defined(VGP_x86_linux)
__asm__(
".text\n"
".align 16\n"
@@ -5234,7 +5234,7 @@
);
#else
-// Generic for all platforms except arm32-linux, x86-{linux,darwin}
+// Generic for all platforms except {arm32,x86}-linux
VG_REGPARM(1)
UWord MC_(helperc_LOADV8) ( Addr a )
{
|