<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 20, 2021 at 2:39 PM Daniel Vetter <<a href="mailto:daniel@ffwll.ch">daniel@ffwll.ch</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tue, Apr 20, 2021 at 6:25 PM Marek Olšák <<a href="mailto:maraeo@gmail.com" target="_blank">maraeo@gmail.com</a>> wrote:<br>
><br>
> Daniel, imagine hardware that can only do what Windows does: future fences signalled by userspace whenever userspace wants, and no kernel queues like we have today.<br>
><br>
> The only reason why current AMD GPUs work is because they have a ring buffer per queue with pointers to userspace command buffers followed by fences. What will we do if that ring buffer is removed?<br>
<br>
Well this is an entirely different problem than what you set out to<br>
describe. This is essentially the problem where hw does not have any<br>
support for priviledged commands and separate priviledges command<br>
buffer, and direct userspace submit is the only thing that is<br>
available.<br>
<br>
I think if this is your problem, then you get to implement some very<br>
interesting compat shim. But that's an entirely different problem from<br>
what you've described in your mail. This pretty much assumes at the hw<br>
level the only thing that works is ATS/pasid, and vram is managed with<br>
HMM exclusively. Once you have that pure driver stack you get to fake<br>
it in the kernel for compat with everything that exists already. How<br>
exactly that will look and how exactly you best construct your<br>
dma_fences for compat will depend highly upon how much is still there<br>
in this hw (e.g. wrt interrupt generation). A lot of the<br>
infrastructure was also done as part of drm_syncobj. I mean we have<br>
entirely fake kernel drivers like vgem/vkms that create dma_fence, so<br>
a hw ringbuffer is really not required.<br>
<br>
So ... is this your problem underneath it all, or was that more a wild<br>
strawman for the discussion?<br></blockquote><div><br></div>Yes, that's the problem.<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Marek<br></div></div>