Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
GPU access to allocations that aren't resident is illegal. Such access results in a device being removed for the application that generated the error.
There are two distinct models of handling such invalid access dependent on whether the faulting engine supports GPU virtual addressing:
For engines that don’t support GPU virtual addressing and use the allocation and patch location list to patch memory references:
An invalid access occurs when the user-mode driver submits an allocation list that references an allocation that isn't resident on the device (that is, the user-mode driver didn't called MakeResidentCb on that allocation). When this invalid access occurs, the graphics kernel puts the faulty context/device in error.
For engines that do support GPU virtual addressing but access a GPU virtual address (VA) that's invalid:
The GPU is expected to raise an unrecoverable page fault in the form of an interrupt. When the page fault interrupt occurs, the kernel-mode driver needs to forward the error to the graphics kernel through a new page fault notification. When the graphics kernel receives this notification, it initiates an engine reset on the faulting engine and puts the faulty context/device in error. If the engine reset is unsuccessful, the graphics kernel promotes the error to a full adapter wide timeout detection and recovery (TDR).
Accessing an invalid VA might happen either because there's no allocation behind the VA or there's a valid allocation but it wasn't made resident.