This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] switch to fully parallel mode


>>>>> "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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]