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
(17) |
2
(10) |
3
(5) |
|
4
(12) |
5
(12) |
6
(15) |
7
(17) |
8
(13) |
9
(18) |
10
(10) |
|
11
|
12
(2) |
13
(20) |
14
(16) |
15
(17) |
16
(19) |
17
(17) |
|
18
(14) |
19
(12) |
20
|
21
(5) |
22
(12) |
23
(10) |
24
(1) |
|
25
|
26
(2) |
27
|
28
(2) |
29
|
30
(1) |
31
(2) |
|
From: <sv...@va...> - 2014-05-03 21:28:07
|
Author: sewardj
Date: Sat May 3 21:28:00 2014
New Revision: 13932
Log:
VG_(invalidate_icache) for ARM64: fix incorrect computation of cache
line sizes.
Modified:
trunk/coregrind/m_libcproc.c
Modified: trunk/coregrind/m_libcproc.c
==============================================================================
--- trunk/coregrind/m_libcproc.c (original)
+++ trunk/coregrind/m_libcproc.c Sat May 3 21:28:00 2014
@@ -820,8 +820,8 @@
const UInt icache_line_size_power_of_two =
(cache_type_register & kICacheLineSizeMask) >> kICacheLineSizeShift;
- const UInt dcache_line_size_ = 1 << dcache_line_size_power_of_two;
- const UInt icache_line_size_ = 1 << icache_line_size_power_of_two;
+ const UInt dcache_line_size_ = 4 * (1 << dcache_line_size_power_of_two);
+ const UInt icache_line_size_ = 4 * (1 << icache_line_size_power_of_two);
Addr start = (Addr)ptr;
// Sizes will be used to generate a mask big enough to cover a pointer.
|
Author: sewardj
Date: Sat May 3 21:22:55 2014
New Revision: 13931
Log:
ARM64: add support for cache management instructions (Valgrind side):
dc cvau, regX
ic ivau, regX
mrs regX, ctr_el0
Fixes #333228 and #333230.
Modified:
trunk/coregrind/m_libcproc.c
trunk/coregrind/m_machine.c
trunk/coregrind/m_scheduler/scheduler.c
trunk/coregrind/pub_core_libcproc.h
trunk/memcheck/mc_machine.c
Modified: trunk/coregrind/m_libcproc.c
==============================================================================
--- trunk/coregrind/m_libcproc.c (original)
+++ trunk/coregrind/m_libcproc.c Sat May 3 21:22:55 2014
@@ -893,6 +893,34 @@
}
+/* ---------------------------------------------------------------------
+ dcache flushing
+ ------------------------------------------------------------------ */
+
+void VG_(flush_dcache) ( void *ptr, SizeT nbytes )
+{
+ /* Currently this is only required on ARM64. */
+# if defined(VGA_arm64)
+ Addr startaddr = (Addr) ptr;
+ Addr endaddr = startaddr + nbytes;
+ Addr cls;
+ Addr addr;
+
+ ULong ctr_el0;
+ __asm__ __volatile__ ("mrs %0, ctr_el0" : "=r"(ctr_el0));
+ cls = 4 * (1ULL << (0xF & (ctr_el0 >> 16)));
+
+ /* Stay sane .. */
+ vg_assert(cls == 64);
+
+ startaddr &= ~(cls - 1);
+ for (addr = startaddr; addr < endaddr; addr += cls) {
+ __asm__ __volatile__("dc cvau, %0" : : "r" (addr));
+ }
+ __asm__ __volatile__("dsb ish");
+# endif
+}
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/m_machine.c
==============================================================================
--- trunk/coregrind/m_machine.c (original)
+++ trunk/coregrind/m_machine.c Sat May 3 21:22:55 2014
@@ -1454,6 +1454,19 @@
VG_(machine_get_cache_info)(&vai);
+ /* 0 denotes 'not set'. The range of legitimate values here,
+ after being set that is, is 2 though 17 inclusive. */
+ vg_assert(vai.arm64_dMinLine_lg2_szB == 0);
+ vg_assert(vai.arm64_iMinLine_lg2_szB == 0);
+ ULong ctr_el0;
+ __asm__ __volatile__("mrs %0, ctr_el0" : "=r"(ctr_el0));
+ vai.arm64_dMinLine_lg2_szB = ((ctr_el0 >> 16) & 0xF) + 2;
+ vai.arm64_iMinLine_lg2_szB = ((ctr_el0 >> 0) & 0xF) + 2;
+ VG_(debugLog)(1, "machine", "ARM64: ctr_el0.dMinLine_szB = %d, "
+ "ctr_el0.iMinLine_szB = %d\n",
+ 1 << vai.arm64_dMinLine_lg2_szB,
+ 1 << vai.arm64_iMinLine_lg2_szB);
+
return True;
}
Modified: trunk/coregrind/m_scheduler/scheduler.c
==============================================================================
--- trunk/coregrind/m_scheduler/scheduler.c (original)
+++ trunk/coregrind/m_scheduler/scheduler.c Sat May 3 21:22:55 2014
@@ -1466,21 +1466,20 @@
VG_(umsg)(
"valgrind: Unrecognised instruction at address %#lx.\n", addr);
VG_(get_and_pp_StackTrace)(tid, VG_(clo_backtrace_size));
-#define M(a) VG_(umsg)(a "\n");
- M("Your program just tried to execute an instruction that Valgrind" );
- M("did not recognise. There are two possible reasons for this." );
- M("1. Your program has a bug and erroneously jumped to a non-code" );
- M(" location. If you are running Memcheck and you just saw a" );
- M(" warning about a bad jump, it's probably your program's fault.");
- M("2. The instruction is legitimate but Valgrind doesn't handle it,");
- M(" i.e. it's Valgrind's fault. If you think this is the case or");
- M(" you are not sure, please let us know and we'll try to fix it.");
- M("Either way, Valgrind will now raise a SIGILL signal which will" );
- M("probably kill your program." );
-#undef M
+# define M(a) VG_(umsg)(a "\n");
+ M("Your program just tried to execute an instruction that Valgrind" );
+ M("did not recognise. There are two possible reasons for this." );
+ M("1. Your program has a bug and erroneously jumped to a non-code" );
+ M(" location. If you are running Memcheck and you just saw a" );
+ M(" warning about a bad jump, it's probably your program's fault.");
+ M("2. The instruction is legitimate but Valgrind doesn't handle it,");
+ M(" i.e. it's Valgrind's fault. If you think this is the case or");
+ M(" you are not sure, please let us know and we'll try to fix it.");
+ M("Either way, Valgrind will now raise a SIGILL signal which will" );
+ M("probably kill your program." );
+# undef M
}
-
-#if defined(VGA_s390x)
+# if defined(VGA_s390x)
/* Now that the complaint is out we need to adjust the guest_IA. The
reason is that -- after raising the exception -- execution will
continue with the insn that follows the invalid insn. As the first
@@ -1492,12 +1491,12 @@
UChar byte = ((UChar *)addr)[0];
UInt insn_length = ((((byte >> 6) + 1) >> 1) + 1) << 1;
Addr next_insn_addr = addr + insn_length;
-
VG_(set_IP)(tid, next_insn_addr);
-#endif
+# endif
VG_(synth_sigill)(tid, addr);
break;
}
+
case VEX_TRC_JMP_TINVAL:
VG_(discard_translations)(
(Addr64)VG_(threads)[tid].arch.vex.guest_TISTART,
@@ -1508,6 +1507,14 @@
VG_(printf)("dump translations done.\n");
break;
+ case VEX_TRC_JMP_FLUSHDCACHE: {
+ void* start = (void*)VG_(threads)[tid].arch.vex.guest_TISTART;
+ SizeT len = VG_(threads)[tid].arch.vex.guest_TILEN;
+ VG_(debugLog)(2, "sched", "flush_dcache(%p, %lu)\n", start, len);
+ VG_(flush_dcache)(start, len);
+ break;
+ }
+
case VG_TRC_INVARIANT_FAILED:
/* This typically happens if, after running generated code,
it is detected that host CPU settings (eg, FPU/Vector
Modified: trunk/coregrind/pub_core_libcproc.h
==============================================================================
--- trunk/coregrind/pub_core_libcproc.h (original)
+++ trunk/coregrind/pub_core_libcproc.h Sat May 3 21:22:55 2014
@@ -87,6 +87,8 @@
// icache invalidation
extern void VG_(invalidate_icache) ( void *ptr, SizeT nbytes );
+// dcache flushing
+extern void VG_(flush_dcache) ( void *ptr, SizeT nbytes );
#endif // __PUB_CORE_LIBCPROC_H
Modified: trunk/memcheck/mc_machine.c
==============================================================================
--- trunk/memcheck/mc_machine.c (original)
+++ trunk/memcheck/mc_machine.c Sat May 3 21:22:55 2014
@@ -1055,6 +1055,9 @@
if (o == GOF(FPCR) && sz == 4) return -1; // untracked
if (o == GOF(FPSR) && sz == 4) return -1; // untracked
+ if (o == GOF(TISTART) && sz == 8) return -1; // untracked
+ if (o == GOF(TILEN) && sz == 8) return -1; // untracked
+
VG_(printf)("MC_(get_otrack_shadow_offset)(arm64)(off=%d,sz=%d)\n",
offset,szB);
tl_assert(0);
|
Author: sewardj
Date: Sat May 3 21:20:56 2014
New Revision: 2851
Log:
ARM64: add support for cache management instructions (VEX side):
dc cvau, regX
ic ivau, regX
mrs regX, ctr_el0
Fixes #333228 and #333230.
Modified:
trunk/priv/guest_arm64_toIR.c
trunk/priv/host_arm64_defs.c
trunk/priv/host_arm64_isel.c
trunk/priv/ir_defs.c
trunk/priv/main_main.c
trunk/pub/libvex.h
trunk/pub/libvex_ir.h
trunk/pub/libvex_trc_values.h
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Sat May 3 21:20:56 2014
@@ -4386,7 +4386,8 @@
/*------------------------------------------------------------*/
static
-Bool dis_ARM64_branch_etc(/*MB_OUT*/DisResult* dres, UInt insn)
+Bool dis_ARM64_branch_etc(/*MB_OUT*/DisResult* dres, UInt insn,
+ VexArchInfo* archinfo)
{
# define INSN(_bMax,_bMin) SLICE_UInt(insn, (_bMax), (_bMin))
@@ -4628,8 +4629,93 @@
DIP("mrs %s, dczid_el0 (FAKED)\n", nameIReg64orZR(tt));
return True;
}
+ /* Cases for CTR_EL0
+ We just handle reads, and make up a value from the D and I line
+ sizes in the VexArchInfo we are given, and patch in the following
+ fields that the Foundation model gives ("natively"):
+ CWG = 0b0100, ERG = 0b0100, L1Ip = 0b11
+ D5 3B 00 001 Rt MRS rT, dczid_el0
+ */
+ if ((INSN(31,0) & 0xFFFFFFE0) == 0xD53B0020) {
+ UInt tt = INSN(4,0);
+ /* Need to generate a value from dMinLine_lg2_szB and
+ dMinLine_lg2_szB. The value in the register is in 32-bit
+ units, so need to subtract 2 from the values in the
+ VexArchInfo. We can assume that the values here are valid --
+ disInstr_ARM64 checks them -- so there's no need to deal with
+ out-of-range cases. */
+ vassert(archinfo->arm64_dMinLine_lg2_szB >= 2
+ && archinfo->arm64_dMinLine_lg2_szB <= 17
+ && archinfo->arm64_iMinLine_lg2_szB >= 2
+ && archinfo->arm64_iMinLine_lg2_szB <= 17);
+ UInt val
+ = 0x8440c000 | ((0xF & (archinfo->arm64_dMinLine_lg2_szB - 2)) << 16)
+ | ((0xF & (archinfo->arm64_iMinLine_lg2_szB - 2)) << 0);
+ putIReg64orZR(tt, mkU64(val));
+ DIP("mrs %s, ctr_el0\n", nameIReg64orZR(tt));
+ return True;
+ }
- /* ------------------ ISB, DSB ------------------ */
+ /* ------------------ IC_IVAU ------------------ */
+ /* D5 0B 75 001 Rt ic ivau, rT
+ */
+ if ((INSN(31,0) & 0xFFFFFFE0) == 0xD50B7520) {
+ /* We will always be provided with a valid iMinLine value. */
+ vassert(archinfo->arm64_iMinLine_lg2_szB >= 2
+ && archinfo->arm64_iMinLine_lg2_szB <= 17);
+ /* Round the requested address, in rT, down to the start of the
+ containing block. */
+ UInt tt = INSN(4,0);
+ ULong lineszB = 1ULL << archinfo->arm64_iMinLine_lg2_szB;
+ IRTemp addr = newTemp(Ity_I64);
+ assign( addr, binop( Iop_And64,
+ getIReg64orZR(tt),
+ mkU64(~(lineszB - 1))) );
+ /* Set the invalidation range, request exit-and-invalidate, with
+ continuation at the next instruction. */
+ stmt(IRStmt_Put(OFFB_TISTART, mkexpr(addr)));
+ stmt(IRStmt_Put(OFFB_TILEN, mkU64(lineszB)));
+ /* be paranoid ... */
+ stmt( IRStmt_MBE(Imbe_Fence) );
+ putPC(mkU64( guest_PC_curr_instr + 4 ));
+ dres->whatNext = Dis_StopHere;
+ dres->jk_StopHere = Ijk_TInval;
+ DIP("ic ivau, %s\n", nameIReg64orZR(tt));
+ return True;
+ }
+
+ /* ------------------ DC_CVAU ------------------ */
+ /* D5 0B 7B 001 Rt dc cvau, rT
+ */
+ if ((INSN(31,0) & 0xFFFFFFE0) == 0xD50B7B20) {
+ /* Exactly the same scheme as for IC IVAU, except we observe the
+ dMinLine size, and request an Ijk_InvalData instead of
+ Ijk_TInval. */
+ /* We will always be provided with a valid dMinLine value. */
+ vassert(archinfo->arm64_dMinLine_lg2_szB >= 2
+ && archinfo->arm64_dMinLine_lg2_szB <= 17);
+ /* Round the requested address, in rT, down to the start of the
+ containing block. */
+ UInt tt = INSN(4,0);
+ ULong lineszB = 1ULL << archinfo->arm64_dMinLine_lg2_szB;
+ IRTemp addr = newTemp(Ity_I64);
+ assign( addr, binop( Iop_And64,
+ getIReg64orZR(tt),
+ mkU64(~(lineszB - 1))) );
+ /* Set the flush range, request exit-and-flush, with
+ continuation at the next instruction. */
+ stmt(IRStmt_Put(OFFB_TISTART, mkexpr(addr)));
+ stmt(IRStmt_Put(OFFB_TILEN, mkU64(lineszB)));
+ /* be paranoid ... */
+ stmt( IRStmt_MBE(Imbe_Fence) );
+ putPC(mkU64( guest_PC_curr_instr + 4 ));
+ dres->whatNext = Dis_StopHere;
+ dres->jk_StopHere = Ijk_FlushDCache;
+ DIP("dc cvau, %s\n", nameIReg64orZR(tt));
+ return True;
+ }
+
+ /* ------------------ ISB, DMB, DSB ------------------ */
if (INSN(31,0) == 0xD5033FDF) {
stmt(IRStmt_MBE(Imbe_Fence));
DIP("isb\n");
@@ -4640,6 +4726,11 @@
DIP("dmb ish\n");
return True;
}
+ if (INSN(31,0) == 0xD5033B9F) {
+ stmt(IRStmt_MBE(Imbe_Fence));
+ DIP("dsb ish\n");
+ return True;
+ }
/* -------------------- NOP -------------------- */
if (INSN(31,0) == 0xD503201F) {
@@ -7161,7 +7252,7 @@
break;
case BITS4(1,0,1,0): case BITS4(1,0,1,1):
// Branch, exception generation and system instructions
- ok = dis_ARM64_branch_etc(dres, insn);
+ ok = dis_ARM64_branch_etc(dres, insn, archinfo);
break;
case BITS4(0,1,0,0): case BITS4(0,1,1,0):
case BITS4(1,1,0,0): case BITS4(1,1,1,0):
@@ -7229,6 +7320,11 @@
host_is_bigendian = host_bigendian_IN;
guest_PC_curr_instr = (Addr64)guest_IP;
+ /* Sanity checks */
+ /* (x::UInt - 2) <= 15 === x >= 2 && x <= 17 (I hope) */
+ vassert((archinfo->arm64_dMinLine_lg2_szB - 2) <= 15);
+ vassert((archinfo->arm64_iMinLine_lg2_szB - 2) <= 15);
+
/* Try to decode */
Bool ok = disInstr_ARM64_WRK( &dres,
resteerOkFn, resteerCisOk, callback_opaque,
Modified: trunk/priv/host_arm64_defs.c
==============================================================================
--- trunk/priv/host_arm64_defs.c (original)
+++ trunk/priv/host_arm64_defs.c Sat May 3 21:20:56 2014
@@ -4461,7 +4461,8 @@
//case Ijk_EmWarn: trcval = VEX_TRC_JMP_EMWARN; break;
//case Ijk_MapFail: trcval = VEX_TRC_JMP_MAPFAIL; break;
case Ijk_NoDecode: trcval = VEX_TRC_JMP_NODECODE; break;
- //case Ijk_TInval: trcval = VEX_TRC_JMP_TINVAL; break;
+ case Ijk_TInval: trcval = VEX_TRC_JMP_TINVAL; break;
+ case Ijk_FlushDCache: trcval = VEX_TRC_JMP_FLUSHDCACHE; break;
case Ijk_NoRedir: trcval = VEX_TRC_JMP_NOREDIR; break;
//case Ijk_SigTRAP: trcval = VEX_TRC_JMP_SIGTRAP; break;
//case Ijk_SigSEGV: trcval = VEX_TRC_JMP_SIGSEGV; break;
Modified: trunk/priv/host_arm64_isel.c
==============================================================================
--- trunk/priv/host_arm64_isel.c (original)
+++ trunk/priv/host_arm64_isel.c Sat May 3 21:20:56 2014
@@ -6915,7 +6915,8 @@
case Ijk_NoDecode:
case Ijk_NoRedir:
case Ijk_Sys_syscall:
-//ZZ case Ijk_TInval:
+ case Ijk_TInval:
+ case Ijk_FlushDCache:
//ZZ case Ijk_Yield:
{
HReg r = iselIntExpr_R(env, next);
Modified: trunk/priv/ir_defs.c
==============================================================================
--- trunk/priv/ir_defs.c (original)
+++ trunk/priv/ir_defs.c Sat May 3 21:20:56 2014
@@ -1413,6 +1413,7 @@
case Ijk_NoDecode: vex_printf("NoDecode"); break;
case Ijk_MapFail: vex_printf("MapFail"); break;
case Ijk_TInval: vex_printf("Invalidate"); break;
+ case Ijk_FlushDCache: vex_printf("FlushDCache"); break;
case Ijk_NoRedir: vex_printf("NoRedir"); break;
case Ijk_SigILL: vex_printf("SigILL"); break;
case Ijk_SigTRAP: vex_printf("SigTRAP"); break;
Modified: trunk/priv/main_main.c
==============================================================================
--- trunk/priv/main_main.c (original)
+++ trunk/priv/main_main.c Sat May 3 21:20:56 2014
@@ -92,6 +92,7 @@
void LibVEX_default_VexControl ( /*OUT*/ VexControl* vcon )
{
+ vex_bzero(vcon, sizeof(*vcon));
vcon->iropt_verbosity = 0;
vcon->iropt_level = 2;
vcon->iropt_register_updates = VexRegUpdUnwindregsAtMemAccess;
@@ -1225,20 +1226,23 @@
/* Write default settings info *vai. */
void LibVEX_default_VexArchInfo ( /*OUT*/VexArchInfo* vai )
{
+ vex_bzero(vai, sizeof(*vai));
vai->hwcaps = 0;
vai->ppc_icache_line_szB = 0;
vai->ppc_dcbz_szB = 0;
vai->ppc_dcbzl_szB = 0;
-
+ vai->arm64_dMinLine_lg2_szB = 0;
+ vai->arm64_iMinLine_lg2_szB = 0;
vai->hwcache_info.num_levels = 0;
vai->hwcache_info.num_caches = 0;
- vai->hwcache_info.caches = NULL;
+ vai->hwcache_info.caches = NULL;
vai->hwcache_info.icaches_maintain_coherence = True; // whatever
}
/* Write default settings info *vbi. */
void LibVEX_default_VexAbiInfo ( /*OUT*/VexAbiInfo* vbi )
{
+ vex_bzero(vbi, sizeof(*vbi));
vbi->guest_stack_redzone_size = 0;
vbi->guest_amd64_assume_fs_is_zero = False;
vbi->guest_amd64_assume_gs_is_0x60 = False;
Modified: trunk/pub/libvex.h
==============================================================================
--- trunk/pub/libvex.h (original)
+++ trunk/pub/libvex.h Sat May 3 21:20:56 2014
@@ -276,9 +276,14 @@
/* PPC32/PPC64 only: size of instruction cache line */
Int ppc_icache_line_szB;
/* PPC32/PPC64 only: sizes zeroed by the dcbz/dcbzl instructions
- * (bug#135264) */
+ (bug#135264) */
UInt ppc_dcbz_szB;
UInt ppc_dcbzl_szB; /* 0 means unsupported (SIGILL) */
+ /* ARM64: I- and D- minimum line sizes in log2(bytes), as
+ obtained from ctr_el0.DminLine and .IminLine. For example, a
+ line size of 64 bytes would be encoded here as 6. */
+ UInt arm64_dMinLine_lg2_szB;
+ UInt arm64_iMinLine_lg2_szB;
}
VexArchInfo;
Modified: trunk/pub/libvex_ir.h
==============================================================================
--- trunk/pub/libvex_ir.h (original)
+++ trunk/pub/libvex_ir.h Sat May 3 21:20:56 2014
@@ -2082,6 +2082,10 @@
ensure that these are filled in with suitable values before issuing
a jump of kind Ijk_TInval.
+ Ijk_TInval requests invalidation of translations taken from the
+ requested range. Ijk_FlushDCache requests flushing of the D cache
+ for the specified range.
+
Re Ijk_EmWarn and Ijk_EmFail: the guest state must have a
pseudo-register guest_EMNOTE, which is 32-bits regardless of the
host or guest word size. That register should be made to hold a
@@ -2109,7 +2113,8 @@
Ijk_EmFail, /* emulation critical (FATAL) error; give up */
Ijk_NoDecode, /* current instruction cannot be decoded */
Ijk_MapFail, /* Vex-provided address translation failed */
- Ijk_TInval, /* Invalidate translations before continuing. */
+ Ijk_TInval, /* Inval icache to PoU in [TISTART, +TILEN) */
+ Ijk_FlushDCache, /* Clean dcache to PoU in [TISTART, +TILEN) */
Ijk_NoRedir, /* Jump to un-redirected guest addr */
Ijk_SigILL, /* current instruction synths SIGILL */
Ijk_SigTRAP, /* current instruction synths SIGTRAP */
Modified: trunk/pub/libvex_trc_values.h
==============================================================================
--- trunk/pub/libvex_trc_values.h (original)
+++ trunk/pub/libvex_trc_values.h Sat May 3 21:20:56 2014
@@ -46,15 +46,12 @@
These values should be 61 or above so as not to conflict
with Valgrind's VG_TRC_ values, which are 60 or below.
-
- These values *must* be odd (have bit 0 set) because the dispatchers
- (coregrind/m_dispatch/dispatch-*-*.S) use this fact to distinguish
- a TRC value from the unchanged baseblock pointer -- which has 0 as
- its lowest bit.
*/
#define VEX_TRC_JMP_TINVAL 61 /* invalidate translations before
continuing */
+#define VEX_TRC_JMP_FLUSHDCACHE 103 /* flush dcache before continuing */
+
#define VEX_TRC_JMP_NOREDIR 81 /* jump to undirected guest addr */
#define VEX_TRC_JMP_SIGTRAP 85 /* deliver trap (SIGTRAP) before
continuing */
|
Author: philippe
Date: Sat May 3 11:12:50 2014
New Revision: 13930
Log:
Helgrind : two new gdbserver commands 'describe address' and 'info locks'
- Helgrind GDB server monitor command 'describe <address>'
allowing to describe an address (e.g. where it was allocated).
- Helgrind GDB server monitor command 'info locks' giving
the list of locks, their location, and their status.
In a further patch, it is intended to
1. factorise the describe address code between memcheck and helgrind
2. generalise the describe address gdbsrv command so as to make
it usable for all tools.
Added:
trunk/helgrind/hg_addrdescr.c
trunk/helgrind/hg_addrdescr.h
Modified:
trunk/NEWS
trunk/docs/xml/manual-core-adv.xml
trunk/helgrind/Makefile.am
trunk/helgrind/docs/hg-manual.xml
trunk/helgrind/hg_errors.c
trunk/helgrind/hg_errors.h
trunk/helgrind/hg_main.c
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Sat May 3 11:12:50 2014
@@ -15,6 +15,10 @@
VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE
* Helgrind:
+ - Helgrind GDB server monitor command 'describe <address>'
+ allowing to describe an address (e.g. where it was allocated).
+ - Helgrind GDB server monitor command 'info locks' giving
+ the list of locks, their location, and their status.
* Callgrind:
- callgrind_control now supports the --vgdb-prefix argument,
Modified: trunk/docs/xml/manual-core-adv.xml
==============================================================================
--- trunk/docs/xml/manual-core-adv.xml (original)
+++ trunk/docs/xml/manual-core-adv.xml Sat May 3 11:12:50 2014
@@ -603,6 +603,9 @@
<listitem>
<para><xref linkend="ms-manual.monitor-commands"/></para>
</listitem>
+ <listitem>
+ <para><xref linkend="hg-manual.monitor-commands"/></para>
+ </listitem>
</itemizedlist>
</para>
Modified: trunk/helgrind/Makefile.am
==============================================================================
--- trunk/helgrind/Makefile.am (original)
+++ trunk/helgrind/Makefile.am Sat May 3 11:12:50 2014
@@ -12,6 +12,7 @@
pkginclude_HEADERS = helgrind.h
noinst_HEADERS = \
+ hg_addrdescr.h \
hg_basics.h \
hg_errors.h \
hg_lock_n_thread.h \
@@ -28,6 +29,7 @@
endif
HELGRIND_SOURCES_COMMON = \
+ hg_addrdescr.c \
hg_basics.c \
hg_errors.c \
hg_lock_n_thread.c \
Modified: trunk/helgrind/docs/hg-manual.xml
==============================================================================
--- trunk/helgrind/docs/hg-manual.xml (original)
+++ trunk/helgrind/docs/hg-manual.xml Sat May 3 11:12:50 2014
@@ -1254,6 +1254,76 @@
</sect1>
+<sect1 id="hg-manual.monitor-commands" xreflabel="Helgrind Monitor Commands">
+<title>Helgrind Monitor Commands</title>
+<para>The Helgrind tool provides monitor commands handled by Valgrind's
+built-in gdbserver (see <xref linkend="manual-core-adv.gdbserver-commandhandling"/>).
+</para>
+<itemizedlist>
+ <listitem>
+ <para><varname>info locks</varname> shows the list of locks and their
+ status. </para>
+ <para>
+ In the following example, helgrind knows about one lock.
+ This lock is located at the guest address <varname>ga 0x8049a20</varname>.
+ The lock kind is <varname>rdwr</varname> indicating a reader-writer lock.
+ Other possible lock kinds are <varname>nonRec</varname> (simple mutex, non recursive)
+ and <varname>mbRec</varname> (simple mutex, possibly recursive).
+ The lock kind is then followed by the list of threads helding the lock.
+ In the below example, <varname>R1:thread #6 tid 3</varname> indicates that the
+ helgrind thread #6 has acquired (once, as the counter following the letter R is one)
+ the lock in read mode. The helgrind thread nr is incremented for each started thread.
+ The presence of 'tid 3' indicates that the thread #6 is has not exited yet and is the
+ valgrind tid 3. If a thread has terminated, then this is indicated with 'tid (exited)'.
+ </para>
+<programlisting><![CDATA[
+(gdb) monitor info locks
+Lock ga 0x8049a20 {
+ kind rdwr
+ { R1:thread #6 tid 3 }
+}
+(gdb)
+]]></programlisting>
+
+ <para> If you give the option <varname>--read-var-info=yes</varname>, then more
+ information will be provided about the lock location, such as the global variable
+ or the heap block that contains the lock:
+ </para>
+<programlisting><![CDATA[
+Lock ga 0x8049a20 {
+Location 0x8049a20 is 0 bytes inside global var "s_rwlock"
+declared at rwlock_race.c:17
+ kind rdwr
+ { R1:thread #3 tid 3 }
+}
+]]></programlisting>
+
+ </listitem>
+
+ <listitem>
+ <para><varname>describe <addr></varname> describes the address
+ <addr>. For example, an heap address will be described by the
+ length of the heap block and the stacktrace where this block was allocated.
+ The option <varname>--read-var-info=yes</varname> allows to give information
+ about global or local variables.
+ </para>
+<programlisting><![CDATA[
+(gdb) monitor describe 0x404e028
+
+address 0x404E028 is 0 bytes inside a block of size 100 alloc'd
+==16448== at 0x4028AA5: malloc (vg_replace_malloc.c:292)
+==16448== by 0x8048BD7: main (tc19_shadowmem.c:144)
+(gdb) mo d 0xbec6f040
+
+Location 0xbec6f040 is 0 bytes inside info.child,
+declared at tc19_shadowmem.c:139, in frame #0 of thread 1
+(gdb)
+]]></programlisting>
+ </listitem>
+
+</itemizedlist>
+
+</sect1>
<sect1 id="hg-manual.client-requests" xreflabel="Helgrind Client Requests">
<title>Helgrind Client Requests</title>
Added: trunk/helgrind/hg_addrdescr.c
==============================================================================
--- trunk/helgrind/hg_addrdescr.c (added)
+++ trunk/helgrind/hg_addrdescr.c Sat May 3 11:12:50 2014
@@ -0,0 +1,192 @@
+
+/*--------------------------------------------------------------------*/
+/*--- Address Description. ---*/
+/*--- hg_addrdescr.c ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+ This file is part of Helgrind, a Valgrind tool for detecting errors
+ in threaded programs.
+
+ Copyright (C) 2007-2012 OpenWorks Ltd
+ in...@op...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+#include "pub_tool_basics.h"
+#include "pub_tool_libcbase.h"
+#include "pub_tool_libcprint.h"
+#include "pub_tool_libcassert.h"
+#include "pub_tool_xarray.h"
+#include "pub_tool_execontext.h"
+#include "pub_tool_debuginfo.h"
+#include "pub_tool_threadstate.h"
+
+#include "hg_basics.h"
+#include "hg_addrdescr.h" /* self */
+
+void HG_(init_AddrDescr) ( AddrDescr* ad ) {
+ VG_(memset)(ad, 0, sizeof(*ad) );
+}
+
+void HG_(describe_addr) ( Addr a, /*OUT*/AddrDescr* ad )
+{
+ tl_assert(!ad->hctxt);
+ tl_assert(!ad->descr1);
+ tl_assert(!ad->descr2);
+
+ /* First, see if it's in any heap block. Unfortunately this
+ means a linear search through all allocated heap blocks. The
+ assertion says that if it's detected as a heap block, then we
+ must have an allocation context for it, since all heap blocks
+ should have an allocation context. */
+ Bool is_heapblock
+ = HG_(mm_find_containing_block)(
+ &ad->hctxt,
+ &ad->haddr,
+ &ad->hszB,
+ a
+ );
+ tl_assert(is_heapblock == (ad->hctxt != NULL));
+
+ if (!ad->hctxt) {
+ /* It's not in any heap block. See if we can map it to a
+ stack or global symbol. */
+
+ ad->descr1
+ = VG_(newXA)( HG_(zalloc), "hg.addrdescr.descr1",
+ HG_(free), sizeof(HChar) );
+ ad->descr2
+ = VG_(newXA)( HG_(zalloc), "hg.addrdescr.descr2",
+ HG_(free), sizeof(HChar) );
+
+ (void) VG_(get_data_description)( ad->descr1,
+ ad->descr2,
+ a );
+
+ /* If there's nothing in descr1/2, free it. Why is it safe to
+ to VG_(indexXA) at zero here? Because
+ VG_(get_data_description) guarantees to zero terminate
+ descr1/2 regardless of the outcome of the call. So there's
+ always at least one element in each XA after the call.
+ */
+ if (0 == VG_(strlen)( VG_(indexXA)(ad->descr1, 0 ))) {
+ VG_(deleteXA)( ad->descr1 );
+ ad->descr1 = NULL;
+ }
+ if (0 == VG_(strlen)( VG_(indexXA)( ad->descr2, 0 ))) {
+ VG_(deleteXA)( ad->descr2 );
+ ad->descr2 = NULL;
+ }
+ }
+}
+
+void HG_(pp_addrdescr) (Bool xml, const HChar* what, Addr addr,
+ AddrDescr* ad,
+ void(*print)(const HChar *format, ...))
+{
+ /* If we have a description of the address in terms of a heap
+ block, show it. */
+ if (ad->hctxt) {
+ SizeT delta = addr - ad->haddr;
+ if (xml) {
+ (*print)(" <auxwhat>%s %p is %ld bytes inside a block "
+ "of size %ld alloc'd</auxwhat>\n", what,
+ (void*)addr, delta,
+ ad->hszB);
+ VG_(pp_ExeContext)( ad->hctxt );
+ } else {
+ (*print)("\n");
+ (*print)("%s %p is %ld bytes inside a block "
+ "of size %ld alloc'd\n", what,
+ (void*)addr, delta,
+ ad->hszB);
+ VG_(pp_ExeContext)( ad->hctxt );
+ }
+ }
+
+ /* If we have a better description of the address, show it.
+ Note that in XML mode, it will already by nicely wrapped up
+ in tags, either <auxwhat> or <xauxwhat>, so we can just emit
+ it verbatim. */
+ if (xml) {
+ if (ad->descr1)
+ (*print)( " %s\n",
+ (HChar*)VG_(indexXA)( ad->descr1, 0 ) );
+ if (ad->descr2)
+ (*print)( " %s\n",
+ (HChar*)VG_(indexXA)( ad->descr2, 0 ) );
+ } else {
+ if (ad->descr1 || ad->descr2)
+ (*print)("\n");
+ if (ad->descr1)
+ (*print)( "%s\n",
+ (HChar*)VG_(indexXA)( ad->descr1, 0 ) );
+ if (ad->descr2)
+ (*print)( "%s\n",
+ (HChar*)VG_(indexXA)( ad->descr2, 0 ) );
+ }
+}
+
+static void void_printf(const HChar *format, ...)
+{
+ UInt ret;
+ va_list vargs;
+ va_start(vargs, format);
+ ret = VG_(vprintf)(format, vargs);
+ va_end(vargs);
+}
+
+Bool HG_(get_and_pp_addrdescr) (const HChar* what, Addr addr)
+{
+
+ Bool ret;
+ AddrDescr glad;
+
+ HG_(init_AddrDescr) (&glad);
+
+ HG_(describe_addr) (addr, &glad);
+
+ HG_(pp_addrdescr) (False /* xml */, what, addr,
+ &glad,
+ void_printf);
+ ret = glad.hctxt || glad.descr1 || glad.descr2;
+
+ HG_(clear_addrdesc) (&glad);
+
+ return ret;
+}
+
+void HG_(clear_addrdesc) ( AddrDescr* ad)
+{
+ ad->hctxt = NULL;
+ ad->haddr = 0;
+ ad->hszB = 0;
+ if (ad->descr1 != NULL) {
+ VG_(deleteXA)( ad->descr1 );
+ ad->descr1 = NULL;
+ }
+ if (ad->descr2 != NULL) {
+ VG_(deleteXA)( ad->descr2 );
+ ad->descr2 = NULL;
+ }
+}
+
+/*--------------------------------------------------------------------*/
+/*--- end hg_addrdescr.c ---*/
+/*--------------------------------------------------------------------*/
Added: trunk/helgrind/hg_addrdescr.h
==============================================================================
--- trunk/helgrind/hg_addrdescr.h (added)
+++ trunk/helgrind/hg_addrdescr.h Sat May 3 11:12:50 2014
@@ -0,0 +1,94 @@
+
+/*---------------------------------------------------------------------*/
+/*--- Address Description, used e.g. to describe addresses involved ---*/
+/*--- in race conditions, locks. ---*/
+/*--- hg_addrdescr.h ---*/
+/*---------------------------------------------------------------------*/
+
+/*
+ This file is part of Helgrind, a Valgrind tool for detecting errors
+ in threaded programs.
+
+ Copyright (C) 2007-2012 OpenWorks Ltd
+ in...@op...
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
+#ifndef __HG_ADDRDESCR_H
+#define __HG_ADDRDESCR_H
+
+/*----------------------------------------------------------------*/
+/*--- Address Description ---*/
+/*--- Used e.g. to describe an address in a Race cond. error ---*/
+/*--- or a lock. ---*/
+/*----------------------------------------------------------------*/
+typedef
+ struct {
+ /* descr1/2 provide a description of stack/global locs */
+ XArray* descr1; /* XArray* of HChar */
+ XArray* descr2; /* XArray* of HChar */
+ /* hctxt/haddr/hszB describe the addr if it is a heap block. */
+ ExeContext* hctxt;
+ Addr haddr;
+ SizeT hszB;
+ }
+ AddrDescr;
+
+/* Initialises an empty AddrDescr. */
+void HG_(init_AddrDescr) ( AddrDescr* ad );
+
+/* Describe an address as best you can, for error messages or
+ lock description, putting the result in ad.
+ This allocates some memory in ad, to be cleared with VG_(clear_addrdesc). */
+extern void HG_(describe_addr) ( Addr a, /*OUT*/AddrDescr* ad );
+
+/* Prints (using *print) the readable description of addr given in ad.
+ "what" identifies the type pointed to by addr (e.g. a lock). */
+extern void HG_(pp_addrdescr) (Bool xml, const HChar* what, Addr addr,
+ AddrDescr* ad,
+ void(*print)(const HChar *format, ...));
+
+/* Get a readable description of addr, then print it using HG_(pp_addrdescr)
+ using xml False and VG_(printf) to emit the characters.
+ Returns True if a description was found/printed, False otherwise. */
+extern Bool HG_(get_and_pp_addrdescr) (const HChar* what, Addr a);
+
+/* Free all memory allocated by HG_(describe_addr)
+ Sets all elements of ad to 0/NULL. */
+extern void HG_(clear_addrdesc) ( AddrDescr* ad);
+
+/* For error creation/address description:
+ map 'data_addr' to a malloc'd chunk, if any.
+ Slow linear search accelerated in some special cases normal hash
+ search of the mallocmeta table. This is an abuse of the normal file
+ structure since this is exported by hg_main.c, not hg_addrdesc.c. Oh
+ Well. Returns True if found, False if not. Zero-sized blocks are
+ considered to contain the searched-for address if they equal that
+ address. */
+Bool HG_(mm_find_containing_block)( /*OUT*/ExeContext** where,
+ /*OUT*/Addr* payload,
+ /*OUT*/SizeT* szB,
+ Addr data_addr );
+
+
+#endif /* ! __HG_ADDRDESCR_H */
+
+/*--------------------------------------------------------------------*/
+/*--- end hg_addrdescr.h ---*/
+/*--------------------------------------------------------------------*/
Modified: trunk/helgrind/hg_errors.c
==============================================================================
--- trunk/helgrind/hg_errors.c (original)
+++ trunk/helgrind/hg_errors.c Sat May 3 11:12:50 2014
@@ -42,6 +42,7 @@
#include "pub_tool_options.h" // VG_(clo_xml)
#include "hg_basics.h"
+#include "hg_addrdescr.h"
#include "hg_wordset.h"
#include "hg_lock_n_thread.h"
#include "libhb.h"
@@ -291,16 +292,10 @@
struct {
Addr data_addr;
Int szB;
+ AddrDescr data_addrdescr;
Bool isWrite;
Thread* thr;
Lock** locksHeldW;
- /* descr1/2 provide a description of stack/global locs */
- XArray* descr1; /* XArray* of HChar */
- XArray* descr2; /* XArray* of HChar */
- /* halloc/haddr/hszB describe the addr if it is a heap block. */
- ExeContext* hctxt;
- Addr haddr;
- SizeT hszB;
/* h1_* and h2_* provide some description of a previously
observed access with which we are conflicting. */
Thread* h1_ct; /* non-NULL means h1 info present */
@@ -411,52 +406,7 @@
VG_(printf)("HG_(update_extra): "
"%d conflicting-event queries\n", xxx);
- tl_assert(!xe->XE.Race.hctxt);
- tl_assert(!xe->XE.Race.descr1);
- tl_assert(!xe->XE.Race.descr2);
-
- /* First, see if it's in any heap block. Unfortunately this
- means a linear search through all allocated heap blocks. The
- assertion says that if it's detected as a heap block, then we
- must have an allocation context for it, since all heap blocks
- should have an allocation context. */
- Bool is_heapblock
- = HG_(mm_find_containing_block)(
- &xe->XE.Race.hctxt, &xe->XE.Race.haddr, &xe->XE.Race.hszB,
- xe->XE.Race.data_addr
- );
- tl_assert(is_heapblock == (xe->XE.Race.hctxt != NULL));
-
- if (!xe->XE.Race.hctxt) {
- /* It's not in any heap block. See if we can map it to a
- stack or global symbol. */
-
- xe->XE.Race.descr1
- = VG_(newXA)( HG_(zalloc), "hg.update_extra.Race.descr1",
- HG_(free), sizeof(HChar) );
- xe->XE.Race.descr2
- = VG_(newXA)( HG_(zalloc), "hg.update_extra.Race.descr2",
- HG_(free), sizeof(HChar) );
-
- (void) VG_(get_data_description)( xe->XE.Race.descr1,
- xe->XE.Race.descr2,
- xe->XE.Race.data_addr );
-
- /* If there's nothing in descr1/2, free it. Why is it safe to
- to VG_(indexXA) at zero here? Because
- VG_(get_data_description) guarantees to zero terminate
- descr1/2 regardless of the outcome of the call. So there's
- always at least one element in each XA after the call.
- */
- if (0 == VG_(strlen)( VG_(indexXA)( xe->XE.Race.descr1, 0 ))) {
- VG_(deleteXA)( xe->XE.Race.descr1 );
- xe->XE.Race.descr1 = NULL;
- }
- if (0 == VG_(strlen)( VG_(indexXA)( xe->XE.Race.descr2, 0 ))) {
- VG_(deleteXA)( xe->XE.Race.descr2 );
- xe->XE.Race.descr2 = NULL;
- }
- }
+ HG_(describe_addr) (xe->XE.Race.data_addr, &xe->XE.Race.data_addrdescr);
/* And poke around in the conflicting-event map, to see if we
can rustle up a plausible-looking conflicting memory access
@@ -538,8 +488,7 @@
/* Skip on the detailed description of the raced-on address at this
point; it's expensive. Leave it for the update_extra function
if we ever make it that far. */
- tl_assert(xe.XE.Race.descr1 == NULL);
- tl_assert(xe.XE.Race.descr2 == NULL);
+ HG_(init_AddrDescr) (&xe.XE.Race.data_addrdescr);
// FIXME: tid vs thr
// Skip on any of the conflicting-access info at this point.
// It's expensive to obtain, and this error is more likely than
@@ -807,7 +756,6 @@
return True;
}
-
/* Announce 'lk'. */
static void announce_LockP ( Lock* lk )
{
@@ -1285,46 +1233,9 @@
}
- /* If we have a description of the address in terms of a heap
- block, show it. */
- if (xe->XE.Race.hctxt) {
- SizeT delta = err_ga - xe->XE.Race.haddr;
- if (xml) {
- emit(" <auxwhat>Address %p is %ld bytes inside a block "
- "of size %ld alloc'd</auxwhat>\n", (void*)err_ga, delta,
- xe->XE.Race.hszB);
- VG_(pp_ExeContext)( xe->XE.Race.hctxt );
- } else {
- emit("\n");
- emit("Address %p is %ld bytes inside a block "
- "of size %ld alloc'd\n", (void*)err_ga, delta,
- xe->XE.Race.hszB);
- VG_(pp_ExeContext)( xe->XE.Race.hctxt );
- }
- }
-
- /* If we have a better description of the address, show it.
- Note that in XML mode, it will already by nicely wrapped up
- in tags, either <auxwhat> or <xauxwhat>, so we can just emit
- it verbatim. */
- if (xml) {
- if (xe->XE.Race.descr1)
- emit( " %s\n",
- (HChar*)VG_(indexXA)( xe->XE.Race.descr1, 0 ) );
- if (xe->XE.Race.descr2)
- emit( " %s\n",
- (HChar*)VG_(indexXA)( xe->XE.Race.descr2, 0 ) );
- } else {
- if (xe->XE.Race.descr1 || xe->XE.Race.descr2)
- emit("\n");
- if (xe->XE.Race.descr1)
- emit( "%s\n",
- (HChar*)VG_(indexXA)( xe->XE.Race.descr1, 0 ) );
- if (xe->XE.Race.descr2)
- emit( "%s\n",
- (HChar*)VG_(indexXA)( xe->XE.Race.descr2, 0 ) );
- }
-
+ HG_(pp_addrdescr) (xml, "Address", err_ga,
+ &xe->XE.Race.data_addrdescr,
+ emit);
break; /* case XE_Race */
} /* case XE_Race */
Modified: trunk/helgrind/hg_errors.h
==============================================================================
--- trunk/helgrind/hg_errors.h (original)
+++ trunk/helgrind/hg_errors.h Sat May 3 11:12:50 2014
@@ -79,18 +79,6 @@
extern ULong HG_(stats__string_table_queries);
extern ULong HG_(stats__string_table_get_map_size) ( void );
-/* For error creation: map 'data_addr' to a malloc'd chunk, if any.
- Slow linear search accelerated in some special cases normal hash
- search of the mallocmeta table. This is an abuse of the normal file
- structure since this is exported by hg_main.c, not hg_errors.c. Oh
- Well. Returns True if found, False if not. Zero-sized blocks are
- considered to contain the searched-for address if they equal that
- address. */
-Bool HG_(mm_find_containing_block)( /*OUT*/ExeContext** where,
- /*OUT*/Addr* payload,
- /*OUT*/SizeT* szB,
- Addr data_addr );
-
#endif /* ! __HG_ERRORS_H */
/*--------------------------------------------------------------------*/
Modified: trunk/helgrind/hg_main.c
==============================================================================
--- trunk/helgrind/hg_main.c (original)
+++ trunk/helgrind/hg_main.c Sat May 3 11:12:50 2014
@@ -37,6 +37,7 @@
*/
#include "pub_tool_basics.h"
+#include "pub_tool_gdbserver.h"
#include "pub_tool_libcassert.h"
#include "pub_tool_libcbase.h"
#include "pub_tool_libcprint.h"
@@ -58,6 +59,7 @@
#include "hg_basics.h"
#include "hg_wordset.h"
+#include "hg_addrdescr.h"
#include "hg_lock_n_thread.h"
#include "hg_errors.h"
@@ -457,29 +459,61 @@
}
}
-static void pp_Lock ( Int d, Lock* lk )
-{
- space(d+0); VG_(printf)("Lock %p (ga %#lx) {\n", lk, lk->guestaddr);
+/* Pretty Print lock lk.
+ if show_lock_addrdescr, describes the (guest) lock address.
+ (this description will be more complete with --read-var-info=yes).
+ if show_internal_data, shows also helgrind internal information.
+ d is the level at which output is indented. */
+static void pp_Lock ( Int d, Lock* lk,
+ Bool show_lock_addrdescr,
+ Bool show_internal_data)
+{
+ space(d+0);
+ if (show_internal_data)
+ VG_(printf)("Lock %p (ga %#lx) {", lk, lk->guestaddr);
+ else
+ VG_(printf)("Lock ga %#lx {", lk->guestaddr);
+ if (!show_lock_addrdescr
+ || !HG_(get_and_pp_addrdescr) ("lock", (Addr) lk->guestaddr))
+ VG_(printf)("\n");
+
if (sHOW_ADMIN) {
space(d+3); VG_(printf)("admin_n %p\n", lk->admin_next);
space(d+3); VG_(printf)("admin_p %p\n", lk->admin_prev);
space(d+3); VG_(printf)("magic 0x%x\n", (UInt)lk->magic);
}
- space(d+3); VG_(printf)("unique %llu\n", lk->unique);
+ if (show_internal_data) {
+ space(d+3); VG_(printf)("unique %llu\n", lk->unique);
+ }
space(d+3); VG_(printf)("kind %s\n", show_LockKind(lk->kind));
- space(d+3); VG_(printf)("heldW %s\n", lk->heldW ? "yes" : "no");
- space(d+3); VG_(printf)("heldBy %p", lk->heldBy);
+ if (show_internal_data) {
+ space(d+3); VG_(printf)("heldW %s\n", lk->heldW ? "yes" : "no");
+ }
+ if (show_internal_data) {
+ space(d+3); VG_(printf)("heldBy %p", lk->heldBy);
+ }
if (lk->heldBy) {
Thread* thr;
UWord count;
VG_(printf)(" { ");
VG_(initIterBag)( lk->heldBy );
- while (VG_(nextIterBag)( lk->heldBy, (UWord*)&thr, &count ))
- VG_(printf)("%lu:%p ", count, thr);
+ while (VG_(nextIterBag)( lk->heldBy, (UWord*)&thr, &count )) {
+ if (show_internal_data)
+ VG_(printf)("%lu:%p ", count, thr);
+ else {
+ VG_(printf)("%c%lu:thread #%d ",
+ lk->heldW ? 'W' : 'R',
+ count, thr->errmsg_index);
+ if (thr->coretid == VG_INVALID_THREADID)
+ VG_(printf)("tid (exited) ");
+ else
+ VG_(printf)("tid %d ", thr->coretid);
+
+ }
+ }
VG_(doneIterBag)( lk->heldBy );
- VG_(printf)("}");
+ VG_(printf)("}\n");
}
- VG_(printf)("\n");
space(d+0); VG_(printf)("}\n");
}
@@ -496,12 +530,14 @@
space(n);
VG_(printf)("admin_locks record %d of %d:\n", i, n);
}
- pp_Lock(d+3, lk);
+ pp_Lock(d+3, lk,
+ False /* show_lock_addrdescr */,
+ True /* show_internal_data */);
}
space(d); VG_(printf)("}\n");
}
-static void pp_map_locks ( Int d )
+static void pp_map_locks ( Int d)
{
void* gla;
Lock* lk;
@@ -4703,11 +4739,89 @@
}
}
+static void print_monitor_help ( void )
+{
+ VG_(gdb_printf)
+ (
+"\n"
+"helgrind monitor commands:\n"
+" describe <addr> : outputs a description of <addr>\n"
+" info locks : show list of locks and their status\n"
+"\n");
+}
+
+/* return True if request recognised, False otherwise */
+static Bool handle_gdb_monitor_command (ThreadId tid, HChar *req)
+{
+ UWord ret = 0;
+ HChar* wcmd;
+ HChar s[VG_(strlen(req))]; /* copy for strtok_r */
+ HChar *ssaveptr;
+ Int kwdid;
+
+ VG_(strcpy) (s, req);
+
+ wcmd = VG_(strtok_r) (s, " ", &ssaveptr);
+ /* NB: if possible, avoid introducing a new command below which
+ starts with the same first letter(s) as an already existing
+ command. This ensures a shorter abbreviation for the user. */
+ switch (VG_(keyword_id)
+ ("help info describe",
+ wcmd, kwd_report_duplicated_matches)) {
+ case -2: /* multiple matches */
+ return True;
+ case -1: /* not found */
+ return False;
+ case 0: /* help */
+ print_monitor_help();
+ return True;
+ case 1: /* info */
+ ret = 1;
+ wcmd = VG_(strtok_r) (NULL, " ", &ssaveptr);
+ switch (kwdid = VG_(keyword_id)
+ ("locks",
+ wcmd, kwd_report_all)) {
+ case -2:
+ case -1:
+ break;
+ case 0: // locks
+ {
+ Int i;
+ Lock* lk;
+ for (i = 0, lk = admin_locks; lk; i++, lk = lk->admin_next) {
+ pp_Lock(0, lk,
+ True /* show_lock_addrdescr */,
+ False /* show_internal_data */);
+ }
+ if (i == 0)
+ VG_(gdb_printf) ("no locks\n");
+ }
+ break;
+ default:
+ tl_assert(0);
+ }
+ return True;
+ case 2: { /* describe */
+ Addr address;
+ SizeT szB = 1;
+ VG_(strtok_get_address_and_size) (&address, &szB, &ssaveptr);
+ if (address == (Addr) 0 && szB == 0) return True;
+ if (!HG_(get_and_pp_addrdescr) ("address", address))
+ VG_(gdb_printf) ("No description found for address %p\n",
+ (void*)address);
+ return True;
+ }
+ default:
+ tl_assert(0);
+ return False;
+ }
+}
static
Bool hg_handle_client_request ( ThreadId tid, UWord* args, UWord* ret)
{
- if (!VG_IS_TOOL_USERREQ('H','G',args[0]))
+ if (!VG_IS_TOOL_USERREQ('H','G',args[0])
+ && VG_USERREQ__GDB_MONITOR_COMMAND != args[0])
return False;
/* Anything that gets past the above check is one of ours, so we
@@ -5021,6 +5135,15 @@
evh__HG_USERSO_FORGET_ALL( tid, args[1] );
break;
+ case VG_USERREQ__GDB_MONITOR_COMMAND: {
+ Bool handled = handle_gdb_monitor_command (tid, (HChar*)args[1]);
+ if (handled)
+ *ret = 1;
+ else
+ *ret = 0;
+ return handled;
+ }
+
default:
/* Unhandled Helgrind client request! */
tl_assert2(0, "unhandled Helgrind client request 0x%lx",
|
|
From: Philippe W. <phi...@sk...> - 2014-05-02 05:11:11
|
valgrind revision: 13929 VEX revision: 2850 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora (7.5.1-37.fc18) Assembler: GNU assembler version 2.23.51.0.1-7.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.8.8-202.fc18.ppc64p7 ppc64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on gcc110 ( Fedora release 18 (Spherical Cow), ppc64 ) Started at 2014-05-01 20:00:10 PDT Ended at 2014-05-01 22:07:57 PDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 578 tests, 36 stderr failures, 7 stdout failures, 0 stderrB failures, 0 stdoutB failures, 2 post failures == memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/ppc64/power_ISA2_05 (stdout) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/jm-vmx (stderr) none/tests/ppc32/test_isa_2_06_part2 (stdout) none/tests/ppc32/test_isa_2_06_part2 (stderr) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/jm-vmx (stderr) none/tests/ppc64/test_isa_2_06_part2 (stdout) none/tests/ppc64/test_isa_2_06_part2 (stderr) helgrind/tests/annotate_rwlock (stderr) helgrind/tests/free_is_write (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier1 (stderr) helgrind/tests/pth_barrier2 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/pth_cond_destroy_busy (stderr) helgrind/tests/pth_destroy_cond (stderr) helgrind/tests/rwlock_race (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.34s no: 2.2s ( 6.4x, -----) me: 3.7s (10.9x, -----) ca:26.9s (79.0x, -----) he: 2.5s ( 7.4x, -----) ca: 6.8s (19.9x, -----) dr: 2.5s ( 7.2x, -----) ma: 2.2s ( 6.5x, -----) bigcode1 valgrind-old:0.34s no: 1.8s ( 5.2x, 18.5%) me: 4.6s (13.6x,-24.8%) ca:28.4s (83.7x, -6.0%) he: 2.7s ( 7.8x, -5.6%) ca: 8.5s (24.9x,-25.3%) dr: 2.7s ( 7.9x,-10.2%) ma: 3.0s ( 8.7x,-34.5%) -- bigcode2 -- bigcode2 valgrind-new:0.32s no: 2.5s ( 7.7x, -----) me: 4.3s (13.3x, -----) ca:29.0s (90.5x, -----) he: 3.6s (11.2x, -----) ca: 8.0s (24.8x, -----) dr: 2.8s ( 8.7x, -----) ma: 2.7s ( 8.4x, -----) bigcode2 valgrind-old:0.32s no: 2.5s ( 7.9x, -3.3%) me: 4.7s (14.8x,-11.0%) ca:30.1s (93.9x, -3.8%) he: 3.1s ( 9.7x, 13.4%) ca: 9.0s (28.1x,-13.2%) dr: 2.9s ( 9.0x, -3.6%) ma: 2.6s ( 8.2x, 2.6%) -- bz2 -- bz2 valgrind-new:0.93s no: 5.9s ( 6.3x, -----) me:16.4s (17.6x, -----) ca:42.1s (45.2x, -----) he:23.6s (25.3x, -----) ca:38.2s (41.1x, -----) dr:29.8s (32.1x, -----) ma: 6.8s ( 7.3x, -----) bz2 valgrind-old:0.93s no: 6.5s ( 7.0x,-11.0%) me:17.2s (18.5x, -4.7%) ca:42.5s (45.7x, -1.1%) he:22.5s (24.2x, 4.4%) ca:33.0s (35.5x, 13.6%) dr:29.5s (31.7x, 1.2%) ma: 6.2s ( 6.7x, 7.9%) -- fbench -- fbench valgrind-new:0.39s no: 2.8s ( 7.1x, -----) me: 7.4s (18.9x, -----) ca:10.0s (25.7x, -----) he: 8.0s (20.5x, -----) ca:11.1s (28.4x, -----) dr: 7.2s (18.6x, -----) ma: 2.8s ( 7.1x, -----) fbench valgrind-old:0.39s no: 2.7s ( 7.0x, 1.8%) me: 7.7s (19.8x, -4.9%) ca:12.7s (32.6x,-26.5%) he: 7.8s (19.9x, 3.0%) ca:11.7s (29.9x, -5.1%) dr: 7.0s (18.0x, 2.9%) ma: 2.9s ( 7.3x, -2.9%) -- ffbench -- ffbench valgrind-new:0.43s no: 1.7s ( 4.0x, -----) me: 3.5s ( 8.0x, -----) ca: 4.4s (10.3x, -----) he:11.5s (26.8x, -----) ca:11.5s (26.8x, -----) dr: 7.5s (17.3x, -----) ma: 1.2s ( 2.8x, -----) ffbench valgrind-old:0.43s no: 1.7s ( 3.9x, 2.9%) me: 3.3s ( 7.7x, 4.9%) ca: 3.4s ( 7.8x, 24.0%) he:11.2s (26.0x, 2.9%) ca:10.4s (24.1x, 9.9%) dr: 7.8s (18.1x, -4.4%) ma: 1.5s ( 3.4x,-20.7%) -- heap -- heap valgrind-new:0.60s no: 3.2s ( 5.4x, -----) me:12.5s (20.8x, -----) ca:22.0s (36.6x, -----) he:16.5s (27.5x, -----) ca:14.8s (24.6x, -----) dr: 8.6s (14.3x, -----) ma:10.1s (16.9x, -----) heap valgrind-old:0.60s no: 3.1s ( 5.1x, 4.0%) me:12.9s (21.4x, -2.9%) ca:14.8s (24.7x, 32.6%) he:12.1s (20.2x, 26.5%) ca:14.2s (23.7x, 3.7%) dr: 9.1s (15.2x, -5.9%) ma: 9.1s (15.2x, 10.0%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.51s no: 2.8s ( 5.5x, -----) me:13.8s (27.1x, -----) ca:15.1s (29.6x, -----) he:15.3s (29.9x, -----) ca:14.4s (28.2x, -----) dr: 9.8s (19.2x, -----) ma: 9.2s (18.1x, -----) heap_pdb4 valgrind-old:0.51s no: 2.9s ( 5.7x, -3.9%) me:14.0s (27.4x, -1.0%) ca:15.6s (30.6x, -3.2%) he:13.6s (26.6x, 10.9%) ca:13.3s (26.0x, 7.5%) dr: 9.7s (19.1x, 0.5%) ma: 9.0s (17.6x, 2.7%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (18.0x, -----) me: 2.2s (72.0x, -----) ca: 1.9s (64.7x, -----) he: 1.8s (60.7x, -----) ca: 1.9s (62.3x, -----) dr: 1.6s (52.3x, -----) ma: 1.6s (54.7x, -----) many-loss-records valgrind-old:0.03s no: 1.1s (37.3x,-107.4%) me: 2.2s (72.0x, 0.0%) ca: 1.9s (64.3x, 0.5%) he: 1.8s (61.0x, -0.5%) ca: 1.9s (62.0x, 0.5%) dr: 1.6s (52.3x, 0.0%) ma: 1.6s (55.0x, -0.6%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.8s (10.7x, -----) me: 3.3s (47.7x, -----) ca: 4.9s (69.6x, -----) he: 4.8s (68.9x, -----) ca: 2.9s (41.3x, -----) dr: 2.3s (32.9x, -----) ma: 2.4s (34.0x, -----) many-xpts valgrind-old:0.07s no: 0.8s (10.7x, 0.0%) me: 3.3s (47.6x, 0.3%) ca: 4.8s (69.1x, 0.6%) he: 4.8s (68.9x, 0.0%) ca: 2.9s (41.3x, 0.0%) dr: 2.3s (32.9x, 0.0%) ma: 2.4s (34.0x, 0.0%) -- sarp -- sarp valgrind-new:0.02s no: 0.4s (20.0x, -----) me: 3.0s (152.5x, -----) ca: 3.0s (152.5x, -----) he:11.3s (564.5x, -----) ca: 1.7s (85.0x, -----) dr: 1.1s (54.0x, -----) ma: 0.4s (21.0x, -----) sarp valgrind-old:0.02s no: 0.4s (20.0x, 0.0%) me: 3.1s (153.0x, -0.3%) ca: 3.1s (153.0x, -0.3%) he:11.0s (549.0x, 2.7%) ca: 1.7s (85.5x, -0.6%) dr: 1.1s (54.0x, 0.0%) ma: 0.4s (21.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.29s no: 3.0s (10.3x, -----) me:13.9s (47.9x, -----) ca:18.0s (61.9x, -----) he:19.1s (65.7x, -----) ca:15.8s (54.4x, -----) dr:12.4s (42.8x, -----) ma: 3.8s (13.1x, -----) tinycc valgrind-old:0.29s no: 3.0s (10.3x, 0.3%) me:13.8s (47.5x, 0.9%) ca:18.1s (62.5x, -0.9%) he:19.1s (65.9x, -0.3%) ca:15.7s (54.3x, 0.2%) dr:12.4s (42.8x, 0.1%) ma: 3.8s (13.2x, -0.5%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 71m39.572s user 69m27.237s sys 0m34.024s |
|
From: Christian B. <bor...@de...> - 2014-05-02 04:12:04
|
valgrind revision: 13929 VEX revision: 2850 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] GDB: GNU gdb (GDB) SUSE (7.5.1-0.7.29) Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.23.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.101-0.15-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP3 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP3 gcc 4.3.4 on z196 (s390x) ) Started at 2014-05-02 03:45:02 CEST Ended at 2014-05-02 06:11:51 CEST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 645 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_cond_destroy_busy (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 4.3s (18.7x, -----) me: 6.7s (29.3x, -----) ca:26.3s (114.5x, -----) he: 5.1s (22.0x, -----) ca: 9.2s (40.0x, -----) dr: 5.5s (23.8x, -----) ma: 4.7s (20.4x, -----) bigcode1 valgrind-old:0.23s no: 4.3s (18.7x, 0.0%) me: 6.7s (29.3x, 0.1%) ca:26.4s (114.7x, -0.2%) he: 5.0s (22.0x, 0.4%) ca: 9.2s (40.0x, 0.0%) dr: 5.5s (23.8x, 0.2%) ma: 4.7s (20.4x, 0.0%) -- bigcode2 -- bigcode2 valgrind-new:0.24s no: 7.2s (30.0x, -----) me:13.6s (56.8x, -----) ca:39.5s (164.6x, -----) he:10.1s (41.9x, -----) ca:14.2s (59.2x, -----) dr: 9.6s (39.8x, -----) ma: 8.1s (33.8x, -----) bigcode2 valgrind-old:0.24s no: 7.2s (30.0x, -0.1%) me:13.6s (56.8x, 0.1%) ca:39.5s (164.4x, 0.1%) he:10.0s (41.7x, 0.4%) ca:14.2s (59.2x, -0.1%) dr: 9.6s (39.8x, -0.1%) ma: 8.1s (33.8x, 0.2%) -- bz2 -- bz2 valgrind-new:0.70s no: 5.0s ( 7.1x, -----) me:12.5s (17.9x, -----) ca:30.8s (44.0x, -----) he:19.7s (28.2x, -----) ca:34.3s (49.0x, -----) dr:29.6s (42.3x, -----) ma: 3.6s ( 5.2x, -----) bz2 valgrind-old:0.70s no: 5.0s ( 7.1x, 0.0%) me:12.5s (17.9x, 0.0%) ca:30.7s (43.8x, 0.3%) he:19.7s (28.2x, 0.1%) ca:34.3s (49.0x, -0.1%) dr:29.6s (42.3x, 0.1%) ma: 3.6s ( 5.2x, 0.0%) -- fbench -- fbench valgrind-new:0.41s no: 1.6s ( 3.9x, -----) me: 4.2s (10.2x, -----) ca: 9.2s (22.6x, -----) he: 6.3s (15.3x, -----) ca: 7.2s (17.6x, -----) dr: 5.4s (13.2x, -----) ma: 1.7s ( 4.1x, -----) fbench valgrind-old:0.41s no: 1.6s ( 3.9x, -0.0%) me: 4.2s (10.2x, 0.0%) ca: 9.3s (22.7x, -0.5%) he: 6.3s (15.3x, -0.2%) ca: 7.2s (17.6x, -0.1%) dr: 5.5s (13.3x, -0.7%) ma: 1.7s ( 4.1x, 0.0%) -- ffbench -- ffbench valgrind-new:0.21s no: 1.0s ( 5.0x, -----) me: 2.9s (14.0x, -----) ca: 3.0s (14.3x, -----) he:42.8s (203.8x, -----) ca: 9.6s (45.8x, -----) dr: 6.8s (32.5x, -----) ma: 1.0s ( 4.6x, -----) ffbench valgrind-old:0.21s no: 1.0s ( 5.0x, 0.0%) me: 3.0s (14.1x, -0.7%) ca: 3.0s (14.5x, -1.3%) he:42.8s (204.0x, -0.1%) ca: 9.6s (45.8x, 0.0%) dr: 6.8s (32.6x, -0.1%) ma: 1.0s ( 4.6x, 0.0%) -- heap -- heap valgrind-new:0.23s no: 1.8s ( 7.7x, -----) me: 8.7s (37.7x, -----) ca:13.1s (57.0x, -----) he:12.6s (55.0x, -----) ca:11.3s (49.3x, -----) dr: 7.9s (34.3x, -----) ma: 7.9s (34.2x, -----) heap valgrind-old:0.23s no: 1.8s ( 7.7x, 0.0%) me: 8.6s (37.6x, 0.2%) ca:13.1s (57.0x, 0.1%) he:12.9s (56.1x, -2.1%) ca:11.3s (49.1x, 0.4%) dr: 7.7s (33.6x, 1.9%) ma: 7.9s (34.2x, 0.0%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.22s no: 2.0s ( 8.9x, -----) me:12.8s (58.2x, -----) ca:14.4s (65.3x, -----) he:14.1s (64.1x, -----) ca:12.3s (56.1x, -----) dr: 8.6s (39.1x, -----) ma: 8.0s (36.3x, -----) heap_pdb4 valgrind-old:0.22s no: 2.0s ( 8.9x, 0.0%) me:12.7s (57.7x, 0.8%) ca:14.4s (65.3x, -0.1%) he:14.1s (64.1x, 0.0%) ca:12.3s (56.1x, 0.0%) dr: 8.6s (39.1x, -0.1%) ma: 8.0s (36.2x, 0.1%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (15.7x, -----) me: 2.1s (69.3x, -----) ca: 1.9s (64.7x, -----) he: 2.2s (72.3x, -----) ca: 1.9s (63.7x, -----) dr: 1.7s (56.0x, -----) ma: 1.7s (55.3x, -----) many-loss-records valgrind-old:0.03s no: 0.5s (15.7x, 0.0%) me: 2.1s (69.3x, 0.0%) ca: 1.9s (64.7x, 0.0%) he: 2.2s (72.3x, 0.0%) ca: 1.9s (63.7x, 0.0%) dr: 1.7s (56.0x, -0.0%) ma: 1.7s (55.3x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.6s ( 8.6x, -----) me: 3.1s (44.9x, -----) ca:373.0s (5328.1x, -----) he: 6.6s (94.1x, -----) ca: 2.8s (39.9x, -----) dr: 2.5s (35.3x, -----) ma: 2.6s (37.6x, -----) many-xpts valgrind-old:0.07s no: 0.6s ( 8.6x, 0.0%) me: 3.1s (44.9x, 0.0%) ca:370.9s (5298.3x, 0.6%) he: 6.6s (94.1x, 0.0%) ca: 2.8s (39.7x, 0.4%) dr: 2.5s (35.3x, 0.0%) ma: 2.6s (37.4x, 0.4%) -- sarp -- sarp valgrind-new:0.03s no: 0.6s (19.0x, -----) me: 3.5s (116.7x, -----) ca: 3.2s (106.7x, -----) he:17.1s (568.7x, -----) ca: 2.0s (68.3x, -----) dr: 1.4s (45.0x, -----) ma: 0.5s (16.3x, -----) sarp valgrind-old:0.03s no: 0.6s (19.0x, 0.0%) me: 3.5s (116.0x, 0.6%) ca: 3.1s (105.0x, 1.6%) he:17.1s (568.7x, 0.0%) ca: 2.0s (68.3x, 0.0%) dr: 1.4s (45.0x, 0.0%) ma: 0.5s (16.3x, 0.0%) -- tinycc -- tinycc valgrind-new:0.22s no: 2.7s (12.1x, -----) me:14.3s (65.1x, -----) ca:30.0s (136.5x, -----) he:27.9s (126.7x, -----) ca:21.4s (97.1x, -----) dr:20.3s (92.4x, -----) ma: 4.0s (18.1x, -----) tinycc valgrind-old:0.22s no: 2.7s (12.1x, 0.4%) me:14.3s (65.1x, 0.0%) ca:29.9s (136.1x, 0.2%) he:27.8s (126.4x, 0.3%) ca:21.3s (97.0x, 0.1%) dr:20.3s (92.4x, -0.0%) ma: 4.0s (18.1x, 0.0%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 110m10.217s user 109m29.300s sys 0m34.872s |
|
From: Tom H. <to...@co...> - 2014-05-02 03:25:55
|
valgrind revision: 13929 VEX revision: 2850 C compiler: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) GDB: Assembler: GNU assembler version 2.18.50.0.6-2 20080403 C library: GNU C Library stable release version 2.8 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2014-05-02 03:51:19 BST Ended at 2014-05-02 04:25:38 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 649 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) none/tests/amd64/sse4-64 (stdout) |
|
From: Rich C. <rc...@wi...> - 2014-05-02 03:01:47
|
valgrind revision: 13929 VEX revision: 2850 C compiler: gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012] GDB: GNU gdb (GDB) SUSE (7.5.1-2.1.1) Assembler: GNU assembler (GNU Binutils; openSUSE 12.3) 2.23.1 C library: GNU C Library (GNU libc) stable release version 2.17 (git c758a6861537) uname -mrs: Linux 3.7.9-1.1-desktop x86_64 Vendor version: Welcome to openSUSE 12.3 "Dartmouth" Beta 1 - Kernel %r (%t). Nightly build on ultra ( gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012] Linux 3.7.9-1.1-desktop x86_64 ) Started at 2014-05-01 21:30:01 CDT Ended at 2014-05-01 22:01:37 CDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 671 tests, 0 stderr failures, 0 stdout failures, 1 stderrB failure, 0 stdoutB failures, 0 post failures == gdbserver_tests/mssnapshot (stderrB) ================================================= ./valgrind-new/gdbserver_tests/mssnapshot.stderrB.diff ================================================= --- mssnapshot.stderrB.exp 2014-05-01 21:46:27.595714243 -0500 +++ mssnapshot.stderrB.out 2014-05-01 21:50:41.162586962 -0500 @@ -1,5 +1,11 @@ relaying data between gdb and process .... +Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2 +Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158" vgdb-error value changed from 0 to 999999 +Missing separate debuginfo for /lib64/libpthread.so.0 +Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef" +Missing separate debuginfo for /lib64/libc.so.6 +Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7" general valgrind monitor commands: help [debug] : monitor command help. With debug: + debugging commands v.wait [<ms>] : sleep <ms> (default 0) then continue ================================================= ./valgrind-old/gdbserver_tests/mssnapshot.stderrB.diff ================================================= --- mssnapshot.stderrB.exp 2014-05-01 21:31:04.404644032 -0500 +++ mssnapshot.stderrB.out 2014-05-01 21:35:23.338375276 -0500 @@ -1,5 +1,11 @@ relaying data between gdb and process .... +Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2 +Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158" vgdb-error value changed from 0 to 999999 +Missing separate debuginfo for /lib64/libpthread.so.0 +Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef" +Missing separate debuginfo for /lib64/libc.so.6 +Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7" general valgrind monitor commands: help [debug] : monitor command help. With debug: + debugging commands v.wait [<ms>] : sleep <ms> (default 0) then continue |
|
From: Tom H. <to...@co...> - 2014-05-02 02:49:29
|
valgrind revision: 13929 VEX revision: 2850 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.1-48.fc15) Assembler: GNU assembler version 2.21.51.0.6-6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2014-05-02 03:13:42 BST Ended at 2014-05-02 03:49:18 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 678 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Tom H. <to...@co...> - 2014-05-02 02:42:36
|
valgrind revision: 13929 VEX revision: 2850 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.50.20110722-16.fc16) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2014-05-02 03:02:31 BST Ended at 2014-05-02 03:42:20 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 678 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Rich C. <rc...@wi...> - 2014-05-02 02:34:24
|
valgrind revision: 13929
VEX revision: 2850
C compiler: gcc (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388]
GDB: GNU gdb (GDB; openSUSE Factory) 7.6.50.20130731-cvs
Assembler: GNU assembler (GNU Binutils; openSUSE Factory) 2.23.2
C library: GNU C Library (GNU libc) stable release version 2.18 (git )
uname -mrs: Linux 3.11.4-3-desktop x86_64
Vendor version: Welcome to openSUSE 13.1 "Bottle" Beta 1 - Kernel %r (%t).
Nightly build on rodan ( Linux 3.11.4-3-desktop x86_64 )
Started at 2014-05-01 19:22:01 CDT
Ended at 2014-05-01 21:34:16 CDT
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 592 tests, 5 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
memcheck/tests/err_disable3 (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/threadname (stderr)
memcheck/tests/threadname_xml (stderr)
exp-sgcheck/tests/hackedbz2 (stderr)
=================================================
./valgrind-new/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-05-01 20:27:43.649029747 -0500
+++ hackedbz2.stderr.out 2014-05-01 21:32:57.185428541 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-new/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-05-01 20:29:41.226393697 -0500
+++ err_disable3.stderr.out 2014-05-01 20:50:57.001193263 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-new/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-05-01 20:29:51.107508323 -0500
+++ err_disable4.stderr.out 2014-05-01 20:51:01.383244096 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-new/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-05-01 20:29:01.081928003 -0500
+++ threadname.stderr.out 2014-05-01 20:56:54.496340368 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-new/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-05-01 20:29:09.747028522 -0500
+++ threadname_xml.stderr.out 2014-05-01 20:56:56.543364115 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
=================================================
./valgrind-old/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-05-01 19:22:46.400819903 -0500
+++ hackedbz2.stderr.out 2014-05-01 20:23:32.456115795 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-old/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-05-01 19:23:04.660031718 -0500
+++ err_disable3.stderr.out 2014-05-01 19:41:35.110913451 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-old/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-05-01 19:23:01.952000303 -0500
+++ err_disable4.stderr.out 2014-05-01 19:41:39.929969354 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-old/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-05-01 19:23:03.691020477 -0500
+++ threadname.stderr.out 2014-05-01 19:47:33.787074257 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-old/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-05-01 19:23:03.682020372 -0500
+++ threadname_xml.stderr.out 2014-05-01 19:47:35.827097922 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
|
|
From: Tom H. <to...@co...> - 2014-05-02 02:31:47
|
valgrind revision: 13929 VEX revision: 2850 C compiler: gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2) GDB: GNU gdb (GDB) Fedora (7.4.50.20120120-54.fc17) Assembler: GNU assembler version 2.22.52.0.1-10.fc17 20120131 C library: GNU C Library stable release version 2.15 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on bristol ( x86_64, Fedora 17 (Beefy Miracle) ) Started at 2014-05-02 02:51:03 BST Ended at 2014-05-02 03:31:31 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 678 tests, 4 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) |
|
From: Tom H. <to...@co...> - 2014-05-02 02:22:29
|
valgrind revision: 13929 VEX revision: 2850 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora 7.5.1-42.fc18 Assembler: GNU assembler version 2.23.51.0.1-10.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on bristol ( x86_64, Fedora 18 (Spherical Cow) ) Started at 2014-05-02 02:41:19 BST Ended at 2014-05-02 03:22:15 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 678 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) |
|
From: Tom H. <to...@co...> - 2014-05-02 02:18:17
|
valgrind revision: 13929 VEX revision: 2850 C compiler: gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7) GDB: GNU gdb (GDB) Fedora 7.6.1-46.fc19 Assembler: GNU assembler version 2.23.52.0.1-9.fc19 20130226 C library: GNU C Library (GNU libc) stable release version 2.17 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 19 (Schrödingerâs Cat) Nightly build on bristol ( x86_64, Fedora 19 (Schrödingerâs Cat) ) Started at 2014-05-02 02:33:23 BST Ended at 2014-05-02 03:17:59 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 678 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/hackedbz2 (stderr) |
|
From: <sv...@va...> - 2014-05-01 22:43:04
|
Author: sewardj
Date: Thu May 1 22:42:53 2014
New Revision: 13929
Log:
Update.
Modified:
trunk/README.aarch64
Modified: trunk/README.aarch64
==============================================================================
--- trunk/README.aarch64 (original)
+++ trunk/README.aarch64 Thu May 1 22:42:53 2014
@@ -4,14 +4,14 @@
As of Jan 2014 the trunk contains a port to AArch64 ARMv8 -- loosely,
the 64-bit ARM architecture. Currently it supports integer and FP
-instructions and can run almost anything generated by gcc-4.8.2 -O2.
-The port is under active development.
+instructions and can run anything generated by gcc-4.8.2 -O3. The
+port is under active development.
Current limitations, as of mid-March 2014.
* limited support of vector (SIMD) instructions. Initial target is
- support for instructions created by gcc-4.8.2 -O3 (via vectorisation).
- This is mostly complete.
+ support for instructions created by gcc-4.8.2 -O3
+ (via autovectorisation). This is complete.
* Integration with the built in GDB server:
- basically works but breakpoints may be problematic (unclear)
|
|
From: <sv...@va...> - 2014-05-01 08:05:56
|
Author: bart
Date: Thu May 1 08:05:49 2014
New Revision: 13928
Log:
syswrap: XEN_DOMCTL_resumedomain
No input or output parameters
Signed-off-by: Andrew Cooper <and...@ci...>
Signed-off-by: Ian Campbell <ian...@ci...>
Modified:
trunk/coregrind/m_syswrap/syswrap-xen.c
Modified: trunk/coregrind/m_syswrap/syswrap-xen.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-xen.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-xen.c Thu May 1 08:05:49 2014
@@ -592,6 +592,7 @@
case VKI_XEN_DOMCTL_gettscinfo:
case VKI_XEN_DOMCTL_getdomaininfo:
case VKI_XEN_DOMCTL_unpausedomain:
+ case VKI_XEN_DOMCTL_resumedomain:
/* No input fields. */
break;
@@ -1183,6 +1184,7 @@
case VKI_XEN_DOMCTL_sethvmcontext:
case VKI_XEN_DOMCTL_set_max_evtchn:
case VKI_XEN_DOMCTL_cacheflush:
+ case VKI_XEN_DOMCTL_resumedomain:
/* No output fields */
break;
|
|
From: <sv...@va...> - 2014-05-01 08:05:34
|
Author: bart
Date: Thu May 1 08:05:24 2014
New Revision: 13927
Log:
syswrap: XEN_HVMOP_set_mem_type
Signed-off-by: Andrew Cooper <and...@ci...>
CC: Ian Campbell <Ian...@ci...>
Signed-off-by: Ian Campbell <ian...@ci...>
Modified:
trunk/coregrind/m_syswrap/syswrap-xen.c
trunk/include/vki/vki-xen-hvm.h
Modified: trunk/coregrind/m_syswrap/syswrap-xen.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-xen.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-xen.c Thu May 1 08:05:24 2014
@@ -819,6 +819,13 @@
PRE_XEN_HVMOP_READ(set_pci_link_route, isa_irq);
break;
+ case VKI_XEN_HVMOP_set_mem_type:
+ PRE_XEN_HVMOP_READ(set_mem_type, domid);
+ PRE_XEN_HVMOP_READ(set_mem_type, hvmmem_type);
+ PRE_XEN_HVMOP_READ(set_mem_type, nr);
+ PRE_XEN_HVMOP_READ(set_mem_type, first_pfn);
+ break;
+
default:
bad_subop(tid, layout, arrghs, status, flags,
"__HYPERVISOR_hvm_op", op);
@@ -1352,6 +1359,7 @@
case VKI_XEN_HVMOP_set_param:
case VKI_XEN_HVMOP_set_isa_irq_level:
case VKI_XEN_HVMOP_set_pci_link_route:
+ case VKI_XEN_HVMOP_set_mem_type:
/* No output paramters */
break;
Modified: trunk/include/vki/vki-xen-hvm.h
==============================================================================
--- trunk/include/vki/vki-xen-hvm.h (original)
+++ trunk/include/vki/vki-xen-hvm.h Thu May 1 08:05:24 2014
@@ -26,6 +26,15 @@
};
typedef struct vki_xen_hvm_set_pci_link_route vki_xen_hvm_set_pci_link_route_t;
+#define VKI_XEN_HVMOP_set_mem_type 8
+struct vki_xen_hvm_set_mem_type {
+ vki_xen_domid_t domid;
+ vki_uint16_t hvmmem_type;
+ vki_uint32_t nr;
+ vki_xen_uint64_aligned_t first_pfn;
+};
+typedef struct vki_xen_hvm_set_mem_type vki_xen_hvm_set_mem_type_t;
+
#endif // __VKI_XEN_HVM_H
/*--------------------------------------------------------------------*/
|
|
From: <sv...@va...> - 2014-05-01 08:05:13
|
Author: bart
Date: Thu May 1 08:05:06 2014
New Revision: 13926
Log:
syswrap: XEN_HVMOP_set_pci_link_route
Signed-off-by: Andrew Cooper <and...@ci...>
CC: Ian Campbell <Ian...@ci...>
Signed-off-by: Ian Campbell <ian...@ci...>
Modified:
trunk/coregrind/m_syswrap/syswrap-xen.c
trunk/include/vki/vki-xen-hvm.h
Modified: trunk/coregrind/m_syswrap/syswrap-xen.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-xen.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-xen.c Thu May 1 08:05:06 2014
@@ -813,6 +813,12 @@
PRE_XEN_HVMOP_READ(set_isa_irq_level, level);
break;
+ case VKI_XEN_HVMOP_set_pci_link_route:
+ PRE_XEN_HVMOP_READ(set_pci_link_route, domid);
+ PRE_XEN_HVMOP_READ(set_pci_link_route, link);
+ PRE_XEN_HVMOP_READ(set_pci_link_route, isa_irq);
+ break;
+
default:
bad_subop(tid, layout, arrghs, status, flags,
"__HYPERVISOR_hvm_op", op);
@@ -1345,6 +1351,7 @@
switch (op) {
case VKI_XEN_HVMOP_set_param:
case VKI_XEN_HVMOP_set_isa_irq_level:
+ case VKI_XEN_HVMOP_set_pci_link_route:
/* No output paramters */
break;
Modified: trunk/include/vki/vki-xen-hvm.h
==============================================================================
--- trunk/include/vki/vki-xen-hvm.h (original)
+++ trunk/include/vki/vki-xen-hvm.h Thu May 1 08:05:06 2014
@@ -18,6 +18,14 @@
};
typedef struct vki_xen_hvm_set_isa_irq_level vki_xen_hvm_set_isa_irq_level_t;
+#define VKI_XEN_HVMOP_set_pci_link_route 4
+struct vki_xen_hvm_set_pci_link_route {
+ vki_xen_domid_t domid;
+ vki_uint8_t link;
+ vki_uint8_t isa_irq;
+};
+typedef struct vki_xen_hvm_set_pci_link_route vki_xen_hvm_set_pci_link_route_t;
+
#endif // __VKI_XEN_HVM_H
/*--------------------------------------------------------------------*/
|
|
From: <sv...@va...> - 2014-05-01 08:04:50
|
Author: bart
Date: Thu May 1 08:04:42 2014
New Revision: 13925
Log:
syswrap: XEN_HVMOP_set_isa_irq_level
Signed-off-by: Andrew Cooper <and...@ci...>
CC: Ian Campbell <Ian...@ci...>
Signed-off-by: Ian Campbell <ian...@ci...>
Modified:
trunk/coregrind/m_syswrap/syswrap-xen.c
trunk/include/vki/vki-xen-hvm.h
Modified: trunk/coregrind/m_syswrap/syswrap-xen.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-xen.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-xen.c Thu May 1 08:04:42 2014
@@ -807,6 +807,12 @@
__PRE_XEN_HVMOP_READ(get_param, struct vki_xen_hvm_param, index);
break;
+ case VKI_XEN_HVMOP_set_isa_irq_level:
+ PRE_XEN_HVMOP_READ(set_isa_irq_level, domid);
+ PRE_XEN_HVMOP_READ(set_isa_irq_level, isa_irq);
+ PRE_XEN_HVMOP_READ(set_isa_irq_level, level);
+ break;
+
default:
bad_subop(tid, layout, arrghs, status, flags,
"__HYPERVISOR_hvm_op", op);
@@ -1338,6 +1344,7 @@
switch (op) {
case VKI_XEN_HVMOP_set_param:
+ case VKI_XEN_HVMOP_set_isa_irq_level:
/* No output paramters */
break;
Modified: trunk/include/vki/vki-xen-hvm.h
==============================================================================
--- trunk/include/vki/vki-xen-hvm.h (original)
+++ trunk/include/vki/vki-xen-hvm.h Thu May 1 08:04:42 2014
@@ -10,6 +10,14 @@
vki_uint64_t value; /* IN/OUT */
};
+#define VKI_XEN_HVMOP_set_isa_irq_level 3
+struct vki_xen_hvm_set_isa_irq_level {
+ vki_xen_domid_t domid;
+ vki_uint8_t isa_irq;
+ vki_uint8_t level;
+};
+typedef struct vki_xen_hvm_set_isa_irq_level vki_xen_hvm_set_isa_irq_level_t;
+
#endif // __VKI_XEN_HVM_H
/*--------------------------------------------------------------------*/
|
|
From: <sv...@va...> - 2014-05-01 08:04:30
|
Author: bart
Date: Thu May 1 08:04:18 2014
New Revision: 13924
Log:
syswrap: XEN_DOMCTL_cacheflush
Signed-off-by: Andrew Cooper <and...@ci...>
CC: Ian Campbell <Ian...@ci...>
Signed-off-by: Ian Campbell <ian...@ci...>
Modified:
trunk/coregrind/m_syswrap/syswrap-xen.c
trunk/include/vki/vki-xen-domctl.h
Modified: trunk/coregrind/m_syswrap/syswrap-xen.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-xen.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-xen.c Thu May 1 08:04:18 2014
@@ -767,6 +767,11 @@
PRE_XEN_DOMCTL_READ(set_max_evtchn, max_port);
break;
+ case VKI_XEN_DOMCTL_cacheflush:
+ PRE_XEN_DOMCTL_READ(cacheflush, start_pfn);
+ PRE_XEN_DOMCTL_READ(cacheflush, nr_pfns);
+ break;
+
default:
bad_subop(tid, layout, arrghs, status, flags,
"__HYPERVISOR_domctl", domctl->cmd);
@@ -1158,6 +1163,7 @@
case VKI_XEN_DOMCTL_unpausedomain:
case VKI_XEN_DOMCTL_sethvmcontext:
case VKI_XEN_DOMCTL_set_max_evtchn:
+ case VKI_XEN_DOMCTL_cacheflush:
/* No output fields */
break;
Modified: trunk/include/vki/vki-xen-domctl.h
==============================================================================
--- trunk/include/vki/vki-xen-domctl.h (original)
+++ trunk/include/vki/vki-xen-domctl.h Thu May 1 08:04:18 2014
@@ -85,6 +85,7 @@
#define VKI_XEN_DOMCTL_setnodeaffinity 68
#define VKI_XEN_DOMCTL_getnodeaffinity 69
#define VKI_XEN_DOMCTL_set_max_evtchn 70
+#define VKI_XEN_DOMCTL_cacheflush 71
#define VKI_XEN_DOMCTL_gdbsx_guestmemio 1000
#define VKI_XEN_DOMCTL_gdbsx_pausevcpu 1001
#define VKI_XEN_DOMCTL_gdbsx_unpausevcpu 1002
@@ -313,6 +314,11 @@
vki_uint32_t max_port;
};
+struct vki_xen_domctl_cacheflush {
+ /* IN: page range to flush. */
+ vki_xen_pfn_t start_pfn, nr_pfns;
+};
+
struct vki_xen_domctl {
vki_uint32_t cmd;
vki_uint32_t interface_version; /* XEN_DOMCTL_INTERFACE_VERSION */
@@ -371,6 +377,7 @@
struct vki_xen_domctl_set_max_evtchn set_max_evtchn;
//struct vki_xen_domctl_gdbsx_memio gdbsx_guest_memio;
//struct vki_xen_domctl_set_broken_page_p2m set_broken_page_p2m;
+ struct vki_xen_domctl_cacheflush cacheflush;
//struct vki_xen_domctl_gdbsx_pauseunp_vcpu gdbsx_pauseunp_vcpu;
//struct vki_xen_domctl_gdbsx_domstatus gdbsx_domstatus;
vki_uint8_t pad[128];
|
|
From: <sv...@va...> - 2014-05-01 08:03:23
|
Author: bart
Date: Thu May 1 08:03:13 2014
New Revision: 13923
Log:
syswrap: XEN_DOMCTL_settimeoffset
Signed-off-by: Andrew Cooper <and...@ci...>
CC: Ian Campbell <Ian...@ci...>
Signed-off-by: Ian Campbell <ian...@ci...>
Modified:
trunk/coregrind/m_syswrap/syswrap-xen.c
trunk/include/vki/vki-xen-domctl.h
Modified: trunk/coregrind/m_syswrap/syswrap-xen.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-xen.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-xen.c Thu May 1 08:03:13 2014
@@ -637,6 +637,10 @@
PRE_XEN_DOMCTL_READ(hypercall_init, gmfn);
break;
+ case VKI_XEN_DOMCTL_settimeoffset:
+ PRE_XEN_DOMCTL_READ(settimeoffset, time_offset_seconds);
+ break;
+
case VKI_XEN_DOMCTL_getvcpuinfo:
PRE_XEN_DOMCTL_READ(getvcpuinfo, vcpu);
break;
Modified: trunk/include/vki/vki-xen-domctl.h
==============================================================================
--- trunk/include/vki/vki-xen-domctl.h (original)
+++ trunk/include/vki/vki-xen-domctl.h Thu May 1 08:03:13 2014
@@ -264,6 +264,10 @@
vki_xen_uint64_aligned_t gmfn; /* GMFN to be initialised */
};
+struct vki_xen_domctl_settimeoffset {
+ vki_int32_t time_offset_seconds;
+};
+
struct vki_xen_domctl_cpuid {
vki_uint32_t input[2];
vki_uint32_t eax;
@@ -337,7 +341,7 @@
//struct vki_xen_domctl_ioport_permission ioport_permission;
struct vki_xen_domctl_hypercall_init hypercall_init;
//struct vki_xen_domctl_arch_setup arch_setup;
- //struct vki_xen_domctl_settimeoffset settimeoffset;
+ struct vki_xen_domctl_settimeoffset settimeoffset;
//struct vki_xen_domctl_disable_migrate disable_migrate;
struct vki_xen_domctl_tsc_info tsc_info;
//struct vki_xen_domctl_real_mode_area real_mode_area;
|
|
From: <sv...@va...> - 2014-05-01 08:02:54
|
Author: bart
Date: Thu May 1 08:02:39 2014
New Revision: 13922
Log:
Fix P{RE,OST}_XEN_HVMOP_{READ,WRITE}
_type should be a type, not a string
Signed-off-by: Andrew Cooper <and...@ci...>
CC: Ian Campbell <Ian...@ci...>
Signed-off-by: Ian Campbell <ian...@ci...>
Modified:
trunk/coregrind/m_syswrap/syswrap-xen.c
Modified: trunk/coregrind/m_syswrap/syswrap-xen.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-xen.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-xen.c Thu May 1 08:02:39 2014
@@ -784,7 +784,7 @@
(Addr)&((_type*)arg)->_field, \
sizeof(((_type*)arg)->_field))
#define PRE_XEN_HVMOP_READ(_hvm_op, _field) \
- __PRE_XEN_HVMOP_READ(_hvm_op, "xen_hvm_" # _hvm_op "_t", _field)
+ __PRE_XEN_HVMOP_READ(_hvm_op, vki_xen_hvm_ ## _hvm_op ## _t, _field)
switch (op) {
case VKI_XEN_HVMOP_set_param:
@@ -1324,7 +1324,7 @@
POST_MEM_WRITE((Addr)&((_type*)arg)->_field, \
sizeof(((_type*)arg)->_field))
#define POST_XEN_HVMOP_WRITE(_hvm_op, _field) \
- __PRE_XEN_HVMOP_READ(_hvm_op, "xen_hvm_" # _hvm_op "_t", _field)
+ __PRE_XEN_HVMOP_READ(_hvm_op, vki_xen_hvm_ ## _hvm_op ## _t, _field)
switch (op) {
case VKI_XEN_HVMOP_set_param:
|
|
From: Philippe W. <phi...@sk...> - 2014-05-01 04:42:34
|
valgrind revision: 13921 VEX revision: 2850 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora (7.5.1-37.fc18) Assembler: GNU assembler version 2.23.51.0.1-7.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.8.8-202.fc18.ppc64p7 ppc64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on gcc110 ( Fedora release 18 (Spherical Cow), ppc64 ) Started at 2014-04-30 20:00:16 PDT Ended at 2014-04-30 21:39:21 PDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 578 tests, 36 stderr failures, 7 stdout failures, 0 stderrB failures, 0 stdoutB failures, 2 post failures == memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/ppc64/power_ISA2_05 (stdout) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/jm-vmx (stderr) none/tests/ppc32/test_isa_2_06_part2 (stdout) none/tests/ppc32/test_isa_2_06_part2 (stderr) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/jm-vmx (stderr) none/tests/ppc64/test_isa_2_06_part2 (stdout) none/tests/ppc64/test_isa_2_06_part2 (stderr) helgrind/tests/annotate_rwlock (stderr) helgrind/tests/free_is_write (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier1 (stderr) helgrind/tests/pth_barrier2 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/pth_cond_destroy_busy (stderr) helgrind/tests/pth_destroy_cond (stderr) helgrind/tests/rwlock_race (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 1.5s ( 6.7x, -----) me: 2.9s (12.6x, -----) ca:18.3s (79.6x, -----) he: 1.7s ( 7.5x, -----) ca: 5.3s (23.2x, -----) dr: 1.7s ( 7.3x, -----) ma: 2.1s ( 9.3x, -----) bigcode1 valgrind-old:0.23s no: 1.5s ( 6.6x, 0.7%) me: 2.8s (12.3x, 2.4%) ca:18.6s (80.7x, -1.5%) he: 1.7s ( 7.5x, 0.0%) ca: 5.5s (23.9x, -3.0%) dr: 1.7s ( 7.4x, -2.4%) ma: 2.1s ( 9.2x, 0.5%) -- bigcode2 -- bigcode2 valgrind-new:0.23s no: 1.5s ( 6.6x, -----) me: 3.1s (13.6x, -----) ca:18.8s (81.6x, -----) he: 2.1s ( 9.1x, -----) ca: 5.5s (23.7x, -----) dr: 1.8s ( 8.0x, -----) ma: 2.1s ( 9.3x, -----) bigcode2 valgrind-old:0.23s no: 1.6s ( 6.8x, -2.6%) me: 3.0s (13.0x, 4.8%) ca:18.8s (81.6x, 0.0%) he: 2.1s ( 9.1x, 0.0%) ca: 5.5s (23.7x, 0.2%) dr: 1.8s ( 8.0x, 0.5%) ma: 2.1s ( 9.2x, 0.5%) -- bz2 -- bz2 valgrind-new:0.73s no: 4.6s ( 6.3x, -----) me:11.5s (15.8x, -----) ca:26.5s (36.2x, -----) he:14.9s (20.4x, -----) ca:24.5s (33.6x, -----) dr:20.2s (27.6x, -----) ma: 4.7s ( 6.4x, -----) bz2 valgrind-old:0.73s no: 4.5s ( 6.2x, 0.9%) me:11.6s (15.9x, -0.8%) ca:26.4s (36.1x, 0.4%) he:14.6s (20.0x, 1.8%) ca:24.3s (33.2x, 1.0%) dr:20.1s (27.5x, 0.4%) ma: 4.7s ( 6.4x, -0.2%) -- fbench -- fbench valgrind-new:0.34s no: 2.1s ( 6.3x, -----) me: 5.2s (15.3x, -----) ca: 8.6s (25.3x, -----) he: 5.3s (15.5x, -----) ca: 7.5s (22.1x, -----) dr: 5.0s (14.6x, -----) ma: 2.1s ( 6.3x, -----) fbench valgrind-old:0.34s no: 2.1s ( 6.3x, 0.5%) me: 5.2s (15.3x, -0.4%) ca: 8.5s (25.1x, 0.7%) he: 5.3s (15.5x, 0.0%) ca: 7.5s (22.1x, -0.3%) dr: 5.0s (14.6x, 0.2%) ma: 2.1s ( 6.3x, 0.0%) -- ffbench -- ffbench valgrind-new:0.45s no: 1.3s ( 2.9x, -----) me: 2.4s ( 5.4x, -----) ca: 2.5s ( 5.6x, -----) he: 6.9s (15.3x, -----) ca: 7.2s (16.0x, -----) dr: 5.1s (11.3x, -----) ma: 1.0s ( 2.3x, -----) ffbench valgrind-old:0.45s no: 1.3s ( 2.9x, 0.0%) me: 2.4s ( 5.2x, 3.7%) ca: 2.5s ( 5.6x, 0.0%) he: 7.0s (15.5x, -1.5%) ca: 7.0s (15.4x, 3.5%) dr: 5.1s (11.4x, -0.8%) ma: 1.0s ( 2.2x, 1.0%) -- heap -- heap valgrind-new:0.41s no: 2.4s ( 5.9x, -----) me: 9.7s (23.7x, -----) ca:13.5s (33.0x, -----) he:11.9s (29.0x, -----) ca:12.0s (29.3x, -----) dr: 8.3s (20.3x, -----) ma: 8.8s (21.4x, -----) heap valgrind-old:0.41s no: 2.4s ( 5.9x, 0.0%) me: 9.9s (24.0x, -1.4%) ca:13.3s (32.6x, 1.3%) he:12.0s (29.2x, -0.4%) ca:12.1s (29.5x, -0.7%) dr: 8.4s (20.5x, -0.7%) ma: 8.8s (21.6x, -0.6%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.42s no: 2.6s ( 6.1x, -----) me:13.7s (32.5x, -----) ca:14.5s (34.5x, -----) he:13.0s (31.0x, -----) ca:13.1s (31.2x, -----) dr: 9.4s (22.3x, -----) ma: 9.0s (21.4x, -----) heap_pdb4 valgrind-old:0.42s no: 2.6s ( 6.2x, -1.2%) me:13.7s (32.7x, -0.4%) ca:14.4s (34.4x, 0.3%) he:13.3s (31.8x, -2.4%) ca:13.1s (31.2x, 0.0%) dr: 9.5s (22.5x, -1.2%) ma: 9.0s (21.4x, 0.2%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (17.7x, -----) me: 2.2s (72.0x, -----) ca: 1.9s (64.3x, -----) he: 1.8s (60.7x, -----) ca: 1.9s (62.0x, -----) dr: 1.6s (52.3x, -----) ma: 1.6s (54.7x, -----) many-loss-records valgrind-old:0.03s no: 0.5s (17.7x, 0.0%) me: 2.2s (72.0x, 0.0%) ca: 1.9s (64.0x, 0.5%) he: 1.8s (61.3x, -1.1%) ca: 1.9s (61.7x, 0.5%) dr: 1.6s (52.0x, 0.6%) ma: 1.6s (54.3x, 0.6%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.7s (10.6x, -----) me: 3.3s (47.4x, -----) ca: 4.8s (69.0x, -----) he: 4.8s (68.9x, -----) ca: 2.9s (41.3x, -----) dr: 2.3s (32.9x, -----) ma: 2.4s (34.0x, -----) many-xpts valgrind-old:0.07s no: 0.7s (10.4x, 1.4%) me: 3.4s (48.0x, -1.2%) ca: 4.7s (67.7x, 1.9%) he: 4.8s (68.9x, 0.0%) ca: 2.9s (41.3x, 0.0%) dr: 2.3s (32.9x, 0.0%) ma: 2.4s (33.9x, 0.4%) -- sarp -- sarp valgrind-new:0.02s no: 0.4s (19.5x, -----) me: 3.0s (152.0x, -----) ca: 3.1s (155.0x, -----) he:11.0s (548.5x, -----) ca: 1.7s (84.5x, -----) dr: 1.1s (53.5x, -----) ma: 0.4s (21.0x, -----) sarp valgrind-old:0.02s no: 0.4s (20.0x, -2.6%) me: 3.1s (153.0x, -0.7%) ca: 2.9s (147.0x, 5.2%) he:11.1s (557.0x, -1.5%) ca: 1.9s (93.5x,-10.7%) dr: 1.1s (54.0x, -0.9%) ma: 0.4s (21.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.27s no: 3.0s (11.0x, -----) me:13.8s (51.1x, -----) ca:17.9s (66.2x, -----) he:18.9s (70.1x, -----) ca:15.7s (58.3x, -----) dr:12.3s (45.6x, -----) ma: 3.9s (14.3x, -----) tinycc valgrind-old:0.27s no: 3.0s (11.0x, 0.0%) me:13.8s (51.0x, 0.1%) ca:17.6s (65.1x, 1.7%) he:18.9s (70.2x, -0.1%) ca:15.7s (58.0x, 0.4%) dr:12.3s (45.7x, -0.2%) ma: 3.8s (14.1x, 1.6%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 54m3.008s user 52m41.626s sys 0m20.947s |
|
From: Christian B. <bor...@de...> - 2014-05-01 04:16:51
|
valgrind revision: 13921 VEX revision: 2850 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] GDB: GNU gdb (GDB) SUSE (7.5.1-0.7.29) Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.23.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.101-0.15-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP3 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP3 gcc 4.3.4 on z196 (s390x) ) Started at 2014-05-01 03:45:02 CEST Ended at 2014-05-01 06:16:38 CEST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 645 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_cond_destroy_busy (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 4.3s (18.7x, -----) me: 6.7s (29.3x, -----) ca:26.3s (114.5x, -----) he: 5.0s (22.0x, -----) ca: 9.2s (40.0x, -----) dr: 5.5s (23.8x, -----) ma: 4.7s (20.4x, -----) bigcode1 valgrind-old:0.23s no: 4.3s (18.7x, 0.2%) me: 6.7s (29.3x, 0.0%) ca:26.3s (114.5x, 0.0%) he: 5.1s (22.0x, -0.2%) ca: 9.2s (40.0x, 0.0%) dr: 5.5s (23.8x, -0.2%) ma: 4.7s (20.5x, -0.2%) -- bigcode2 -- bigcode2 valgrind-new:0.24s no: 7.2s (30.0x, -----) me:13.6s (56.8x, -----) ca:39.5s (164.4x, -----) he:10.0s (41.7x, -----) ca:14.2s (59.2x, -----) dr: 9.6s (39.9x, -----) ma: 8.1s (33.8x, -----) bigcode2 valgrind-old:0.24s no: 7.2s (30.0x, 0.0%) me:13.6s (56.7x, 0.1%) ca:39.5s (164.4x, -0.0%) he:10.0s (41.8x, -0.1%) ca:14.2s (59.3x, -0.2%) dr: 9.6s (39.9x, 0.1%) ma: 8.1s (33.8x, -0.1%) -- bz2 -- bz2 valgrind-new:0.70s no: 5.0s ( 7.1x, -----) me:12.6s (17.9x, -----) ca:30.6s (43.7x, -----) he:19.7s (28.2x, -----) ca:34.3s (49.0x, -----) dr:29.6s (42.2x, -----) ma: 3.6s ( 5.2x, -----) bz2 valgrind-old:0.70s no: 5.0s ( 7.1x, 0.0%) me:12.3s (17.6x, 1.7%) ca:30.7s (43.9x, -0.3%) he:19.7s (28.1x, 0.2%) ca:34.3s (49.0x, 0.1%) dr:29.7s (42.5x, -0.6%) ma: 3.6s ( 5.2x, 0.0%) -- fbench -- fbench valgrind-new:0.41s no: 1.6s ( 3.9x, -----) me: 4.2s (10.2x, -----) ca: 9.3s (22.7x, -----) he: 6.3s (15.3x, -----) ca: 7.2s (17.6x, -----) dr: 5.4s (13.2x, -----) ma: 1.7s ( 4.1x, -----) fbench valgrind-old:0.41s no: 1.6s ( 3.9x, 1.2%) me: 4.2s (10.2x, -0.2%) ca: 9.3s (22.6x, 0.4%) he: 6.3s (15.4x, -0.3%) ca: 7.2s (17.6x, 0.0%) dr: 5.5s (13.3x, -0.7%) ma: 1.7s ( 4.1x, 0.0%) -- ffbench -- ffbench valgrind-new:0.20s no: 1.1s ( 5.2x, -----) me: 3.0s (14.8x, -----) ca: 3.0s (15.0x, -----) he:42.8s (214.1x, -----) ca: 9.6s (48.0x, -----) dr: 6.8s (34.2x, -----) ma: 1.0s ( 4.8x, -----) ffbench valgrind-old:0.20s no: 1.0s ( 5.2x, 1.0%) me: 3.0s (15.1x, -2.4%) ca: 3.0s (15.1x, -0.3%) he:42.8s (214.1x, -0.0%) ca: 9.6s (48.0x, -0.1%) dr: 6.9s (34.4x, -0.7%) ma: 1.0s ( 4.8x, -1.0%) -- heap -- heap valgrind-new:0.23s no: 1.8s ( 7.7x, -----) me: 8.7s (37.6x, -----) ca:13.0s (56.7x, -----) he:12.7s (55.0x, -----) ca:11.4s (49.5x, -----) dr: 7.8s (33.8x, -----) ma: 7.9s (34.4x, -----) heap valgrind-old:0.23s no: 1.8s ( 7.7x, 0.0%) me: 8.7s (37.9x, -0.7%) ca:13.2s (57.6x, -1.5%) he:12.7s (55.0x, -0.1%) ca:11.2s (48.7x, 1.7%) dr: 8.2s (35.8x, -5.9%) ma: 7.9s (34.4x, 0.0%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.22s no: 2.0s ( 8.9x, -----) me:12.7s (57.7x, -----) ca:14.4s (65.5x, -----) he:14.1s (64.0x, -----) ca:12.4s (56.2x, -----) dr: 8.6s (39.1x, -----) ma: 8.0s (36.3x, -----) heap_pdb4 valgrind-old:0.22s no: 2.0s ( 8.9x, 0.0%) me:12.7s (57.8x, -0.2%) ca:14.2s (64.7x, 1.1%) he:14.1s (64.0x, 0.1%) ca:12.4s (56.3x, -0.1%) dr: 9.1s (41.2x, -5.3%) ma: 8.1s (36.6x, -0.8%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (15.3x, -----) me: 2.1s (69.3x, -----) ca: 1.9s (64.7x, -----) he: 2.2s (72.3x, -----) ca: 1.9s (63.7x, -----) dr: 1.7s (56.0x, -----) ma: 1.7s (55.3x, -----) many-loss-records valgrind-old:0.03s no: 0.5s (15.7x, -2.2%) me: 2.1s (69.3x, 0.0%) ca: 2.0s (65.7x, -1.5%) he: 2.2s (72.3x, 0.0%) ca: 1.9s (63.7x, 0.0%) dr: 1.8s (58.3x, -4.2%) ma: 1.7s (55.7x, -0.6%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.6s ( 8.6x, -----) me: 3.1s (44.9x, -----) ca:371.8s (5311.9x, -----) he: 6.6s (94.1x, -----) ca: 2.8s (39.7x, -----) dr: 2.5s (35.3x, -----) ma: 2.6s (37.6x, -----) many-xpts valgrind-old:0.07s no: 0.6s ( 8.6x, 0.0%) me: 3.1s (44.9x, 0.0%) ca:374.8s (5354.4x, -0.8%) he: 6.6s (94.4x, -0.3%) ca: 2.8s (39.9x, -0.4%) dr: 2.6s (37.3x, -5.7%) ma: 2.6s (37.7x, -0.4%) -- sarp -- sarp valgrind-new:0.03s no: 0.6s (19.0x, -----) me: 3.5s (116.3x, -----) ca: 3.2s (107.3x, -----) he:17.1s (569.3x, -----) ca: 2.0s (68.3x, -----) dr: 1.4s (45.3x, -----) ma: 0.5s (16.3x, -----) sarp valgrind-old:0.03s no: 0.6s (19.0x, 0.0%) me: 3.5s (116.0x, 0.3%) ca: 3.2s (106.7x, 0.6%) he:17.1s (568.7x, 0.1%) ca: 2.0s (68.3x, 0.0%) dr: 1.6s (52.3x,-15.4%) ma: 0.5s (16.3x, 0.0%) -- tinycc -- tinycc valgrind-new:0.22s no: 2.7s (12.1x, -----) me:14.3s (65.1x, -----) ca:29.9s (136.0x, -----) he:27.8s (126.5x, -----) ca:21.3s (97.0x, -----) dr:20.3s (92.4x, -----) ma: 4.0s (18.1x, -----) tinycc valgrind-old:0.22s no: 2.7s (12.1x, 0.0%) me:14.5s (66.0x, -1.4%) ca:29.9s (136.1x, -0.1%) he:27.9s (126.6x, -0.1%) ca:21.4s (97.1x, -0.1%) dr:20.5s (93.3x, -1.0%) ma: 4.0s (18.1x, -0.3%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 110m22.694s user 109m34.662s sys 0m40.600s |
|
From: Tom H. <to...@co...> - 2014-05-01 03:25:02
|
valgrind revision: 13921 VEX revision: 2850 C compiler: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) GDB: Assembler: GNU assembler version 2.18.50.0.6-2 20080403 C library: GNU C Library stable release version 2.8 uname -mrs: Linux 3.13.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2014-05-01 03:53:21 BST Ended at 2014-05-01 04:24:39 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 649 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) none/tests/amd64/sse4-64 (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 647 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) none/tests/amd64/sse4-64 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2014-05-01 04:08:50.984551939 +0100 --- new.short 2014-05-01 04:24:39.380192022 +0100 *************** *** 8,10 **** ! == 647 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) --- 8,10 ---- ! == 649 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) |