[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
From: |
Peter Xu |
Subject: |
Re: [Qemu-devel] [kvm-unit-tests PATCH 0/2] run_tests: support concurrent test execution |
Date: |
Tue, 3 Jan 2017 10:50:56 +0800 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Mon, Jan 02, 2017 at 09:25:56PM +0100, Radim Krčmář wrote:
> 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
Good to know this. :)
Looks like above example didn't work, I changed it a bit:
echo -e "echo a\0 sleep 1 && echo b\0 echo c\0 sleep 1 && echo d" | xargs -0
-L 1 -P 2 sh -c
But I would still prefer not using it - I'll prefer "readability" over
"less lines of codes" in this case.
-- peterx
Re: [Qemu-devel] [kvm-unit-tests PATCH 0/2] run_tests: support concurrent test execution, Paolo Bonzini, 2017/01/02