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
(26) |
2
(35) |
3
(18) |
4
(14) |
|
5
(12) |
6
(13) |
7
(11) |
8
(15) |
9
(8) |
10
(13) |
11
(25) |
|
12
(13) |
13
(24) |
14
(7) |
15
(6) |
16
(8) |
17
(6) |
18
(7) |
|
19
(8) |
20
(7) |
21
(5) |
22
(7) |
23
(6) |
24
(7) |
25
(6) |
|
26
(7) |
27
(7) |
28
(5) |
29
(5) |
30
(5) |
|
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 23:51:55
|
CVS commit by nethercote: wibble M +2 -2 core.h 1.25 --- valgrind/coregrind/core.h #1.24:1.25 @@ -1496,6 +1496,6 @@ extern void VGA_(load_state) ( arch_thre extern void VGA_(save_state) ( arch_thread_t*, ThreadId tid ); -extern void VGA_(clear_thread) ( arch_thread_t * ); -extern void VGA_(init_thread) ( arch_thread_t * ); +extern void VGA_(clear_thread) ( arch_thread_t* ); +extern void VGA_(init_thread) ( arch_thread_t* ); extern void VGA_(cleanup_thread) ( arch_thread_t* ); extern void VGA_(setup_child) ( arch_thread_t*, arch_thread_t* ); |
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 23:48:27
|
CVS commit by nethercote:
Arch-abstraction:
- in vg_symtab2.c, abstract out mentions of specific registers.
M +3 -0 core.h 1.24
M +6 -35 vg_symtab2.c 1.89
M +37 -0 x86/state.c 1.8
--- valgrind/coregrind/core.h #1.23:1.24
@@ -1501,4 +1501,7 @@ extern void VGA_(cleanup_thread) ( arch_
extern void VGA_(setup_child) ( arch_thread_t*, arch_thread_t* );
+extern UInt* VGA_(reg_addr_from_BB) ( Int reg );
+extern UInt* VGA_(reg_addr_from_tst) ( Int reg, arch_thread_t* );
+
extern Bool VGA_(setup_pointercheck) ( void );
--- valgrind/coregrind/vg_symtab2.c #1.88:1.89
@@ -2003,38 +2003,8 @@ static UInt *regaddr(ThreadId tid, Int r
UInt *ret = 0;
- if (VG_(is_running_thread)(tid)) {
- Int idx;
-
- switch(regno) {
- case R_EAX: idx = VGOFF_(m_eax); break;
- case R_ECX: idx = VGOFF_(m_ecx); break;
- case R_EDX: idx = VGOFF_(m_edx); break;
- case R_EBX: idx = VGOFF_(m_ebx); break;
- case R_ESP: idx = VGOFF_(m_esp); break;
- case R_EBP: idx = VGOFF_(m_ebp); break;
- case R_ESI: idx = VGOFF_(m_esi); break;
- case R_EDI: idx = VGOFF_(m_edi); break;
- default:
- idx = -1;
- break;
- }
- if (idx != -1)
- ret = &VG_(baseBlock)[idx];
- } else {
- ThreadState *tst = &VG_(threads)[tid];
-
- switch(regno) {
- case R_EAX: ret = &tst->arch.m_eax; break;
- case R_ECX: ret = &tst->arch.m_ecx; break;
- case R_EDX: ret = &tst->arch.m_edx; break;
- case R_EBX: ret = &tst->arch.m_ebx; break;
- case R_ESP: ret = &tst->arch.m_esp; break;
- case R_EBP: ret = &tst->arch.m_ebp; break;
- case R_ESI: ret = &tst->arch.m_esi; break;
- case R_EDI: ret = &tst->arch.m_edi; break;
- default:
- break;
- }
- }
+ if (VG_(is_running_thread)(tid))
+ ret = VGA_(reg_addr_from_BB)(regno);
+ else
+ ret = VGA_(reg_addr_from_tst)(regno, &VG_(threads)[tid].arch);
if (ret == 0) {
@@ -2133,5 +2103,6 @@ Variable *VG_(get_scope_variables)(Threa
case SyEBPrel:
case SyESPrel:
- reg = *regaddr(tid, sym->kind == SyESPrel ? R_ESP : R_EBP);
+ reg = *regaddr(tid, sym->kind == SyESPrel ?
+ R_STACK_PTR : R_FRAME_PTR);
if (debug)
VG_(printf)("reg=%p+%d=%p\n", reg, sym->u.offset, reg+sym->u.offset);
--- valgrind/coregrind/x86/state.c #1.7:1.8
@@ -492,4 +492,41 @@ void VGA_(setup_child) ( arch_thread_t *
/*------------------------------------------------------------*/
+/*--- Symtab stuff ---*/
+/*------------------------------------------------------------*/
+
+UInt *VGA_(reg_addr_from_BB)(Int regno)
+{
+ Int r;
+ switch (regno) {
+ case R_EAX: r = VGOFF_(m_eax); break;
+ case R_ECX: r = VGOFF_(m_ecx); break;
+ case R_EDX: r = VGOFF_(m_edx); break;
+ case R_EBX: r = VGOFF_(m_ebx); break;
+ case R_ESP: r = VGOFF_(m_esp); break;
+ case R_EBP: r = VGOFF_(m_ebp); break;
+ case R_ESI: r = VGOFF_(m_esi); break;
+ case R_EDI: r = VGOFF_(m_edi); break;
+ default:
+ return NULL;
+ }
+ return &VG_(baseBlock)[r];
+}
+
+UInt *VGA_(reg_addr_from_tst)(Int regno, arch_thread_t *arch)
+{
+ switch (regno) {
+ case R_EAX: return &arch->m_eax;
+ case R_ECX: return &arch->m_ecx;
+ case R_EDX: return &arch->m_edx;
+ case R_EBX: return &arch->m_ebx;
+ case R_ESP: return &arch->m_esp;
+ case R_EBP: return &arch->m_ebp;
+ case R_ESI: return &arch->m_esi;
+ case R_EDI: return &arch->m_edi;
+ default: return NULL;
+ }
+}
+
+/*------------------------------------------------------------*/
/*--- pointercheck ---*/
/*------------------------------------------------------------*/
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 23:28:06
|
CVS commit by nethercote:
Fix minor off-by-one error.
MERGED FROM HEAD
M +1 -1 vg_mylibc.c 1.85.2.2
--- valgrind/coregrind/vg_mylibc.c #1.85.2.1:1.85.2.2
@@ -283,5 +283,5 @@ void* VG_(mmap)( void* start, UInt lengt
if (!VG_(is_kerror)(res)) {
if (flags & VKI_MAP_CLIENT) {
- vg_assert(VG_(client_base) <= res && res+length < VG_(client_end));
+ vg_assert(VG_(client_base) <= res && res+length <= VG_(client_end));
} else {
vg_assert(VG_(valgrind_base) <= res && res+length-1 <= VG_(valgrind_last));
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 23:27:21
|
CVS commit by nethercote:
Fix minor off-by-one error.
M +1 -1 vg_mylibc.c 1.90
--- valgrind/coregrind/vg_mylibc.c #1.89:1.90
@@ -283,5 +283,5 @@ void* VG_(mmap)( void* start, UInt lengt
if (!VG_(is_kerror)(res)) {
if (flags & VKI_MAP_CLIENT) {
- vg_assert(VG_(client_base) <= res && res+length < VG_(client_end));
+ vg_assert(VG_(client_base) <= res && res+length <= VG_(client_end));
} else {
vg_assert(VG_(valgrind_base) <= res && res+length-1 <= VG_(valgrind_last));
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 23:07:27
|
CVS commit by nethercote:
vg_replace_malloc.c doesn't need to be included in "make dist", because it's
generated from vg_replace_malloc.c.base.
M +1 -2 Makefile.am 1.85
--- valgrind/coregrind/Makefile.am #1.84:1.85
@@ -24,6 +24,5 @@
vg_libpthread.vs valgrind.vs \
gen_toolint.pl toolfuncs.def \
- gen_intercepts.pl vg_replace_malloc.c.base vg_intercept.c.base \
- vg_replace_malloc.c
+ gen_intercepts.pl vg_replace_malloc.c.base vg_intercept.c.base
BUILT_SOURCES = vg_toolint.c vg_toolint.h
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 18:27:56
|
CVS commit by nethercote: Arch-abstraction: - previous Cachegrind rearrangement broke "make distcheck"; this commit fixed it again. M +1 -2 Makefile.tool-flags.am 1.2 M +2 -0 cachegrind/Makefile.am 1.48 M +1 -1 cachegrind/x86/Makefile.am 1.2 --- valgrind/Makefile.tool-flags.am #1.1:1.2 @@ -2,6 +2,5 @@ ## otherwise it will not work if builddir != srcdir. add_includes = -I$(top_builddir)/include -I$(top_srcdir)/include \ - -I$(top_srcdir)/include/$(VG_ARCH) \ - -I./$(VG_ARCH) + -I$(top_srcdir)/include/$(VG_ARCH) AM_CPPFLAGS = $(add_includes) --- valgrind/cachegrind/Makefile.am #1.47:1.48 @@ -6,4 +6,6 @@ SUBDIRS = $(VG_ARCH) . tests docs +AM_CPPFLAGS += -I$(top_srcdir)/cachegrind/$(VG_ARCH) + bin_SCRIPTS = cg_annotate --- valgrind/cachegrind/x86/Makefile.am #1.1:1.2 @@ -1,5 +1,5 @@ include $(top_srcdir)/Makefile.tool-flags.am -AM_CPPFLAGS += -I.. +AM_CPPFLAGS += -I$(top_srcdir)/cachegrind noinst_LIBRARIES = libcgarch.a |
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 16:45:50
|
CVS commit by nethercote:
Arch-abstraction:
- In Cachegrind, abstract out x86-specific use of CPUID to find cache
configuration. Required adding a cachegrind/x86/ directory, and fiddling
a bit with the build system.
A Makefile.tool-flags.am 1.1
A cachegrind/cg_arch.h 1.1 [GPL (v2+)]
A cachegrind/x86/.cvsignore 1.1
A cachegrind/x86/Makefile.am 1.1
A cachegrind/x86/cg_arch.c 1.1 [GPL (v2+)]
M +2 -13 Makefile.tool.am 1.3
M +1 -0 configure.in 1.126
M +9 -1 cachegrind/Makefile.am 1.47
M +18 -330 cachegrind/cg_main.c 1.79
--- valgrind/Makefile.tool.am #1.2:1.3
@@ -1,17 +1,6 @@
-include $(top_srcdir)/Makefile.all.am
-
SUBDIRS = . tests docs
-## Need $(top_builddir)/include because tool.h is built from tool.h.base;
-## otherwise it will not work if builddir != srcdir.
-add_includes = -I$(top_builddir)/include -I$(top_srcdir)/include \
- -I$(top_srcdir)/include/$(VG_ARCH)
-
-AM_CPPFLAGS = $(add_includes)
-AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -O -fomit-frame-pointer \
- @PREFERRED_STACK_BOUNDARY@ -g
-AM_CCASFLAGS = $(add_includes)
-
+include $(top_srcdir)/Makefile.all.am
+include $(top_srcdir)/Makefile.tool-flags.am
include $(top_srcdir)/Makefile.tool-inplace.am
-
--- valgrind/configure.in #1.125:1.126
@@ -406,4 +406,5 @@
memcheck/docs/Makefile
cachegrind/Makefile
+ cachegrind/x86/Makefile
cachegrind/tests/Makefile
cachegrind/docs/Makefile
--- valgrind/cachegrind/Makefile.am #1.46:1.47
@@ -1,3 +1,8 @@
-include $(top_srcdir)/Makefile.tool.am
+##include $(top_srcdir)/Makefile.tool.am
+include $(top_srcdir)/Makefile.all.am
+include $(top_srcdir)/Makefile.tool-flags.am
+include $(top_srcdir)/Makefile.tool-inplace.am
+
+SUBDIRS = $(VG_ARCH) . tests docs
bin_SCRIPTS = cg_annotate
@@ -5,7 +10,10 @@
EXTRA_DIST = cg_sim.c
+noinst_HEADERS = cg_arch.h
+
val_PROGRAMS = vgskin_cachegrind.so
vgskin_cachegrind_so_SOURCES = cg_main.c
vgskin_cachegrind_so_LDFLAGS = -shared
+vgskin_cachegrind_so_LDADD = ${VG_ARCH}/libcgarch.a
--- valgrind/cachegrind/cg_main.c #1.78:1.79
@@ -33,11 +33,5 @@
//#include "vg_profile.c"
-/* For cache simulation */
-typedef struct {
- int size; /* bytes */
- int assoc;
- int line_size; /* bytes */
-} cache_t;
-
+#include "cg_arch.h"
#include "cg_sim.c"
@@ -663,5 +657,5 @@ UCodeBlock* SK_(instrument)(UCodeBlock*
/*------------------------------------------------------------*/
-/*--- Automagic cache initialisation stuff ---*/
+/*--- Cache configuration ---*/
/*------------------------------------------------------------*/
@@ -672,301 +666,4 @@ static cache_t clo_D1_cache = UNDEFINED_
static cache_t clo_L2_cache = UNDEFINED_CACHE;
-// All CPUID info taken from sandpile.org/a32/cpuid.htm */
-// Probably only works for Intel and AMD chips, and probably only for some of
-// them.
-
-static void micro_ops_warn(Int actual_size, Int used_size, Int line_size)
-{
- VG_(message)(Vg_DebugMsg,
- "warning: Pentium with %d K micro-op instruction trace cache",
- actual_size);
- VG_(message)(Vg_DebugMsg,
- " Simulating a %d KB cache with %d B lines",
- used_size, line_size);
-}
-
-/* Intel method is truly wretched. We have to do an insane indexing into an
- * array of pre-defined configurations for various parts of the memory
- * hierarchy.
- */
-static
-Int Intel_cache_info(Int level, cache_t* I1c, cache_t* D1c, cache_t* L2c)
-{
- UChar info[16];
- Int i, trials;
- Bool L2_found = False;
-
- if (level < 2) {
- VG_(message)(Vg_DebugMsg,
- "warning: CPUID level < 2 for Intel processor (%d)",
- level);
- return -1;
- }
-
- VG_(cpuid)(2, (Int*)&info[0], (Int*)&info[4],
- (Int*)&info[8], (Int*)&info[12]);
- trials = info[0] - 1; /* AL register - bits 0..7 of %eax */
- info[0] = 0x0; /* reset AL */
-
- if (0 != trials) {
- VG_(message)(Vg_DebugMsg,
- "warning: non-zero CPUID trials for Intel processor (%d)",
- trials);
- return -1;
- }
-
- for (i = 0; i < 16; i++) {
-
- switch (info[i]) {
-
- case 0x0: /* ignore zeros */
- break;
-
- /* TLB info, ignore */
- case 0x01: case 0x02: case 0x03: case 0x04:
- case 0x50: case 0x51: case 0x52: case 0x5b: case 0x5c: case 0x5d:
- case 0xb0: case 0xb3:
- break;
-
- case 0x06: *I1c = (cache_t) { 8, 4, 32 }; break;
- case 0x08: *I1c = (cache_t) { 16, 4, 32 }; break;
- case 0x30: *I1c = (cache_t) { 32, 8, 64 }; break;
-
- case 0x0a: *D1c = (cache_t) { 8, 2, 32 }; break;
- case 0x0c: *D1c = (cache_t) { 16, 4, 32 }; break;
- case 0x2c: *D1c = (cache_t) { 32, 8, 64 }; break;
-
- /* IA-64 info -- panic! */
- case 0x10: case 0x15: case 0x1a:
- case 0x88: case 0x89: case 0x8a: case 0x8d:
- case 0x90: case 0x96: case 0x9b:
- VG_(skin_panic)("IA-64 cache detected?!");
-
- case 0x22: case 0x23: case 0x25: case 0x29:
- VG_(message)(Vg_DebugMsg,
- "warning: L3 cache detected but ignored\n");
- break;
-
- /* These are sectored, whatever that means */
- case 0x39: *L2c = (cache_t) { 128, 4, 64 }; L2_found = True; break;
- case 0x3c: *L2c = (cache_t) { 256, 4, 64 }; L2_found = True; break;
-
- /* If a P6 core, this means "no L2 cache".
- If a P4 core, this means "no L3 cache".
- We don't know what core it is, so don't issue a warning. To detect
- a missing L2 cache, we use 'L2_found'. */
- case 0x40:
- break;
-
- case 0x41: *L2c = (cache_t) { 128, 4, 32 }; L2_found = True; break;
- case 0x42: *L2c = (cache_t) { 256, 4, 32 }; L2_found = True; break;
- case 0x43: *L2c = (cache_t) { 512, 4, 32 }; L2_found = True; break;
- case 0x44: *L2c = (cache_t) { 1024, 4, 32 }; L2_found = True; break;
- case 0x45: *L2c = (cache_t) { 2048, 4, 32 }; L2_found = True; break;
-
- /* These are sectored, whatever that means */
- case 0x66: *D1c = (cache_t) { 8, 4, 64 }; break; /* sectored */
- case 0x67: *D1c = (cache_t) { 16, 4, 64 }; break; /* sectored */
- case 0x68: *D1c = (cache_t) { 32, 4, 64 }; break; /* sectored */
-
- /* HACK ALERT: Instruction trace cache -- capacity is micro-ops based.
- * conversion to byte size is a total guess; treat the 12K and 16K
- * cases the same since the cache byte size must be a power of two for
- * everything to work!. Also guessing 32 bytes for the line size...
- */
- case 0x70: /* 12K micro-ops, 8-way */
- *I1c = (cache_t) { 16, 8, 32 };
- micro_ops_warn(12, 16, 32);
- break;
- case 0x71: /* 16K micro-ops, 8-way */
- *I1c = (cache_t) { 16, 8, 32 };
- micro_ops_warn(16, 16, 32);
- break;
- case 0x72: /* 32K micro-ops, 8-way */
- *I1c = (cache_t) { 32, 8, 32 };
- micro_ops_warn(32, 32, 32);
- break;
-
- /* These are sectored, whatever that means */
- case 0x79: *L2c = (cache_t) { 128, 8, 64 }; L2_found = True; break;
- case 0x7a: *L2c = (cache_t) { 256, 8, 64 }; L2_found = True; break;
- case 0x7b: *L2c = (cache_t) { 512, 8, 64 }; L2_found = True; break;
- case 0x7c: *L2c = (cache_t) { 1024, 8, 64 }; L2_found = True; break;
- case 0x7e: *L2c = (cache_t) { 256, 8, 128 }; L2_found = True; break;
-
- case 0x81: *L2c = (cache_t) { 128, 8, 32 }; L2_found = True; break;
- case 0x82: *L2c = (cache_t) { 256, 8, 32 }; L2_found = True; break;
- case 0x83: *L2c = (cache_t) { 512, 8, 32 }; L2_found = True; break;
- case 0x84: *L2c = (cache_t) { 1024, 8, 32 }; L2_found = True; break;
- case 0x85: *L2c = (cache_t) { 2048, 8, 32 }; L2_found = True; break;
- case 0x86: *L2c = (cache_t) { 512, 4, 64 }; L2_found = True; break;
- case 0x87: *L2c = (cache_t) { 1024, 8, 64 }; L2_found = True; break;
-
- default:
- VG_(message)(Vg_DebugMsg,
- "warning: Unknown Intel cache config value "
- "(0x%x), ignoring", info[i]);
- break;
- }
- }
-
- if (!L2_found)
- VG_(message)(Vg_DebugMsg,
- "warning: L2 cache not installed, ignore L2 results.");
-
- return 0;
-}
-
-/* AMD method is straightforward, just extract appropriate bits from the
- * result registers.
- *
- * Bits, for D1 and I1:
- * 31..24 data L1 cache size in KBs
- * 23..16 data L1 cache associativity (FFh=full)
- * 15.. 8 data L1 cache lines per tag
- * 7.. 0 data L1 cache line size in bytes
- *
- * Bits, for L2:
- * 31..16 unified L2 cache size in KBs
- * 15..12 unified L2 cache associativity (0=off, FFh=full)
- * 11.. 8 unified L2 cache lines per tag
- * 7.. 0 unified L2 cache line size in bytes
- *
- * #3 The AMD K7 processor's L2 cache must be configured prior to relying
- * upon this information. (Whatever that means -- njn)
- *
- * Also, according to Cyrille Chepelov, Duron stepping A0 processors (model
- * 0x630) have a bug and misreport their L2 size as 1KB (it's really 64KB),
- * so we detect that.
- *
- * Returns 0 on success, non-zero on failure.
- */
-static
-Int AMD_cache_info(cache_t* I1c, cache_t* D1c, cache_t* L2c)
-{
- UInt ext_level;
- UInt dummy, model;
- UInt I1i, D1i, L2i;
-
- VG_(cpuid)(0x80000000, &ext_level, &dummy, &dummy, &dummy);
-
- if (0 == (ext_level & 0x80000000) || ext_level < 0x80000006) {
- VG_(message)(Vg_UserMsg,
- "warning: ext_level < 0x80000006 for AMD processor (0x%x)",
- ext_level);
- return -1;
- }
-
- VG_(cpuid)(0x80000005, &dummy, &dummy, &D1i, &I1i);
- VG_(cpuid)(0x80000006, &dummy, &dummy, &L2i, &dummy);
-
- VG_(cpuid)(0x1, &model, &dummy, &dummy, &dummy);
-
- /* Check for Duron bug */
- if (model == 0x630) {
- VG_(message)(Vg_UserMsg,
- "Buggy Duron stepping A0. Assuming L2 size=65536 bytes");
- L2i = (64 << 16) | (L2i & 0xffff);
- }
-
- D1c->size = (D1i >> 24) & 0xff;
- D1c->assoc = (D1i >> 16) & 0xff;
- D1c->line_size = (D1i >> 0) & 0xff;
-
- I1c->size = (I1i >> 24) & 0xff;
- I1c->assoc = (I1i >> 16) & 0xff;
- I1c->line_size = (I1i >> 0) & 0xff;
-
- L2c->size = (L2i >> 16) & 0xffff; /* Nb: different bits used for L2 */
- L2c->assoc = (L2i >> 12) & 0xf;
- L2c->line_size = (L2i >> 0) & 0xff;
-
- return 0;
-}
-
-static jmp_buf cpuid_jmpbuf;
-
-static
-void cpuid_SIGILL_handler(int signum)
-{
- __builtin_longjmp(cpuid_jmpbuf, 1);
-}
-
-static
-Int get_caches_from_CPUID(cache_t* I1c, cache_t* D1c, cache_t* L2c)
-{
- Int level, res, ret;
- Char vendor_id[13];
- vki_ksigaction sigill_new, sigill_saved;
-
- /* Install own SIGILL handler */
- sigill_new.ksa_handler = cpuid_SIGILL_handler;
- sigill_new.ksa_flags = 0;
- sigill_new.ksa_restorer = NULL;
- res = VG_(ksigemptyset)( &sigill_new.ksa_mask );
- sk_assert(res == 0);
-
- res = VG_(ksigaction)( VKI_SIGILL, &sigill_new, &sigill_saved );
- sk_assert(res == 0);
-
- /* Trap for illegal instruction, in case it's a really old processor that
- * doesn't support CPUID. */
- if (__builtin_setjmp(cpuid_jmpbuf) == 0) {
- VG_(cpuid)(0, &level, (int*)&vendor_id[0],
- (int*)&vendor_id[8], (int*)&vendor_id[4]);
- vendor_id[12] = '\0';
-
- /* Restore old SIGILL handler */
- res = VG_(ksigaction)( VKI_SIGILL, &sigill_saved, NULL );
- sk_assert(res == 0);
-
- } else {
- VG_(message)(Vg_DebugMsg, "CPUID instruction not supported");
-
- /* Restore old SIGILL handler */
- res = VG_(ksigaction)( VKI_SIGILL, &sigill_saved, NULL );
- sk_assert(res == 0);
- return -1;
- }
-
- if (0 == level) {
- VG_(message)(Vg_DebugMsg, "CPUID level is 0, early Pentium?\n");
- return -1;
- }
-
- /* Only handling Intel and AMD chips... no Cyrix, Transmeta, etc */
- if (0 == VG_(strcmp)(vendor_id, "GenuineIntel")) {
- ret = Intel_cache_info(level, I1c, D1c, L2c);
-
- } else if (0 == VG_(strcmp)(vendor_id, "AuthenticAMD")) {
- ret = AMD_cache_info(I1c, D1c, L2c);
-
- } else if (0 == VG_(strcmp)(vendor_id, "CentaurHauls")) {
- /* Total kludge. Pretend to be a VIA Nehemiah. */
- D1c->size = 64;
- D1c->assoc = 16;
- D1c->line_size = 16;
- I1c->size = 64;
- I1c->assoc = 4;
- I1c->line_size = 16;
- L2c->size = 64;
- L2c->assoc = 16;
- L2c->line_size = 16;
- ret = 0;
-
- } else {
- VG_(message)(Vg_DebugMsg, "CPU vendor ID not recognised (%s)",
- vendor_id);
- return -1;
- }
-
- /* Successful! Convert sizes from KB to bytes */
- I1c->size *= 1024;
- D1c->size *= 1024;
- L2c->size *= 1024;
-
- return ret;
-}
-
/* Checks cache config is ok; makes it so if not. */
static
@@ -1026,34 +723,25 @@ void check_cache(cache_t* cache, cache_t
static
-void get_caches(cache_t* I1c, cache_t* D1c, cache_t* L2c)
+void configure_caches(cache_t* I1c, cache_t* D1c, cache_t* L2c)
{
#define DEFINED(L) (-1 != L.size || -1 != L.assoc || -1 != L.line_size)
- Int res, n_clos = 0;
-
- // Defaults are for a model 3 or 4 Athlon
- cache_t I1_dflt = (cache_t) { 65536, 2, 64 };
- cache_t D1_dflt = (cache_t) { 65536, 2, 64 };
- cache_t L2_dflt = (cache_t) { 262144, 8, 64 };
+ Int n_clos = 0;
+ cache_t I1_dflt, D1_dflt, L2_dflt;
- // Set caches to default.
- *I1c = I1_dflt;
- *D1c = D1_dflt;
- *L2c = L2_dflt;
+ // Count how many were defined on the command line.
+ if (DEFINED(clo_I1_cache)) { n_clos++; }
+ if (DEFINED(clo_D1_cache)) { n_clos++; }
+ if (DEFINED(clo_L2_cache)) { n_clos++; }
- // Then replace with any info we can get from CPUID.
- res = get_caches_from_CPUID(I1c, D1c, L2c);
+ // Set the default cache config (using auto-detection, if supported by
+ // current arch)
+ VGA_(configure_caches)( I1c, D1c, L2c, &I1_dflt, &D1_dflt, &L2_dflt,
+ (3 == n_clos) );
// Then replace with any defined on the command line.
- if (DEFINED(clo_I1_cache)) { *I1c = clo_I1_cache; n_clos++; }
- if (DEFINED(clo_D1_cache)) { *D1c = clo_D1_cache; n_clos++; }
- if (DEFINED(clo_L2_cache)) { *L2c = clo_L2_cache; n_clos++; }
-
- // Warn if CPUID failed and config not completely specified from cmd line.
- if (res != 0 && n_clos < 3) {
- VG_(message)(Vg_DebugMsg,
- "Warning: Couldn't detect cache config, using one "
- "or more defaults ");
- }
+ if (DEFINED(clo_I1_cache)) { *I1c = clo_I1_cache; }
+ if (DEFINED(clo_D1_cache)) { *D1c = clo_D1_cache; }
+ if (DEFINED(clo_L2_cache)) { *L2c = clo_L2_cache; }
// Then check values and fix if not acceptable.
@@ -1458,5 +1146,5 @@ void SK_(post_clo_init)(void)
cache_t I1c, D1c, L2c;
- get_caches(&I1c, &D1c, &L2c);
+ configure_caches(&I1c, &D1c, &L2c);
cachesim_I1_initcache(I1c);
|
|
From: Tom H. <th...@cy...> - 2004-09-11 15:33:24
|
CVS commit by thughes:
Add support for the SIOCGPGRP ioctl and mark SIOCSPGRP as non-blocking
to avoid older kernels returning EPERM due to it being run in a separate
thread. This fixes bug #89198.
M +8 -0 vg_syscalls.c 1.142
--- valgrind/coregrind/vg_syscalls.c #1.141:1.142
@@ -3239,7 +3239,12 @@ PRE(ioctl)
break;
+ case SIOCGPGRP:
+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SIOCGPGRP)", arg3,
+ sizeof(int) );
+ break;
case SIOCSPGRP:
SYSCALL_TRACK( pre_mem_read, tid, "ioctl(SIOCSPGRP)", arg3,
sizeof(int) );
+ tst->sys_flags &= ~MayBlock;
break;
@@ -3818,4 +3823,7 @@ POST(ioctl)
break;
+ case SIOCGPGRP:
+ VG_TRACK( post_mem_write,arg3, sizeof(int));
+ break;
case SIOCSPGRP:
break;
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 15:30:40
|
CVS commit by nethercote:
Arch-abstraction:
- abstract out some inline asm
M +2 -1 vg_mylibc.c 1.89
M +10 -0 x86/core_arch.h 1.7
--- valgrind/coregrind/vg_mylibc.c #1.88:1.89
@@ -1092,5 +1092,6 @@ static inline ExeContext *get_real_execo
Addr stacktop, sigstack_low, sigstack_high;
- asm("movl %%ebp, %0; movl %%esp, %1" : "=r" (ebp), "=r" (esp));
+ ARCH_GET_REAL_STACK_PTR(esp);
+ ARCH_GET_REAL_FRAME_PTR(ebp);
stacktop = VG_(valgrind_last);
VG_(get_sigstack_bounds)( &sigstack_low, &sigstack_high );
--- valgrind/coregrind/x86/core_arch.h #1.6:1.7
@@ -60,4 +60,14 @@
#define VGOFF_FRAME_PTR VGOFF_(m_ebp)
+// Get stack pointer and frame pointer
+#define ARCH_GET_REAL_STACK_PTR(esp) do { \
+ asm("movl %%esp, %0" : "=r" (esp)); \
+} while (0)
+
+#define ARCH_GET_REAL_FRAME_PTR(ebp) do { \
+ asm("movl %%ebp, %0" : "=r" (ebp)); \
+} while (0)
+
+
/* -----------------------------------------------------
Read-write parts of baseBlock.
|
|
From: Tom H. <th...@cy...> - 2004-09-11 15:15:06
|
CVS commit by thughes:
Removed result checks from ioctl POST handlers as the POST handler is
not called unless PostOnFail is set so the checks are redundant.
M +64 -105 vg_syscalls.c 1.141
--- valgrind/coregrind/vg_syscalls.c #1.140:1.141
@@ -3604,5 +3604,4 @@ POST(ioctl)
break;
case TCGETS:
- if (res == 0)
VG_TRACK( post_mem_write, arg3, VKI_SIZEOF_STRUCT_TERMIOS );
break;
@@ -3612,5 +3611,4 @@ POST(ioctl)
break;
case TCGETA:
- if (res == 0)
VG_TRACK( post_mem_write, arg3, VKI_SIZEOF_STRUCT_TERMIO );
break;
@@ -3621,5 +3619,4 @@ POST(ioctl)
break;
case TIOCGWINSZ:
- if (res == 0)
VG_TRACK( post_mem_write, arg3, sizeof(struct winsize) );
break;
@@ -3630,19 +3627,15 @@ POST(ioctl)
break;
case TIOCLINUX:
- if (res == 0)
VG_TRACK( post_mem_write, arg3, sizeof(char *) );
break;
case TIOCGPGRP:
/* Get process group ID for foreground processing group. */
- if (res == 0)
VG_TRACK( post_mem_write, arg3, sizeof(pid_t) );
break;
case TIOCSPGRP:
/* Set a process group ID? */
- if (res == 0)
VG_TRACK( post_mem_write, arg3, sizeof(pid_t) );
break;
case TIOCGPTN: /* Get Pty Number (of pty-mux device) */
- if (res == 0)
VG_TRACK( post_mem_write, arg3, sizeof(int));
break;
@@ -3656,5 +3649,4 @@ POST(ioctl)
break;
case FIONREAD: /* identical to SIOCINQ */
- if (res == 0)
VG_TRACK( post_mem_write, arg3, sizeof(int) );
break;
@@ -3668,10 +3660,8 @@ POST(ioctl)
# if defined(SG_IO)
case SG_IO:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(struct sg_io_hdr));
break;
# endif /* SG_IO */
case SG_GET_SCSI_ID:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(struct sg_scsi_id));
break;
@@ -3681,9 +3671,7 @@ POST(ioctl)
break;
case SG_GET_RESERVED_SIZE:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(int));
break;
case SG_GET_TIMEOUT:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(int));
break;
@@ -3704,10 +3692,8 @@ POST(ioctl)
# define ISDN_MAX_CHANNELS 64
# endif
- if (res == 0)
- VG_TRACK( post_mem_write, arg3, ISDN_MAX_CHANNELS
- * 2 * sizeof(unsigned long) );
+ VG_TRACK( post_mem_write, arg3,
+ ISDN_MAX_CHANNELS * 2 * sizeof(unsigned long) );
break;
case VKI_IIOCNETGPN:
- if (res == 0)
VG_TRACK( post_mem_write, arg3, sizeof(isdn_net_ioctl_phone) );
break;
@@ -3715,5 +3701,4 @@ POST(ioctl)
/* These all use struct ifreq AFAIK */
case SIOCGIFINDEX: /* get iface index */
- if (res == 0)
VG_TRACK( post_mem_write,
(UInt)&((struct ifreq *)arg3)->ifr_ifindex,
@@ -3721,5 +3706,4 @@ POST(ioctl)
break;
case SIOCGIFFLAGS: /* get flags */
- if (res == 0)
VG_TRACK( post_mem_write,
(UInt)&((struct ifreq *)arg3)->ifr_flags,
@@ -3727,5 +3711,4 @@ POST(ioctl)
break;
case SIOCGIFHWADDR: /* Get hardware address */
- if (res == 0)
VG_TRACK( post_mem_write,
(UInt)&((struct ifreq *)arg3)->ifr_hwaddr,
@@ -3733,5 +3716,4 @@ POST(ioctl)
break;
case SIOCGIFMTU: /* get MTU size */
- if (res == 0)
VG_TRACK( post_mem_write,
(UInt)&((struct ifreq *)arg3)->ifr_mtu,
@@ -3742,5 +3724,4 @@ POST(ioctl)
case SIOCGIFBRDADDR: /* get broadcast PA address */
case SIOCGIFNETMASK: /* get network PA mask */
- if (res == 0)
VG_TRACK( post_mem_write,
(UInt)&((struct ifreq *)arg3)->ifr_addr,
@@ -3748,5 +3729,4 @@ POST(ioctl)
break;
case SIOCGIFMETRIC: /* get metric */
- if (res == 0)
VG_TRACK( post_mem_write,
(UInt)&((struct ifreq *)arg3)->ifr_metric,
@@ -3754,5 +3734,4 @@ POST(ioctl)
break;
case SIOCGIFMAP: /* Get device parameters */
- if (res == 0)
VG_TRACK( post_mem_write,
(UInt)&((struct ifreq *)arg3)->ifr_map,
@@ -3761,5 +3740,4 @@ POST(ioctl)
break;
case SIOCGIFTXQLEN: /* Get the tx queue length */
- if (res == 0)
VG_TRACK( post_mem_write,
(UInt)&((struct ifreq *)arg3)->ifr_qlen,
@@ -3767,5 +3745,4 @@ POST(ioctl)
break;
case SIOCGIFNAME: /* get iface name */
- if (res == 0)
VG_TRACK( post_mem_write,
(UInt)&((struct ifreq *)arg3)->ifr_name,
@@ -3774,5 +3751,4 @@ POST(ioctl)
#ifdef HAVE_LINUX_MII_H
case SIOCGMIIPHY: /* get hardware entry */
- if (res == 0)
VG_TRACK( post_mem_write,
(UInt)&((struct mii_ioctl_data *)&((struct ifreq *)arg3)->ifr_data)->phy_id,
@@ -3780,5 +3756,4 @@ POST(ioctl)
break;
case SIOCGMIIREG: /* get hardware entry registers */
- if (res == 0)
VG_TRACK( post_mem_write,
(UInt)&((struct mii_ioctl_data *)&((struct ifreq *)arg3)->ifr_data)->val_out,
@@ -3802,5 +3777,4 @@ POST(ioctl)
break;
case SIOCGSTAMP:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(struct timeval));
break;
@@ -3810,10 +3784,8 @@ POST(ioctl)
indicated by the third argument of ioctl(2). */
case SIOCOUTQ:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(int));
break;
case SIOCGRARP: /* get RARP table entry */
case SIOCGARP: /* get ARP table entry */
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(struct arpreq));
break;
@@ -3870,5 +3842,4 @@ POST(ioctl)
case (SOUND_PCM_READ_BITS|0x40000000): /* what the fuck ? */
case SOUND_PCM_READ_FILTER:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(int));
break;
@@ -3895,5 +3866,4 @@ POST(ioctl)
case SNDCTL_DSP_GETOSPACE:
case SNDCTL_DSP_GETISPACE:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(audio_buf_info));
break;
@@ -3920,5 +3890,4 @@ POST(ioctl)
case RTC_RD_TIME:
case RTC_ALM_READ:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(struct rtc_time));
break;
@@ -3926,5 +3895,4 @@ POST(ioctl)
break;
case RTC_IRQP_READ:
- if(res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(unsigned long));
break;
@@ -3933,5 +3901,4 @@ POST(ioctl)
# ifdef BLKGETSIZE
case BLKGETSIZE:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(unsigned long));
break;
@@ -3940,5 +3907,4 @@ POST(ioctl)
/* Hard disks */
case HDIO_GET_IDENTITY: /* 0x030d */
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(struct hd_driveid));
break;
@@ -3946,13 +3912,10 @@ POST(ioctl)
/* CD ROM stuff (??) */
case CDROMSUBCHNL:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(struct cdrom_subchnl));
break;
case CDROMREADTOCHDR:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(struct cdrom_tochdr));
break;
case CDROMREADTOCENTRY:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(struct cdrom_tochdr));
break;
@@ -3980,9 +3943,7 @@ POST(ioctl)
case FIGETBSZ:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(unsigned long));
break;
case FIBMAP:
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(unsigned long));
break;
@@ -3990,9 +3951,7 @@ POST(ioctl)
#ifdef HAVE_LINUX_FB_H
case FBIOGET_VSCREENINFO: //0x4600
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(struct fb_var_screeninfo));
break;
case FBIOGET_FSCREENINFO: //0x4602
- if (res == 0)
VG_TRACK( post_mem_write,arg3, sizeof(struct fb_fix_screeninfo));
break;
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 15:11:53
|
CVS commit by nethercote:
Arch-abstraction:
- abstract out some direct naming of registers
M +1 -2 toolfuncs.def 1.4
M +6 -6 vg_memory.c 1.69
M +2 -2 vg_scheduler.c 1.182
--- valgrind/coregrind/toolfuncs.def #1.3:1.4
@@ -29,6 +29,5 @@
## Finish up, print out any results, etc. `exitcode' is program's exit
## code. The shadow (if the `shadow_regs' need is set) can be found with
-## VG_(get_shadow_archreg)(R_EBX), since %ebx holds the argument to the
-## exit() syscall.
+## VG_(get_exit_status_shadow)().
void, fini, Int exitcode
--- valgrind/coregrind/vg_memory.c #1.68:1.69
@@ -678,8 +678,8 @@ Segment *VG_(next_segment)(Segment *s)
isn't used in preference */
REGPARM(1)
-void VG_(unknown_esp_update)(Addr new_ESP)
+void VG_(unknown_esp_update)(Addr new_SP)
{
- Addr old_ESP = VG_(get_archreg)(R_ESP);
- Int delta = (Int)new_ESP - (Int)old_ESP;
+ Addr old_SP = VG_(get_archreg)(R_STACK_PTR);
+ Int delta = (Int)new_SP - (Int)old_SP;
if (delta < -(VG_HUGE_DELTA) || VG_HUGE_DELTA < delta) {
@@ -695,10 +695,10 @@ void VG_(unknown_esp_update)(Addr new_ES
if (VG_(clo_verbosity) > 1)
VG_(message)(Vg_UserMsg, "Warning: client switching stacks? "
- "%%esp: %p --> %p", old_ESP, new_ESP);
+ "%%esp: %p --> %p", old_SP, new_SP);
} else if (delta < 0) {
- VG_TRACK( new_mem_stack, new_ESP, -delta );
+ VG_TRACK( new_mem_stack, new_SP, -delta );
} else if (delta > 0) {
- VG_TRACK( die_mem_stack, old_ESP, delta );
+ VG_TRACK( die_mem_stack, old_SP, delta );
}
}
--- valgrind/coregrind/vg_scheduler.c #1.181:1.182
@@ -2800,10 +2800,10 @@ void do__get_stack_info ( ThreadId tid,
void VG_(set_return_from_syscall_shadow) ( ThreadId tid, UInt ret_shadow )
{
- VG_(set_thread_shadow_archreg)(tid, R_EAX, ret_shadow);
+ VG_(set_thread_shadow_archreg)(tid, R_SYSCALL_RET, ret_shadow);
}
UInt VG_(get_exit_status_shadow) ( void )
{
- return VG_(get_shadow_archreg)(R_EBX);
+ return VG_(get_shadow_archreg)(R_SYSCALL_ARG1);
}
|
|
From: Tom H. <th...@cy...> - 2004-09-11 15:07:21
|
CVS commit by thughes:
Add system call wrappers for some CD related ioctls. Based on a
patch from Peter Jones <pj...@re...>.
CCMAIL: 892...@bu...
M +47 -0 vg_syscalls.c 1.140
--- valgrind/coregrind/vg_syscalls.c #1.139:1.140
@@ -2997,4 +2997,12 @@ PRE(ioctl)
arg3, sizeof(int) );
break;
+ case SG_EMULATED_HOST: /* 0x2203 */
+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SG_EMULATED_HOST)",
+ arg3, sizeof(int) );
+ break;
+ case SG_GET_SG_TABLESIZE: /* 0x227f */
+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SG_GET_SG_TABLESIZE)",
+ arg3, sizeof(int) );
+ break;
# endif
@@ -3386,4 +3394,23 @@ PRE(ioctl)
sizeof(struct cdrom_tocentry));
break;
+ case CDROMMULTISESSION: /* 0x5310 */
+ SYSCALL_TRACK( pre_mem_write,tid, "ioctl(CDROMMULTISESSION)", arg3,
+ sizeof(struct cdrom_multisession));
+ break;
+ case CDROMVOLREAD: /* 0x5313 */
+ SYSCALL_TRACK( pre_mem_write,tid, "ioctl(CDROMVOLREAD)", arg3,
+ sizeof(struct cdrom_volctrl));
+ break;
+ case CDROMREADAUDIO: /* 0x530e */
+ SYSCALL_TRACK( pre_mem_read,tid, "ioctl(CDROMREADAUDIO)", arg3,
+ sizeof (struct cdrom_read_audio));
+ if ( arg3 ) {
+ /* ToDo: don't do any of the following if the structure is invalid */
+ struct cdrom_read_audio *cra = (struct cdrom_read_audio *) arg3;
+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(CDROMREADAUDIO).buf",
+ (Addr)(cra->buf),
+ (UInt)(cra->nframes * CD_FRAMESIZE_RAW));
+ }
+ break;
case CDROMPLAYMSF:
SYSCALL_TRACK( pre_mem_read,tid, "ioctl(CDROMPLAYMSF)", arg3,
@@ -3663,4 +3690,10 @@ POST(ioctl)
case SG_GET_VERSION_NUM:
break;
+ case SG_EMULATED_HOST:
+ VG_TRACK( post_mem_write,arg3, sizeof(int));
+ break;
+ case SG_GET_SG_TABLESIZE:
+ VG_TRACK( post_mem_write,arg3, sizeof(int));
+ break;
# endif
@@ -3924,4 +3957,18 @@ POST(ioctl)
VG_TRACK( post_mem_write,arg3, sizeof(struct cdrom_tochdr));
break;
+ case CDROMMULTISESSION:
+ VG_TRACK( post_mem_write,arg3, sizeof(struct cdrom_multisession));
+ break;
+ case CDROMVOLREAD:
+ VG_TRACK( post_mem_write,arg3, sizeof(struct cdrom_volctrl));
+ break;
+ case CDROMREADAUDIO:
+ {
+ struct cdrom_read_audio *cra = (struct cdrom_read_audio *) arg3;
+ VG_TRACK( post_mem_write, (Addr)(cra->buf),
+ (UInt)(cra->nframes * CD_FRAMESIZE_RAW));
+ break;
+ }
+
case CDROMPLAYMSF:
break;
|
|
From: Tom H. <th...@cy...> - 2004-09-11 14:37:10
|
CVS commit by thughes:
Add system call wrappers for the TIOCMBIS/TIOCMBIC/TIOMSET ioctls. Based
on a patch from Tobias Blomberg <bl...@lu...>.
CCMAIL: 888...@bu...
M +15 -0 vg_syscalls.c 1.139
--- valgrind/coregrind/vg_syscalls.c #1.138:1.139
@@ -2903,4 +2903,16 @@ PRE(ioctl)
sizeof(struct winsize) );
break;
+ case TIOCMBIS:
+ SYSCALL_TRACK( pre_mem_read, tid, "ioctl(TIOCMBIS)", arg3,
+ sizeof(unsigned int) );
+ break;
+ case TIOCMBIC:
+ SYSCALL_TRACK( pre_mem_read, tid, "ioctl(TIOCMBIC)", arg3,
+ sizeof(unsigned int) );
+ break;
+ case TIOCMSET:
+ SYSCALL_TRACK( pre_mem_read, tid, "ioctl(TIOCMSET)", arg3,
+ sizeof(unsigned int) );
+ break;
case TIOCLINUX:
SYSCALL_TRACK( pre_mem_read, tid, "ioctl(TIOCLINUX)", arg3,
@@ -3586,4 +3598,7 @@ POST(ioctl)
break;
case TIOCSWINSZ:
+ case TIOCMBIS:
+ case TIOCMBIC:
+ case TIOCMSET:
break;
case TIOCLINUX:
|
|
From: Tom H. <th...@cy...> - 2004-09-11 14:29:28
|
CVS commit by thughes:
Add system call wrappers for sched_{get,set}affinity. Based on patch
from Daryll Strauss <da...@da...>.
CCMAIL: 891...@bu...
M +21 -0 vg_syscalls.c 1.138
--- valgrind/coregrind/vg_syscalls.c #1.137:1.138
@@ -5392,4 +5392,23 @@ POST(futex)
}
+PRE(sched_setaffinity)
+{
+ /* int sched_setaffinity(pid_t pid, unsigned int len, unsigned long *mask) */
+ MAYBE_PRINTF("sched_setaffinity ( %d, %d, %p )\n", arg1, arg2, arg3);
+ SYSCALL_TRACK(pre_mem_read, tid, "sched_setaffinity(mask)", arg3, arg2);
+}
+
+PRE(sched_getaffinity)
+{
+ /* int sched_setaffinity(pid_t pid, unsigned int len, unsigned long *mask) */
+ MAYBE_PRINTF("sched_getaffinity ( %d, %d, %p )\n", arg1, arg2, arg3);
+ SYSCALL_TRACK(pre_mem_write, tid, "sched_getaffinity(mask)", arg3, arg2);
+}
+
+POST(sched_getaffinity)
+{
+ VG_TRACK(post_mem_write, arg3, arg2);
+}
+
PRE(acct)
{
@@ -6138,4 +6157,6 @@ static const struct sys_info sys_info[]
SYSBA(mmap2, 0),
SYSBA(futex, MayBlock),
+ SYSB_(sched_setaffinity, 0),
+ SYSBA(sched_getaffinity, 0),
SYSB_(acct, 0),
|
|
From: Tom H. <th...@cy...> - 2004-09-11 14:19:33
|
CVS commit by thughes:
Make the virtualise setrlimit(RLIMIT_DATA) return EPERM when an attempt
is made to raise either the soft or hard limit above the current hard
limit rather than just allowing it.
M +8 -2 vg_syscalls.c 1.137
--- valgrind/coregrind/vg_syscalls.c #1.136:1.137
@@ -4694,7 +4694,13 @@ PRE(setrlimit)
}
else if (arg1 == VKI_RLIMIT_DATA) {
+ if (((vki_rlimit *)arg2)->rlim_cur > ((vki_rlimit *)arg2)->rlim_max ||
+ ((vki_rlimit *)arg2)->rlim_max > ((vki_rlimit *)arg2)->rlim_max) {
+ res = -VKI_EPERM;
+ }
+ else {
VG_(client_rlimit_data) = *(vki_rlimit *)arg2;
res = 0;
}
+ }
else if (arg1 == VKI_RLIMIT_STACK && tid == 1) {
if (((vki_rlimit *)arg2)->rlim_cur > ((vki_rlimit *)arg2)->rlim_max ||
|
|
From: Tom H. <th...@cy...> - 2004-09-11 14:17:10
|
CVS commit by thughes:
Virtualise the stack rlimit for the main thread and make valgrind enforce
that limit when growing the stack. Also add a message when the stack in any
thread overflows.
CCMAIL: 738...@bu...
M +1 -0 core.h 1.23
M +5 -1 vg_main.c 1.211
M +2 -2 vg_scheduler.c 1.181
M +10 -1 vg_signals.c 1.86
M +15 -0 vg_syscalls.c 1.136
--- valgrind/coregrind/core.h #1.22:1.23
@@ -1244,4 +1244,5 @@ extern Addr VG_(valgrind_last); // Nb: l
extern vki_rlimit VG_(client_rlimit_data); /* client's original rlimit data */
+extern vki_rlimit VG_(client_rlimit_stack); /* client's original rlimit stack */
/* client executable file descriptor */
--- valgrind/coregrind/vg_main.c #1.210:1.211
@@ -114,4 +114,5 @@ Addr VG_(valgrind_last);
vki_rlimit VG_(client_rlimit_data);
+vki_rlimit VG_(client_rlimit_stack);
/* This is set early to indicate whether this CPU has the
@@ -2498,4 +2499,7 @@ int main(int argc, char **argv)
VG_(setrlimit)(VKI_RLIMIT_DATA, &zero);
+ // Get the current process stack rlimit.
+ VG_(getrlimit)(VKI_RLIMIT_STACK, &VG_(client_rlimit_stack));
+
//--------------------------------------------------------------
// Check we were launched by stage1
--- valgrind/coregrind/vg_scheduler.c #1.180:1.181
@@ -429,5 +429,5 @@ void VG_(scheduler_init) ( void )
= VG_(clstk_end) - 4;
VG_(threads)[tid_main].stack_base = VG_(clstk_base);
- VG_(threads)[tid_main].stack_size = VG_(clstk_end) - VG_(clstk_base);
+ VG_(threads)[tid_main].stack_size = VG_(client_rlimit_stack).rlim_cur;
/* So now ... */
--- valgrind/coregrind/vg_signals.c #1.85:1.86
@@ -2110,5 +2110,6 @@ void vg_sync_signalhandler ( Int sigNo,
*/
Addr base = PGROUNDDN(esp);
- if ((void*)-1 != VG_(mmap)((Char *)base, seg->addr - base,
+ if (seg->len + (seg->addr - base) <= VG_(threads)[tid].stack_size &&
+ (void*)-1 != VG_(mmap)((Char *)base, seg->addr - base,
VKI_PROT_READ|VKI_PROT_WRITE|VKI_PROT_EXEC,
VKI_MAP_PRIVATE|VKI_MAP_FIXED|VKI_MAP_ANONYMOUS|VKI_MAP_CLIENT,
@@ -2139,4 +2140,12 @@ void vg_sync_signalhandler ( Int sigNo,
}
}
+
+ if (info->si_code == 1 && /* SEGV_MAPERR */
+ seg != NULL &&
+ fault >= esp &&
+ fault < seg->addr &&
+ (seg->flags & SF_STACK)) {
+ VG_(message)(Vg_UserMsg, "Stack overflow in thread %d", tid);
+ }
}
--- valgrind/coregrind/vg_syscalls.c #1.135:1.136
@@ -2347,4 +2347,8 @@ POST(getrlimit)
*((vki_rlimit *)arg2) = VG_(client_rlimit_data);
break;
+
+ case VKI_RLIMIT_STACK:
+ *((vki_rlimit *)arg2) = VG_(client_rlimit_stack);
+ break;
}
}
@@ -4693,4 +4697,15 @@ PRE(setrlimit)
res = 0;
}
+ else if (arg1 == VKI_RLIMIT_STACK && tid == 1) {
+ if (((vki_rlimit *)arg2)->rlim_cur > ((vki_rlimit *)arg2)->rlim_max ||
+ ((vki_rlimit *)arg2)->rlim_max > ((vki_rlimit *)arg2)->rlim_max) {
+ res = -VKI_EPERM;
+ }
+ else {
+ VG_(threads)[tid].stack_size = ((vki_rlimit *)arg2)->rlim_cur;
+ VG_(client_rlimit_stack) = *(vki_rlimit *)arg2;
+ res = 0;
+ }
+ }
}
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 13:34:13
|
CVS commit by nethercote:
Arch-abstraction:
- abstractify various uses of the stack pointer
M +17 -17 vg_signals.c 1.85
--- valgrind/coregrind/vg_signals.c #1.84:1.85
@@ -465,13 +465,12 @@ static void handle_SCSS_change ( Bool fo
/* True if we are on the alternate signal stack. */
-static Int on_sig_stack ( ThreadId tid, Addr m_esp )
+static Int on_sig_stack ( ThreadId tid, Addr m_SP )
{
ThreadState *tst = VG_(get_ThreadState)(tid);
- return (m_esp - (Addr)tst->altstack.ss_sp
- < tst->altstack.ss_size);
+ return (m_SP - (Addr)tst->altstack.ss_sp < tst->altstack.ss_size);
}
-static Int sas_ss_flags ( ThreadId tid, Addr m_esp )
+static Int sas_ss_flags ( ThreadId tid, Addr m_SP )
{
ThreadState *tst = VG_(get_ThreadState)(tid);
@@ -479,5 +478,5 @@ static Int sas_ss_flags ( ThreadId tid,
return (tst->altstack.ss_size == 0
? VKI_SS_DISABLE
- : on_sig_stack(tid, m_esp) ? VKI_SS_ONSTACK : 0);
+ : on_sig_stack(tid, m_SP) ? VKI_SS_ONSTACK : 0);
}
@@ -487,25 +486,25 @@ void VG_(do__NR_sigaltstack) ( ThreadId
vki_kstack_t* ss;
vki_kstack_t* oss;
- Addr m_esp;
+ Addr m_SP;
vg_assert(VG_(is_valid_tid)(tid));
- ss = (vki_kstack_t*)(PLATFORM_SYSCALL_ARG1(VG_(threads)[tid].arch));
- oss = (vki_kstack_t*)(PLATFORM_SYSCALL_ARG2(VG_(threads)[tid].arch));
- m_esp = VG_(threads)[tid].arch.m_esp;
+ ss = (vki_kstack_t*)PLATFORM_SYSCALL_ARG1(VG_(threads)[tid].arch);
+ oss = (vki_kstack_t*)PLATFORM_SYSCALL_ARG2(VG_(threads)[tid].arch);
+ m_SP = ARCH_STACK_PTR(VG_(threads)[tid].arch);
if (VG_(clo_trace_signals))
VG_(message)(Vg_DebugExtraMsg,
"__NR_sigaltstack: tid %d, "
- "ss 0x%x, oss 0x%x (current %%esp %p)",
- tid, (UInt)ss, (UInt)oss, (UInt)m_esp );
+ "ss %p, oss %p (current SP %p)",
+ tid, (void*)ss, (void*)oss, (void*)m_SP );
if (oss != NULL) {
oss->ss_sp = VG_(threads)[tid].altstack.ss_sp;
oss->ss_size = VG_(threads)[tid].altstack.ss_size;
- oss->ss_flags = VG_(threads)[tid].altstack.ss_flags | sas_ss_flags(tid, m_esp);
+ oss->ss_flags = VG_(threads)[tid].altstack.ss_flags | sas_ss_flags(tid, m_SP);
}
if (ss != NULL) {
- if (on_sig_stack(tid, VG_(threads)[tid].arch.m_esp)) {
+ if (on_sig_stack(tid, ARCH_STACK_PTR(VG_(threads)[tid].arch))) {
SET_SYSCALL_RETVAL(tid, -VKI_EPERM);
return;
@@ -974,5 +973,5 @@ void vg_push_signal_frame ( ThreadId tid
already using. Logic from get_sigframe in
arch/i386/kernel/signal.c. */
- sas_ss_flags(tid, tst->arch.m_esp) == 0
+ sas_ss_flags(tid, ARCH_STACK_PTR(tst->arch)) == 0
) {
esp_top_of_frame
@@ -987,5 +986,5 @@ void vg_push_signal_frame ( ThreadId tid
} else {
- esp_top_of_frame = tst->arch.m_esp;
+ esp_top_of_frame = ARCH_STACK_PTR(tst->arch);
/* Signal delivery to tools */
@@ -2076,6 +2075,7 @@ void vg_sync_signalhandler ( Int sigNo,
ThreadId tid = VG_(get_current_or_recent_tid)();
Addr fault = (Addr)info->_sifields._sigfault._addr;
- Addr esp = VG_(is_running_thread)(tid) ?
- VG_(baseBlock)[VGOFF_(m_esp)] : VG_(threads)[tid].arch.m_esp;
+ Addr esp = VG_(is_running_thread)(tid)
+ ? VG_(baseBlock)[VGOFF_STACK_PTR]
+ : ARCH_STACK_PTR(VG_(threads)[tid].arch);
Segment *seg;
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 13:17:13
|
CVS commit by nethercote:
Arch-abstraction:
- minor tweaks for handling client requests on PPC
M +11 -11 vg_scheduler.c 1.180
--- valgrind/coregrind/vg_scheduler.c #1.179:1.180
@@ -95,5 +95,5 @@ static Addr __libc_freeres_wrapper;
/* Forwards */
-static void do_client_request ( ThreadId tid );
+static void do_client_request ( ThreadId tid, UInt* args );
static void scheduler_sanity ( void );
static void do_pthread_cond_timedwait_TIMEOUT ( ThreadId tid );
@@ -877,5 +877,6 @@ VgSchedReturnCode do_scheduler ( Int* ex
if (trc == VG_TRC_EBP_JMP_CLIENTREQ) {
- UInt reqno = *(UInt*)(VG_(threads)[tid].arch.m_eax);
+ UInt* args = (UInt*)(ARCH_CLREQ_ARGS(VG_(threads)[tid].arch));
+ UInt reqno = args[0];
/* VG_(printf)("request 0x%x\n", reqno); */
@@ -889,5 +890,5 @@ VgSchedReturnCode do_scheduler ( Int* ex
}
- do_client_request(tid);
+ do_client_request(tid,args);
/* Following the request, we try and continue with the
same thread if still runnable. If not, go back to
@@ -2821,11 +2822,10 @@ void VG_(intercept_libc_freeres_wrapper)
*/
static
-void do_client_request ( ThreadId tid )
+void do_client_request ( ThreadId tid, UInt* arg )
{
- UInt* arg = (UInt*)(VG_(threads)[tid].arch.m_eax);
UInt req_no = arg[0];
if (0)
- VG_(printf)("req no = 0x%x\n", req_no);
+ VG_(printf)("req no = 0x%x, arg = %p\n", req_no, arg);
switch (req_no) {
@@ -3088,5 +3088,5 @@ void do_client_request ( ThreadId tid )
case VG_USERREQ__PRINTF: {
int count =
- VG_(vmessage)( Vg_ClientMsg, (char *)arg[1], (va_list)arg[2] );
+ VG_(vmessage)( Vg_ClientMsg, (char *)arg[1], (void*)arg[2] );
SET_CLREQ_RETVAL( tid, count );
break; }
@@ -3095,5 +3095,5 @@ void do_client_request ( ThreadId tid )
case VG_USERREQ__INTERNAL_PRINTF: {
int count =
- VG_(vmessage)( Vg_UserMsg, (char *)arg[1], (va_list)arg[2] );
+ VG_(vmessage)( Vg_UserMsg, (char *)arg[1], (void*)arg[2] );
SET_CLREQ_RETVAL( tid, count );
break; }
@@ -3102,5 +3102,5 @@ void do_client_request ( ThreadId tid )
ExeContext *e = VG_(get_ExeContext)( tid );
int count =
- VG_(vmessage)( Vg_ClientMsg, (char *)arg[1], (va_list)arg[2] );
+ VG_(vmessage)( Vg_ClientMsg, (char *)arg[1], (void*)arg[2] );
VG_(mini_stack_dump)(e->ips, VG_(clo_backtrace_size));
SET_CLREQ_RETVAL( tid, count );
@@ -3110,5 +3110,5 @@ void do_client_request ( ThreadId tid )
ExeContext *e = VG_(get_ExeContext)( tid );
int count =
- VG_(vmessage)( Vg_UserMsg, (char *)arg[1], (va_list)arg[2] );
+ VG_(vmessage)( Vg_UserMsg, (char *)arg[1], (void*)arg[2] );
VG_(mini_stack_dump)(e->ips, VG_(clo_backtrace_size));
SET_CLREQ_RETVAL( tid, count );
|
|
From: Nicholas N. <nj...@ca...> - 2004-09-11 13:07:00
|
CVS commit by nethercote:
Slightly more informative error msgs for some cl reqs.
M +4 -4 vg_scheduler.c 1.179
--- valgrind/coregrind/vg_scheduler.c #1.178:1.179
@@ -2833,5 +2833,5 @@ void do_client_request ( ThreadId tid )
UInt (*f)(void) = (void*)arg[1];
if (f == NULL)
- VG_(message)(Vg_DebugMsg, "VG_USERREQ__CLIENT_CALL: func=%p\n", f);
+ VG_(message)(Vg_DebugMsg, "VG_USERREQ__CLIENT_CALL0: func=%p\n", f);
else
SET_CLCALL_RETVAL(tid, f ( ), (Addr)f);
@@ -2841,5 +2841,5 @@ void do_client_request ( ThreadId tid )
UInt (*f)(UInt) = (void*)arg[1];
if (f == NULL)
- VG_(message)(Vg_DebugMsg, "VG_USERREQ__CLIENT_CALL: func=%p\n", f);
+ VG_(message)(Vg_DebugMsg, "VG_USERREQ__CLIENT_CALL1: func=%p\n", f);
else
SET_CLCALL_RETVAL(tid, f ( arg[2] ), (Addr)f );
@@ -2849,5 +2849,5 @@ void do_client_request ( ThreadId tid )
UInt (*f)(UInt, UInt) = (void*)arg[1];
if (f == NULL)
- VG_(message)(Vg_DebugMsg, "VG_USERREQ__CLIENT_CALL: func=%p\n", f);
+ VG_(message)(Vg_DebugMsg, "VG_USERREQ__CLIENT_CALL2: func=%p\n", f);
else
SET_CLCALL_RETVAL(tid, f ( arg[2], arg[3] ), (Addr)f );
@@ -2857,5 +2857,5 @@ void do_client_request ( ThreadId tid )
UInt (*f)(UInt, UInt, UInt) = (void*)arg[1];
if (f == NULL)
- VG_(message)(Vg_DebugMsg, "VG_USERREQ__CLIENT_CALL: func=%p\n", f);
+ VG_(message)(Vg_DebugMsg, "VG_USERREQ__CLIENT_CALL3: func=%p\n", f);
else
SET_CLCALL_RETVAL(tid, f ( arg[2], arg[3], arg[4] ), (Addr)f );
|
|
From: Tom H. <th...@cy...> - 2004-09-11 03:07:17
|
Nightly build on standard ( Red Hat 7.2 ) started at 2004-09-11 02:00:03 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow fpu_lazy_eflags: valgrind ./fpu_lazy_eflags fucomip: valgrind ./fucomip gxx304: valgrind ./gxx304 insn_basic: valgrind ./insn_basic insn_cmov: valgrind ./insn_cmov insn_fpu: valgrind ./insn_fpu insn_mmx: valgrind ./insn_mmx insn_mmxext: valgrind ./insn_mmxext insn_sse: valgrind ./insn_sse int: valgrind ./int map_unmap: valgrind ./map_unmap mq: valgrind ./mq mremap: valgrind ./mremap munmap_exe: valgrind ./munmap_exe pth_blockedsig: valgrind ./pth_blockedsig pushpopseg: valgrind ./pushpopseg rcl_assert: valgrind ./rcl_assert rcrl: valgrind ./rcrl Could not read `rcrl.stderr.exp' make: *** [regtest] Error 2 |
|
From: <js...@ac...> - 2004-09-11 02:55:19
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2004-09-11 03:50:00 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow sem: valgrind ./sem semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 174 tests, 4 stderr failures, 0 stdout failures ================= corecheck/tests/as_mmap (stderr) corecheck/tests/fdleak_fcntl (stderr) memcheck/tests/writev (stderr) memcheck/tests/zeropage (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <to...@co...> - 2004-09-11 02:25:13
|
Nightly build on dunsmere ( Fedora Core 2 ) started at 2004-09-11 03:20:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 179 tests, 8 stderr failures, 1 stdout failure ================= corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_socketpair (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/writev (stderr) none/tests/exec-sigmask (stdout) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-09-11 02:19:47
|
Nightly build on audi ( Red Hat 9 ) started at 2004-09-11 03:15:05 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 179 tests, 8 stderr failures, 0 stdout failures ================= corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_socketpair (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/writev (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-09-11 02:13:30
|
Nightly build on ginetta ( Red Hat 8.0 ) started at 2004-09-11 03:10:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow seg_override: valgrind ./seg_override sem: valgrind ./sem semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 179 tests, 3 stderr failures, 0 stdout failures ================= helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) memcheck/tests/writev (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-09-11 02:08:28
|
Nightly build on alvis ( Red Hat 7.3 ) started at 2004-09-11 03:05:01 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow -- Finished tests in none/tests ---------------------------------------- == 179 tests, 14 stderr failures, 1 stdout failure ================= addrcheck/tests/toobig-allocs (stderr) helgrind/tests/deadlock (stderr) helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) memcheck/tests/badjump (stderr) memcheck/tests/brk (stderr) memcheck/tests/brk2 (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/mismatches (stderr) memcheck/tests/new_nothrow (stderr) memcheck/tests/new_override (stderr) memcheck/tests/toobig-allocs (stderr) memcheck/tests/writev (stderr) none/tests/coolo_sigaction (stderr) none/tests/gxx304 (stderr) make: *** [regtest] Error 1 |