i965: perf: use drmIoctl() instead of ioctl()
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Tue, 6 Feb 2018 23:23:22 +0000 (23:23 +0000)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 8 Feb 2018 10:51:40 +0000 (10:51 +0000)
ioctl() might be interrupted, use drmIoctl() instead as it'll retry
automatically.

Fixes: 27ee83eaf7e "i965: perf: add support for userspace configurations"
Cc: "18.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Tested-by: Mark Janes <mark.a.janes@intel.com>
src/mesa/drivers/dri/i965/brw_performance_query.c

index 5b8f30db2f8cd825fd99d33de175802c0b0bd15e..f4ff858bd5d0fd8b553c901e250eca91a2c876d5 100644 (file)
@@ -1842,7 +1842,7 @@ kernel_has_dynamic_config_support(struct brw_context *brw,
          config.n_mux_regs = 1;
          config.mux_regs_ptr = (uintptr_t) mux_regs;
 
-         if (ioctl(screen->fd, DRM_IOCTL_I915_PERF_REMOVE_CONFIG, &config_id) < 0 &&
+         if (drmIoctl(screen->fd, DRM_IOCTL_I915_PERF_REMOVE_CONFIG, &config_id) < 0 &&
              errno == ENOENT)
             return true;
 
@@ -1889,7 +1889,7 @@ init_oa_configs(struct brw_context *brw, const char *sysfs_dev_dir)
       config.n_flex_regs = query->n_flex_regs;
       config.flex_regs_ptr = (uintptr_t) query->flex_regs;
 
-      ret = ioctl(screen->fd, DRM_IOCTL_I915_PERF_ADD_CONFIG, &config);
+      ret = drmIoctl(screen->fd, DRM_IOCTL_I915_PERF_ADD_CONFIG, &config);
       if (ret < 0) {
          DBG("Failed to load \"%s\" (%s) metrics set in kernel: %s\n",
              query->name, query->guid, strerror(errno));