Unified Memory - Page Fault Handling

Hi all,

I read in a blogpost that the page fault mechanism for HtoD involves five steps:

1 Allocate new pages on the GPU;
2 Unmap old pages on the CPU;
3 Copy data from the CPU to the GPU;
4 Map new pages on the GPU;
5 Free old CPU pages.
https://devblogs.nvidia.com/maximizing-unified-memory-performance-cuda/

Can I assume that step 2 and 5 involve CPU processing on every page fault?
Or are they somehow managed by the DMA controller?
Unfortunately the article doesn’t elaborate on this.
Does anyone have information on this?

Thanks in advance!

Regards,
Adrian

Yes, the CPU is involved (CPU processing, CPU code execution) in the page faulting process. They are not exclusively managed by the DMA controller. I wouldn’t be able to provide much insight beyond that.

The following slides may be helpful.