You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
(58) |
Apr
(261) |
May
(169) |
Jun
(214) |
Jul
(201) |
Aug
(219) |
Sep
(198) |
Oct
(203) |
Nov
(241) |
Dec
(94) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(137) |
Feb
(149) |
Mar
(150) |
Apr
(193) |
May
(95) |
Jun
(173) |
Jul
(137) |
Aug
(236) |
Sep
(157) |
Oct
(150) |
Nov
(136) |
Dec
(90) |
| 2005 |
Jan
(139) |
Feb
(130) |
Mar
(274) |
Apr
(138) |
May
(184) |
Jun
(152) |
Jul
(261) |
Aug
(409) |
Sep
(239) |
Oct
(241) |
Nov
(260) |
Dec
(137) |
| 2006 |
Jan
(191) |
Feb
(142) |
Mar
(169) |
Apr
(75) |
May
(141) |
Jun
(169) |
Jul
(131) |
Aug
(141) |
Sep
(192) |
Oct
(176) |
Nov
(142) |
Dec
(95) |
| 2007 |
Jan
(98) |
Feb
(120) |
Mar
(93) |
Apr
(96) |
May
(95) |
Jun
(65) |
Jul
(62) |
Aug
(56) |
Sep
(53) |
Oct
(95) |
Nov
(106) |
Dec
(87) |
| 2008 |
Jan
(58) |
Feb
(149) |
Mar
(175) |
Apr
(110) |
May
(106) |
Jun
(72) |
Jul
(55) |
Aug
(89) |
Sep
(26) |
Oct
(96) |
Nov
(83) |
Dec
(93) |
| 2009 |
Jan
(97) |
Feb
(106) |
Mar
(74) |
Apr
(64) |
May
(115) |
Jun
(83) |
Jul
(137) |
Aug
(103) |
Sep
(56) |
Oct
(59) |
Nov
(61) |
Dec
(37) |
| 2010 |
Jan
(94) |
Feb
(71) |
Mar
(53) |
Apr
(105) |
May
(79) |
Jun
(111) |
Jul
(110) |
Aug
(81) |
Sep
(50) |
Oct
(82) |
Nov
(49) |
Dec
(21) |
| 2011 |
Jan
(87) |
Feb
(105) |
Mar
(108) |
Apr
(99) |
May
(91) |
Jun
(94) |
Jul
(114) |
Aug
(77) |
Sep
(58) |
Oct
(58) |
Nov
(131) |
Dec
(62) |
| 2012 |
Jan
(76) |
Feb
(93) |
Mar
(68) |
Apr
(95) |
May
(62) |
Jun
(109) |
Jul
(90) |
Aug
(87) |
Sep
(49) |
Oct
(54) |
Nov
(66) |
Dec
(84) |
| 2013 |
Jan
(67) |
Feb
(52) |
Mar
(93) |
Apr
(65) |
May
(33) |
Jun
(34) |
Jul
(52) |
Aug
(42) |
Sep
(52) |
Oct
(48) |
Nov
(66) |
Dec
(14) |
| 2014 |
Jan
(66) |
Feb
(51) |
Mar
(34) |
Apr
(47) |
May
(58) |
Jun
(27) |
Jul
(52) |
Aug
(41) |
Sep
(78) |
Oct
(30) |
Nov
(28) |
Dec
(26) |
| 2015 |
Jan
(41) |
Feb
(42) |
Mar
(20) |
Apr
(73) |
May
(31) |
Jun
(48) |
Jul
(23) |
Aug
(55) |
Sep
(36) |
Oct
(47) |
Nov
(48) |
Dec
(41) |
| 2016 |
Jan
(32) |
Feb
(34) |
Mar
(33) |
Apr
(22) |
May
(14) |
Jun
(31) |
Jul
(29) |
Aug
(41) |
Sep
(17) |
Oct
(27) |
Nov
(38) |
Dec
(28) |
| 2017 |
Jan
(28) |
Feb
(30) |
Mar
(16) |
Apr
(9) |
May
(27) |
Jun
(57) |
Jul
(28) |
Aug
(43) |
Sep
(31) |
Oct
(20) |
Nov
(24) |
Dec
(18) |
| 2018 |
Jan
(34) |
Feb
(50) |
Mar
(18) |
Apr
(26) |
May
(13) |
Jun
(31) |
Jul
(13) |
Aug
(11) |
Sep
(15) |
Oct
(12) |
Nov
(18) |
Dec
(13) |
| 2019 |
Jan
(12) |
Feb
(29) |
Mar
(51) |
Apr
(22) |
May
(13) |
Jun
(20) |
Jul
(13) |
Aug
(12) |
Sep
(21) |
Oct
(6) |
Nov
(9) |
Dec
(5) |
| 2020 |
Jan
(13) |
Feb
(5) |
Mar
(25) |
Apr
(4) |
May
(40) |
Jun
(27) |
Jul
(5) |
Aug
(17) |
Sep
(21) |
Oct
(1) |
Nov
(5) |
Dec
(15) |
| 2021 |
Jan
(28) |
Feb
(6) |
Mar
(11) |
Apr
(5) |
May
(7) |
Jun
(8) |
Jul
(5) |
Aug
(5) |
Sep
(11) |
Oct
(9) |
Nov
(10) |
Dec
(12) |
| 2022 |
Jan
(7) |
Feb
(13) |
Mar
(8) |
Apr
(7) |
May
(12) |
Jun
(27) |
Jul
(14) |
Aug
(27) |
Sep
(27) |
Oct
(17) |
Nov
(17) |
Dec
|
| 2023 |
Jan
(10) |
Feb
(18) |
Mar
(9) |
Apr
(26) |
May
|
Jun
(13) |
Jul
(18) |
Aug
(5) |
Sep
(12) |
Oct
(16) |
Nov
(1) |
Dec
|
| 2024 |
Jan
(4) |
Feb
(3) |
Mar
(6) |
Apr
(17) |
May
(2) |
Jun
(33) |
Jul
(13) |
Aug
(1) |
Sep
(6) |
Oct
(8) |
Nov
(6) |
Dec
(15) |
| 2025 |
Jan
(5) |
Feb
(11) |
Mar
(8) |
Apr
(20) |
May
(1) |
Jun
|
Jul
|
Aug
(9) |
Sep
(1) |
Oct
(7) |
Nov
(1) |
Dec
|
|
From: Nicholas N. <nj...@ca...> - 2003-03-17 19:37:29
|
On Mon, 17 Mar 2003, Jason Evans wrote: > > But the numbers are not good, actually a performance decrease against > > switch(). > > I've recently been doing some experimentation with computed gotos in an > unrelated program, and I've also observed a slowdown in most cases. This > indicates to me that gcc typically does a fine job of optimizing switch > statements, and there isn't a whole lot to be gained by second guessing it > in such cases. I think Christian got good results with the first version, but not with the second version that computes each label address as a difference from a base label address. So it looks like it (the first version) is worthwhile. I've had mixed successes with computed gotos in the past as well... branch prediction is very important; I once tried the computed goto trick which saved me quite a few instructions, but made the branches more or less unpredictable, and the end result was little difference. N |
|
From: Jason E. <ja...@ca...> - 2003-03-17 19:20:00
|
On Mon, Mar 17, 2003 at 03:33:13PM +0100, Christian Leber wrote: > On Mon, Mar 17, 2003 at 12:37:52PM +0000, Nicholas Nethercote wrote: > > > Valgrind is packaged as a shared library. Perhaps this might improve > > things further? > > Ok, I changed it (patch included). > > But the numbers are not good, actually a performance decrease against > switch(). I've recently been doing some experimentation with computed gotos in an unrelated program, and I've also observed a slowdown in most cases. This indicates to me that gcc typically does a fine job of optimizing switch statements, and there isn't a whole lot to be gained by second guessing it in such cases. Jason |
|
From: Tom H. <th...@cy...> - 2003-03-17 15:12:24
|
In message <XFM...@lu...>
Greg Hosler <ho...@lu...> wrote:
> I recently tried building an rpm for valgrind 1.0.4
> (http://developer.kde.org/~sewardj/) (the spec file is in the tar.bz2 file)
>
> the rpm spec file looks pretty innocent.
>
> at the end of the rpm build, during dependency checking I see:
>
>
> Requires: ld-linux.so.2 libc.so.6 /bin/sh /usr/bin/perl libc.so.6(GLIBC_2.0)
> libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.2) libc.so.6(GLIBC_2.1.3)
> libc.so.6(GLIBC_PRIVATE)
> Wrote: /home/hosler/WIP/rpmbuild/RPMS/valgrind-1.0.4-1.i386.rpm
>
> When I try to install the rpm (Red Hat 7.3, all eratta applied), I get the
> following error message:
>
> rpm -ivh valgrind-1.0.4-1.i386.rpm
> error: failed dependencies:
> libc.so.6(GLIBC_PRIVATE) is needed by valgrind-1.0.4-1
>
> Now the interesting thing is:
>
> # strings /lib/libc.so.6 | grep GLIBC_PRIVATE
> GLIBC_PRIVATE
>
> so the pre-requisite symbol is infact in the library, and
> /usr/lib/rpm/find-requires found it, get when rpm goes to install, it can't
> verify that the dependency is satisfied.
The symbols in question - there are actually two - are indeed present
in glibc, but recent releases have given them a version of GLIBC_PRIVATE
to indicate that they are for internal use only. The symbols in question
are:
__pthread_clock_gettime
__pthread_clock_settime
Both of these are referenced in valgrind's special libpthread.so and
hence are picked up by rpmbuild as dependencies. The problem is that
rpm knows that those are private symbols and doesn't consider that
the glibc package satisfies them, hence the error.
You can force the install with --no-deps and it will all run just
fine, or you can hack the package building to avoid adding that
dependency, which is what I do. I have this script in my RPM sources
directory as valgrind-find-requires:
#!/bin/sh
/usr/lib/rpm/find-requires "$@" | grep -v GLIBC_PRIVATE
and then I add this macro to my valgrind.spec file:
%define __find_requires %{_sourcedir}/valgrind-find-requires
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Greg H. <ho...@lu...> - 2003-03-17 14:57:39
|
Hi, I recently tried building an rpm for valgrind 1.0.4 (http://developer.kde.org/~sewardj/) (the spec file is in the tar.bz2 file) the rpm spec file looks pretty innocent. at the end of the rpm build, during dependency checking I see: Requires: ld-linux.so.2 libc.so.6 /bin/sh /usr/bin/perl libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.2) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_PRIVATE) Wrote: /home/hosler/WIP/rpmbuild/RPMS/valgrind-1.0.4-1.i386.rpm When I try to install the rpm (Red Hat 7.3, all eratta applied), I get the following error message: rpm -ivh valgrind-1.0.4-1.i386.rpm error: failed dependencies: libc.so.6(GLIBC_PRIVATE) is needed by valgrind-1.0.4-1 Now the interesting thing is: # strings /lib/libc.so.6 | grep GLIBC_PRIVATE GLIBC_PRIVATE so the pre-requisite symbol is infact in the library, and /usr/lib/rpm/find-requires found it, get when rpm goes to install, it can't verify that the dependency is satisfied. is this an rpm bug (kind of feels like it :( is there a way around this particular situation ? thank you, and best regards, -Greg Hosler +---------------------------------------------------------------------+ You can release software that's good, software that's inexpensive, or software that's available on time. You can usually release software that has 2 of these 3 attributes -- but not all 3. | Greg Hosler ho...@lu... | +---------------------------------------------------------------------+ |
|
From: Christian L. <chr...@le...> - 2003-03-17 14:33:19
|
On Mon, Mar 17, 2003 at 12:37:52PM +0000, Nicholas Nethercote wrote: > Valgrind is packaged as a shared library. Perhaps this might improve > things further? Ok, I changed it (patch included). But the numbers are not good, actually a performance decrease against switch(). gzip: 13.78user 0.03system 0:14.21elapsed 97%CPU (0avgtext+0avgdata 0maxresident)k 13.71user 0.06system 0:14.16elapsed 97%CPU (0avgtext+0avgdata 0maxresident)k bzip2: 48.49user 0.10system 0:49.79elapsed 97%CPU (0avgtext+0avgdata 0maxresident)k 48.66user 0.04system 0:50.06elapsed 97%CPU (0avgtext+0avgdata 0maxresident)k latex: real 0m5.056s user 0m4.880s sys 0m0.090s Regards, Christian Leber -- "Omnis enim res, quae dando non deficit, dum habetur et non datur, nondum habetur, quomodo habenda est." (Aurelius Augustinus) Translation: <http://gnuhh.org/work/fsf-europe/augustinus.html> |
|
From: Christian L. <chr...@le...> - 2003-03-17 14:06:53
|
On Mon, Mar 17, 2003 at 12:37:52PM +0000, Nicholas Nethercote wrote:
> 1. Can you try it with a few other programs? It would be nice to see if
> the 7% speedup is consistent across programs. Some programs I've used
> for performance timing in the past:
>
> gzip
> bzip2
48.36user 0.05system 0:49.79elapsed 97%CPU (0avgtext+0avgdata
0maxresident)k
48.47user 0.07system 0:51.22elapsed 94%CPU (0avgtext+0avgdata
0maxresident)k
patched:
47.93user 0.09system 0:49.17elapsed 97%CPU (0avgtext+0avgdata
0maxresident)k
47.91user 0.09system 0:49.22elapsed 97%CPU (0avgtext+0avgdata
0maxresident)k
> latex
real 0m5.088s
user 0m4.790s
sys 0m0.130s
patched:
real 0m4.741s
user 0m4.490s
sys 0m0.140s
> konqueror (startup then quit immediately)
It eats up all CPU till it -9 kill it when I quit it.
(I still have KDE 2.2)
> 2. The bottom of the webpage you mention says:
>
> "An alternate way to write the above example is
>
> static const int array[] = { &&foo - &&foo, &&bar - &&foo,
> &&hack - &&foo };
> goto *(&&foo + array[i]);
>
> This is more friendly to code living in shared libraries, as it reduces
> the number of dynamic relocations that are needed, and by consequence,
> allows the data to be read-only."
>
> Valgrind is packaged as a shared library. Perhaps this might improve
> things further?
Yes, but initially I did not get it working, was a little stupid error.
I'll try it, but this takes some time.
cachegrind shows me with a little test programm, that it's slower with
the later thing. But it's not a shared library and I don't know how
often it has to be done.
Regards,
Christian Leber
--
"Omnis enim res, quae dando non deficit, dum habetur et non datur,
nondum habetur, quomodo habenda est." (Aurelius Augustinus)
Translation: <http://gnuhh.org/work/fsf-europe/augustinus.html>
|
|
From: Nicholas N. <nj...@ca...> - 2003-03-17 12:37:56
|
On Mon, 17 Mar 2003, Christian Leber wrote:
> I saw this realy big switch(opt){case 0x00....} statement and thought
> "this must be slow".
>
> So I tried the "Labels as Values" feature of the gcc.
> (http://www.dis.com/gnu/gcc/gcc_79.html#SEC79)
> Yes it is a gcc feature, but because is specially for x86/Linux I can't
> see a problem.
[snip]
> 13.54 -> 12.55
> that is a speedup of about 7% in this case
>
> If you (Julian or Nick) are perhaps interested in it, I would clean it up
> further and remove this one switch() { } statement.
Interesting. Two comments:
1. Can you try it with a few other programs? It would be nice to see if
the 7% speedup is consistent across programs. Some programs I've used
for performance timing in the past:
gzip
bzip2
latex
konqueror (startup then quit immediately)
Batch programs are obviously more suitable for this.
2. The bottom of the webpage you mention says:
"An alternate way to write the above example is
static const int array[] = { &&foo - &&foo, &&bar - &&foo,
&&hack - &&foo };
goto *(&&foo + array[i]);
This is more friendly to code living in shared libraries, as it reduces
the number of dynamic relocations that are needed, and by consequence,
allows the data to be read-only."
Valgrind is packaged as a shared library. Perhaps this might improve
things further?
If you could try these two experiments, and tell us the results, that
would be very helpful.
Thanks.
N
|
|
From: Christian L. <chr...@le...> - 2003-03-17 12:12:25
|
Hello,
first let me say:
valgrind is absolutly great, thank you for it!
It saved me allready often.
Because I was not able to add MMX support (seems not to be exactly
easy).
I saw this realy big switch(opt){case 0x00....} statement and thought
"this must be slow".
So I tried the "Labels as Values" feature of the gcc.
(http://www.dis.com/gnu/gcc/gcc_79.html#SEC79)
Yes it is a gcc feature, but because is specially for x86/Linux I can't
see a problem.
"benchmark":
core:/home/ijuz/Mail/la# ls -l
total 4508
-rw------- 1 ijuz ijuz 4602189 Mar 17 11:56
politech_at_politechbot_com
core:/home/ijuz/Mail/la# nice -n -10 time /work/dev/val/bin/valgrind
gzip -9 politech_at_politechbot_com
normali-cvs:
13.57user 0.09system 0:14.07elapsed 97%CPU (0avgtext+0avgdata
0maxresident)k
13.51user 0.08system 0:14.01elapsed 96%CPU (0avgtext+0avgdata
0maxresident)k
patched-cvs:
12.54user 0.06system 0:13.07elapsed 96%CPU (0avgtext+0avgdata
0maxresident)k
12.56user 0.06system 0:12.97elapsed 97%CPU (0avgtext+0avgdata
0maxresident)k
this means (average):
13.54 -> 12.55
that is a speedup of about 7% in this case
If you (Julian or Nick) are perhaps interested in it, I would clean it up
further and remove this one switch() { } statement.
I appended the patch, I hope nobody objects because of this few kb.
(It is against the cvs from now)
Regards,
Christian Leber
--
"Omnis enim res, quae dando non deficit, dum habetur et non datur,
nondum habetur, quomodo habenda est." (Aurelius Augustinus)
Translation: <http://gnuhh.org/work/fsf-europe/augustinus.html>
|
|
From: Julian S. <js...@ac...> - 2003-03-16 11:29:33
|
Something to get started with ... here's a nano-FAQ I assembled for
the 1.0.X branch but didn't get round to putting in the 2.0.X branch
yet. Maybe the FAQ will grow as a result of this list.
J
--------------------------------------------------------------------
A mini-FAQ for valgrind, versions 1.0.4 and 1.1.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Last revised 13 Oct 2002
~~~~~~~~~~~~~~~~~~~~~~~~
Q1. Programs run OK on valgrind, but at exit produce a bunch
of errors a bit like this
==20755== Invalid read of size 4
==20755== at 0x40281C8A: _nl_unload_locale (loadlocale.c:238)
==20755== by 0x4028179D: free_mem (findlocale.c:257)
==20755== by 0x402E0962: __libc_freeres (set-freeres.c:34)
==20755== by 0x40048DCC: vgPlain___libc_freeres_wrapper
(vg_clientfuncs.c:585)
==20755== Address 0x40CC304C is 8 bytes inside a block of size 380
free'd
==20755== at 0x400484C9: free (vg_clientfuncs.c:180)
==20755== by 0x40281CBA: _nl_unload_locale (loadlocale.c:246)
==20755== by 0x40281218: free_mem (setlocale.c:461)
==20755== by 0x402E0962: __libc_freeres (set-freeres.c:34)
and then die with a segmentation fault.
A1. When the program exits, valgrind runs the procedure
__libc_freeres() in glibc. This is a hook for memory debuggers,
so they can ask glibc to free up any memory it has used. Doing
that is needed to ensure that valgrind doesn't incorrectly
report space leaks in glibc.
Problem is that running __libc_freeres() in older glibc versions
causes this crash.
WORKAROUND FOR 1.0.X versions of valgrind: The simple fix is to
find in valgrind's sources, the one and only call to
__libc_freeres() and comment it out, then rebuild the system. In
the 1.0.3 version, this call is on line 584 of vg_clientfuncs.c.
This may mean you get false reports of space leaks in glibc, but
it at least avoids the crash.
WORKAROUND FOR 1.1.X and later versions of valgrind: use the
--run-libc-freeres=no flag.
Q2. My program dies complaining that syscall 197 is unimplemented.
A2. 197, which is fstat64, is supported by valgrind. The problem is
that the /usr/include/asm/unistd.h on the machine on which your
valgrind was built, doesn't match your kernel -- or, to be more
specific, glibc is asking your kernel to do a syscall which is
not listed in /usr/include/asm/unistd.h.
The fix is simple. Somewhere near the top of vg_syscall_mem.c,
add the following line:
#define __NR_fstat64 197
Rebuild and try again. The above line should appear before any
uses of the __NR_fstat64 symbol in that file. If you look at the
place where __NR_fstat64 is used in vg_syscall_mem.c, it will be
obvious why this fix works. NOTE for valgrind versions 1.1.0
and later, the relevant file is actually coregrind/vg_syscalls.c.
Q3. My (buggy) program dies like this:
valgrind: vg_malloc2.c:442 (bszW_to_pszW):
Assertion `pszW >= 0' failed.
And/or my (buggy) program runs OK on valgrind, but dies like
this on cachegrind.
A3. If valgrind shows any invalid reads, invalid writes and invalid
frees in your program, the above may happen. Reason is that your
program may trash valgrind's low-level memory manager, which then
dies with the above assertion, or something like this. The cure
is to fix your program so that it doesn't do any illegal memory
accesses. The above failure will hopefully go away after that.
Q4. I'm running Red Hat Advanced Server. Valgrind always segfaults at
startup.
A4. [Note: fixed properly in 1.9.4; the following stuff is now redundant]
Known issue with RHAS 2.1. The following kludge works, but
is too gruesome to put in the sources permanently. Try it.
Last verified as working on RHAS 2.1 at 20021008.
Find the following comment in vg_main.c -- in 1.0.4 this is at
line 636:
/* we locate: NEW_AUX_ENT(1, AT_PAGESZ, ELF_EXEC_PAGESIZE) in
the elf interpreter table */
Immediately _before_ this comment add the following:
/* HACK for R H Advanced server. Ignore all the above and
start the search 18 pages below the "obvious" start point.
God knows why. Seems like we can't go into the highest 18
pages of the stack. This is not good! -- the 18 pages is
determined just by looking for the highest proddable
address. It would be nice to see some kernel or libc or
something code to justify this. */
/* 0xBFFEE000 is 0xC0000000 - 18 pages */
sp = 0xBFFEE000;
/* end of HACK for R H Advanced server. */
Obviously the assignment to sp is the only important line.
(this is the end of the FAQ.)
|
|
From: Julian S. <js...@ac...> - 2003-03-16 01:46:57
|
Well, like wot the Subject line says ... J |