[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [kvm-unit-tests PATCH 0/2] run_tests: support concurren
Re: [Qemu-devel] [kvm-unit-tests PATCH 0/2] run_tests: support concurrent test execution
Mon, 2 Jan 2017 21:25:56 +0100
2017-01-02 18:07+0100, Paolo Bonzini:
> On 01/01/2017 11:34, Peter Xu wrote:
>> run_tests.sh is getting slower. Maybe it's time to let it run faster.
>> An obvious issue is that, we were running the tests sequentially in
>> the past.
>> This series provides another new "-j" parameter. "-j 8" means we run
>> the tests on 8 task queues. That'll fasten the script a lot. A very
>> quick test of mine shows 3x speed boost with 8 task queues.
>> Most of the changes are in scripts/tash.bash of patch 2, which
>> implemented the main logic for task managements. Please see commit
>> message for more information.
>> I did a quick "make standalone" test to make sure this series won't
>> break it. However I am not sure whether it'll break other thing that I
>> don't know...
> Would it work if run_tests.sh wrote a Makefile for all the tests (with
> phony targets only), and then simply ran "make -f Makefile.tmp -jN"?
We would need to change for_each_unittest to print the command line
instead of running it and add a executable wrapper for run() from
scripts/runtime.bash to have something to pass those arguments to.
After that, we could generate a Makefile.
I think we can do the queue with ~3 lines of bash and the Makefile would
complicate it more.
Btw. I just leaned that xargs provides a simpler, but sufficient,
queueing functionality, e.g.
echo "echo a\0 (sleep 1; echo b)\0 echo c\0 sleep 1\0 echo d" |
xargs -0 -L 1 -P 2 sh -c
Re: [Qemu-devel] [kvm-unit-tests PATCH 0/2] run_tests: support concurrent test execution, Paolo Bonzini, 2017/01/02