diff --git a/crosperf/benchmark.py b/crosperf/benchmark.py
index c8a26bb..93462fa 100644
--- a/crosperf/benchmark.py
+++ b/crosperf/benchmark.py
@@ -29,3 +29,5 @@
     self.iteration_adjusted = False
     self.suite = suite
     self.show_all_results = show_all_results
+    if self.suite == "telemetry":
+      self.show_all_results = True
diff --git a/crosperf/download_images.py b/crosperf/download_images.py
index ac8fd3a..3927000 100644
--- a/crosperf/download_images.py
+++ b/crosperf/download_images.py
@@ -26,6 +26,9 @@
     build_id_tuple = eval(build_id_tuple_str)
     build_id = build_id_tuple[0]
 
+    if self.log_level == "average":
+      self._logger.LogOutput ("Preparing to download %s image to local directory." % build_id)
+
     # Make sure the directory for downloading the image exists.
     download_path = os.path.join(chromeos_root, "chroot/tmp",
                                  build_id)
@@ -42,11 +45,20 @@
                  "/chromiumos_test_image.tar.xz /tmp/%s" % (build_id,
                                                             build_id))
 
+      if self.log_level != "verbose":
+        self._logger.LogOutput ("CMD: %s" % command)
       retval = self._ce.ChrootRunCommand(chromeos_root, command)
 
       # Uncompress and untar the downloaded image.
       command = ("cd /tmp/%s ;unxz chromiumos_test_image.tar.xz; "
                  "tar -xvf chromiumos_test_image.tar" % build_id)
+      if self.log_level != "verbose":
+        self._logger.LogOutput("CMD: %s" % command)
+        print("(Uncompressing and un-tarring may take a couple of minutes..."
+              "please be patient.)")
       retval = self._ce.ChrootRunCommand(chromeos_root, command)
 
+    if retval == 0 and self.log_level != "quiet":
+      self._logger.LogOutput("Using image from %s." % image_path)
+
     return retval, image_path
diff --git a/crosperf/experiment_files/telemetry-crosperf-with-external-chrome-src.exp b/crosperf/experiment_files/telemetry-crosperf-with-external-chrome-src.exp
index 551fac6..517c13f 100644
--- a/crosperf/experiment_files/telemetry-crosperf-with-external-chrome-src.exp
+++ b/crosperf/experiment_files/telemetry-crosperf-with-external-chrome-src.exp
@@ -23,5 +23,9 @@
 # Replace the chromeos image below with the actual path to your test imnage.
 test_image {
   chromeos_image:<path-to-your-chroot>/src/build/images/<board>/test-image/chromiumos_test_image.bin
+  # Replace '/usr/local/google/chrome-top' with the path to the
+  # top of your Chrome source tree. From that directory
+  # "./src/tools/perf/run_benchmark" should be a valid file path.
+  chrome_src:/usr/local/google/chrome-top
 }
 
diff --git a/crosperf/label.py b/crosperf/label.py
index 52f98ce..bbcf18a 100644
--- a/crosperf/label.py
+++ b/crosperf/label.py
@@ -45,10 +45,10 @@
     self.chromeos_root = chromeos_root
     if not chrome_src:
       self.chrome_src = os.path.join(self.chromeos_root,
-          ".cache/distfiles/target/chrome-src-internal/src")
+          ".cache/distfiles/target/chrome-src-internal")
       if not os.path.exists(self.chrome_src):
         self.chrome_src = os.path.join(self.chromeos_root,
-          ".cache/distfiles/target/chrome-src/src")
+          ".cache/distfiles/target/chrome-src")
     else:
       chromeos_src = misc.CanonicalizePath(chrome_src)
       if not chromeos_src:
diff --git a/crosperf/suite_runner.py b/crosperf/suite_runner.py
index 8e2847e..1f816e4 100644
--- a/crosperf/suite_runner.py
+++ b/crosperf/suite_runner.py
@@ -53,7 +53,7 @@
   def Run(self, machine, label, benchmark, test_args, profiler_args):
     self.PinGovernorExecutionFrequencies(machine, label.chromeos_root)
     if benchmark.suite == "telemetry":
-      return self.Telemetry_Run(machine, label, benchmark)
+      return self.Telemetry_Run(machine, label, benchmark, profiler_args)
     elif benchmark.suite == "telemetry_Crosperf":
       return self.Telemetry_Crosperf_Run(machine, label, benchmark,
                                          test_args, profiler_args)
@@ -126,7 +126,7 @@
     if test_args:
       options += " %s" % test_args
     if profiler_args:
-      self._logger.LogError("test_that does not support profiler.")
+      self._logger.LogFatal("test_that does not support profiler.")
     command = "rm -rf /usr/local/autotest/results/*"
     self._ce.CrosRunCommand(command, machine=machine, username="root",
                             chromeos_root=label.chromeos_root)
@@ -188,7 +188,7 @@
                                       cros_sdk_options=chrome_root_options)
 
 
-  def Telemetry_Run(self, machine, label, benchmark):
+  def Telemetry_Run(self, machine, label, benchmark, profiler_args):
     telemetry_run_path = ""
     if not os.path.isdir(label.chrome_src):
       self._logger.LogFatal("Cannot find chrome src dir to"
@@ -198,6 +198,9 @@
       if not os.path.exists(telemetry_run_path):
         self._logger.LogFatal("Cannot find %s directory." % telemetry_run_path)
 
+    if profiler_args:
+      self._logger.LogFatal("Telemetry does not support the perf profiler.")
+
     rsa_key = os.path.join(label.chromeos_root,
         "src/scripts/mod_for_test_scripts/ssh_keys/testing_rsa")
 
