From 74a630947fad3b4fd15c036dc70587ae7c924fb0 Mon Sep 17 00:00:00 2001 From: "dpranke@chromium.org" Date: Wed, 4 Apr 2012 01:40:39 +0000 Subject: [PATCH] [Chromium] Lots of timeouts causing Mac10.6 to exit early. https://bugs.webkit.org/show_bug.cgi?id=83076 Unreviewed, build fix (slightly reviewed by Simon Fraser and Eric Seidel, but not approved). Add logic to the apple mac and chromium mac code to not use too many workers; it looks like the xserves (and possibly mac pros) count hyperthreaded cores when they really shouldn't and we end up using too many workers at a time; this leads to tests thrashing and timing out. This change is a temporary fix to make the bots happy while I look into more profiling and other fixes. * Scripts/webkitpy/layout_tests/port/mac.py: (ChromiumMacPort.default_child_processes): * Scripts/webkitpy/layout_tests/port/chromium_mac.py: (ChromiumMacPort.default_child_processes): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113122 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Tools/ChangeLog | 22 ++++++++++++++++++++++ .../webkitpy/layout_tests/port/chromium_mac.py | 10 ++++++++++ Tools/Scripts/webkitpy/layout_tests/port/mac.py | 10 +++++++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/Tools/ChangeLog b/Tools/ChangeLog index 0b54426..ef0231b 100644 --- a/Tools/ChangeLog +++ b/Tools/ChangeLog @@ -1,3 +1,25 @@ +2012-04-03 Dirk Pranke + + [Chromium] Lots of timeouts causing Mac10.6 to exit early. + https://bugs.webkit.org/show_bug.cgi?id=83076 + + Unreviewed, build fix (slightly reviewed by Simon Fraser and Eric Seidel, but not approved). + + Add logic to the apple mac and chromium mac code to not use + too many workers; it looks like the xserves (and possibly mac + pros) count hyperthreaded cores when they really shouldn't and + we end up using too many workers at a time; this leads to tests + thrashing and timing out. + + This change is a temporary fix to make the bots happy while I + look into more profiling and other fixes. + + * Scripts/webkitpy/layout_tests/port/mac.py: + (ChromiumMacPort.default_child_processes): + + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort.default_child_processes): + 2012-04-03 Simon Fraser WebKitTestRunner's EventSender is leaky diff --git a/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py b/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py index 30f4aa9..3a7c4a0 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py @@ -105,6 +105,16 @@ class ChromiumMacPort(chromium.ChromiumPort): def operating_system(self): return 'mac' + def default_child_processes(self): + # FIXME: As a temporary workaround while we figure out what's going + # on with https://bugs.webkit.org/show_bug.cgi?id=83076, reduce by + # half the # of workers we run by default on bigger machines. + default_count = super(ChromiumMacPort, self).default_child_processes() + if default_count >= 8: + cpu_count = self._executive.cpu_count() + return max(1, min(default_count, int(cpu_count / 2))) + return default_count + # # PROTECTED METHODS # diff --git a/Tools/Scripts/webkitpy/layout_tests/port/mac.py b/Tools/Scripts/webkitpy/layout_tests/port/mac.py index 6c55712..94f7017 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/mac.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/mac.py @@ -107,7 +107,15 @@ class MacPort(ApplePort): if self.is_snowleopard(): _log.warn("Cannot run tests in parallel on Snow Leopard due to rdar://problem/10621525.") return 1 - return super(MacPort, self).default_child_processes() + + # FIXME: As a temporary workaround while we figure out what's going + # on with https://bugs.webkit.org/show_bug.cgi?id=83076, reduce by + # half the # of workers we run by default on bigger machines. + default_count = super(MacPort, self).default_child_processes() + if default_count >= 8: + cpu_count = self._executive.cpu_count() + return max(1, min(default_count, int(cpu_count / 2))) + return default_count def _build_java_test_support(self): java_tests_path = self._filesystem.join(self.layout_tests_dir(), "java") -- 2.7.4