diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index 926b72d..f322aa3 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,5 +1,40 @@
 2019-12-04  Jonathan Bedard  <jbedard@apple.com>
 
+        Python 3: Add support in webkitpy.benchmark_runner
+        https://bugs.webkit.org/show_bug.cgi?id=204784
+
+        Reviewed by Stephanie Lewis.
+
+        * Scripts/test-webkitpy-python3: Add webkitpy.benchmark_runner.
+        * Scripts/webkitpy/benchmark_runner/benchmark_results.py:
+        (BenchmarkResults): Arithmetic aggregator should use integer division.
+        (BenchmarkResults._format_values): Convert map to list.
+        (BenchmarkResults._aggregate_results): Ditto.
+        (BenchmarkResults._aggregate_results_for_test): Use Python 2/3 compatible iteritems.
+        (BenchmarkResults._subtest_values_by_config_iteration): Ditto.
+        (BenchmarkResults._lint_subtest_results): Ditto.
+        (BenchmarkResults._lint_configuration): Ditto.
+        * Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py: Use explicit imports.
+        * Scripts/webkitpy/benchmark_runner/benchmark_runner.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowserwpe_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/run_benchmark.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py: Ditto.
+
+2019-12-04  Jonathan Bedard  <jbedard@apple.com>
+
         Python 3: Add support in webkitpy.tool
         https://bugs.webkit.org/show_bug.cgi?id=204838
 
diff --git a/Tools/Scripts/test-webkitpy-python3 b/Tools/Scripts/test-webkitpy-python3
index 9b42a7c..0255734 100755
--- a/Tools/Scripts/test-webkitpy-python3
+++ b/Tools/Scripts/test-webkitpy-python3
@@ -34,6 +34,7 @@
 
 
 PYTHON3_COMPATIBLE_DIRECTORIES = [
+  'webkitpy.benchmark_runner',
   'webkitpy.common',
   'webkitpy.layout_tests.controllers',
   'webkitpy.layout_tests.layout_package',
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results.py b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results.py
index 336daa6..b22e4b3 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results.py
@@ -25,12 +25,14 @@
 import re
 import sys
 
+from webkitpy.common.iteration_compatibility import iteritems
+
 
 class BenchmarkResults(object):
 
     aggregators = {
         'Total': (lambda values: sum(values)),
-        'Arithmetic': (lambda values: sum(values) / len(values)),
+        'Arithmetic': (lambda values: sum(values) // len(values)),
         'Geometric': (lambda values: math.exp(sum(map(math.log, values)) / len(values))),
     }
     metric_to_unit = {
@@ -79,7 +81,7 @@
 
     @classmethod
     def _format_values(cls, metric_name, values, scale_unit=True, show_iteration_values=False):
-        values = map(float, values)
+        values = list(map(float, values))
         total = sum(values)
         mean = total / len(values)
         square_sum = sum(map(lambda x: x * x, values))
@@ -104,7 +106,7 @@
         if unit == 'ms':
             unit = 's'
             mean = float(mean) / 1000
-            values = map(lambda value: float(value) / 1000, values)
+            values = list(map(lambda value: float(value) / 1000, values))
             sample_stdev /= 1000
 
         base = 1024 if unit == 'B' else 1000
@@ -135,7 +137,7 @@
     @classmethod
     def _aggregate_results(cls, tests):
         results = {}
-        for test_name, test in tests.iteritems():
+        for test_name, test in iteritems(tests):
             results[test_name] = cls._aggregate_results_for_test(test)
         return results
 
@@ -143,10 +145,10 @@
     def _aggregate_results_for_test(cls, test):
         subtest_results = cls._aggregate_results(test['tests']) if 'tests' in test else {}
         results = {}
-        for metric_name, metric in test.get('metrics', {}).iteritems():
+        for metric_name, metric in iteritems(test.get('metrics', {})):
             if not isinstance(metric, list):
                 results[metric_name] = {None: {}}
-                for config_name, values in metric.iteritems():
+                for config_name, values in iteritems(metric):
                     results[metric_name][None][config_name] = cls._flatten_list(values)
                 continue
 
@@ -154,7 +156,7 @@
             results[metric_name] = {}
             for aggregator in aggregator_list:
                 values_by_config_iteration = cls._subtest_values_by_config_iteration(subtest_results, metric_name, aggregator)
-                for config_name, values_by_iteration in values_by_config_iteration.iteritems():
+                for config_name, values_by_iteration in iteritems(values_by_config_iteration):
                     results[metric_name].setdefault(aggregator, {})
                     results[metric_name][aggregator][config_name] = [cls._aggregate_values(aggregator, values) for values in values_by_iteration]
 
@@ -173,17 +175,17 @@
     @classmethod
     def _subtest_values_by_config_iteration(cls, subtest_results, metric_name, aggregator):
         values_by_config_iteration = {}
-        for subtest_name, subtest in subtest_results.iteritems():
+        for subtest_name, subtest in iteritems(subtest_results):
             results_for_metric = subtest['metrics'].get(metric_name, {})
             if aggregator in results_for_metric:
                 results_for_aggregator = results_for_metric.get(aggregator)
             elif None in results_for_metric:
                 results_for_aggregator = results_for_metric.get(None)
             elif len(results_for_metric.keys()) == 1:
-                results_for_aggregator = results_for_metric.get(results_for_metric.keys()[0])
+                results_for_aggregator = results_for_metric.get(list(results_for_metric.keys())[0])
             else:
                 results_for_aggregator = {}
-            for config_name, values in results_for_aggregator.iteritems():
+            for config_name, values in iteritems(results_for_aggregator):
                 values_by_config_iteration.setdefault(config_name, [[] for _ in values])
                 for iteration, value in enumerate(values):
                     values_by_config_iteration[config_name][iteration].append(value)
@@ -201,7 +203,7 @@
     @classmethod
     def _lint_subtest_results(cls, subtests, parent_test, parent_aggregator_list):
         iteration_groups_by_config = {}
-        for test_name, test in subtests.iteritems():
+        for test_name, test in iteritems(subtests):
             aggregator_list = None
 
             if 'metrics' not in test and 'tests' not in test:
@@ -211,7 +213,7 @@
                 metrics = test['metrics']
                 if not isinstance(metrics, dict):
                     raise TypeError('The metrics in "%s" is not a dictionary' % test_name)
-                for metric_name, metric in metrics.iteritems():
+                for metric_name, metric in iteritems(metrics):
                     if isinstance(metric, list):
                         cls._lint_aggregator_list(test_name, metric_name, metric, parent_test, parent_aggregator_list)
                         aggregator_list = metric
@@ -247,7 +249,7 @@
     @classmethod
     def _lint_configuration(cls, test_name, metric_name, configurations, parent_test, parent_aggregator_list, iteration_groups_by_config):
         # FIXME: Check that config_name is always "current".
-        for config_name, values in configurations.iteritems():
+        for config_name, values in iteritems(configurations):
             nested_list_count = [isinstance(value, list) for value in values].count(True)
             if nested_list_count not in [0, len(values)]:
                 raise TypeError('"%s" metric of "%s" had malformed values: %s' % (metric_name, test_name, json.dumps(values)))
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py
index bb06fde..fc9ff01 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py
@@ -22,7 +22,7 @@
 
 import unittest
 
-from benchmark_results import BenchmarkResults
+from webkitpy.benchmark_runner.benchmark_results import BenchmarkResults
 
 
 class BenchmarkResultsTest(unittest.TestCase):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py
index d72c529..20ab6c2 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py
@@ -12,9 +12,9 @@
 import os
 import urlparse
 
-from benchmark_builder import BenchmarkBuilder
-from benchmark_results import BenchmarkResults
-from browser_driver.browser_driver_factory import BrowserDriverFactory
+from webkitpy.benchmark_runner.benchmark_builder import BenchmarkBuilder
+from webkitpy.benchmark_runner.benchmark_results import BenchmarkResults
+from webkitpy.benchmark_runner.browser_driver.browser_driver_factory import BrowserDriverFactory
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py
index 6a33dd5..d28325d 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py
@@ -14,7 +14,7 @@
 import os
 
 from webkitpy.benchmark_runner.utils import load_subclasses
-from browser_driver_factory import BrowserDriverFactory
+from webkitpy.benchmark_runner.browser_driver.browser_driver_factory import BrowserDriverFactory
 
 
 def browser_driver_loader(browser_driver_class):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py
index 61abc64..81ea60f 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py
@@ -34,7 +34,7 @@
 except ImportError:
     pass
 from webkitpy.benchmark_runner.utils import force_remove
-from browser_driver import BrowserDriver
+from webkitpy.benchmark_runner.browser_driver.browser_driver import BrowserDriver
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py
index 4798603..79c4096 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py
@@ -26,7 +26,7 @@
 
 import os
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class LinuxChromeDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py
index b90aa44..737bb66 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py
@@ -24,7 +24,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class CogBrowserDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py
index b74a2f8..3886ecb 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py
@@ -24,7 +24,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class EpiphanyBrowserDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py
index dff764c..9ea1e15 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py
@@ -26,7 +26,7 @@
 
 import os
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class LinuxFirefoxDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py
index e8d5c09..e9c4f9f 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py
@@ -24,7 +24,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class GTKMiniBrowserDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowserwpe_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowserwpe_driver.py
index 2bb2401..d49c738 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowserwpe_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowserwpe_driver.py
@@ -24,7 +24,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class WPEMiniBrowserDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py
index ee2dbba..1ef01d5 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py
@@ -4,7 +4,7 @@
 import subprocess
 import time
 
-from browser_driver import BrowserDriver
+from webkitpy.benchmark_runner.browser_driver.browser_driver import BrowserDriver
 from webkitpy.benchmark_runner.utils import write_defaults
 
 
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py
index 2782aed..3509981 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py
@@ -3,7 +3,7 @@
 import logging
 import os
 
-from osx_browser_driver import OSXBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.osx_browser_driver import OSXBrowserDriver
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py
index 392497e..7cff5a5 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py
@@ -3,7 +3,7 @@
 import logging
 import os
 
-from osx_browser_driver import OSXBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.osx_browser_driver import OSXBrowserDriver
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py
index 2e131c0..d168728 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py
@@ -6,7 +6,7 @@
 import subprocess
 import time
 
-from osx_browser_driver import OSXBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.osx_browser_driver import OSXBrowserDriver
 from webkitpy.benchmark_runner.utils import force_remove
 
 
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py
index 91732c4..53c870c1 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py
@@ -15,7 +15,7 @@
 import imp
 
 from webkitpy.benchmark_runner.utils import load_subclasses
-from http_server_driver_factory import HTTPServerDriverFactory
+from webkitpy.benchmark_runner.http_server_driver.http_server_driver_factory import HTTPServerDriverFactory
 
 
 def http_server_driver_loader(http_server_driver_class):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py
index d74375f..f24611d 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py
@@ -8,7 +8,7 @@
 import sys
 import time
 
-from http_server_driver import HTTPServerDriver
+from webkitpy.benchmark_runner.http_server_driver.http_server_driver import HTTPServerDriver
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py b/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py
index e230204..eacb369 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py
@@ -7,10 +7,10 @@
 import os
 import sys
 
-from browser_driver.browser_driver_factory import BrowserDriverFactory
-from benchmark_runner import BenchmarkRunner
-from webdriver_benchmark_runner import WebDriverBenchmarkRunner
-from webserver_benchmark_runner import WebServerBenchmarkRunner
+from webkitpy.benchmark_runner.browser_driver.browser_driver_factory import BrowserDriverFactory
+from webkitpy.benchmark_runner.benchmark_runner import BenchmarkRunner
+from webkitpy.benchmark_runner.webdriver_benchmark_runner import WebDriverBenchmarkRunner
+from webkitpy.benchmark_runner.webserver_benchmark_runner import WebServerBenchmarkRunner
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py b/Tools/Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py
index 203730f..6f1611e 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py
@@ -4,8 +4,8 @@
 import logging
 import urlparse
 
-from benchmark_runner import BenchmarkRunner
-from http_server_driver.http_server_driver_factory import HTTPServerDriverFactory
+from webkitpy.benchmark_runner.benchmark_runner import BenchmarkRunner
+from webkitpy.benchmark_runner.http_server_driver.http_server_driver_factory import HTTPServerDriverFactory
 from webkitpy.common.timeout_context import Timeout
 
 
