drm/amdgpu: add flag to delay VM updates
Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
2b48d323b2
commit
fc220f6580
|
@ -525,8 +525,8 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
invalid_flags = ~(AMDGPU_VM_PAGE_READABLE | AMDGPU_VM_PAGE_WRITEABLE |
|
invalid_flags = ~(AMDGPU_VM_DELAY_UPDATE | AMDGPU_VM_PAGE_READABLE |
|
||||||
AMDGPU_VM_PAGE_EXECUTABLE);
|
AMDGPU_VM_PAGE_WRITEABLE | AMDGPU_VM_PAGE_EXECUTABLE);
|
||||||
if ((args->flags & invalid_flags)) {
|
if ((args->flags & invalid_flags)) {
|
||||||
dev_err(&dev->pdev->dev, "invalid flags 0x%08X vs 0x%08X\n",
|
dev_err(&dev->pdev->dev, "invalid flags 0x%08X vs 0x%08X\n",
|
||||||
args->flags, invalid_flags);
|
args->flags, invalid_flags);
|
||||||
|
@ -579,7 +579,7 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!r)
|
if (!r && !(args->flags & AMDGPU_VM_DELAY_UPDATE))
|
||||||
amdgpu_gem_va_update_vm(adev, bo_va);
|
amdgpu_gem_va_update_vm(adev, bo_va);
|
||||||
|
|
||||||
drm_gem_object_unreference_unlocked(gobj);
|
drm_gem_object_unreference_unlocked(gobj);
|
||||||
|
|
|
@ -313,6 +313,9 @@ struct drm_amdgpu_gem_op {
|
||||||
#define AMDGPU_VA_OP_MAP 1
|
#define AMDGPU_VA_OP_MAP 1
|
||||||
#define AMDGPU_VA_OP_UNMAP 2
|
#define AMDGPU_VA_OP_UNMAP 2
|
||||||
|
|
||||||
|
/* Delay the page table update till the next CS */
|
||||||
|
#define AMDGPU_VM_DELAY_UPDATE (1 << 0)
|
||||||
|
|
||||||
/* Mapping flags */
|
/* Mapping flags */
|
||||||
/* readable mapping */
|
/* readable mapping */
|
||||||
#define AMDGPU_VM_PAGE_READABLE (1 << 1)
|
#define AMDGPU_VM_PAGE_READABLE (1 << 1)
|
||||||
|
|
Loading…
Reference in New Issue