diff options
author | Marcin Ślusarz <marcin.slusarz@intel.com> | 2020-07-10 16:24:31 +0200 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-08-10 13:41:29 +0000 |
commit | 9fa64803aadebf8663469832eb90b6a7fe572494 (patch) | |
tree | df3569001f578eabebe25c62be67ae88e32502a9 | |
parent | 03e8b3551cf52b6b8b8efb48af7f413ddc4116b1 (diff) |
intel/perf: streamline error handling in read_oa_samples_until
No functional changes.
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5788>
-rw-r--r-- | src/intel/perf/gen_perf_query.c | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/intel/perf/gen_perf_query.c b/src/intel/perf/gen_perf_query.c index 3d4f922b2b3..309ebe024d3 100644 --- a/src/intel/perf/gen_perf_query.c +++ b/src/intel/perf/gen_perf_query.c @@ -938,20 +938,24 @@ read_oa_samples_until(struct gen_perf_context *perf_ctx, if (len <= 0) { exec_list_push_tail(&perf_ctx->free_sample_buffers, &buf->link); - if (len < 0) { - if (errno == EAGAIN) { - return ((last_timestamp - start_timestamp) < INT32_MAX && - (last_timestamp - start_timestamp) >= - (end_timestamp - start_timestamp)) ? - OA_READ_STATUS_FINISHED : - OA_READ_STATUS_UNFINISHED; - } else { - DBG("Error reading i915 perf samples: %m\n"); - } - } else + if (len == 0) { DBG("Spurious EOF reading i915 perf samples\n"); + return OA_READ_STATUS_ERROR; + } + + if (errno != EAGAIN) { + DBG("Error reading i915 perf samples: %m\n"); + return OA_READ_STATUS_ERROR; + } + + if ((last_timestamp - start_timestamp) >= INT32_MAX) + return OA_READ_STATUS_UNFINISHED; + + if ((last_timestamp - start_timestamp) < + (end_timestamp - start_timestamp)) + return OA_READ_STATUS_UNFINISHED; - return OA_READ_STATUS_ERROR; + return OA_READ_STATUS_FINISHED; } buf->len = len; |