On (19/05/14 18:15), Nikolai Kondrashov wrote:
On 05/19/2014 05:55 PM, Nikolai Kondrashov wrote:
>On 05/19/2014 10:33 AM, Lukas Slebodnik wrote:
>>On (17/05/14 01:14), Nikolai Kondrashov wrote:
>>>On 05/16/2014 11:32 PM, Lukas Slebodnik wrote:
>>>>On (16/04/14 21:30), Nikolai Kondrashov wrote:
>>>>>In my case there is no beneficial performance difference when running
with
>>>>>valgrind. There is about 25% improvement using /dev/shm when running
with
>>>>>coverage enabled, but even in a VM it takes less than a minute on my
machine.
>>>>>
>>>>I was waiting for pshing patch to the upstream.
>>>>This is a reason of late reply.
>>>>
>>>>>I will use /dev/shm and will mess with moving test results around,
when/if
>>>>>I'll need to tune the performance, but for now I'd prefer to
keep my CI code
>>>>>simple and use relative directories.
>>>>>
>>>>I have totally different results. The most problematic is sysdb test,
>>>>because there is a lof of IO operations.
>>>
>>It might look I was exaggerating in my previous mail.
>
>No, it didn't really.
>
>>"ramdisk" is 58x faster then HDD.
>>"ramdisk" is 26x faster then HDD.
>
>Out of curiosity: why is it so much faster? Does the code sync to disc often?
>
>I did some light tests and while I don't see such a dramatic difference on my
>setup, it is still considerable. A "make check" with Valgrind took 26
minutes
>with test-dir on HDD and 16 minutes on ramdisk.
I just noticed that the difference actually fits your observation of bare
parallel run on ramdisk/HDD. It is about 9 minutes for my Valgrind run as
well.
Also, you ran Valgrind with single tests only and without --leak-check=full.
That's probably why I was confused about expected runtime with Valgrind.
Could you perhaps try timing the command running all tests under Valgrind,
which I mentioned in the previous message, if time allows?
Sure,
//parallel
sh-4.2$ time make -j4 check LOG_COMPILER=libtool 'LOG_FLAGS=--mode=execute valgrind
--trace-children=yes --trace-children-skip=/* --leak-check=full'
make check-recursive
//snip
real 0m47.355s
user 1m46.597s
sys 0m4.711s
//single
sh-4.2$ time make check LOG_COMPILER=libtool 'LOG_FLAGS=--mode=execute valgrind
--trace-children=yes --trace-children-skip=/* --leak-check=full'
real 1m49.825s
user 1m26.396s
sys 0m4.228s
I had to execute tests without valgring argument "--error-exitcode=99".
With this argument, talloc destructor "mock_server_cleanup" failed.
src/tests/common_dbus.c
mock_server_cleanup
66 /* Wait for the server child, it always returns mock */
67 verify_eq (waitpid(mock->pid, &child_status, 0), mock->pid);
68 verify_eq (child_status, 0);
69
70 file = strchr(mock->dbus_address, '/');
and verify_eq is macro which use abort.
do { if ((x) != (y)) { fprintf(stderr, "failed: %s == %s\n", #x, #y); abort(); }
} while (0)
LS