[lldb-dev] MacOSX tests now run multi-threaded
Todd Fiala
tfiala at google.com
Tue Jul 8 13:50:06 PDT 2014
FWIW I got the same set of 11 errors on MacOSX 10.10 (14A283o) - Yosemite
Preview Update 3 - and Xcode Version 6.0 (6A254o) - Xcode 6 Beta 3.
The first set was from OS X 10.9.3 with Xcode 6 Beta 2.
On Tue, Jul 8, 2014 at 10:42 AM, Todd Fiala <todd.fiala at gmail.com> wrote:
> Here's how I run the tests:
>
> Make sure your Xcode project "locations" setting is set to "relative", so
> that the DerivedData is stored relative to your lldb source directory.
> (Above, that will be /my/workspace-root/lldb/DerivedData).
>
> I have the canonical MacOSX Xcode source layout:
>
> /my/workspace-root/
> |- lldb/
> |- llvm/
> |- tools/clang/
>
> $ cd /my/workspace-root
> $ mkdir test-run
> $ cd test-run
> # {save attached do-tests.sh file here}
> $ chmod a+x do-tests.sh
>
> # Now run it - this will run the tests using one parallel test per core.
> Tests are chunked up in units of directories, so all tests in a given
> directory are serialized.
>
> $ ./do-tests.sh
>
> The script currently only runs x86_64 - just adjust the -A value if you
> want to run more/different architectures in the tests. It also assumes
> that it will put test output into the test-run/lldb-test-results directory.
>
> The behavior is no different from the previous multithreaded behavior on
> Linux/FreeBSD test runs.
>
> Let me know if you run into any issues with that.
>
>
> On Tue, Jul 8, 2014 at 9:50 AM, Todd Fiala <tfiala at google.com> wrote:
>
>> For the record, these are the set of tests that currently fail for me on
>> MacOSX 10.9.3 as of svn r212548 on MacOSX:
>>
>> Ran 297 tests.
>> Failing Tests (11)
>> FAIL: LLDB (suite) :: TestDataFormatterObjC.py (Darwin
>> tfiala-macpro.mtv.corp.google.com 13.2.0 Darwin Kernel Version 13.2.0:
>> Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64
>> i386)
>> FAIL: LLDB (suite) :: TestDataFormatterStdMap.py (Darwin
>> tfiala-macpro.mtv.corp.google.com 13.2.0 Darwin Kernel Version 13.2.0:
>> Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64
>> i386)
>> FAIL: LLDB (suite) :: TestDataFormatterStdVector.py (Darwin
>> tfiala-macpro.mtv.corp.google.com 13.2.0 Darwin Kernel Version 13.2.0:
>> Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64
>> i386)
>> FAIL: LLDB (suite) :: TestProcessLaunch.py (Darwin
>> tfiala-macpro.mtv.corp.google.com 13.2.0 Darwin Kernel Version 13.2.0:
>> Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64
>> i386)
>> FAIL: LLDB (suite) :: TestRegisterVariables.py (Darwin
>> tfiala-macpro.mtv.corp.google.com 13.2.0 Darwin Kernel Version 13.2.0:
>> Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64
>> i386)
>> FAIL: LLDB (suite) :: TestObjCMethods.py (Darwin
>> tfiala-macpro.mtv.corp.google.com 13.2.0 Darwin Kernel Version 13.2.0:
>> Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64
>> i386)
>> FAIL: LLDB (suite) :: TestHiddenIvars.py (Darwin
>> tfiala-macpro.mtv.corp.google.com 13.2.0 Darwin Kernel Version 13.2.0:
>> Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64
>> i386)
>> FAIL: LLDB (suite) :: TestObjCDynamicSBType.py (Darwin
>> tfiala-macpro.mtv.corp.google.com 13.2.0 Darwin Kernel Version 13.2.0:
>> Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64
>> i386)
>> FAIL: LLDB (suite) :: TestObjCDynamicValue.py (Darwin
>> tfiala-macpro.mtv.corp.google.com 13.2.0 Darwin Kernel Version 13.2.0:
>> Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64
>> i386)
>> FAIL: LLDB (suite) :: TestRealDefinition.py (Darwin
>> tfiala-macpro.mtv.corp.google.com 13.2.0 Darwin Kernel Version 13.2.0:
>> Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64
>> i386)
>> FAIL: LLDB (suite) :: TestTargetAPI.py (Darwin
>> tfiala-macpro.mtv.corp.google.com 13.2.0 Darwin Kernel Version 13.2.0:
>> Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64
>> i386)
>>
>>
>> Also, there were no performance regressions detected on Linux
>> multithreaded test run for the change in implementation of the multi-core
>> testing. What I changed was implementing the worker threads via Python's
>> multiprocessing.Pool class instead of using the threading module's threads.
>> All the MacOSX threads were locked on the Python global interpreter lock.
>> Not entirely sure what the diff was that prevented that in Linux and
>> FreeBSD, but no matter. The Pool implementation is slightly cleaner anyway.
>>
>> -Todd
>>
>>
>> On Tue, Jul 8, 2014 at 9:46 AM, Todd Fiala <tfiala at google.com> wrote:
>>
>>> Hi all,
>>>
>>> I've updated the test runner for lldb so it now runs multithreaded on
>>> MacOSX with similar performance gains to the Linux/FreeBSD test speedups.
>>>
>>> On my MacBookPro (mid-2012 Retina), test runs when from ~28 minutes to
>>> 7.5 minutes.
>>> On my MacPro (late-2013), test runs went from ~25 minutes to 3.5 minutes.
>>>
>>> It's totally dependent on the number of cores, so YMMV, but it is faster.
>>>
>>> Also, I've been discussing ways of mitigating tests that are
>>> load-sensitive (which multithreaded test running exposes). I'm looking at
>>> adding a new test declaration that lists a test as load sensitive
>>> (@load_sensitive_test), and somehow allowing that to fail in the
>>> multithreaded pass without failing the test run. Then, run all the
>>> load-sensitive tests in a follow-up single-threaded pass if they failed
>>> under load. Then, only mark them as failed if they fail under the
>>> single-threaded pass. I'll have more to say on that when I get some time
>>> behind it. If we do something like that, it should eliminate the tests
>>> that are hard to simplify and work under load, without forcing us to run
>>> all tests in a *much longer* single-threaded manner.
>>>
>>> --
>>> Todd Fiala | Software Engineer | tfiala at google.com | 650-943-3180
>>>
>>
>>
>>
>> --
>> Todd Fiala | Software Engineer | tfiala at google.com | 650-943-3180
>>
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>
>>
>
>
> --
> -Todd
>
--
Todd Fiala | Software Engineer | tfiala at google.com | 650-943-3180
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20140708/e7a424f0/attachment.html>
More information about the lldb-dev
mailing list