diff options
author | Sami Kiminki <skiminki@nvidia.com> | 2015-05-04 11:41:23 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-11-18 12:45:07 -0500 |
commit | 9d2c9072c8b9a7742db3974d6027df9d44e0953f (patch) | |
tree | 15ed7e5a3495db6032b43381641d102837decfad /drivers/gpu/nvgpu/gk20a/gk20a.h | |
parent | 503d3a0b1002685e65efb8b99a2362117ee62104 (diff) |
gpu: nvgpu: User-space managed address space support
Implement NVGPU_GPU_IOCTL_ALLOC_AS_FLAGS_USERSPACE_MANAGED, which
enables creating userspace-managed GPU address spaces.
When an address space is marked as userspace-managed, the following
changes are in effect:
- Only fixed-address mappings are allowed.
- VA space allocation for fixed-address mappings is not required,
except to mark space as sparse.
- Maps and unmaps are always immediate. In particular, the mapping
ref increments at kickoffs and decrements at job completion are
skipped.
Bug 1614735
Bug 1623949
Bug 1660392
Change-Id: I834fe19b3f65e9b02c268952383eddee0e465759
Signed-off-by: Sami Kiminki <skiminki@nvidia.com>
Reviewed-on: http://git-master/r/738558
Reviewed-on: http://git-master/r/833253
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 3542a597..ff37039f 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -370,7 +370,7 @@ struct gpu_ops { | |||
370 | struct vm_gk20a_mapping_batch *batch); | 370 | struct vm_gk20a_mapping_batch *batch); |
371 | void (*vm_remove)(struct vm_gk20a *vm); | 371 | void (*vm_remove)(struct vm_gk20a *vm); |
372 | int (*vm_alloc_share)(struct gk20a_as_share *as_share, | 372 | int (*vm_alloc_share)(struct gk20a_as_share *as_share, |
373 | u32 flags); | 373 | u32 big_page_size, u32 flags); |
374 | int (*vm_bind_channel)(struct gk20a_as_share *as_share, | 374 | int (*vm_bind_channel)(struct gk20a_as_share *as_share, |
375 | struct channel_gk20a *ch); | 375 | struct channel_gk20a *ch); |
376 | int (*fb_flush)(struct gk20a *g); | 376 | int (*fb_flush)(struct gk20a *g); |