Exclude IDLE op from metrics db used for "Overview Page | Top 10 TF operations" analysis.

PiperOrigin-RevId: 295038203
Change-Id: Ie2a46b36600f929a292aac9a5d0a8175c5acc934
diff --git a/tensorflow/core/profiler/convert/op_stats_to_overview_page.cc b/tensorflow/core/profiler/convert/op_stats_to_overview_page.cc
index edbbd6f..fa221e5 100644
--- a/tensorflow/core/profiler/convert/op_stats_to_overview_page.cc
+++ b/tensorflow/core/profiler/convert/op_stats_to_overview_page.cc
@@ -144,8 +144,8 @@
 
 OverviewPageAnalysis ComputeAnalysisResult(const OpStats& op_stats) {
   OverviewPageAnalysis analysis;
-  OpMetricsDb metrics_db =
-      CreateTfMetricsDbFromHloMetricsDb(op_stats.device_op_metrics_db());
+  OpMetricsDb metrics_db = CreateTfMetricsDbFromHloMetricsDb(
+      op_stats.device_op_metrics_db(), /*with_idle=*/false);
   uint64 total_device_time_ps = metrics_db.total_time_ps();
   constexpr int kNumTopOpsShown = 10;
   double device_cumulative_fraction = 0.0;
diff --git a/tensorflow/core/profiler/utils/op_metrics_db_utils.cc b/tensorflow/core/profiler/utils/op_metrics_db_utils.cc
index d59bc1a..278cfa8 100644
--- a/tensorflow/core/profiler/utils/op_metrics_db_utils.cc
+++ b/tensorflow/core/profiler/utils/op_metrics_db_utils.cc
@@ -90,8 +90,8 @@
   metrics->set_self_time_ps(idle_time_ps);
 }
 
-OpMetricsDb CreateTfMetricsDbFromHloMetricsDb(
-    const OpMetricsDb& hlo_metrics_db) {
+OpMetricsDb CreateTfMetricsDbFromHloMetricsDb(const OpMetricsDb& hlo_metrics_db,
+                                              bool with_idle) {
   OpMetricsDb tf_op_metrics_db;
   DeviceTfOpMetricsDbBuilder builder(&tf_op_metrics_db);
   for (const auto& hlo_op_metrics : hlo_metrics_db.metrics_db()) {
@@ -101,11 +101,18 @@
                                                 hlo_op_metrics);
     } else {
       DCHECK_EQ(hlo_op_metrics.name(), "IDLE");
-      builder.UpdateTfOpMetricsWithHloOpMetrics("IDLE", "IDLE", hlo_op_metrics);
+      if (with_idle) {
+        builder.UpdateTfOpMetricsWithHloOpMetrics("IDLE", "IDLE",
+                                                  hlo_op_metrics);
+      }
     }
   }
   tf_op_metrics_db.set_total_op_time_ps(hlo_metrics_db.total_op_time_ps());
-  tf_op_metrics_db.set_total_time_ps(hlo_metrics_db.total_time_ps());
+
+  tf_op_metrics_db.set_total_time_ps(with_idle
+                                         ? hlo_metrics_db.total_time_ps()
+                                         : hlo_metrics_db.total_op_time_ps());
+
   return tf_op_metrics_db;
 }
 }  // namespace profiler
diff --git a/tensorflow/core/profiler/utils/op_metrics_db_utils.h b/tensorflow/core/profiler/utils/op_metrics_db_utils.h
index 52b895e..8cd4737 100644
--- a/tensorflow/core/profiler/utils/op_metrics_db_utils.h
+++ b/tensorflow/core/profiler/utils/op_metrics_db_utils.h
@@ -68,8 +68,8 @@
 void AddIdleOp(OpMetricsDb* db);
 
 // Converts from Hlo-op metrics to Tf-op metrics.
-OpMetricsDb CreateTfMetricsDbFromHloMetricsDb(
-    const OpMetricsDb& hlo_metrics_db);
+OpMetricsDb CreateTfMetricsDbFromHloMetricsDb(const OpMetricsDb& hlo_metrics_db,
+                                              bool with_idle = true);
 }  // namespace profiler
 }  // namespace tensorflow