From 745b3ef2ac4d7afa99202e6afc441e3f0b97f5b4 Mon Sep 17 00:00:00 2001 From: Joshua Bakita Date: Mon, 30 May 2022 12:20:48 -0400 Subject: gpu-paging: Support asynchronous paging - Fully enables *_ASYNC API - Allows page mapping to be overlapped with I/O, resulting in an 11% speedup to synchronous reads Benchmarks, 1,000 iters, before: gpu_paging_speed, write: 185.5ms +/- 3.58 gpu_paging_speed, read: 180.5ms +/- 1.42 gpu_paging_overhead_speed, write start: 183.3ms +/- 3.89 gpu_paging_overhead_speed, write finish: 3.4ms +/- 2.61 gpu_paging_overhead_speed, read start: 181.6ms +/- 3.34 gpu_paging_overhead_speed, read finish: 41.1ms +/- 2.69 Benchmarks, 1,000 iters, after: gpu_paging_speed, write: 185.8ms +/- 3.70 gpu_paging_speed, read: 161.3ms +/- 0.97 gpu_paging_overhead_speed, write start: 38.9ms +/- 5.47 gpu_paging_overhead_speed, write finish: 3.1ms +/- 2.42 gpu_paging_overhead_speed, read start: 79.4 +/- 6.42 gpu_paging_overhead_speed, read finish: 44.3 +/- 1.53 --- drivers/gpu/nvgpu/os/linux/vm.c | 1 + 1 file changed, 1 insertion(+) (limited to 'drivers/gpu/nvgpu/os/linux/vm.c') diff --git a/drivers/gpu/nvgpu/os/linux/vm.c b/drivers/gpu/nvgpu/os/linux/vm.c index fcb58ac4..9cd17981 100644 --- a/drivers/gpu/nvgpu/os/linux/vm.c +++ b/drivers/gpu/nvgpu/os/linux/vm.c @@ -262,6 +262,7 @@ int nvgpu_vm_map_linux(struct vm_gk20a *vm, mapped_buffer->os_priv.dmabuf = dmabuf; mapped_buffer->os_priv.attachment = attachment; mapped_buffer->os_priv.sgt = sgt; + init_completion(&mapped_buffer->os_priv.swap_io_done); nvmap_priv = nvmap_get_priv_list(dmabuf); if (!IS_ERR(nvmap_priv)) list_add(&mapped_buffer->os_priv.nvmap_priv_entry, nvmap_priv); -- cgit v1.2.2