On Thu, May 15, 2025 at 10:40:15AM -0700, Rob Clark wrote: > On Thu, May 15, 2025 at 10:30 AM Danilo Krummrich <d...@kernel.org> wrote: > > > > (Cc: Boris) > > > > On Thu, May 15, 2025 at 12:22:18PM -0400, Connor Abbott wrote: > > > For some context, other drivers have the concept of a "synchronous" > > > VM_BIND ioctl which completes immediately, and drivers implement it by > > > waiting for the whole thing to finish before returning. > > > > Nouveau implements sync by issuing a normal async VM_BIND and subsequently > > waits for the out-fence synchronously. > > As Connor mentioned, we'd prefer it to be async rather than blocking, > in normal cases, otherwise with drm native context for using native > UMD in guest VM, you'd be blocking the single host/VMM virglrender > thread. > > The key is we want to keep it async in the normal cases, and not have > weird edge case CTS tests blow up from being _too_ async ;-)
I really wonder why they don't blow up in Nouveau, which also support full asynchronous VM_BIND. Mind sharing which tests blow up? :) > > > But this > > > doesn't work for native context, where everything has to be > > > asynchronous, so we're trying a new approach where we instead submit > > > an asynchronous bind for "normal" (non-sparse/driver internal) > > > allocations and only attach its out-fence to the in-fence of > > > subsequent submits to other queues. > > > > This is what nouveau does and I think other drivers like Xe and panthor do > > this > > as well. > > No one has added native context support for these drivers yet Huh? What exactly do you mean with "native context" then? > > > Once you do this then you need a > > > limit like this to prevent memory usage from pending page table > > > updates from getting out of control. Other drivers haven't needed this > > > yet, but they will when they get native context support. > > > > What are the cases where you did run into this, i.e. which application in > > userspace hit this? Was it the CTS, some game, something else? > > CTS tests that do weird things with massive # of small bind/unbind. I > wouldn't expect to hit the blocking case in the real world. As mentioned above, can you please share them? I'd like to play around a bit. :) - Danilo