On Mon, Apr 29, 2024 at 10:25:48AM +0200, Thomas Hellström wrote: > > Yes there is another common scheme where you bind a window of CPU to > > a > > window on the device and mirror a fixed range, but this is a quite > > different thing. It is not SVA, it has a fixed range, and it is > > probably bound to a single GPU VMA in a multi-VMA device page table. > > And this above here is exactly what we're implementing, and the GPU > page-tables are populated using device faults. Regions (large) of the > mirrored CPU mm need to coexist in the same GPU vm as traditional GPU > buffer objects. Well, not really, if that was the case you'd have a single VMA over the entire bound range, not dynamically create them. A single VMA that uses hmm_range_fault() to populate the VM is completely logical. Having a hidden range of mm binding and then creating/destroying 2M VMAs dynamicaly is the thing that doesn't make alot of sense. Jason