intel/perf: move get_free_sample_buf into perf

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Mark Janes
2019-05-30 18:30:25 -07:00
parent e08a69b7f4
commit 31758bd36c
3 changed files with 22 additions and 21 deletions

View File

@@ -824,3 +824,22 @@ gen_perf_query_get_metric_id(struct gen_perf_config *perf,
}
return query->oa_metrics_set_id;
}
struct oa_sample_buf *
gen_perf_get_free_sample_buf(struct gen_perf_context *perf_ctx)
{
struct exec_node *node = exec_list_pop_head(&perf_ctx->free_sample_buffers);
struct oa_sample_buf *buf;
if (node)
buf = exec_node_data(struct oa_sample_buf, node, link);
else {
buf = ralloc_size(perf_ctx->perf, sizeof(*buf));
exec_node_init(&buf->link);
buf->refcount = 0;
buf->len = 0;
}
return buf;
}

View File

@@ -504,6 +504,7 @@ void gen_perf_query_register_mdapi_oa_query(const struct gen_device_info *devinf
struct gen_perf_config *perf);
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);
#endif /* GEN_PERF_H */

View File

@@ -146,25 +146,6 @@ dump_perf_queries(struct brw_context *brw)
/******************************************************************************/
static struct oa_sample_buf *
get_free_sample_buf(struct brw_context *brw)
{
struct exec_node *node = exec_list_pop_head(&brw->perf_ctx.free_sample_buffers);
struct oa_sample_buf *buf;
if (node)
buf = exec_node_data(struct oa_sample_buf, node, link);
else {
buf = ralloc_size(brw, sizeof(*buf));
exec_node_init(&buf->link);
buf->refcount = 0;
buf->len = 0;
}
return buf;
}
static void
reap_old_sample_buffers(struct brw_context *brw)
{
@@ -451,7 +432,7 @@ read_oa_samples_until(struct brw_context *brw,
uint32_t last_timestamp = tail_buf->last_timestamp;
while (1) {
struct oa_sample_buf *buf = get_free_sample_buf(brw);
struct oa_sample_buf *buf = gen_perf_get_free_sample_buf(&brw->perf_ctx);
uint32_t offset;
int len;
@@ -1647,7 +1628,7 @@ brw_init_perf_query_info(struct gl_context *ctx)
* Begin an OA query we can always take a reference on a buffer
* in this list.
*/
struct oa_sample_buf *buf = get_free_sample_buf(brw);
struct oa_sample_buf *buf = gen_perf_get_free_sample_buf(&brw->perf_ctx);
exec_list_push_head(&brw->perf_ctx.sample_buffers, &buf->link);
brw->perf_ctx.oa_stream_fd = -1;