|
From: Nicholas N. <n.n...@gm...> - 2009-04-24 01:54:00
|
On Fri, Apr 24, 2009 at 5:49 AM, Bart Van Assche <bar...@gm...> wrote: > On Thu, Apr 23, 2009 at 5:10 AM, Nicholas Nethercote > <n.n...@gm...> wrote: >> Some time in the last few days, on my ubuntu box, >> helgrind/tests/tc19_shadowmem started running incredibly slowly under >> DRD. It used to take a few seconds, now it takes about 5 minutes. It >> happens with both 32-bit and 64-bit builds. It's still fast under >> Helgrind. > > You are not doing justice to DRD with such comments. Anyone who looks > at user comments or at the bug database can see that since the time > DRD is no longer an experimental tool it is doing a great job. The > performance of the DRD tool is acceptable: for some programs it runs > slightly faster than Helgrind and for some other it runs slightly > slower. The program tc19_shadowmem is an exception for which DRD runs > significantly slower than Helgrind. > > Your e-mail creates the impression that at some time there would have > been a change in DRD that caused it to process tc19_shadowmem a lot > slower than before. This is not correct. About a month ago (March 10, > 2009) you informed me via private e-mail that there was an error in > the file drd/tests/tc19_shadowmem.vgtest which caused this test to be > skipped by DRD. This error was fixed on the same day (r9337) and since > then during the regression tests DRD runs the program tc19_shadowmem. I wasn't aiming to criticise DRD, I was aiming to understand some mysterious behaviour on my machine. I made this clear in my original email: "The weird thing is that it doesn't appear due to a change in Valgrind. No recent changes seem like they could possibly have caused this... I'm wondering if a software update on my machine could have caused it" Moving on, I did some further investigating, and found some very strange behaviour: - If I run 'make regtest', it takes 6:08 minutes - If I run '/usr/bin/perl tests/vg_regtest memcheck cachegrind callgrind massif lackey none helgrind drd exp-omega exp-ptrcheck', it takes 11:07 minutes. This command is exactly what is run by 'make regtest', after it runs the 'check' target. I then tried removing drd/tests/tc19_shadowtest: - 'make regtest' takes 5:03 minutes - '/usr/inb/perl tests/vg_regtest ...' takes 6:23 minutes So the conclusion is that running the regtests via "make check" somehow makes drd/tests/tc19_shadowmem *much* faster (ie. 1 minute instead of 5), and also makes all the other tests a little bit faster (ie. 1 minute faster for the rest of the regtests). It's all repeatable, too. This makes no sense to me at all. So I guess nothing has changed, either in DRD or on my system; tc19_shadowmem probably always did take almost 5 minutes by itself, but probably I only ever ran it under "make regtest" before now, never by itself. > After having read your e-mail I started looking at why DRD was > processing tc19_shadowmem so slowly. By this time DRD should process > this test program significantly faster -- on my PC it is now processed > in 50s. After updating, I get these results: - drd/tests/tc19_shadowmem by itself takes 17s - 'make regtest' takes 4:51 minutes - '/usr/inb/perl tests/vg_regtest ...' takes 5:08 minutes 5 minutes to 17 seconds is a big improvement! Thanks for looking into it. The difference between the 'make regtest' time and the 'perl tests/vg_regtest ...' time is much smaller too, which is good for my sanity. Nick |