[Intel-gfx] [PATCH v3 01/12] drm/ttm: stop setting page->index for the ttm_tt
Christian König
christian.koenig at amd.com
Thu Sep 16 06:47:36 UTC 2021
Am 15.09.21 um 20:59 schrieb Matthew Auld:
> In commit:
>
> commit 58aa6622d32af7d2c08d45085f44c54554a16ed7
> Author: Thomas Hellstrom <thellstrom at vmware.com>
> Date: Fri Jan 3 11:47:23 2014 +0100
>
> drm/ttm: Correctly set page mapping and -index members
>
> we started setting the page->mapping and page->index to point to the
> virtual address space, if the pages were faulted with TTM. Apparently
> this was needed for core-mm to able to reverse lookup the virtual
> address given the struct page, and potentially unmap it from the page
> tables. However as pointed out by Thomas, since we are now using
> PFN_MAP, instead of say PFN_MIXED, this should no longer be the case.
>
> There was also apparently some usecase in vmwgfx which needed this for
> dirty tracking, but that also doesn't appear to be the case anymore, as
> pointed out by Thomas.
>
> We still need keep the page->mapping for now, since that is still needed
> for different reasons, but we try to address that in the next patch.
>
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> Cc: Christian König <christian.koenig at amd.com>
Reviewed-by: Christian König <christian.koenig at amd.com>
Fingers crossed that this really works as documented.
> ---
> drivers/gpu/drm/ttm/ttm_bo_vm.c | 2 --
> drivers/gpu/drm/ttm/ttm_tt.c | 4 +---
> 2 files changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c
> index f56be5bc0861..906ec8a1bf5a 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo_vm.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c
> @@ -346,8 +346,6 @@ vm_fault_t ttm_bo_vm_fault_reserved(struct vm_fault *vmf,
> } else if (unlikely(!page)) {
> break;
> }
> - page->index = drm_vma_node_start(&bo->base.vma_node) +
> - page_offset;
> pfn = page_to_pfn(page);
> }
>
> diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c
> index dae52433beeb..1cc04c224988 100644
> --- a/drivers/gpu/drm/ttm/ttm_tt.c
> +++ b/drivers/gpu/drm/ttm/ttm_tt.c
> @@ -367,10 +367,8 @@ static void ttm_tt_clear_mapping(struct ttm_tt *ttm)
> if (ttm->page_flags & TTM_PAGE_FLAG_SG)
> return;
>
> - for (i = 0; i < ttm->num_pages; ++i) {
> + for (i = 0; i < ttm->num_pages; ++i)
> (*page)->mapping = NULL;
> - (*page++)->index = 0;
> - }
> }
>
> void ttm_tt_unpopulate(struct ttm_device *bdev, struct ttm_tt *ttm)
More information about the Intel-gfx
mailing list