This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] switch to fully parallel mode
- From: Tom Tromey <tromey at redhat dot com>
- To: Yao Qi <yao at codesourcery dot com>
- Cc: <gdb-patches at sourceware dot org>
- Date: Tue, 17 Sep 2013 12:56:38 -0600
- Subject: Re: [PATCH] switch to fully parallel mode
- Authentication-results: sourceware.org; auth=none
- References: <1377711392-20236-1-git-send-email-tromey at redhat dot com> <52218B63 dot 80805 at codesourcery dot com>
>>>>> "Yao" == Yao Qi <yao@codesourcery.com> writes:
>> +# Turn a list of .exp files into "check/" targets. Only examine .exp
>> +# files appearing in a gdb.* directory -- we don't want to pick up
>> +# lib/ by mistake. For example, gdb.linespec/linespec.exp becomes
>> +# check/gdb.linespec/linespec.exp. The list is generally sorted
>> +# alphabetically, but we take a few tests known to be slow and push
>> +# them to the front of the list to try to lessen the overall time
>> +# taken by the test suite -- if one of these tests happens to be run
>> +# late, it will cause the overall time to increase.
>> +slow_tests = gdb.base/break-interp.exp gdb.base/interp.exp \
>> + gdb.base/multi-forks.exp
Yao> I am not sure we should consider slow_tests in this patch. This patch
Yao> is about running testsuite in parallel. The minor tuning can be
Yao> addressed separately, or is it really necessary to do that? "Code is
Yao> simple, but slower to run" is acceptable to me, given that testing in
Yao> parallel is fast enough.
I tried it both ways and with "make -j8 check" on a large machine, the
test suite takes ~10% more elapsed time if we remove the optimization.
That is, on the order of an additional 10-15 seconds (sorry, I lost the
numbers last week; but I can recreate them if you require greater
precision).
On that basis I am inclined to leave it in -- it is maybe noticeable,
and easy to maintain. But I don't care too deeply.
>> +@GMAKE_TRUE@all_tests := $(shell cd $(srcdir) && find gdb.* -name
>> *.exp' -print)
Yao> I am fine to get all tests by 'find' as long as it is easy to exclude a
Yao> directory in the future. I am proposing to add a directory 'gdb.perf'
Yao> in testsuite, and we can exclude it here then.
It shouldn't be an issue.
Though perhaps gdb.perf tests ought to all just "self-exclude" if
performance testing is not requested. Wouldn't that be needed so that
plain "runtest" would continue to work, anyway?
>> +@GMAKE_TRUE@reordered_tests := $(slow_tests) $(filter-out
>> $(slow_tests),$(all_tests))
>> +@GMAKE_TRUE@TEST_TARGETS := $(addprefix check/,$(reordered_tests))
>> +
Yao> Is TEST_TARGETS defined when using non-gnu make?
I don't think it needs to be. The parallel branch is not taken in this
situation.
I have been thinking that even check-single should probably set
GDB_PARALLEL=yes, though. This will simplify "make clean".
Tom