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
(23) |
2
(40) |
3
(17) |
4
(10) |
|
5
(14) |
6
(41) |
7
(26) |
8
(23) |
9
(15) |
10
(25) |
11
(14) |
|
12
(23) |
13
(11) |
14
(18) |
15
(21) |
16
(18) |
17
(8) |
18
(14) |
|
19
(16) |
20
(15) |
21
(12) |
22
(11) |
23
(8) |
24
(11) |
25
(12) |
|
26
(9) |
27
(17) |
28
(31) |
29
(16) |
30
(10) |
31
(17) |
|
|
From: Ashley P. <as...@qu...> - 2006-03-28 14:54:51
|
On Tue, 2006-03-28 at 10:52 +1100, Nicholas Nethercote wrote: > On Mon, 27 Mar 2006, Ashley Pittman wrote: > > >> I just merged in the COMPVBITS branch. Hopefully things will keep working, > >> but let me know if you have any problems with Memcheck as a result. > > > > Thank you. This makes a big difference to the performance I'm seeing, > > between this and r5774 last week I'm now seeing a factor of 10 speedup > > in many cases. > > Whoa! That's great :) Do you know how much of the improvement is from > r5774? Because I wouldn't expect the COMPVBITS changes to improve > performance by more than a factor of 1.5 or so. I imagine the spinning > change would have much more of an impact for your applications. I'm not sure where it all came from, I already had r5774 in my tree before it was committed which probably made most of the difference, when I updated yesterday I got just over a months worth of updates less r5774. memcheck is now in the same ballpark as --tool=none which it never has been before. Ashley, |
|
From: Tom H. <to...@co...> - 2006-03-28 13:17:51
|
In message <442...@si...>
Benjamin Collar <ben...@si...> wrote:
> Thanks Tom, I will give that a try.
>
> Currently, though, the crash comes from the fact that syscall 14
> (mknod) is not implemented :(
The message you quoted said syscall 72 so that is what I implemented...
I was a bit surprised as glibc will normally use sys_rt_sigsuspend
in preference to sys_sigsuspend.
Syscall 14 is easy - just uncomment it in syswrap-ppc32-linux.c and
it should work with the generic handler that already exists.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: Benjamin C. <ben...@si...> - 2006-03-28 13:11:55
|
Thanks Tom, I will give that a try.
Currently, though, the crash comes from the fact that syscall 14 (mknod)
is not implemented :(
Ben
Tom Hughes wrote:
> In message <442...@si...>
> Benjamin Collar <ben...@si...> wrote:
>
>
>>I know this is a bit of an old mail, but I'm using MV CGE 3.1 and 4.0
>>for powerpc's 440 and 970. Cross compiling valgrind is certainly
>>possible. I'm building on a pentium4 and running on the two different
>>PPC's. (but then after a bit I get a crash, doh! anyway...)
>
>
> Try the attached patch - it is against the current SVN revision and
> implements sigsuspend for x86 and ppc32. It is completely untested on
> both platforms - I don't have a ppc box to try it on anyway.
>
> Tom
>
>
>
> ------------------------------------------------------------------------
>
> Index: coregrind/m_syswrap/syswrap-generic.c
> ===================================================================
> --- coregrind/m_syswrap/syswrap-generic.c (revision 5796)
> +++ coregrind/m_syswrap/syswrap-generic.c (working copy)
> @@ -5290,24 +5290,6 @@
> PRE_REG_READ0(long, "pause");
> }
>
> -//zz // XXX: x86-specific
> -//zz PRE(sys_sigsuspend, SfMayBlock)
> -//zz {
> -//zz /* The C library interface to sigsuspend just takes a pointer to
> -//zz a signal mask but this system call has three arguments - the first
> -//zz two don't appear to be used by the kernel and are always passed as
> -//zz zero by glibc and the third is the first word of the signal mask
> -//zz so only 32 signals are supported.
> -//zz
> -//zz In fact glibc normally uses rt_sigsuspend if it is available as
> -//zz that takes a pointer to the signal mask so supports more signals.
> -//zz */
> -//zz PRINT("sys_sigsuspend ( %d, %d, %d )", ARG1,ARG2,ARG3 );
> -//zz PRE_REG_READ3(int, "sigsuspend",
> -//zz int, history0, int, history1,
> -//zz vki_old_sigset_t, mask);
> -//zz }
> -
> // XXX: x86-specific
> PRE(sys_sigaltstack)
> {
> Index: coregrind/m_syswrap/priv_syswrap-generic.h
> ===================================================================
> --- coregrind/m_syswrap/priv_syswrap-generic.h (revision 5796)
> +++ coregrind/m_syswrap/priv_syswrap-generic.h (working copy)
> @@ -170,7 +170,6 @@
>
> // For the remainder, not really sure yet
> DECL_TEMPLATE(generic, sys_ptrace); // (x86?) (almost-P)
> -DECL_TEMPLATE(generic, sys_sigsuspend); // POSIX, but L (proto varies across archs)
> DECL_TEMPLATE(generic, sys_setrlimit); // SVr4, 4.3BSD
> DECL_TEMPLATE(generic, sys_ioctl); // x86? (various)
> DECL_TEMPLATE(generic, sys_old_getrlimit); // SVr4, 4.3BSD L?
> Index: coregrind/m_syswrap/syswrap-x86-linux.c
> ===================================================================
> --- coregrind/m_syswrap/syswrap-x86-linux.c (revision 5796)
> +++ coregrind/m_syswrap/syswrap-x86-linux.c (working copy)
> @@ -772,6 +772,7 @@
> DECL_TEMPLATE(x86_linux, sys_get_thread_area);
> DECL_TEMPLATE(x86_linux, sys_ptrace);
> DECL_TEMPLATE(x86_linux, sys_sigaction);
> +DECL_TEMPLATE(x86_linux, sys_sigsuspend);
> DECL_TEMPLATE(x86_linux, old_select);
> DECL_TEMPLATE(x86_linux, sys_vm86old);
> DECL_TEMPLATE(x86_linux, sys_vm86);
> @@ -1694,6 +1695,24 @@
> POST_MEM_WRITE( ARG3, sizeof(struct vki_old_sigaction));
> }
>
> +PRE(sys_sigsuspend)
> +{
> + /* The C library interface to sigsuspend just takes a pointer to
> + a signal mask but this system call has three arguments - the first
> + two don't appear to be used by the kernel and are always passed as
> + zero by glibc and the third is the first word of the signal mask
> + so only 32 signals are supported.
> +
> + In fact glibc normally uses rt_sigsuspend if it is available as
> + that takes a pointer to the signal mask so supports more signals.
> + */
> + *flags |= SfMayBlock;
> + PRINT("sys_sigsuspend ( %d, %d, %d )", ARG1,ARG2,ARG3 );
> + PRE_REG_READ3(int, "sigsuspend",
> + int, history0, int, history1,
> + vki_old_sigset_t, mask);
> +}
> +
> PRE(sys_vm86old)
> {
> PRINT("sys_vm86old ( %p )", ARG1);
> @@ -1863,7 +1882,7 @@
> //zz
> LINX_(__NR_setreuid, sys_setreuid16), // 70
> LINX_(__NR_setregid, sys_setregid16), // 71
> -//zz GENX_(__NR_sigsuspend, sys_sigsuspend), // 72
> + PLAX_(__NR_sigsuspend, sys_sigsuspend), // 72
> LINXY(__NR_sigpending, sys_sigpending), // 73
> //zz // (__NR_sethostname, sys_sethostname), // 74 */*
> //zz
> Index: coregrind/m_syswrap/syswrap-ppc32-linux.c
> ===================================================================
> --- coregrind/m_syswrap/syswrap-ppc32-linux.c (revision 5796)
> +++ coregrind/m_syswrap/syswrap-ppc32-linux.c (working copy)
> @@ -392,6 +392,7 @@
> DECL_TEMPLATE(ppc32_linux, sys_sigreturn);
> DECL_TEMPLATE(ppc32_linux, sys_rt_sigreturn);
> DECL_TEMPLATE(ppc32_linux, sys_sigaction);
> +DECL_TEMPLATE(ppc32_linux, sys_sigsuspend);
>
> PRE(sys_socketcall)
> {
> @@ -1424,7 +1425,21 @@
> POST_MEM_WRITE( ARG3, sizeof(struct vki_old_sigaction));
> }
>
> +PRE(sys_sigsuspend)
> +{
> + /* The C library interface to sigsuspend just takes a pointer to
> + a signal mask but this system call only takes the first word of
> + the signal mask as an argument so only 32 signals are supported.
> +
> + In fact glibc normally uses rt_sigsuspend if it is available as
> + that takes a pointer to the signal mask so supports more signals.
> + */
> + *flags |= SfMayBlock;
> + PRINT("sys_sigsuspend ( %d )", ARG1 );
> + PRE_REG_READ1(int, "sigsuspend", vki_old_sigset_t, mask);
> +}
>
> +
> #undef PRE
> #undef POST
>
> @@ -1531,7 +1546,7 @@
> //..
> //.. LINX_(__NR_setreuid, sys_setreuid16), // 70
> //.. LINX_(__NR_setregid, sys_setregid16), // 71
> -//.. GENX_(__NR_sigsuspend, sys_sigsuspend), // 72
> + PLAX_(__NR_sigsuspend, sys_sigsuspend), // 72
> //.. LINXY(__NR_sigpending, sys_sigpending), // 73
> //.. // (__NR_sethostname, sys_sethostname), // 74 */*
> //..
|
|
From: Tom H. <to...@co...> - 2006-03-28 13:04:05
|
In message <442...@si...>
Benjamin Collar <ben...@si...> wrote:
> I know this is a bit of an old mail, but I'm using MV CGE 3.1 and 4.0
> for powerpc's 440 and 970. Cross compiling valgrind is certainly
> possible. I'm building on a pentium4 and running on the two different
> PPC's. (but then after a bit I get a crash, doh! anyway...)
Try the attached patch - it is against the current SVN revision and
implements sigsuspend for x86 and ppc32. It is completely untested on
both platforms - I don't have a ppc box to try it on anyway.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: <sv...@va...> - 2006-03-28 12:51:19
|
Author: njn
Date: 2006-03-28 13:51:02 +0100 (Tue, 28 Mar 2006)
New Revision: 5797
Log:
Change to some better function names.
Modified:
trunk/memcheck/mc_main.c
Modified: trunk/memcheck/mc_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mc_main.c 2006-03-28 12:35:08 UTC (rev 5796)
+++ trunk/memcheck/mc_main.c 2006-03-28 12:51:02 UTC (rev 5797)
@@ -459,17 +459,17 @@
: get_secmap_high_ptr(a));
}
=20
-static INLINE SecMap* get_secmap_readable_low ( Addr a )
+static INLINE SecMap* get_secmap_for_reading_low ( Addr a )
{
return *get_secmap_low_ptr(a);
}
=20
-static INLINE SecMap* get_secmap_readable_high ( Addr a )
+static INLINE SecMap* get_secmap_for_reading_high ( Addr a )
{
return *get_secmap_high_ptr(a);
}
=20
-static INLINE SecMap* get_secmap_writable_low(Addr a)
+static INLINE SecMap* get_secmap_for_writing_low(Addr a)
{
SecMap** p =3D get_secmap_low_ptr(a);
if (EXPECTED_NOT_TAKEN(is_distinguished_sm(*p)))
@@ -477,7 +477,7 @@
return *p;
}
=20
-static INLINE SecMap* get_secmap_writable_high ( Addr a )
+static INLINE SecMap* get_secmap_for_writing_high ( Addr a )
{
SecMap** p =3D get_secmap_high_ptr(a);
if (EXPECTED_NOT_TAKEN(is_distinguished_sm(*p)))
@@ -490,11 +490,11 @@
secmap may be a distinguished one as the caller will only want to
be able to read it.=20
*/
-static SecMap* get_secmap_readable ( Addr a )
+static SecMap* get_secmap_for_reading ( Addr a )
{
return ( a <=3D MAX_PRIMARY_ADDRESS
- ? get_secmap_readable_low (a)
- : get_secmap_readable_high(a) );
+ ? get_secmap_for_reading_low (a)
+ : get_secmap_for_reading_high(a) );
}
=20
/* Produce the secmap for 'a', either from the primary map or by
@@ -504,11 +504,11 @@
writable copy of it, install it, and return the copy instead. (COW
semantics).
*/
-static SecMap* get_secmap_writable ( Addr a )
+static SecMap* get_secmap_for_writing ( Addr a )
{
return ( a <=3D MAX_PRIMARY_ADDRESS
- ? get_secmap_writable_low (a)
- : get_secmap_writable_high(a) );
+ ? get_secmap_for_writing_low (a)
+ : get_secmap_for_writing_high(a) );
}
=20
/* If 'a' has a SecMap, produce it. Else produce NULL. But don't
@@ -518,7 +518,7 @@
static SecMap* maybe_get_secmap_for ( Addr a )
{
if (a <=3D MAX_PRIMARY_ADDRESS) {
- return get_secmap_readable_low(a);
+ return get_secmap_for_reading_low(a);
} else {
AuxMapEnt* am =3D maybe_find_in_auxmap(a);
return am ? am->sm : NULL;
@@ -574,7 +574,7 @@
static INLINE
void set_vabits2 ( Addr a, UChar vabits2 )
{
- SecMap* sm =3D get_secmap_writable(a);
+ SecMap* sm =3D get_secmap_for_writing(a);
UWord sm_off =3D SM_OFF(a);
insert_vabits2_into_vabits8( a, vabits2, &(sm->vabits8[sm_off]) );
}
@@ -582,7 +582,7 @@
static INLINE
UChar get_vabits2 ( Addr a )
{
- SecMap* sm =3D get_secmap_readable(a);
+ SecMap* sm =3D get_secmap_for_reading(a);
UWord sm_off =3D SM_OFF(a);
UChar vabits8 =3D sm->vabits8[sm_off];
return extract_vabits2_from_vabits8(a, vabits8);
@@ -1276,7 +1276,7 @@
return;
}
=20
- sm =3D get_secmap_writable_low(a);
+ sm =3D get_secmap_for_writing_low(a);
sm_off =3D SM_OFF(a);
sm->vabits8[sm_off] =3D VA_BITS8_WRITABLE;
#endif
@@ -1300,7 +1300,7 @@
return;
}
=20
- sm =3D get_secmap_writable_low(a);
+ sm =3D get_secmap_for_writing_low(a);
sm_off =3D SM_OFF(a);
sm->vabits8[sm_off] =3D VA_BITS8_NOACCESS;
#endif
@@ -1325,7 +1325,7 @@
return;
}
=20
- sm =3D get_secmap_writable_low(a);
+ sm =3D get_secmap_for_writing_low(a);
sm_off16 =3D SM_OFF_16(a);
((UShort*)(sm->vabits8))[sm_off16] =3D VA_BITS16_WRITABLE;
#endif
@@ -1349,7 +1349,7 @@
return;
}
=20
- sm =3D get_secmap_writable_low(a);
+ sm =3D get_secmap_for_writing_low(a);
sm_off16 =3D SM_OFF_16(a);
((UShort*)(sm->vabits8))[sm_off16] =3D VA_BITS16_NOACCESS;
#endif
@@ -1806,8 +1806,8 @@
tl_assert(a_lo < a_hi); // paranoia: detect overflow
if (a_hi < MAX_PRIMARY_ADDRESS) {
// Now we know the entire range is within the main primary map.
- SecMap* sm =3D get_secmap_writable_low(a_lo);
- SecMap* sm_hi =3D get_secmap_writable_low(a_hi);
+ SecMap* sm =3D get_secmap_for_writing_low(a_lo);
+ SecMap* sm_hi =3D get_secmap_for_writing_low(a_hi);
/* Now we know that the entire address range falls within a
single secondary map, and that that secondary 'lives' in
the main primary map. */
@@ -1844,8 +1844,8 @@
tl_assert(a_lo < a_hi); // paranoia: detect overflow
if (a_hi < MAX_PRIMARY_ADDRESS) {
// Now we know the entire range is within the main primary map.
- SecMap* sm =3D get_secmap_writable_low(a_lo);
- SecMap* sm_hi =3D get_secmap_writable_low(a_hi);
+ SecMap* sm =3D get_secmap_for_writing_low(a_lo);
+ SecMap* sm_hi =3D get_secmap_for_writing_low(a_hi);
/* Now we know that the entire address range falls within a
single secondary map, and that that secondary 'lives' in
the main primary map. */
@@ -3063,7 +3063,7 @@
return (ULong)mc_LOADVn_slow( a, 64, isBigEndian );
}
=20
- sm =3D get_secmap_readable_low(a);
+ sm =3D get_secmap_for_reading_low(a);
sm_off16 =3D SM_OFF_16(a);
vabits16 =3D ((UShort*)(sm->vabits8))[sm_off16];
=20
@@ -3111,7 +3111,7 @@
return;
}
=20
- sm =3D get_secmap_readable_low(a);
+ sm =3D get_secmap_for_reading_low(a);
sm_off16 =3D SM_OFF_16(a);
vabits16 =3D ((UShort*)(sm->vabits8))[sm_off16];
=20
@@ -3167,7 +3167,7 @@
return (UWord)mc_LOADVn_slow( a, 32, isBigEndian );
}
=20
- sm =3D get_secmap_readable_low(a);
+ sm =3D get_secmap_for_reading_low(a);
sm_off =3D SM_OFF(a);
vabits8 =3D sm->vabits8[sm_off];
=20
@@ -3215,7 +3215,7 @@
return;
}
=20
- sm =3D get_secmap_readable_low(a);
+ sm =3D get_secmap_for_reading_low(a);
sm_off =3D SM_OFF(a);
vabits8 =3D sm->vabits8[sm_off];
=20
@@ -3305,7 +3305,7 @@
return (UWord)mc_LOADVn_slow( a, 16, isBigEndian );
}
=20
- sm =3D get_secmap_readable_low(a);
+ sm =3D get_secmap_for_reading_low(a);
sm_off =3D SM_OFF(a);
vabits8 =3D sm->vabits8[sm_off];
// Handle common case quickly: a is suitably aligned, is mapped, and =
is
@@ -3356,7 +3356,7 @@
return;
}
=20
- sm =3D get_secmap_readable_low(a);
+ sm =3D get_secmap_for_reading_low(a);
sm_off =3D SM_OFF(a);
vabits8 =3D sm->vabits8[sm_off];
if (EXPECTED_TAKEN( !is_distinguished_sm(sm) &&=20
@@ -3414,7 +3414,7 @@
return (UWord)mc_LOADVn_slow( a, 8, False/*irrelevant*/ );
}
=20
- sm =3D get_secmap_readable_low(a);
+ sm =3D get_secmap_for_reading_low(a);
sm_off =3D SM_OFF(a);
vabits8 =3D sm->vabits8[sm_off];
// Convert V bits from compact memory form to expanded register form
@@ -3456,7 +3456,7 @@
return;
}
=20
- sm =3D get_secmap_readable_low(a);
+ sm =3D get_secmap_for_reading_low(a);
sm_off =3D SM_OFF(a);
vabits8 =3D sm->vabits8[sm_off];
if (EXPECTED_TAKEN
|
|
From: <sv...@va...> - 2006-03-28 12:35:26
|
Author: njn
Date: 2006-03-28 13:35:08 +0100 (Tue, 28 Mar 2006)
New Revision: 5796
Log:
Change some uses of bytes to bits for consistency.
Modified:
trunk/memcheck/mc_main.c
Modified: trunk/memcheck/mc_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mc_main.c 2006-03-28 01:02:38 UTC (rev 5795)
+++ trunk/memcheck/mc_main.c 2006-03-28 12:35:08 UTC (rev 5796)
@@ -860,13 +860,14 @@
#ifndef PERF_FAST_LOADV
INLINE
#endif
-ULong mc_LOADVn_slow ( Addr a, SizeT szB, Bool bigendian )
+ULong mc_LOADVn_slow ( Addr a, SizeT nBits, Bool bigendian )
{
/* Make up a 64-bit result V word, which contains the loaded data for
valid addresses and Defined for invalid addresses. Iterate over
the bytes in the word, from the most significant down to the
least. */
ULong vbits64 =3D V_BITS64_UNDEFINED;
+ SizeT szB =3D nBits / 8;
SSizeT i =3D szB-1; // Must be signed
SizeT n_addrs_bad =3D 0;
Addr ai;
@@ -875,11 +876,11 @@
Bool ok;
=20
PROF_EVENT(30, "mc_LOADVn_slow");
- tl_assert(szB =3D=3D 8 || szB =3D=3D 4 || szB =3D=3D 2 || szB =3D=3D =
1);
+ tl_assert(nBits =3D=3D 64 || nBits =3D=3D 32 || nBits =3D=3D 16 || nB=
its =3D=3D 8);
=20
for (i =3D szB-1; i >=3D 0; i--) {
PROF_EVENT(31, "mc_LOADVn_slow(loop)");
- ai =3D a+byte_offset_w(szB,bigendian,i);
+ ai =3D a + byte_offset_w(szB, bigendian, i);
ok =3D get_vbits8(ai, &vbits8);
if (!ok) n_addrs_bad++;
vbits64 <<=3D 8;=20
@@ -915,22 +916,23 @@
#ifndef PERF_FAST_STOREV
INLINE
#endif
-void mc_STOREVn_slow ( Addr a, SizeT szB, ULong vbytes, Bool bigendian )
+void mc_STOREVn_slow ( Addr a, SizeT nBits, ULong vbytes, Bool bigendian=
)
{
+ SizeT szB =3D nBits / 8;
SizeT i, n_addrs_bad =3D 0;
UChar vbits8;
Addr ai;
Bool ok;
=20
PROF_EVENT(35, "mc_STOREVn_slow");
- tl_assert(szB =3D=3D 8 || szB =3D=3D 4 || szB =3D=3D 2 || szB =3D=3D =
1);
+ tl_assert(nBits =3D=3D 64 || nBits =3D=3D 32 || nBits =3D=3D 16 || nB=
its =3D=3D 8);
=20
/* Dump vbytes in memory, iterating from least to most significant
byte. At the same time establish addressibility of the
location. */
for (i =3D 0; i < szB; i++) {
PROF_EVENT(36, "mc_STOREVn_slow(loop)");
- ai =3D a+byte_offset_w(szB,bigendian,i);
+ ai =3D a + byte_offset_w(szB, bigendian, i);
vbits8 =3D vbytes & 0xff;
ok =3D set_vbits8(ai, vbits8);
if (!ok) n_addrs_bad++;
@@ -3037,9 +3039,9 @@
*/
=20
/* If any part of '_a' indicated by the mask is 1, either
- '_a' is not naturally '_sz'-aligned, or it exceeds the range
+ '_a' is not naturally '_sz/8'-aligned, or it exceeds the range
covered by the primary map. */
-#define UNALIGNED_OR_HIGH(_a,_sz) ((_a) & MASK((_sz)))
+#define UNALIGNED_OR_HIGH(_a,_sz) ((_a) & MASK((_sz>>3)))
#define MASK(_sz) ( ~((0x10000-(_sz)) | ((N_PRIMARY_MAP-1) << 16)) )
=20
=20
@@ -3054,11 +3056,11 @@
PROF_EVENT(200, "mc_LOADV64");
=20
#ifndef PERF_FAST_LOADV
- return mc_LOADVn_slow( a, 8, isBigEndian );
+ return mc_LOADVn_slow( a, 64, isBigEndian );
#else
- if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,8) )) {
+ if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,64) )) {
PROF_EVENT(201, "mc_LOADV64-slow1");
- return (ULong)mc_LOADVn_slow( a, 8, isBigEndian );
+ return (ULong)mc_LOADVn_slow( a, 64, isBigEndian );
}
=20
sm =3D get_secmap_readable_low(a);
@@ -3075,7 +3077,7 @@
} else {
/* Slow case: the 8 bytes are not all-readable or all-writable. */
PROF_EVENT(202, "mc_LOADV64-slow2");
- return mc_LOADVn_slow( a, 8, isBigEndian );
+ return mc_LOADVn_slow( a, 64, isBigEndian );
}
#endif
}
@@ -3101,11 +3103,11 @@
#ifndef PERF_FAST_STOREV
// XXX: this slow case seems to be marginally faster than the fast ca=
se!
// Investigate further.
- mc_STOREVn_slow( a, 8, vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 64, vbytes, isBigEndian );
#else
- if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,8) )) {
+ if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,64) )) {
PROF_EVENT(211, "mc_STOREV64-slow1");
- mc_STOREVn_slow( a, 8, vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 64, vbytes, isBigEndian );
return;
}
=20
@@ -3127,12 +3129,12 @@
} else {
/* Slow but general case -- writing partially defined bytes. */
PROF_EVENT(212, "mc_STOREV64-slow2");
- mc_STOREVn_slow( a, 8, vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 64, vbytes, isBigEndian );
}
} else {
/* Slow but general case. */
PROF_EVENT(213, "mc_STOREV64-slow3");
- mc_STOREVn_slow( a, 8, vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 64, vbytes, isBigEndian );
}
#endif
}
@@ -3158,11 +3160,11 @@
PROF_EVENT(220, "mc_LOADV32");
=20
#ifndef PERF_FAST_LOADV
- return (UWord)mc_LOADVn_slow( a, 4, isBigEndian );
+ return (UWord)mc_LOADVn_slow( a, 32, isBigEndian );
#else
- if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,4) )) {
+ if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,32) )) {
PROF_EVENT(221, "mc_LOADV32-slow1");
- return (UWord)mc_LOADVn_slow( a, 4, isBigEndian );
+ return (UWord)mc_LOADVn_slow( a, 32, isBigEndian );
}
=20
sm =3D get_secmap_readable_low(a);
@@ -3181,7 +3183,7 @@
} else {
/* Slow case: the 4 bytes are not all-readable or all-writable. */
PROF_EVENT(222, "mc_LOADV32-slow2");
- return (UWord)mc_LOADVn_slow( a, 4, isBigEndian );
+ return (UWord)mc_LOADVn_slow( a, 32, isBigEndian );
}
#endif
}
@@ -3205,11 +3207,11 @@
PROF_EVENT(230, "mc_STOREV32");
=20
#ifndef PERF_FAST_STOREV
- mc_STOREVn_slow( a, 4, (ULong)vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 32, (ULong)vbytes, isBigEndian );
#else
- if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,4) )) {
+ if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,32) )) {
PROF_EVENT(231, "mc_STOREV32-slow1");
- mc_STOREVn_slow( a, 4, (ULong)vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 32, (ULong)vbytes, isBigEndian );
return;
}
=20
@@ -3230,7 +3232,7 @@
} else {
// not readable/writable, or distinguished and changing state
PROF_EVENT(232, "mc_STOREV32-slow2");
- mc_STOREVn_slow( a, 4, (ULong)vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 32, (ULong)vbytes, isBigEndian );
}
} else if (V_BITS32_UNDEFINED =3D=3D vbytes) {
if (vabits8 =3D=3D (UInt)VA_BITS8_WRITABLE) {
@@ -3240,12 +3242,12 @@
} else {
// not readable/writable, or distinguished and changing state
PROF_EVENT(233, "mc_STOREV32-slow3");
- mc_STOREVn_slow( a, 4, (ULong)vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 32, (ULong)vbytes, isBigEndian );
}
} else {
// Partially defined word
PROF_EVENT(234, "mc_STOREV32-slow4");
- mc_STOREVn_slow( a, 4, (ULong)vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 32, (ULong)vbytes, isBigEndian );
}
//----------------------------------------------------------------------=
-----
#else
@@ -3263,12 +3265,12 @@
} else {
/* Slow but general case -- writing partially defined bytes. */
PROF_EVENT(232, "mc_STOREV32-slow2");
- mc_STOREVn_slow( a, 4, (ULong)vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 32, (ULong)vbytes, isBigEndian );
}
} else {
/* Slow but general case. */
PROF_EVENT(233, "mc_STOREV32-slow3");
- mc_STOREVn_slow( a, 4, (ULong)vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 32, (ULong)vbytes, isBigEndian );
}
#endif
//----------------------------------------------------------------------=
-----
@@ -3296,11 +3298,11 @@
PROF_EVENT(240, "mc_LOADV16");
=20
#ifndef PERF_FAST_LOADV
- return (UWord)mc_LOADVn_slow( a, 2, isBigEndian );
+ return (UWord)mc_LOADVn_slow( a, 16, isBigEndian );
#else
- if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,2) )) {
+ if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,16) )) {
PROF_EVENT(241, "mc_LOADV16-slow1");
- return (UWord)mc_LOADVn_slow( a, 2, isBigEndian );
+ return (UWord)mc_LOADVn_slow( a, 16, isBigEndian );
}
=20
sm =3D get_secmap_readable_low(a);
@@ -3321,7 +3323,7 @@
else {
/* Slow case: the two bytes are not all-readable or all-writabl=
e. */
PROF_EVENT(242, "mc_LOADV16-slow2");
- return (UWord)mc_LOADVn_slow( a, 2, isBigEndian );
+ return (UWord)mc_LOADVn_slow( a, 16, isBigEndian );
}
}
#endif
@@ -3346,11 +3348,11 @@
PROF_EVENT(250, "mc_STOREV16");
=20
#ifndef PERF_FAST_STOREV
- mc_STOREVn_slow( a, 2, (ULong)vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 16, (ULong)vbytes, isBigEndian );
#else
- if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,2) )) {
+ if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,16) )) {
PROF_EVENT(251, "mc_STOREV16-slow1");
- mc_STOREVn_slow( a, 2, (ULong)vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 16, (ULong)vbytes, isBigEndian );
return;
}
=20
@@ -3373,12 +3375,12 @@
} else {
/* Slow but general case -- writing partially defined bytes. */
PROF_EVENT(252, "mc_STOREV16-slow2");
- mc_STOREVn_slow( a, 2, (ULong)vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 16, (ULong)vbytes, isBigEndian );
}
} else {
/* Slow but general case. */
PROF_EVENT(253, "mc_STOREV16-slow3");
- mc_STOREVn_slow( a, 2, (ULong)vbytes, isBigEndian );
+ mc_STOREVn_slow( a, 16, (ULong)vbytes, isBigEndian );
}
#endif
}
@@ -3405,11 +3407,11 @@
PROF_EVENT(260, "mc_LOADV8");
=20
#ifndef PERF_FAST_LOADV
- return (UWord)mc_LOADVn_slow( a, 1, False/*irrelevant*/ );
+ return (UWord)mc_LOADVn_slow( a, 8, False/*irrelevant*/ );
#else
- if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,1) )) {
+ if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,8) )) {
PROF_EVENT(261, "mc_LOADV8-slow1");
- return (UWord)mc_LOADVn_slow( a, 1, False/*irrelevant*/ );
+ return (UWord)mc_LOADVn_slow( a, 8, False/*irrelevant*/ );
}
=20
sm =3D get_secmap_readable_low(a);
@@ -3430,7 +3432,7 @@
else {
/* Slow case: the byte is not all-readable or all-writable. */
PROF_EVENT(262, "mc_LOADV8-slow2");
- return (UWord)mc_LOADVn_slow( a, 1, False/*irrelevant*/ );
+ return (UWord)mc_LOADVn_slow( a, 8, False/*irrelevant*/ );
}
}
#endif
@@ -3446,11 +3448,11 @@
PROF_EVENT(270, "mc_STOREV8");
=20
#ifndef PERF_FAST_STOREV
- mc_STOREVn_slow( a, 1, (ULong)vbyte, False/*irrelevant*/ );
+ mc_STOREVn_slow( a, 8, (ULong)vbyte, False/*irrelevant*/ );
#else
- if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,1) )) {
+ if (EXPECTED_NOT_TAKEN( UNALIGNED_OR_HIGH(a,8) )) {
PROF_EVENT(271, "mc_STOREV8-slow1");
- mc_STOREVn_slow( a, 1, (ULong)vbyte, False/*irrelevant*/ );
+ mc_STOREVn_slow( a, 8, (ULong)vbyte, False/*irrelevant*/ );
return;
}
=20
@@ -3477,12 +3479,12 @@
} else {
/* Slow but general case -- writing partially defined bytes. */
PROF_EVENT(272, "mc_STOREV8-slow2");
- mc_STOREVn_slow( a, 1, (ULong)vbyte, False/*irrelevant*/ );
+ mc_STOREVn_slow( a, 8, (ULong)vbyte, False/*irrelevant*/ );
}
} else {
/* Slow but general case. */
PROF_EVENT(273, "mc_STOREV8-slow3");
- mc_STOREVn_slow( a, 1, (ULong)vbyte, False/*irrelevant*/ );
+ mc_STOREVn_slow( a, 8, (ULong)vbyte, False/*irrelevant*/ );
}
#endif
}
|
|
From: Benjamin C. <ben...@si...> - 2006-03-28 12:21:14
|
Hi I know this is a bit of an old mail, but I'm using MV CGE 3.1 and 4.0 for powerpc's 440 and 970. Cross compiling valgrind is certainly possible. I'm building on a pentium4 and running on the two different PPC's. (but then after a bit I get a crash, doh! anyway...) Ben Bart Van Assche wrote: > Hello John, > > I'm using Valgrind 3.1.0 with MontaVista Linux Professional 3.1 > and it works great. Note: I compiled Valgrind natively -- cross > compiling Valgrind does not work. > > On 3/7/06, John Sensale <joh...@ya...> wrote: > >>Hi, >>I have been trying to run my code under valgrind for memory leaks. Have been >>cross compiling on Red Hat Linux with Monta Vista to cross compile for ppc32 >>target. However I am getting the following error: >>WARNING: unhandled syscallL 72 >>You may be able to write your own handler. >>Read the file README_MISSING_SYSCALL_OR_IOCTL >>Tried to read the above file and implement on my own, but got lost on the >>way. >>Can anyone help? > > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=k&kid0944&bid$1720&dat1642 > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers |
|
From: Tom H. <to...@co...> - 2006-03-28 11:10:26
|
In message <442...@os...>
Aleksander Salwa <A....@os...> wrote:
> I understand that such behaviour is fine for system-allocated stacks -
> right after thread finishes its execution, its stack becomes
> inaccessible. But it is user-allocated stack. I'm allowed to do
> anything with this memory before calling free(), e.g. reuse it for
> something else.
The problem is that it is very hard to handle this - we have to
engage in guesswork to identify the stack for a new thread as it is.
In fact by using malloc rather than mmap to allocate the stack you
may already have defeated valgrind's heuristic for finding the stack
of a new thread - look at do_clone in m_syswrap/syswrap-x86-linux.c
for the logic it uses to try and find the stack.
> I tried to find in Valgrind source the place where client stack is
> marked as innaccesible, but without success. Is it a bug ? Should I
> enter it into Bugzilla ?
Well it probably is a bug, although quite an obscure one, so yes it
is worth entering it in Bugzilla but I'm not sure whether or not it
will be fixable.
I also can't find the place where it is marked as inaccessible, and
the answer is I suspect that there isn't one.
The point is that as the thread executes whenever the stack is popped
valgrind will mark the popped area as inaccessible - only data above
the current value of the stack pointer is considered accessible. So
the memory is gradually marked inaccessible as routines in the thread
return.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: <js...@ac...> - 2006-03-28 11:01:29
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2006-03-28 02:00:01 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 == 196 tests, 12 stderr failures, 5 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sh-mem (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/stack_changes (stdout) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (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 == 194 tests, 11 stderr failures, 5 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/stack_changes (stdout) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Mar 28 02:11:43 2006 --- new.short Tue Mar 28 02:24:09 2006 *************** *** 8,10 **** ! == 194 tests, 11 stderr failures, 5 stdout failures ================= memcheck/tests/leak-cycle (stderr) --- 8,10 ---- ! == 196 tests, 12 stderr failures, 5 stdout failures ================= memcheck/tests/leak-cycle (stderr) *************** *** 14,15 **** --- 14,16 ---- memcheck/tests/pointer-trace (stderr) + memcheck/tests/sh-mem (stderr) memcheck/tests/sigaltstack (stderr) |
|
From: Aleksander S. <A....@os...> - 2006-03-28 10:34:32
|
Hi,
This short, simple and correct (I hope :)) test program fails under
Valgrind:
// #includes ommited to make it shorter...
#define STACK_SIZE 40000
void* thr_func(void* unused)
{
printf("new thread is alive\n");
return NULL;
}
int main()
{
pthread_attr_t attr;
void* stack;
pthread_t new_thread;
pthread_attr_init(&attr);
stack = malloc(STACK_SIZE);
pthread_attr_setstack(&attr, stack, STACK_SIZE);
if(pthread_create(&new_thread, &attr, thr_func, NULL)!=0)
fprintf(stderr, "error while creating thread\n");
pthread_join(new_thread, NULL);
memset(stack, 0xf1, STACK_SIZE);
free(stack);
return 0;
}
Valgrind complains:
==9622== Invalid write of size 1
==9622== at 0x4006149: memset (mac_replace_strmem.c:464)
==9622== by 0x804869D: main (in
/home/A.Salwa/pchelki/user_alloc_stack_problem)
==9622== Address 0x401FED0 is 36,520 bytes inside a block of size
40,000 alloc'd
==9622== at 0x400444E: malloc (vg_replace_malloc.c:149)
==9622== by 0x8048628: main (in
/home/A.Salwa/pchelki/user_alloc_stack_problem)
==9622==
I understand that such behaviour is fine for system-allocated stacks -
right after thread finishes its execution, its stack becomes
inaccessible. But it is user-allocated stack. I'm allowed to do anything
with this memory before calling free(), e.g. reuse it for something else.
Platform info: Linux 2.6.15-1.1830_FC4smp, Valgrind 3.1.1.
I tried to find in Valgrind source the place where client stack is
marked as innaccesible, but without success. Is it a bug ? Should I
enter it into Bugzilla ?
Best regards,
Aleksander Salwa.
|
|
From: Julian S. <js...@ac...> - 2006-03-28 04:07:49
|
> Can you try commenting out PERF_FAST_LOADV and/or PERF_FAST_STOREV to see > if that helps? No change, with both commented out - same outcome. J |
|
From: Nicholas N. <nj...@cs...> - 2006-03-28 03:46:46
|
On Tue, 28 Mar 2006, Julian Seward wrote: > -- NNN: 1 U1 U1 ------------------------ > h = 0 (checking 0..63) 0...32...64...96...128...160...192...224... > -- NNN: 2 U2 U2 ------------------------ > h = 0 (checking 0..62) 0...32...64...96...128...160...192...224... > h = 1 (checking 1..63) 0...32...64...96...128...160...192...224... > -- NNN: 4 U4 U4 ------------------------ > h = 0 (checking 0..60) 0...32...64...96...128...160...192...224... > h = 1 (checking 1..61) 0...32...64...96...128...160...192...224... > h = 2 (checking 2..62) 0...32...64...96...128...160...192...224... > h = 3 (checking 3..63) 0...32...64...96...128...160...192...224... > -- NNN: 4 F4 U4 ------------------------ > h = 0 (checking 0..60) 0... > > FAILURE: STOREVn, offset 0, byte 0 -- is 0xff, should be 0x1 > > Um. Does that mean anything to you? Something went wrong with 4 byte loads and stores of floating point values. Can you try commenting out PERF_FAST_LOADV and/or PERF_FAST_STOREV to see if that helps? Nick |
|
From: Julian S. <js...@ac...> - 2006-03-28 03:31:22
|
> What went wrong, Julian? Can you post the diff? *** sh-mem.stderr.exp Tue Mar 28 04:47:54 2006 --- sh-mem.stderr.out Tue Mar 28 04:53:29 2006 *************** *** 12,33 **** ! h = 0 (checking 0..60) 0...32...64...96...128...160...192...224... ! h = 1 (checking 1..61) 0...32...64...96...128...160...192...224... ! h = 2 (checking 2..62) 0...32...64...96...128...160...192...224... ! h = 3 (checking 3..63) 0...32...64...96...128...160...192...224... ! -- NNN: 8 U8 U8 ------------------------ ! h = 0 (checking 0..56) 0...32...64...96...128...160...192...224... ! h = 1 (checking 1..57) 0...32...64...96...128...160...192...224... ! h = 2 (checking 2..58) 0...32...64...96...128...160...192...224... ! h = 3 (checking 3..59) 0...32...64...96...128...160...192...224... ! h = 4 (checking 4..60) 0...32...64...96...128...160...192...224... ! h = 5 (checking 5..61) 0...32...64...96...128...160...192...224... ! h = 6 (checking 6..62) 0...32...64...96...128...160...192...224... ! h = 7 (checking 7..63) 0...32...64...96...128...160...192...224... ! -- NNN: 8 F8 U8 ------------------------ ! h = 0 (checking 0..56) 0...32...64...96...128...160...192...224... ! h = 1 (checking 1..57) 0...32...64...96...128...160...192...224... ! h = 2 (checking 2..58) 0...32...64...96...128...160...192...224... ! h = 3 (checking 3..59) 0...32...64...96...128...160...192...224... ! h = 4 (checking 4..60) 0...32...64...96...128...160...192...224... ! h = 5 (checking 5..61) 0...32...64...96...128...160...192...224... ! h = 6 (checking 6..62) 0...32...64...96...128...160...192...224... ! h = 7 (checking 7..63) 0...32...64...96...128...160...192...224... --- 12,15 ---- ! h = 0 (checking 0..60) 0... ! ! FAILURE: STOREVn, offset 0, byte 0 -- is 0x........, should be 0x........ ! Hmm. That's not very helpful. The actual results are: sewardj@g5:~/VgTRUNK/trunk$ file ./memcheck/tests/sh-mem ./memcheck/tests/sh-mem: ELF 64-bit MSB executable, cisco 7500, version 1 (SYSV), for GNU/Linux 2.4.19, dynamically linked (uses shared libs), not stripped and actual results are: -- NNN: 1 U1 U1 ------------------------ h = 0 (checking 0..63) 0...32...64...96...128...160...192...224... -- NNN: 2 U2 U2 ------------------------ h = 0 (checking 0..62) 0...32...64...96...128...160...192...224... h = 1 (checking 1..63) 0...32...64...96...128...160...192...224... -- NNN: 4 U4 U4 ------------------------ h = 0 (checking 0..60) 0...32...64...96...128...160...192...224... h = 1 (checking 1..61) 0...32...64...96...128...160...192...224... h = 2 (checking 2..62) 0...32...64...96...128...160...192...224... h = 3 (checking 3..63) 0...32...64...96...128...160...192...224... -- NNN: 4 F4 U4 ------------------------ h = 0 (checking 0..60) 0... FAILURE: STOREVn, offset 0, byte 0 -- is 0xff, should be 0x1 Um. Does that mean anything to you? J |
|
From: Nicholas N. <nj...@cs...> - 2006-03-28 03:09:55
|
On Tue, 28 Mar 2006 js...@ac... wrote: > Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-03-28 04:40:01 CEST > Results differ from 24 hours ago > > ================================================= > == Difference between 24 hours ago and now == > ================================================= > > *************** > *** 13,14 **** > --- 13,15 ---- > memcheck/tests/pointer-trace (stderr) > + memcheck/tests/sh-mem (stderr) > none/tests/faultstatus (stderr) What went wrong, Julian? Can you post the diff? Nick |
|
From: <js...@ac...> - 2006-03-28 02:59:42
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2006-03-28 03:30:01 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 227 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 225 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Mar 28 03:45:17 2006 --- new.short Tue Mar 28 03:59:28 2006 *************** *** 10,12 **** ! == 225 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) --- 10,12 ---- ! == 227 tests, 6 stderr failures, 0 stdout failures ================= memcheck/tests/leak-tree (stderr) |
|
From: <js...@ac...> - 2006-03-28 02:55:30
|
Nightly build on g5 ( YDL 4.0, ppc970 ) started at 2006-03-28 04:40:01 CEST 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 == 201 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/sh-mem (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/ppc32/mftocrf (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 == 199 tests, 6 stderr failures, 2 stdout failures ================= memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/ppc32/mftocrf (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Mar 28 04:47:50 2006 --- new.short Tue Mar 28 04:55:24 2006 *************** *** 8,10 **** ! == 199 tests, 6 stderr failures, 2 stdout failures ================= memcheck/tests/leak-cycle (stderr) --- 8,10 ---- ! == 201 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/leak-cycle (stderr) *************** *** 13,14 **** --- 13,15 ---- memcheck/tests/pointer-trace (stderr) + memcheck/tests/sh-mem (stderr) none/tests/faultstatus (stderr) |
|
From: Nicholas N. <nj...@cs...> - 2006-03-28 02:44:46
|
Hi, Useful article about MacOS X binaries and execution that might be of interest here: http://0xfe.blogspot.com/2006/03/how-os-x-executes-applications.html Nick |
|
From: Tom H. <to...@co...> - 2006-03-28 02:44:28
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2006-03-28 03:30:07 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 == 229 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == 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 == 227 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Mar 28 03:37:27 2006 --- new.short Tue Mar 28 03:44:22 2006 *************** *** 8,10 **** ! == 227 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) --- 8,10 ---- ! == 229 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) |
|
From: Tom H. <th...@cy...> - 2006-03-28 02:32:18
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2006-03-28 03:15:04 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 == 228 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) memcheck/tests/xml1 (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == 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 == 226 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) memcheck/tests/xml1 (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Mar 28 03:24:00 2006 --- new.short Tue Mar 28 03:32:10 2006 *************** *** 8,10 **** ! == 226 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) --- 8,10 ---- ! == 228 tests, 21 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) |
|
From: Tom H. <th...@cy...> - 2006-03-28 02:25:47
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2006-03-28 03:10:15 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 == 251 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == 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 == 249 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Mar 28 03:18:40 2006 --- new.short Tue Mar 28 03:25:40 2006 *************** *** 8,10 **** ! == 249 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 251 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/pointer-trace (stderr) |
|
From: Tom H. <th...@cy...> - 2006-03-28 02:25:12
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2006-03-28 03:05:11 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 == 251 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == 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 == 249 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Mar 28 03:16:33 2006 --- new.short Tue Mar 28 03:25:03 2006 *************** *** 8,10 **** ! == 249 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) --- 8,10 ---- ! == 251 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) |
|
From: Tom H. <th...@cy...> - 2006-03-28 02:14:36
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2006-03-28 03:00:05 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 == 251 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == 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 == 249 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/sse1_memory (stdout) none/tests/amd64/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/x86/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Mar 28 03:05:55 2006 --- new.short Tue Mar 28 03:14:28 2006 *************** *** 8,10 **** ! == 249 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) --- 8,10 ---- ! == 251 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/stack_switch (stderr) |
|
From: <sv...@va...> - 2006-03-28 01:02:52
|
Author: sewardj
Date: 2006-03-28 02:02:38 +0100 (Tue, 28 Mar 2006)
New Revision: 5795
Log:
Only complain once for each missing wrapper.
Modified:
trunk/auxprogs/libmpiwrap.c
Modified: trunk/auxprogs/libmpiwrap.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/auxprogs/libmpiwrap.c 2006-03-28 00:05:16 UTC (rev 5794)
+++ trunk/auxprogs/libmpiwrap.c 2006-03-28 01:02:38 UTC (rev 5795)
@@ -1820,7 +1820,7 @@
#define DEFAULT_WRAPPER_PREAMBLE(basename) \
OrigFn fn; \
UWord res; \
- static int complaints =3D 3; \
+ static int complaints =3D 1; \
VALGRIND_GET_ORIG_FN(fn); \
before(#basename); \
if (opt_missing >=3D 2) { \
|
|
From: <sv...@va...> - 2006-03-28 00:05:24
|
Author: njn Date: 2006-03-28 01:05:16 +0100 (Tue, 28 Mar 2006) New Revision: 5794 Log: tweak Modified: trunk/NEWS Modified: trunk/NEWS =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/NEWS 2006-03-27 12:23:44 UTC (rev 5793) +++ trunk/NEWS 2006-03-28 00:05:16 UTC (rev 5794) @@ -5,10 +5,11 @@ In detail: =20 - Performance is much improved: programs typically run 1.20--1.40 times - faster under Memcheck, with an average of about 1.30 for the programs = we - tested it on. The improvements for Nulgrind are similar. We haven't - measured Cachegrind and Massif, they should be also be faster, but wit= h a - smaller improvement. We are interested to hear what speed-ups users g= et. + faster under Memcheck (much more for some unusual programs) with an + average of about 1.30 for the programs we tested it on. The improveme= nts + for Nulgrind are similar. We haven't measured Cachegrind and Massif, = they + should be also be faster, but with smaller improvements. We are + interested to hear what speed-ups users get. =20 - Memcheck uses much less memory. The amount of shadow memory used -- w= hich accounts for a large percentage of all of Memcheck's memory overhead -= - |
|
From: Nicholas N. <nj...@cs...> - 2006-03-27 23:58:11
|
On Mon, 27 Mar 2006, Ashley Pittman wrote: >> I just merged in the COMPVBITS branch. Hopefully things will keep working, >> but let me know if you have any problems with Memcheck as a result. > > Thank you. This makes a big difference to the performance I'm seeing, > between this and r5774 last week I'm now seeing a factor of 10 speedup > in many cases. Whoa! That's great :) Do you know how much of the improvement is from r5774? Because I wouldn't expect the COMPVBITS changes to improve performance by more than a factor of 1.5 or so. I imagine the spinning change would have much more of an impact for your applications. Nick |