On Tue, Oct 20, 2026 at 09:01:33AM +0200, Christian König wrote:
Like iommufd is not suddenly going to start understanding ualink after an invalidation.
Yeah but I think we can sort things out early on.
Yeah, if ther is some value thing can be excluded right from the start.
Further, I had the (perhaps naive) expectation that the interconnect option was not something that would change during mapping. I did not think you would loose your PCIe option if ualink becomes available, or vice versa. Though on deeper reflection I suppose someone could build HW so you might loose your ualink option if the dmabuf is moved to system memory while PCIe would still work.
Yeah, that is definitely not correct.
We have the clear requirement here that when one interconnect physically fails that we can still do things like let the work reach the next checkpoint, then it is taken of the HW, and the HW suspended for repair, then resumed and then work can continue....
Similarly we have on the graphics side the requirement that physical placement can be moved to system memory because of some other device attaching, pinning for scanout or something suddenly requires the backing store to be contiguously allocated etc,,,
So there are vast requirements that a buffer changes location when the mapping changes. I mean it is kind of pointless to have a feature like ODP to suspend your traffic if the underlying physical location of the memory can't change.
At least here, I am not aware of anyone actually using the ODP capabilities to move and migrate memory. It seems by far and away the most common use case is permanently pin things.
It seems like in these very complicated chips the placement of the memory is a critical decision, if it moves around the performance is so destroyed you may as well not bother.
I know this is not everyone and every use case, but it has been a bit eye opening we built all this complex ODP stuf and I struggle to justify it with an actual real user.
But yes, we should try to build it as you describe.
Thanks, Jason