34,7 → 34,8 |
|
static int radeon_benchmark_do_move(struct radeon_device *rdev, unsigned size, |
uint64_t saddr, uint64_t daddr, |
int flag, int n) |
int flag, int n, |
struct reservation_object *resv) |
{ |
unsigned long start_jiffies; |
unsigned long end_jiffies; |
47,12 → 48,12 |
case RADEON_BENCHMARK_COPY_DMA: |
fence = radeon_copy_dma(rdev, saddr, daddr, |
size / RADEON_GPU_PAGE_SIZE, |
NULL); |
resv); |
break; |
case RADEON_BENCHMARK_COPY_BLIT: |
fence = radeon_copy_blit(rdev, saddr, daddr, |
size / RADEON_GPU_PAGE_SIZE, |
NULL); |
resv); |
break; |
default: |
DRM_ERROR("Unknown copy method\n"); |
92,9 → 93,6 |
int r, n; |
int time; |
|
|
ENTER(); |
|
n = RADEON_BENCHMARK_ITERATIONS; |
r = radeon_bo_create(rdev, size, PAGE_SIZE, true, sdomain, 0, NULL, NULL, &sobj); |
if (r) { |
120,11 → 118,11 |
if (r) { |
goto out_cleanup; |
} |
dbgprintf("done\n"); |
|
if (rdev->asic->copy.dma) { |
time = radeon_benchmark_do_move(rdev, size, saddr, daddr, |
RADEON_BENCHMARK_COPY_DMA, n); |
RADEON_BENCHMARK_COPY_DMA, n, |
dobj->tbo.resv); |
if (time < 0) |
goto out_cleanup; |
if (time > 0) |
134,7 → 132,8 |
|
if (rdev->asic->copy.blit) { |
time = radeon_benchmark_do_move(rdev, size, saddr, daddr, |
RADEON_BENCHMARK_COPY_BLIT, n); |
RADEON_BENCHMARK_COPY_BLIT, n, |
dobj->tbo.resv); |
if (time < 0) |
goto out_cleanup; |
if (time > 0) |
163,9 → 162,6 |
if (r) { |
DRM_ERROR("Error while benchmarking BO move.\n"); |
} |
|
LEAVE(); |
|
} |
|
void radeon_benchmark(struct radeon_device *rdev, int test_number) |