mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 01:50:07 +03:00
gpu: nvgpu: Clean up comptag data structs and alloc
Clean up the comptag-related data structures and allocation logic. The
most important change is that we only ever try comptag allocation once
to prevent incorrect map aliasing.
If we were to retry the allocation on further map calls, the following
situation would become possible:
(1) Request compressible kind mapping for a buffer. Comptag alloc failed
and we proceed with incompressible kind fallback.
(2) Request another compressible kind mapping for a buffer. Comptag alloc
retry succeeded and now we use the compressible kind.
(3) After writes through the compressible kind mapping, the buffer is no
longer legible via the fallback incompressible kind mapping.
The other changes are about removing the unused comptag-related fields
in gk20a_comptags and nvgpu_mapped_buf, and retrieving comptags info
only for compressible buffers. We also make nvgpu_ctag_buffer_info and
nvgpu_vm_compute_compression as private mm/vm.c definitions, since
they're not used elsewhere.
Bug 1902982
Change-Id: I0c9fe48ccc585a80dd2c05ec606a079c1c1d41f1
Signed-off-by: Sami Kiminki <skiminki@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1595153
GVS: Gerrit_Virtual_Submit
Reviewed-by: Alex Waterman <alexw@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
3ff666c4b9
commit
434385ca54
@@ -132,7 +132,7 @@ struct nvgpu_mapped_buf *nvgpu_vm_find_mapping(struct vm_gk20a *vm,
|
||||
nvgpu_log(g, gpu_dbg_map,
|
||||
"gv: 0x%04x_%08x + 0x%-7zu "
|
||||
"[dma: 0x%010llx, pa: 0x%010llx] "
|
||||
"pgsz=%-3dKb as=%-2d ctags=%d start=%d "
|
||||
"pgsz=%-3dKb as=%-2d "
|
||||
"flags=0x%x apt=%s (reused)",
|
||||
u64_hi32(mapped_buffer->addr), u64_lo32(mapped_buffer->addr),
|
||||
os_buf->dmabuf->size,
|
||||
@@ -140,7 +140,6 @@ struct nvgpu_mapped_buf *nvgpu_vm_find_mapping(struct vm_gk20a *vm,
|
||||
(u64)sg_phys(mapped_buffer->os_priv.sgt->sgl),
|
||||
vm->gmmu_page_sizes[mapped_buffer->pgsz_idx] >> 10,
|
||||
vm_aspace_id(vm),
|
||||
mapped_buffer->ctag_lines, mapped_buffer->ctag_offset,
|
||||
mapped_buffer->flags,
|
||||
nvgpu_aperture_str(gk20a_dmabuf_aperture(g, os_buf->dmabuf)));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user