diff options
author | Mark Janes <[email protected]> | 2019-06-03 16:11:16 -0700 |
---|---|---|
committer | Mark Janes <[email protected]> | 2019-08-07 21:33:55 -0700 |
commit | 2f712d21b9913833462031c0a3c52bcf90046e15 (patch) | |
tree | 4762b964b362ed869aa148309574d0db85c7a566 | |
parent | 31758bd36c58c59bf2e872b7844d7fd4c69144db (diff) |
intel/perf: move reap_old_sample_buffers into perf
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/intel/perf/gen_perf.c | 24 | ||||
-rw-r--r-- | src/intel/perf/gen_perf.h | 1 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_performance_query.c | 26 |
3 files changed, 26 insertions, 25 deletions
diff --git a/src/intel/perf/gen_perf.c b/src/intel/perf/gen_perf.c index 131fe34abe3..9df94512dc6 100644 --- a/src/intel/perf/gen_perf.c +++ b/src/intel/perf/gen_perf.c @@ -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; + } +} diff --git a/src/intel/perf/gen_perf.h b/src/intel/perf/gen_perf.h index 05865b8f812..a41414a662c 100644 --- a/src/intel/perf/gen_perf.h +++ b/src/intel/perf/gen_perf.h @@ -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 */ diff --git a/src/mesa/drivers/dri/i965/brw_performance_query.c b/src/mesa/drivers/dri/i965/brw_performance_query.c index cb3bebfc743..f60f0317bf1 100644 --- a/src/mesa/drivers/dri/i965/brw_performance_query.c +++ b/src/mesa/drivers/dri/i965/brw_performance_query.c @@ -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 |