sna: Only emit an error for terminal mmap failures

If we repeat the mmap, keep quiet. Only emit the ErrorF in case even the
repeated attempts to mmap the bo fail.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2013-06-06 12:18:32 +01:00
parent 70fa080d02
commit d3345cd269
1 changed files with 16 additions and 8 deletions

View File

@ -292,8 +292,8 @@ retry_gtt:
VG_CLEAR(mmap_arg);
mmap_arg.handle = bo->handle;
if (drmIoctl(kgem->fd, DRM_IOCTL_I915_GEM_MMAP_GTT, &mmap_arg)) {
ErrorF("%s: failed to retrieve GTT offset for handle=%d: %d\n",
__FUNCTION__, bo->handle, errno);
int err = errno;
(void)__kgem_throttle_retire(kgem, 0);
if (kgem_expire_cache(kgem))
goto retry_gtt;
@ -303,6 +303,8 @@ retry_gtt:
goto retry_gtt;
}
ErrorF("%s: failed to retrieve GTT offset for handle=%d: %d\n",
__FUNCTION__, bo->handle, err);
return NULL;
}
@ -310,8 +312,8 @@ retry_mmap:
ptr = mmap(0, bytes(bo), PROT_READ | PROT_WRITE, MAP_SHARED,
kgem->fd, mmap_arg.offset);
if (ptr == MAP_FAILED) {
ErrorF("%s: failed to mmap %d, %d bytes, into GTT domain: %d\n",
__FUNCTION__, bo->handle, bytes(bo), errno);
int err = errno;
if (__kgem_throttle_retire(kgem, 0))
goto retry_mmap;
@ -320,6 +322,8 @@ retry_mmap:
goto retry_mmap;
}
ErrorF("%s: failed to mmap handle=%d, %d bytes, into GTT domain: %d\n",
__FUNCTION__, bo->handle, bytes(bo), err);
ptr = NULL;
}
@ -4694,8 +4698,8 @@ retry:
mmap_arg.offset = 0;
mmap_arg.size = bytes(bo);
if (drmIoctl(kgem->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg)) {
ErrorF("%s: failed to mmap %d, %d bytes, into CPU domain: %d\n",
__FUNCTION__, bo->handle, bytes(bo), errno);
int err = errno;
if (__kgem_throttle_retire(kgem, 0))
goto retry;
@ -4704,6 +4708,8 @@ retry:
goto retry;
}
ErrorF("%s: failed to mmap handle=%d, %d bytes, into CPU domain: %d\n",
__FUNCTION__, bo->handle, bytes(bo), err);
return NULL;
}
@ -4734,8 +4740,8 @@ retry:
mmap_arg.offset = 0;
mmap_arg.size = bytes(bo);
if (drmIoctl(kgem->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg)) {
ErrorF("%s: failed to mmap %d, %d bytes, into CPU domain: %d\n",
__FUNCTION__, bo->handle, bytes(bo), errno);
int err = errno;
if (__kgem_throttle_retire(kgem, 0))
goto retry;
@ -4744,6 +4750,8 @@ retry:
goto retry;
}
ErrorF("%s: failed to mmap handle=%d, %d bytes, into CPU domain: %d\n",
__FUNCTION__, bo->handle, bytes(bo), err);
return NULL;
}