All of lore.kernel.org
 help / color / mirror / Atom feed
From: Emil Velikov <emil.l.velikov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: "Koenig, Christian" <Christian.Koenig-5C7GfCeVMHo@public.gmane.org>
Cc: "Deucher,
	Alexander" <Alexander.Deucher-5C7GfCeVMHo@public.gmane.org>,
	David Airlie <airlied-cv59FeDIM0c@public.gmane.org>,
	Daniel Vetter <daniel-/w4YWyX8dFk@public.gmane.org>,
	"amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org"
	<amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>,
	"dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org"
	<dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>
Subject: Re: [PATCH 01/13] drm/amdgpu: introduce and honour DRM_FORCE_AUTH workaround
Date: Fri, 14 Jun 2019 16:53:25 +0100	[thread overview]
Message-ID: <20190614155325.GC32412@arch-x1c3> (raw)
In-Reply-To: <9dbdda6c-8916-e5ae-1676-86828b9890e7-5C7GfCeVMHo@public.gmane.org>

On 2019/06/14, Koenig, Christian wrote:
> Am 14.06.19 um 14:09 schrieb Emil Velikov:
> > On 2019/05/27, Emil Velikov wrote:
> > [SNIP]
> > Hi Christian,
> >
> >
> > In the following, I would like to summarise and emphasize the need for
> > DRM_AUTH removal. I would kindly ask you to spend a couple of minutes
> > extra reading it.
> >
> >
> > Today DRM drivers* do not make any distinction between primary and
> > render node clients.
> 
> That is actually not 100% correct. We have a special case where a DRM 
> master is allowed to change the priority of render node clients.
> 
Can you provide a link? I cannot find that code.

> > Thus for a render capable driver, any premise of
> > separation, security or otherwise imposed via DRM_AUTH is a fallacy.
> 
> Yeah, that's what I agree on. I just don't think that removing DRM_AUTH 
> now is the right direction to take.
> 
Could have been clearer - I'm talking about DRM_AUTH | DRM_RENDER_ALLOW
ioctls.

That aside, can you propose an alternative solution that addresses this
and the second point just below?

> > Considering the examples of flaky or outright missing drmAuth in prime
> > open-source projects (mesa, kmscube, libva) we can reasonably assume
> > other projects exbibit the same problem.
> >
> > For these and/or other reasons, two DRM drivers have dropped DRM_AUTH
> > since day one.
> >
> > Since we are interested in providing consistent and predictable
> > behaviour to user-space, dropping DRM_AUTH seems to be the most
> > effective way forward.
> 
> Well and what do you do with drivers which doesn't implement render nodes?
> 
AFAICT there is a single non-DC driver which does not expose - QXL.
I would expect it runs on a rather customised stack.

Would be great to fix that, but ETIME and it's the only exception to the
rule.


> > Of course, I'd be more than happy to hear for any other way to achieve
> > the goal outlined.
> >
> > Based on the series, other maintainers agree with the idea/goal here.
> > Amdgpu not following the same pattern would compromise predictability
> > across drivers and complicate userspace, so I would kindly ask you to
> > reconsider.
> >
> > Alternatively, I see two ways to special case:
> >   - New flag annotating amdgpu/radeon - akin to the one proposed earlier
> >   - Check for amdgpu/radeon in core DRM
> 
> I perfectly agree that I don't want any special handling for amdgpu/radeon.
> 
> My key point is that with DRM_AUTH we created an authorization and 
> authentication mess in DRM which is functionality which doesn't belong 
> into the DRM subsystem in the first place.
> 
Precisely and I've outlined below how to resolve this in the long run.

> > Now on your pain point - not allowing render iocts via the primary node,
> > and how this patch could make it harder to achieve that goal.
> >
> > While I love the idea, there are number of obstacles that prevent us
> > from doing so at this time:
> >   - Ensuring both old and new userspace does not regress
> 
> Yeah, agree totally. That's why I said we should probably start doing 
> this for only for upcoming hardware generations.
> 
That will side-step the regression issue, but will enforce driver
specific behaviour outlined before.

> >   - Drivers (QXL, others?) do not expose a render node
> 
> Well isn't that is a rather big problem for the removal of DRM_AUTH in 
> general?
> 
> E.g. at least QXL would then expose functionality on the primary node 
> without authentication.
> 
With this series QXL remains functionally unchanged. I would love to fix
that as well yet ETIME as mentioned above.

> >   - We want to avoid driver specific behaviour
> >
> > The only way forward that I can see is:
> >   - Address QXL/others to expose render nodes
> >   - Add a Kconfig toggle to disable !KMS ioctls via the primary node
> >   - Jump-start ^^ with distribution X
> >   - Fix user-space fallouts
> >   - X months down the line, flip the Kconfig
> >   - In case of regressions - revert the KConfig, goto Fix user-space...
> 
> Well that at least sounds like a plan :) Let's to this!
> 
We're talking about months if not years until it comes to fruition. We
need something quicker.

That said, I'm quite happy to take the first stab, yet this is not a
replacement for this series.

> > That said, the proposal will not conflict with the DRM_AUTH removal. If
> > anything it is step 0.5 of the grand master plan.
> 
> That's the point I strongly disagree on.
> 
> By lowering the DRM_AUTH restriction you are encouraging userspace to 
> use the shortcut and use the primary node for rendering instead of 
> fixing the code and using the render node.
> 
Have to disagree here. After working on the user-space side and fixing
issues in various projects I can honestly say that most user-space is
sane and developers _care_ about doing things correctly.

> So at the end of the day userspace will most likely completely drop 
> support for the render node, simply for the reason that it became 
> superfluous. You can just open up the primary node and get the same 
> functionality.
> 
I think you're being overly pessimistic here. This is coming from a
person who is often closer to the pessimistic side of things.

As a middle ground how about we do the following:
 - Get this series as-is, alongside
 - picking the first three items from the grand master plan
   - happy to start a discussion about QXL
   - a patch for the Kconfig toggle, is coming in a few minutes
   - happy to prod my distribution of choice (Arch) and work with them

What do you think?

Thanks
Emil

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2019-06-14 15:53 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-27  8:17 [PATCH 01/13] drm/amdgpu: introduce and honour DRM_FORCE_AUTH workaround Emil Velikov
2019-05-27  8:17 ` [PATCH 03/13] drm/etnaviv: drop DRM_AUTH usage from the driver Emil Velikov
2019-06-06 10:57   ` Emil Velikov
2019-06-06 11:15     ` Christian Gmeiner
2019-05-27  8:17 ` [PATCH 04/13] drm/exynos: drop DRM_AUTH from DRM_RENDER_ALLOW ioctls Emil Velikov
2019-05-27 10:02   ` Inki Dae
2019-05-27  8:17 ` [PATCH 05/13] drm/i915: " Emil Velikov
2019-05-27  8:39   ` Jani Nikula
2019-05-27 11:57     ` Emil Velikov
2019-05-27  8:17 ` [PATCH 06/13] drm/lima: drop DRM_AUTH usage from the driver Emil Velikov
2019-06-06 10:58   ` Emil Velikov
2019-06-10  0:56     ` Qiang Yu
2019-05-27  8:17 ` [PATCH 09/13] drm/omap: drop DRM_AUTH from DRM_RENDER_ALLOW ioctls Emil Velikov
2019-06-06 10:58   ` Emil Velikov
2019-06-06 14:45     ` Tomi Valkeinen
     [not found] ` <20190527081741.14235-1-emil.l.velikov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-05-27  8:17   ` [PATCH 02/13] drm/amdgpu: drop DRM_AUTH usage from the driver Emil Velikov
2019-05-27  8:17   ` [PATCH 07/13] drm/msm: " Emil Velikov
     [not found]     ` <20190527081741.14235-7-emil.l.velikov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-06-06 10:58       ` Emil Velikov
2019-08-06  9:43       ` Emil Velikov
2019-05-27  8:17   ` [PATCH 08/13] drm/nouveau: drop DRM_AUTH from DRM_RENDER_ALLOW ioctls Emil Velikov
2019-06-06 10:58     ` Emil Velikov
     [not found]       ` <CACvgo53skE1TpixEDBxmfAgFouJD66351fkcx40zR3vgF41c1Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-06-07  0:24         ` Ben Skeggs
2019-05-27  8:17   ` [PATCH 10/13] drm/radeon: " Emil Velikov
2019-05-27 10:47   ` [PATCH 01/13] drm/amdgpu: introduce and honour DRM_FORCE_AUTH workaround Koenig, Christian
     [not found]     ` <3c9b5688-5e83-f173-00e3-6e139e05d466-5C7GfCeVMHo@public.gmane.org>
2019-05-27 12:05       ` Emil Velikov
2019-05-27 12:20         ` Koenig, Christian
2019-05-27 12:52           ` Emil Velikov
2019-05-27 13:26             ` Daniel Vetter
2019-05-27 13:34               ` Daniel Vetter
2019-05-27 13:20     ` Daniel Vetter
     [not found]       ` <20190527132041.GP21222-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2019-05-27 13:26         ` Emil Velikov
2019-05-27 13:42           ` Koenig, Christian
     [not found]             ` <0426fb3e-e7bc-2464-cb42-4d5753956d23-5C7GfCeVMHo@public.gmane.org>
2019-05-27 15:26               ` Daniel Vetter
     [not found]                 ` <CAKMK7uE_pRro8PxTwUq+pC_1GVVT7nUxan1T-kqSYT=BMHTf2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-05-28  6:58                   ` Koenig, Christian
     [not found]                     ` <d12a7dd4-595b-d0aa-a87d-527392fb0384-5C7GfCeVMHo@public.gmane.org>
2019-05-28  7:38                       ` Daniel Vetter
     [not found]                         ` <CAKMK7uE1ZWjCeg3q7qDrbcj89+DuPQwfjMqC8hTjDAMU5bhh-w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-05-28  8:03                           ` Koenig, Christian
     [not found]                             ` <98c3d891-6966-2043-9709-4e718dbc6bac-5C7GfCeVMHo@public.gmane.org>
2019-05-28  8:18                               ` Daniel Vetter
     [not found]                                 ` <CAKMK7uGsc7WzBBrfxape4Yy7fbKoDFH5J2F87Kx=7rE1+pXcXw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-05-28 16:10                                   ` Emil Velikov
2019-05-28 16:22                                     ` Koenig, Christian
2019-05-28 16:46                                       ` Emil Velikov
2019-05-28 20:05                                         ` Dave Airlie
     [not found]                                           ` <CAPM=9tzuQX4iQU=w4QfbE1ryq6sXc4k5SVh6V1_4AyH_O+D_oA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-05-29 13:03                                             ` Emil Velikov
2019-05-29 13:14                                               ` Koenig, Christian
2019-05-29 16:29                                                 ` Emil Velikov
2019-05-31 12:20                                                   ` Koenig, Christian
2019-06-04 17:59                                                     ` Emil Velikov
2019-06-04 10:50                               ` Michel Dänzer
     [not found]                                 ` <ee1b8980-3d78-aa6d-fe46-2c0d45c2bbdd-otUistvHUpPR7s880joybQ@public.gmane.org>
2019-06-04 11:24                                   ` Koenig, Christian
2019-06-04 13:28                                     ` Daniel Vetter
2019-05-27 15:32               ` Emil Velikov
2019-05-27 13:11   ` Daniel Vetter
     [not found]     ` <20190527131143.GN21222-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2019-05-27 13:47       ` Emil Velikov
2019-05-27  8:17 ` [PATCH 11/13] drm/vgem: drop DRM_AUTH usage from the driver Emil Velikov
2019-06-06 10:59   ` Emil Velikov
2019-08-06  9:44   ` Emil Velikov
2019-05-27  8:17 ` [PATCH 12/13] drm/virtio: " Emil Velikov
2019-05-27  8:17   ` Emil Velikov
2019-06-06 10:59   ` Emil Velikov
2019-06-06 10:59   ` Emil Velikov
2019-06-13  7:00     ` Gerd Hoffmann
2019-06-13  7:00     ` Gerd Hoffmann
2019-05-27  8:17 ` [PATCH 13/13] drm: allow render capable master with DRM_AUTH ioctls Emil Velikov
2019-05-27 11:56   ` Christian König
2019-05-27 12:10     ` Emil Velikov
2019-05-27 12:25       ` Koenig, Christian
2019-05-27 12:39   ` Thomas Hellstrom
2019-05-27 12:54     ` Emil Velikov
2019-05-27 13:16     ` Daniel Vetter
2019-05-27 14:01       ` Thomas Hellstrom
2019-05-27 15:22         ` Daniel Vetter
2019-06-14 12:09 ` [PATCH 01/13] drm/amdgpu: introduce and honour DRM_FORCE_AUTH workaround Emil Velikov
2019-06-14 12:55   ` Koenig, Christian
     [not found]     ` <9dbdda6c-8916-e5ae-1676-86828b9890e7-5C7GfCeVMHo@public.gmane.org>
2019-06-14 14:16       ` Michel Dänzer
2019-06-14 15:53       ` Emil Velikov [this message]
2019-06-14 16:00         ` Koenig, Christian
     [not found]           ` <84b3337c-0cdc-44d4-02c6-c56bd729ed47-5C7GfCeVMHo@public.gmane.org>
2019-06-14 16:25             ` Emil Velikov
2019-06-20 16:30           ` Emil Velikov
2019-06-21  7:12             ` Koenig, Christian
     [not found]               ` <9cad6e74-4751-0b0a-35d1-e8f0ac4d3efc-5C7GfCeVMHo@public.gmane.org>
2019-06-21  7:41                 ` Michel Dänzer
2019-06-21  8:23                   ` Koenig, Christian
2019-06-21  9:09               ` Daniel Vetter
2019-06-21  9:25                 ` Koenig, Christian
     [not found]                   ` <be9f38f5-6bb5-9535-f3d9-bafa83370e0f-5C7GfCeVMHo@public.gmane.org>
2019-06-21  9:35                     ` Daniel Vetter
     [not found]                       ` <CAKMK7uE5qO4q3RYNDp22gkMSSJGgz9ChxhuWPYqXO6D1UUvy6Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-06-21 10:16                         ` Christian König
2019-06-21 10:20                       ` Emil Velikov
2019-06-21 10:31                         ` Koenig, Christian
     [not found]                           ` <d241fab3-b6f0-d38a-b83f-03b70736b355-5C7GfCeVMHo@public.gmane.org>
2019-06-21 10:53                             ` Emil Velikov
2019-06-21 11:07                               ` Koenig, Christian
     [not found]                                 ` <338bb519-05f1-cb76-d965-81237f432937-5C7GfCeVMHo@public.gmane.org>
2019-06-21 11:58                                   ` Emil Velikov
2019-06-21 12:13                                     ` Koenig, Christian
     [not found]                                       ` <76158d1f-676d-2afa-244b-934967a9cb75-5C7GfCeVMHo@public.gmane.org>
2019-06-21 12:47                                         ` Emil Velikov
2019-06-21 13:00                                           ` Koenig, Christian
2019-06-21 15:37                                             ` Daniel Vetter
2019-06-21 15:24                                     ` Michel Dänzer
2019-06-21 11:03                           ` Daniel Vetter
     [not found]                             ` <CAKMK7uEVziNZJES9=JFBUu=LpmubS8=-A654cMN+QqhEmc8Fvw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-06-21 11:37                               ` Christian König
     [not found]                                 ` <c92dc683-6815-dc5a-dc2b-54517cc027de-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-06-21 11:50                                   ` Daniel Vetter
     [not found]                                     ` <CAKMK7uHsv3HOXOQq=GGRkx6f+ssRg7dO7qEoBqRS9V_KiTN3Hg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-06-21 11:59                                       ` Daniel Vetter
     [not found]                                         ` <CAKMK7uG+EUhmZafFmjzSR=eq7543OELbHVaQnZZQGx0APSozwg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-06-21 12:01                                           ` Emil Velikov
2019-06-21 15:15                                       ` Michel Dänzer
     [not found]                                         ` <b182c8e3-c060-71f0-2b3b-62600d825c9f-otUistvHUpPR7s880joybQ@public.gmane.org>
2019-06-21 15:44                                           ` Daniel Vetter
2019-06-21 15:52                                             ` Michel Dänzer
     [not found]                                               ` <13024821-4767-eeaf-86eb-9ae1056f8931-otUistvHUpPR7s880joybQ@public.gmane.org>
2019-06-24  9:37                                                 ` Michel Dänzer
     [not found]                                                   ` <b03e8977-c51a-9606-383f-cf4ba674dcdd-otUistvHUpPR7s880joybQ@public.gmane.org>
2019-06-24  9:48                                                     ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190614155325.GC32412@arch-x1c3 \
    --to=emil.l.velikov-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=Alexander.Deucher-5C7GfCeVMHo@public.gmane.org \
    --cc=Christian.Koenig-5C7GfCeVMHo@public.gmane.org \
    --cc=airlied-cv59FeDIM0c@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=daniel-/w4YWyX8dFk@public.gmane.org \
    --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.