diff --git a/hwbinder_latency_test/HwBinderLatencyTest.py b/hwbinder_latency_test/HwBinderLatencyTest.py
new file mode 100644
index 0000000..5d70625
--- /dev/null
+++ b/hwbinder_latency_test/HwBinderLatencyTest.py
@@ -0,0 +1,107 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2017 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import json
+import logging
+
+from vts.runners.host import asserts
+from vts.runners.host import base_test
+from vts.runners.host import const
+from vts.runners.host import test_runner
+from vts.utils.python.controllers import android_device
+from vts.utils.python.cpu import cpu_frequency_scaling
+
+
+class HwBinderLatencyTest(base_test.BaseTestClass):
+    """A test case for the hwbinder latency benchmarking."""
+
+    def setUpClass(self):
+        required_params = ["hidl_hal_mode"]
+        self.getUserParams(required_params)
+        self.dut = self.registerController(android_device)[0]
+        self.dut.shell.InvokeTerminal("one")
+        self._cpu_freq = cpu_frequency_scaling.CpuFrequencyScalingController(self.dut)
+        self._cpu_freq.DisableCpuScaling()
+
+    def setUp(self):
+        self._cpu_freq.SkipIfThermalThrottling(retry_delay_secs=30)
+
+    def tearDown(self):
+        self._cpu_freq.SkipIfThermalThrottling()
+
+    def tearDownClass(self):
+        self._cpu_freq.EnableCpuScaling()
+
+    def testRunBenchmark32Bit(self):
+        self._uploadResult(self._runBenchmark(32), 32)
+
+    def testRunBenchmark64Bit(self):
+        self._uploadResult(self._runBenchmark(64), 64)
+
+    def _runBenchmark(self, bits):
+        """Runs the native binary and parses its result.
+
+        Args:
+            bits: integer (32 or 64), the bitness of the binary to run.
+
+        Returns:
+            dict, the benchmarking result converted from native binary's JSON
+            output.
+        """
+        logging.info("Start %d-bit hwbinder latency test with HIDL mode=%s",
+                     bits, self.hidl_hal_mode)
+        binary = "/data/local/tmp/%s/libhwbinder_latency%s" % (bits, bits)
+        min_cpu, max_cpu = self._cpu_freq.GetMinAndMaxCpuNo()
+        iterations = 1000 // (max_cpu - min_cpu)
+        results = self.dut.shell.one.Execute([
+            "chmod 755 %s" % binary,
+            "LD_LIBRARY_PATH=/system/lib%s:/data/local/tmp/%s/hw:"
+            "/data/local/tmp/%s:$LD_LIBRARY_PATH "
+            "%s -raw_data -pair %d -i %d -m %s" % (bits, bits, bits,
+                binary, max_cpu - min_cpu, iterations,
+                self.hidl_hal_mode.encode("utf-8"))])
+        # Parses the result.
+        asserts.assertEqual(len(results[const.STDOUT]), 2)
+        logging.info("stderr: %s", results[const.STDERR][1])
+        logging.info("stdout: %s", results[const.STDOUT][1])
+        asserts.assertFalse(
+            any(results[const.EXIT_CODE]),
+            "testRunBenchmark%sBit failed." % (bits))
+        json_result = json.loads(results[const.STDOUT][1]);
+        asserts.assertTrue(json_result["inheritance"] == "PASS",
+            "Scheduler does not support priority inheritance.");
+        return json_result
+
+    def _uploadResult(self, result, bits):
+        """Uploads the output of benchmark program to web DB.
+
+        Args:
+            result: dict which is the benchmarking result.
+            bits: integer (32 or 64).
+        """
+        opts = ["hidl_hal_mode=%s" % self.hidl_hal_mode.encode("utf-8")];
+        min_cpu, max_cpu = self._cpu_freq.GetMinAndMaxCpuNo()
+        for i in range(max_cpu - min_cpu):
+            self.web.AddProfilingDataUnlabeledVector(
+                "hwbinder_latency_%sbits" % bits,
+                result["fifo_%d_data" % i], options=opts,
+                x_axis_label="hwbinder latency",
+                y_axis_label="Frequency")
+
+
+if __name__ == "__main__":
+    test_runner.main()
diff --git a/hwbinder_latency_test/__init__.py b/hwbinder_latency_test/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/hwbinder_latency_test/__init__.py
diff --git a/hwbinder_latency_test/binderize/Android.mk b/hwbinder_latency_test/binderize/Android.mk
new file mode 100644
index 0000000..9c440a4
--- /dev/null
+++ b/hwbinder_latency_test/binderize/Android.mk
@@ -0,0 +1,22 @@
+#
+# Copyright (C) 2017 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := HwBinderBinderizeLatencyTest
+VTS_CONFIG_SRC_DIR := testcases/performance/hwbinder_latency_test/binderize
+include test/vts/tools/build/Android.host_config.mk
diff --git a/hwbinder_latency_test/binderize/AndroidTest.xml b/hwbinder_latency_test/binderize/AndroidTest.xml
new file mode 100644
index 0000000..0c47d69
--- /dev/null
+++ b/hwbinder_latency_test/binderize/AndroidTest.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Config for VTS libhwbinder latency tests">
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="abort-on-push-failure" value="false" />
+        <option name="push-group" value="HostDrivenTest.push" />
+        <option name="cleanup" value="true" />
+        <option name="push" value="DATA/lib/android.hardware.tests.libhwbinder@1.0.so->/data/local/tmp/32/android.hardware.tests.libhwbinder@1.0.so" />
+        <option name="push" value="DATA/lib64/android.hardware.tests.libhwbinder@1.0.so->/data/local/tmp/64/android.hardware.tests.libhwbinder@1.0.so" />
+        <option name="push" value="DATA/nativetest/libhwbinder_latency/libhwbinder_latency->/data/local/tmp/32/libhwbinder_latency32" />
+        <option name="push" value="DATA/nativetest64/libhwbinder_latency/libhwbinder_latency->/data/local/tmp/64/libhwbinder_latency64" />
+        <option name="push" value="DATA/vendor/lib/hw/android.hardware.tests.libhwbinder@1.0-impl.so->/vendor/lib/hw/android.hardware.tests.libhwbinder@1.0-impl.so" />
+        <option name="push" value="DATA/vendor/lib64/hw/android.hardware.tests.libhwbinder@1.0-impl.so->/vendor/lib64/hw/android.hardware.tests.libhwbinder@1.0-impl.so" />
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer">
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="HwBinderBinderizeLatencyTest" />
+        <option name="test-case-path" value="vts/testcases/performance/hwbinder_latency_test/HwBinderLatencyTest" />
+        <option name="test-config-path" value="vts/testcases/performance/hwbinder_latency_test/binderize/HwBinderBinderizeLatencyTest.config" />
+    </test>
+</configuration>
diff --git a/hwbinder_latency_test/binderize/HwBinderBinderizeLatencyTest.config b/hwbinder_latency_test/binderize/HwBinderBinderizeLatencyTest.config
new file mode 100644
index 0000000..fc792a7
--- /dev/null
+++ b/hwbinder_latency_test/binderize/HwBinderBinderizeLatencyTest.config
@@ -0,0 +1,3 @@
+{
+    "hidl_hal_mode": "BINDERIZE"
+}
diff --git a/hwbinder_latency_test/binderize_systrace/Android.mk b/hwbinder_latency_test/binderize_systrace/Android.mk
new file mode 100644
index 0000000..e716aa7
--- /dev/null
+++ b/hwbinder_latency_test/binderize_systrace/Android.mk
@@ -0,0 +1,22 @@
+#
+# Copyright (C) 2017 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := HwBinderBinderizeLatencySystraceTest
+VTS_CONFIG_SRC_DIR := testcases/performance/hwbinder_latency_test/binderize_systrace
+include test/vts/tools/build/Android.host_config.mk
diff --git a/hwbinder_latency_test/binderize_systrace/AndroidTest.xml b/hwbinder_latency_test/binderize_systrace/AndroidTest.xml
new file mode 100644
index 0000000..a6ca43f
--- /dev/null
+++ b/hwbinder_latency_test/binderize_systrace/AndroidTest.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Config for VTS libhwbinder latency tests with systrace">
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="abort-on-push-failure" value="false" />
+        <option name="push-group" value="HostDrivenTest.push" />
+        <option name="cleanup" value="true" />
+        <option name="push" value="DATA/lib/android.hardware.tests.libhwbinder@1.0.so->/data/local/tmp/32/android.hardware.tests.libhwbinder@1.0.so" />
+        <option name="push" value="DATA/lib64/android.hardware.tests.libhwbinder@1.0.so->/data/local/tmp/64/android.hardware.tests.libhwbinder@1.0.so" />
+        <option name="push" value="DATA/nativetest/libhwbinder_latency/libhwbinder_latency->/data/local/tmp/32/libhwbinder_latency32" />
+        <option name="push" value="DATA/nativetest64/libhwbinder_latency/libhwbinder_latency->/data/local/tmp/64/libhwbinder_latency64" />
+        <option name="push" value="DATA/vendor/lib/hw/android.hardware.tests.libhwbinder@1.0-impl.so->/vendor/lib/hw/android.hardware.tests.libhwbinder@1.0-impl.so" />
+        <option name="push" value="DATA/vendor/lib64/hw/android.hardware.tests.libhwbinder@1.0-impl.so->/vendor/lib64/hw/android.hardware.tests.libhwbinder@1.0-impl.so" />
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer">
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="HwBinderBinderizeLatencySystraceTest" />
+        <option name="test-case-path" value="vts/testcases/performance/hwbinder_latency_test/HwBinderLatencyTest" />
+        <option name="test-config-path" value="vts/testcases/performance/hwbinder_latency_test/binderize/HwBinderBinderizeLatencyTest.config" />
+        <option name="enable-systrace" value="true" />
+    </test>
+</configuration>
diff --git a/hwbinder_latency_test/passthrough/Android.mk b/hwbinder_latency_test/passthrough/Android.mk
new file mode 100644
index 0000000..12ca61f
--- /dev/null
+++ b/hwbinder_latency_test/passthrough/Android.mk
@@ -0,0 +1,22 @@
+#
+# Copyright (C) 2017 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := HwBinderPassthroughLatencyTest
+VTS_CONFIG_SRC_DIR := testcases/performance/hwbinder_latency_test/passthrough
+include test/vts/tools/build/Android.host_config.mk
diff --git a/hwbinder_latency_test/passthrough/AndroidTest.xml b/hwbinder_latency_test/passthrough/AndroidTest.xml
new file mode 100644
index 0000000..d6b8f86
--- /dev/null
+++ b/hwbinder_latency_test/passthrough/AndroidTest.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Config for VTS libhwbinder latency tests">
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="abort-on-push-failure" value="false" />
+        <option name="push-group" value="HostDrivenTest.push" />
+        <option name="cleanup" value="true" />
+        <option name="push" value="DATA/lib/android.hardware.tests.libhwbinder@1.0.so->/data/local/tmp/32/android.hardware.tests.libhwbinder@1.0.so" />
+        <option name="push" value="DATA/lib64/android.hardware.tests.libhwbinder@1.0.so->/data/local/tmp/64/android.hardware.tests.libhwbinder@1.0.so" />
+        <option name="push" value="DATA/nativetest/libhwbinder_latency/libhwbinder_latency->/data/local/tmp/32/libhwbinder_latency32" />
+        <option name="push" value="DATA/nativetest64/libhwbinder_latency/libhwbinder_latency->/data/local/tmp/64/libhwbinder_latency64" />
+        <option name="push" value="DATA/vendor/lib/hw/android.hardware.tests.libhwbinder@1.0-impl.so->/vendor/lib/hw/android.hardware.tests.libhwbinder@1.0-impl.so" />
+        <option name="push" value="DATA/vendor/lib64/hw/android.hardware.tests.libhwbinder@1.0-impl.so->/vendor/lib64/hw/android.hardware.tests.libhwbinder@1.0-impl.so" />
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer">
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="HwBinderPassthroughLatencyTest" />
+        <option name="test-case-path" value="vts/testcases/performance/hwbinder_latency_test/HwBinderLatencyTest" />
+        <option name="test-config-path" value="vts/testcases/performance/hwbinder_latency_test/passthrough/HwBinderPassthroughLatencyTest.config" />
+    </test>
+</configuration>
diff --git a/hwbinder_latency_test/passthrough/HwBinderPassthroughLatencyTest.config b/hwbinder_latency_test/passthrough/HwBinderPassthroughLatencyTest.config
new file mode 100644
index 0000000..54d9875
--- /dev/null
+++ b/hwbinder_latency_test/passthrough/HwBinderPassthroughLatencyTest.config
@@ -0,0 +1,3 @@
+{
+    "hidl_hal_mode": "PASSTHROUGH"
+}
diff --git a/hwbinder_latency_test/passthrough_systrace/Android.mk b/hwbinder_latency_test/passthrough_systrace/Android.mk
new file mode 100644
index 0000000..3a619e0
--- /dev/null
+++ b/hwbinder_latency_test/passthrough_systrace/Android.mk
@@ -0,0 +1,22 @@
+#
+# Copyright (C) 2017 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := HwBinderPassthroughLatencySystraceTest
+VTS_CONFIG_SRC_DIR := testcases/performance/hwbinder_latency_test/passthrough_systrace
+include test/vts/tools/build/Android.host_config.mk
diff --git a/hwbinder_latency_test/passthrough_systrace/AndroidTest.xml b/hwbinder_latency_test/passthrough_systrace/AndroidTest.xml
new file mode 100644
index 0000000..767abcb
--- /dev/null
+++ b/hwbinder_latency_test/passthrough_systrace/AndroidTest.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Config for VTS libhwbinder latency tests with systrace">
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="abort-on-push-failure" value="false" />
+        <option name="push-group" value="HostDrivenTest.push" />
+        <option name="cleanup" value="true" />
+        <option name="push" value="DATA/lib/android.hardware.tests.libhwbinder@1.0.so->/data/local/tmp/32/android.hardware.tests.libhwbinder@1.0.so" />
+        <option name="push" value="DATA/lib64/android.hardware.tests.libhwbinder@1.0.so->/data/local/tmp/64/android.hardware.tests.libhwbinder@1.0.so" />
+        <option name="push" value="DATA/nativetest/libhwbinder_latency/libhwbinder_latency->/data/local/tmp/32/libhwbinder_latency32" />
+        <option name="push" value="DATA/nativetest64/libhwbinder_latency/libhwbinder_latency->/data/local/tmp/64/libhwbinder_latency64" />
+        <option name="push" value="DATA/vendor/lib/hw/android.hardware.tests.libhwbinder@1.0-impl.so->/vendor/lib/hw/android.hardware.tests.libhwbinder@1.0-impl.so" />
+        <option name="push" value="DATA/vendor/lib64/hw/android.hardware.tests.libhwbinder@1.0-impl.so->/vendor/lib64/hw/android.hardware.tests.libhwbinder@1.0-impl.so" />
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer">
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="HwBinderPassthroughLatencySystraceTest" />
+        <option name="test-case-path" value="vts/testcases/performance/hwbinder_latency_test/HwBinderLatencyTest" />
+        <option name="test-config-path" value="vts/testcases/performance/hwbinder_latency_test/passthrough/HwBinderPassthroughLatencyTest.config" />
+        <option name="enable-systrace" value="true" />
+    </test>
+</configuration>
