mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
In order to support the concept of the default domain, a new rl domain is created that shadows all the other domains i.e. all channels of all TSGs are replicated here. This is scheduled by default during GPU boot. 1) The shadow rl_domain is constructed during poweron sequence via nvgpu_runlist_alloc_shadow_rl_domain(). struct nvgpu_runlist is appended to store this separately as 'shadow_rl_domain'. This is scheduled in background as long as no other user created rl domains exist. 2) 'shadow_rl_domain' is scheduled out once user created rl domain exist. At this point, any updates in the user created rl domains are synchronized with the 'shadow_rl_domain'. i.e. 'shadow_rl_domain' is also reconstructed to contain active channels and tsgs from the rl domain. 3) 'shadow_rl_domain' is scheduled back in when the last user created rl domain is removed. 4) In future for manual mode, driver shall support explicitely switching to 'shadow_rl_domain'. Also, we will move to an implementation where 'shadow_rl_domain' is switched out only when other domains are actively scheduled. These changes will be implemented later. Jira NVGPU-8165 Signed-off-by: Debarshi Dutta <ddutta@nvidia.com> Change-Id: Ia6a07d6bfe90e7f6c9e04a867f58c01b9243c3b0 Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2704702 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> Reviewed-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-by: Alex Waterman <alexw@nvidia.com> GVS: Gerrit_Virtual_Submit