mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
UMD is unable to restrict railgate for deterministic channels when NVGPU_CAN_RAILGATE is set to false. This causes issues with VPR resize as there is no means of preventing an active VPR resize in progress. Add a fault handler for usermode region. The fault handler's purpose is to intercept UMD accesses into the doorbell region when a GPU reset is in progress. GPU reset could be triggered by VPR resize. During a reset, the corresponding PTEs for the usermode region are zapped. The fault handler tries to have a read access to g->deterministic_busy and blocks till the reset is finished. A VPR resize is guaranteed to be mutually exclusive due to use of the g->deterministic_busy RW semaphore. Bug 3789519 Change-Id: Ie046ee9be8d9b5d4019359c60a4578097b8d55a3 Signed-off-by: Debarshi Dutta <ddutta@nvidia.com> Signed-off-by: Sagar Kamble <skamble@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2802185 Reviewed-by: Martin Radev <mradev@nvidia.com> Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>