Acceso a la asignación sin identidad
El acceso de GPU a las asignaciones que no son residentes es ilegal. Este acceso da como resultado que se quite un dispositivo para la aplicación que generó el error.
Hay dos modelos distintos de control de este acceso no válido que dependen de si el motor de error admite el direccionamiento virtual de GPU:
Para los motores que no admiten el direccionamiento virtual de GPU y usan la lista de ubicaciones de asignación y revisión para aplicar revisiones a las referencias de memoria:
Un acceso no válido se produce cuando el controlador en modo de usuario envía una lista de asignación que hace referencia a una asignación que no reside en el dispositivo (es decir, el controlador en modo de usuario no llamó a MakeResidentCb en esa asignación). Cuando se produce este acceso no válido, el kernel de gráficos coloca el contexto o dispositivo defectuosos en error.
Para los motores que admiten el direccionamiento virtual de GPU, pero acceden a una dirección virtual de GPU (VA) que no es válida:
Se espera que la GPU genere un error de página irrecuperable en forma de interrupción. Cuando se produce la interrupción del error de página, el controlador en modo kernel debe reenviar el error al kernel de gráficos a través de una nueva notificación de error de página. Cuando el kernel de gráficos recibe esta notificación, inicia un restablecimiento del motor en el motor con errores y coloca el contexto o dispositivo defectuoso en error. Si el restablecimiento del motor no se realiza correctamente, el kernel de gráficos promueve el error a una detección y recuperación (TDR) de un adaptador completo.
El acceso a un VA no válido puede ocurrir porque no hay ninguna asignación detrás del VA o hay una asignación válida, pero no se hizo residente.