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>
This commit is contained in:
Sami Kiminki
2015-05-04 18:41:23 +03:00
committed by Terje Bergstrom
parent 503d3a0b10
commit 9d2c9072c8
9 changed files with 148 additions and 38 deletions

View File

@@ -166,7 +166,8 @@ static int gk20a_ctrl_alloc_as(
goto clean_up;
}
err = gk20a_as_alloc_share(&g->as, args->big_page_size, &as_share);
err = gk20a_as_alloc_share(&g->as, args->big_page_size, args->flags,
&as_share);
if (err)
goto clean_up_file;