intel/perf: move reap_old_sample_buffers into perf
authorMark Janes <mark.a.janes@intel.com>
Mon, 3 Jun 2019 23:11:16 +0000 (16:11 -0700)
committerMark Janes <mark.a.janes@intel.com>
Thu, 8 Aug 2019 04:33:55 +0000 (21:33 -0700)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/intel/perf/gen_perf.c
src/intel/perf/gen_perf.h
src/mesa/drivers/dri/i965/brw_performance_query.c

index 131fe34..9df9451 100644 (file)
@@ -843,3 +843,27 @@ gen_perf_get_free_sample_buf(struct gen_perf_context *perf_ctx)
 
    return buf;
 }
+
+void
+gen_perf_reap_old_sample_buffers(struct gen_perf_context *perf_ctx)
+{
+   struct exec_node *tail_node =
+      exec_list_get_tail(&perf_ctx->sample_buffers);
+   struct oa_sample_buf *tail_buf =
+      exec_node_data(struct oa_sample_buf, tail_node, link);
+
+   /* Remove all old, unreferenced sample buffers walking forward from
+    * the head of the list, except always leave at least one node in
+    * the list so we always have a node to reference when we Begin
+    * a new query.
+    */
+   foreach_list_typed_safe(struct oa_sample_buf, buf, link,
+                           &perf_ctx->sample_buffers)
+   {
+      if (buf->refcount == 0 && buf != tail_buf) {
+         exec_node_remove(&buf->link);
+         exec_list_push_head(&perf_ctx->free_sample_buffers, &buf->link);
+      } else
+         return;
+   }
+}
index 05865b8..a41414a 100644 (file)
@@ -505,6 +505,7 @@ void gen_perf_query_register_mdapi_oa_query(const struct gen_device_info *devinf
 uint64_t gen_perf_query_get_metric_id(struct gen_perf_config *perf,
                                       const struct gen_perf_query_info *query);
 struct oa_sample_buf * gen_perf_get_free_sample_buf(struct gen_perf_context *perf);
+void gen_perf_reap_old_sample_buffers(struct gen_perf_context *perf_ctx);
 
 
 #endif /* GEN_PERF_H */
index cb3bebf..f60f031 100644 (file)
@@ -147,30 +147,6 @@ dump_perf_queries(struct brw_context *brw)
 /******************************************************************************/
 
 static void
-reap_old_sample_buffers(struct brw_context *brw)
-{
-   struct exec_node *tail_node =
-      exec_list_get_tail(&brw->perf_ctx.sample_buffers);
-   struct oa_sample_buf *tail_buf =
-      exec_node_data(struct oa_sample_buf, tail_node, link);
-
-   /* Remove all old, unreferenced sample buffers walking forward from
-    * the head of the list, except always leave at least one node in
-    * the list so we always have a node to reference when we Begin
-    * a new query.
-    */
-   foreach_list_typed_safe(struct oa_sample_buf, buf, link,
-                           &brw->perf_ctx.sample_buffers)
-   {
-      if (buf->refcount == 0 && buf != tail_buf) {
-         exec_node_remove(&buf->link);
-         exec_list_push_head(&brw->perf_ctx.free_sample_buffers, &buf->link);
-      } else
-         return;
-   }
-}
-
-static void
 free_sample_bufs(struct brw_context *brw)
 {
    foreach_list_typed_safe(struct oa_sample_buf, buf, link,
@@ -363,7 +339,7 @@ drop_from_unaccumulated_query_list(struct brw_context *brw,
 
    obj->oa.samples_head = NULL;
 
-   reap_old_sample_buffers(brw);
+   gen_perf_reap_old_sample_buffers(&brw->perf_ctx);
 }
 
 static bool