intel/perf: move close_perf into perf

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Mark Janes
2019-06-26 11:43:20 -07:00
parent f57c8a6dc1
commit 79ded7cc8f
3 changed files with 20 additions and 18 deletions

View File

@@ -903,3 +903,18 @@ gen_perf_snapshot_statistics_registers(void *context,
offset_in_bytes + i * sizeof(uint64_t)); offset_in_bytes + i * sizeof(uint64_t));
} }
} }
void
gen_perf_close(struct gen_perf_context *perfquery,
const struct gen_perf_query_info *query)
{
if (perfquery->oa_stream_fd != -1) {
close(perfquery->oa_stream_fd);
perfquery->oa_stream_fd = -1;
}
if (query->kind == GEN_PERF_QUERY_TYPE_RAW) {
struct gen_perf_query_info *raw_query =
(struct gen_perf_query_info *) query;
raw_query->oa_metrics_set_id = 0;
}
}

View File

@@ -588,4 +588,7 @@ void gen_perf_snapshot_statistics_registers(void *context,
struct gen_perf_query_object *obj, struct gen_perf_query_object *obj,
uint32_t offset_in_bytes); uint32_t offset_in_bytes);
void gen_perf_close(struct gen_perf_context *perfquery,
const struct gen_perf_query_info *query);
#endif /* GEN_PERF_H */ #endif /* GEN_PERF_H */

View File

@@ -695,22 +695,6 @@ open_i915_perf_oa_stream(struct brw_context *brw,
return true; return true;
} }
static void
close_perf(struct brw_context *brw,
const struct gen_perf_query_info *query)
{
struct gen_perf_context *perf_ctx = &brw->perf_ctx;
if (perf_ctx->oa_stream_fd != -1) {
close(perf_ctx->oa_stream_fd);
perf_ctx->oa_stream_fd = -1;
}
if (query->kind == GEN_PERF_QUERY_TYPE_RAW) {
struct gen_perf_query_info *raw_query =
(struct gen_perf_query_info *) query;
raw_query->oa_metrics_set_id = 0;
}
}
static void static void
capture_frequency_stat_register(struct brw_context *brw, capture_frequency_stat_register(struct brw_context *brw,
struct brw_bo *bo, struct brw_bo *bo,
@@ -817,7 +801,7 @@ brw_begin_perf_query(struct gl_context *ctx,
o->Id, perf_ctx->current_oa_metrics_set_id, metric_id); o->Id, perf_ctx->current_oa_metrics_set_id, metric_id);
return false; return false;
} else } else
close_perf(brw, query); gen_perf_close(perf_ctx, query);
} }
/* If the OA counters aren't already on, enable them. */ /* If the OA counters aren't already on, enable them. */
@@ -1384,7 +1368,7 @@ brw_delete_perf_query(struct gl_context *ctx,
*/ */
if (--perf_ctx->n_query_instances == 0) { if (--perf_ctx->n_query_instances == 0) {
gen_perf_free_sample_bufs(perf_ctx); gen_perf_free_sample_bufs(perf_ctx);
close_perf(brw, obj->queryinfo); gen_perf_close(perf_ctx, obj->queryinfo);
} }
free(obj); free(obj);