intel/perf: move get_free_sample_buf into perf
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -824,3 +824,22 @@ gen_perf_query_get_metric_id(struct gen_perf_config *perf,
|
|||||||
}
|
}
|
||||||
return query->oa_metrics_set_id;
|
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;
|
||||||
|
}
|
||||||
|
@@ -504,6 +504,7 @@ void gen_perf_query_register_mdapi_oa_query(const struct gen_device_info *devinf
|
|||||||
struct gen_perf_config *perf);
|
struct gen_perf_config *perf);
|
||||||
uint64_t gen_perf_query_get_metric_id(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);
|
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 */
|
#endif /* GEN_PERF_H */
|
||||||
|
@@ -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
|
static void
|
||||||
reap_old_sample_buffers(struct brw_context *brw)
|
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;
|
uint32_t last_timestamp = tail_buf->last_timestamp;
|
||||||
|
|
||||||
while (1) {
|
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;
|
uint32_t offset;
|
||||||
int len;
|
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
|
* Begin an OA query we can always take a reference on a buffer
|
||||||
* in this list.
|
* 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);
|
exec_list_push_head(&brw->perf_ctx.sample_buffers, &buf->link);
|
||||||
|
|
||||||
brw->perf_ctx.oa_stream_fd = -1;
|
brw->perf_ctx.oa_stream_fd = -1;
|
||||||
|
Reference in New Issue
Block a user