|
@@ -28,6 +28,8 @@
|
|
|
* Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
|
|
|
*/
|
|
|
|
|
|
+#define pr_fmt(fmt) "[TTM] " fmt
|
|
|
+
|
|
|
#include "ttm/ttm_module.h"
|
|
|
#include "ttm/ttm_bo_driver.h"
|
|
|
#include "ttm/ttm_placement.h"
|
|
@@ -68,15 +70,13 @@ static void ttm_mem_type_debug(struct ttm_bo_device *bdev, int mem_type)
|
|
|
{
|
|
|
struct ttm_mem_type_manager *man = &bdev->man[mem_type];
|
|
|
|
|
|
- printk(KERN_ERR TTM_PFX " has_type: %d\n", man->has_type);
|
|
|
- printk(KERN_ERR TTM_PFX " use_type: %d\n", man->use_type);
|
|
|
- printk(KERN_ERR TTM_PFX " flags: 0x%08X\n", man->flags);
|
|
|
- printk(KERN_ERR TTM_PFX " gpu_offset: 0x%08lX\n", man->gpu_offset);
|
|
|
- printk(KERN_ERR TTM_PFX " size: %llu\n", man->size);
|
|
|
- printk(KERN_ERR TTM_PFX " available_caching: 0x%08X\n",
|
|
|
- man->available_caching);
|
|
|
- printk(KERN_ERR TTM_PFX " default_caching: 0x%08X\n",
|
|
|
- man->default_caching);
|
|
|
+ pr_err(" has_type: %d\n", man->has_type);
|
|
|
+ pr_err(" use_type: %d\n", man->use_type);
|
|
|
+ pr_err(" flags: 0x%08X\n", man->flags);
|
|
|
+ pr_err(" gpu_offset: 0x%08lX\n", man->gpu_offset);
|
|
|
+ pr_err(" size: %llu\n", man->size);
|
|
|
+ pr_err(" available_caching: 0x%08X\n", man->available_caching);
|
|
|
+ pr_err(" default_caching: 0x%08X\n", man->default_caching);
|
|
|
if (mem_type != TTM_PL_SYSTEM)
|
|
|
(*man->func->debug)(man, TTM_PFX);
|
|
|
}
|
|
@@ -86,16 +86,16 @@ static void ttm_bo_mem_space_debug(struct ttm_buffer_object *bo,
|
|
|
{
|
|
|
int i, ret, mem_type;
|
|
|
|
|
|
- printk(KERN_ERR TTM_PFX "No space for %p (%lu pages, %luK, %luM)\n",
|
|
|
- bo, bo->mem.num_pages, bo->mem.size >> 10,
|
|
|
- bo->mem.size >> 20);
|
|
|
+ pr_err("No space for %p (%lu pages, %luK, %luM)\n",
|
|
|
+ bo, bo->mem.num_pages, bo->mem.size >> 10,
|
|
|
+ bo->mem.size >> 20);
|
|
|
for (i = 0; i < placement->num_placement; i++) {
|
|
|
ret = ttm_mem_type_from_flags(placement->placement[i],
|
|
|
&mem_type);
|
|
|
if (ret)
|
|
|
return;
|
|
|
- printk(KERN_ERR TTM_PFX " placement[%d]=0x%08X (%d)\n",
|
|
|
- i, placement->placement[i], mem_type);
|
|
|
+ pr_err(" placement[%d]=0x%08X (%d)\n",
|
|
|
+ i, placement->placement[i], mem_type);
|
|
|
ttm_mem_type_debug(bo->bdev, mem_type);
|
|
|
}
|
|
|
}
|
|
@@ -344,7 +344,7 @@ static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
|
|
|
ret = -ENOMEM;
|
|
|
break;
|
|
|
default:
|
|
|
- printk(KERN_ERR TTM_PFX "Illegal buffer object type\n");
|
|
|
+ pr_err("Illegal buffer object type\n");
|
|
|
ret = -EINVAL;
|
|
|
break;
|
|
|
}
|
|
@@ -432,7 +432,7 @@ moved:
|
|
|
if (bo->evicted) {
|
|
|
ret = bdev->driver->invalidate_caches(bdev, bo->mem.placement);
|
|
|
if (ret)
|
|
|
- printk(KERN_ERR TTM_PFX "Can not flush read caches\n");
|
|
|
+ pr_err("Can not flush read caches\n");
|
|
|
bo->evicted = false;
|
|
|
}
|
|
|
|
|
@@ -734,9 +734,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible,
|
|
|
|
|
|
if (unlikely(ret != 0)) {
|
|
|
if (ret != -ERESTARTSYS) {
|
|
|
- printk(KERN_ERR TTM_PFX
|
|
|
- "Failed to expire sync object before "
|
|
|
- "buffer eviction.\n");
|
|
|
+ pr_err("Failed to expire sync object before buffer eviction\n");
|
|
|
}
|
|
|
goto out;
|
|
|
}
|
|
@@ -757,9 +755,8 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible,
|
|
|
no_wait_reserve, no_wait_gpu);
|
|
|
if (ret) {
|
|
|
if (ret != -ERESTARTSYS) {
|
|
|
- printk(KERN_ERR TTM_PFX
|
|
|
- "Failed to find memory space for "
|
|
|
- "buffer 0x%p eviction.\n", bo);
|
|
|
+ pr_err("Failed to find memory space for buffer 0x%p eviction\n",
|
|
|
+ bo);
|
|
|
ttm_bo_mem_space_debug(bo, &placement);
|
|
|
}
|
|
|
goto out;
|
|
@@ -769,7 +766,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible,
|
|
|
no_wait_reserve, no_wait_gpu);
|
|
|
if (ret) {
|
|
|
if (ret != -ERESTARTSYS)
|
|
|
- printk(KERN_ERR TTM_PFX "Buffer eviction failed\n");
|
|
|
+ pr_err("Buffer eviction failed\n");
|
|
|
ttm_bo_mem_put(bo, &evict_mem);
|
|
|
goto out;
|
|
|
}
|
|
@@ -1180,7 +1177,7 @@ int ttm_bo_init(struct ttm_bo_device *bdev,
|
|
|
|
|
|
ret = ttm_mem_global_alloc(mem_glob, acc_size, false, false);
|
|
|
if (ret) {
|
|
|
- printk(KERN_ERR TTM_PFX "Out of kernel memory.\n");
|
|
|
+ pr_err("Out of kernel memory\n");
|
|
|
if (destroy)
|
|
|
(*destroy)(bo);
|
|
|
else
|
|
@@ -1191,7 +1188,7 @@ int ttm_bo_init(struct ttm_bo_device *bdev,
|
|
|
size += buffer_start & ~PAGE_MASK;
|
|
|
num_pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
|
|
|
if (num_pages == 0) {
|
|
|
- printk(KERN_ERR TTM_PFX "Illegal buffer object size.\n");
|
|
|
+ pr_err("Illegal buffer object size\n");
|
|
|
if (destroy)
|
|
|
(*destroy)(bo);
|
|
|
else
|
|
@@ -1342,8 +1339,7 @@ static int ttm_bo_force_list_clean(struct ttm_bo_device *bdev,
|
|
|
if (allow_errors) {
|
|
|
return ret;
|
|
|
} else {
|
|
|
- printk(KERN_ERR TTM_PFX
|
|
|
- "Cleanup eviction failed\n");
|
|
|
+ pr_err("Cleanup eviction failed\n");
|
|
|
}
|
|
|
}
|
|
|
spin_lock(&glob->lru_lock);
|
|
@@ -1358,14 +1354,14 @@ int ttm_bo_clean_mm(struct ttm_bo_device *bdev, unsigned mem_type)
|
|
|
int ret = -EINVAL;
|
|
|
|
|
|
if (mem_type >= TTM_NUM_MEM_TYPES) {
|
|
|
- printk(KERN_ERR TTM_PFX "Illegal memory type %d\n", mem_type);
|
|
|
+ pr_err("Illegal memory type %d\n", mem_type);
|
|
|
return ret;
|
|
|
}
|
|
|
man = &bdev->man[mem_type];
|
|
|
|
|
|
if (!man->has_type) {
|
|
|
- printk(KERN_ERR TTM_PFX "Trying to take down uninitialized "
|
|
|
- "memory manager type %u\n", mem_type);
|
|
|
+ pr_err("Trying to take down uninitialized memory manager type %u\n",
|
|
|
+ mem_type);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -1388,16 +1384,12 @@ int ttm_bo_evict_mm(struct ttm_bo_device *bdev, unsigned mem_type)
|
|
|
struct ttm_mem_type_manager *man = &bdev->man[mem_type];
|
|
|
|
|
|
if (mem_type == 0 || mem_type >= TTM_NUM_MEM_TYPES) {
|
|
|
- printk(KERN_ERR TTM_PFX
|
|
|
- "Illegal memory manager memory type %u.\n",
|
|
|
- mem_type);
|
|
|
+ pr_err("Illegal memory manager memory type %u\n", mem_type);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
if (!man->has_type) {
|
|
|
- printk(KERN_ERR TTM_PFX
|
|
|
- "Memory type %u has not been initialized.\n",
|
|
|
- mem_type);
|
|
|
+ pr_err("Memory type %u has not been initialized\n", mem_type);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -1482,8 +1474,7 @@ int ttm_bo_global_init(struct drm_global_reference *ref)
|
|
|
ttm_mem_init_shrink(&glob->shrink, ttm_bo_swapout);
|
|
|
ret = ttm_mem_register_shrink(glob->mem_glob, &glob->shrink);
|
|
|
if (unlikely(ret != 0)) {
|
|
|
- printk(KERN_ERR TTM_PFX
|
|
|
- "Could not register buffer object swapout.\n");
|
|
|
+ pr_err("Could not register buffer object swapout\n");
|
|
|
goto out_no_shrink;
|
|
|
}
|
|
|
|
|
@@ -1516,9 +1507,8 @@ int ttm_bo_device_release(struct ttm_bo_device *bdev)
|
|
|
man->use_type = false;
|
|
|
if ((i != TTM_PL_SYSTEM) && ttm_bo_clean_mm(bdev, i)) {
|
|
|
ret = -EBUSY;
|
|
|
- printk(KERN_ERR TTM_PFX
|
|
|
- "DRM memory manager type %d "
|
|
|
- "is not clean.\n", i);
|
|
|
+ pr_err("DRM memory manager type %d is not clean\n",
|
|
|
+ i);
|
|
|
}
|
|
|
man->has_type = false;
|
|
|
}
|