[Mesa-dev] [PATCH 01/11] drm/amdgpu: Comply with implicit fencing rules
Daniel Vetter
daniel at ffwll.ch
Fri May 21 14:58:12 UTC 2021
On Fri, May 21, 2021 at 07:58:57AM -0700, Rob Clark wrote:
> On Fri, May 21, 2021 at 2:10 AM Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> >
> > - msm is mildly entertaining. It also supports MSM_SUBMIT_NO_IMPLICIT,
> > but because it doesn't use the drm/scheduler it handles fences from
> > the wrong context with a synchronous dma_fence_wait. See
> > submit_fence_sync() leading to msm_gem_sync_object(). Investing into
> > a scheduler might be a good idea.
>
> Yeah, drm/scheduler is (along with a lot of other things) on the TODO
> list. But this isn't quite as bad as it sounds because userspace uses
> a u_queue thread to call the submit ioctl rather than blocking the
> driver. (It also offloads some other work from the driver thread,
> like submit merging to reduce # of ioctls. Coincidentally that
> arrangement was a step towards preparing userspace for some
> hypothetical non-ioctl uapi ;-))
You're also holding a pile of locks, which I expect latest with
multi-engine buffer sharing will be pain. If you push this to the
scheduler then the locks aren't held. Or maybe I've misread the flow, it's
become all a bit a blurr after all these drivers :-)
> OTOH it would be good to move blocking until the system can free
> enough pages to repin bo's out of the ioctl path to better handle some
> memory pressure corner cases without having to be interruptable over a
> lot more of the submit path.. Running chrome+android on devices
> without a lot of memory is fun..
Uh that one needs the userspace thread. Or entirely different semantics of
your ioctl, because you're not allowed to allocate memory once any
dma_fence is visible. So offloading the entire pinning to a submit thread
is no-go.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list