From my understanding and looking at the code I think we don't prevent but rather invalidate current user mappings and use subsequent page faults to map into user space process the pages from the new location. Check what this function is doing during move - https://elixir.bootlin.com/linux/v5.12-rc5/source/drivers/gpu/drm/ttm/ttm_bo.c#L238

Andrey

On 2021-04-05 12:01 p.m., 258454946 wrote:
Hi Guys,

I am a newbee of gfx development. Recently, I am researching amdgpu open source driver, and encounter a problem, but do not find the answer.

We know the user maybe map a gem backing buffer for reading/writing and hold the mapping for a long term. while, kernel driver will also moves the user mapped bo to other memory region. vram ->gtt, gtt->vram, even it may be swaped out under OOM case.

So, my question is how driver prevents kernel ttm from moving the user mapped bo while user is accessing it?

Thanks for your attention!

Lizhi.

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx