From: "Christian König" <christian.koenig@amd.com>
To: Dave Airlie <airlied@gmail.com>,
Maarten Lankhorst <maarten.lankhorst@canonical.com>
Cc: Thomas Hellstrom <thellstrom@vmware.com>,
nouveau <nouveau@lists.freedesktop.org>,
LKML <linux-kernel@vger.kernel.org>,
dri-devel <dri-devel@lists.freedesktop.org>,
Ben Skeggs <bskeggs@redhat.com>,
"Deucher, Alexander" <alexander.deucher@amd.com>
Subject: Re: [PATCH 09/17] drm/radeon: use common fence implementation for fences
Date: Tue, 22 Jul 2014 10:43:13 +0200 [thread overview]
Message-ID: <53CE2421.5040906@amd.com> (raw)
In-Reply-To: <CAPM=9tyD2ZbrcGDC3hfNb7qNdzsfnyD-ZwM7G-nOgxeu5YKuSg@mail.gmail.com>
Am 22.07.2014 06:05, schrieb Dave Airlie:
> On 9 July 2014 22:29, Maarten Lankhorst <maarten.lankhorst@canonical.com> wrote:
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
>> ---
>> drivers/gpu/drm/radeon/radeon.h | 15 +-
>> drivers/gpu/drm/radeon/radeon_device.c | 60 ++++++++-
>> drivers/gpu/drm/radeon/radeon_fence.c | 223 ++++++++++++++++++++++++++------
>> 3 files changed, 248 insertions(+), 50 deletions(-)
>>
> From what I can see this is still suffering from the problem that we
> need to find a proper solution to,
>
> My summary of the issues after talking to Jerome and Ben and
> re-reading things is:
>
> We really need to work out a better interface into the drivers to be
> able to avoid random atomic entrypoints,
Which is exactly what I criticized from the very first beginning. Good
to know that I'm not the only one thinking that this isn't such a good idea.
> I'm sure you have some ideas and I think you really need to
> investigate them to move this thing forward,
> even it if means some issues with android sync pts.
Actually I think that TTMs fence interface already gave quite a good
hint how it might look like. I can only guess that this won't fit with
the Android stuff, otherwise I can't see a good reason why we didn't
stick with that.
> but none of the two major drivers seem to want the interface as-is so
> something needs to give
>
> My major question is why we need an atomic callback here at all, what
> scenario does it cover?
Agree totally. As far as I can see all current uses of the interface are
of the kind of waiting for a fence to signal.
No need for any callback from one driver into another, especially not in
atomic context. If a driver needs such a functionality it should just
start up a kernel thread and do it's waiting there.
This obviously shouldn't be an obstacle for pure hardware
implementations where one driver signals a semaphore another driver is
waiting for, or a high signal on an interrupt line directly wired
between two chips. And I think this is a completely different topic and
not necessarily part of the common fence interface we should currently
focus on.
Christian.
> Surely we can use a workqueue based callback to ask a driver to check
> its signalling, is it really
> that urgent?
>
> Dave.
WARNING: multiple messages have this Message-ID (diff)
From: "Christian König" <christian.koenig@amd.com>
To: Dave Airlie <airlied@gmail.com>,
Maarten Lankhorst <maarten.lankhorst@canonical.com>
Cc: Dave Airlie <airlied@linux.ie>,
Thomas Hellstrom <thellstrom@vmware.com>,
nouveau <nouveau@lists.freedesktop.org>,
LKML <linux-kernel@vger.kernel.org>,
dri-devel <dri-devel@lists.freedesktop.org>,
Ben Skeggs <bskeggs@redhat.com>,
"Deucher, Alexander" <alexander.deucher@amd.com>
Subject: Re: [PATCH 09/17] drm/radeon: use common fence implementation for fences
Date: Tue, 22 Jul 2014 10:43:13 +0200 [thread overview]
Message-ID: <53CE2421.5040906@amd.com> (raw)
In-Reply-To: <CAPM=9tyD2ZbrcGDC3hfNb7qNdzsfnyD-ZwM7G-nOgxeu5YKuSg@mail.gmail.com>
Am 22.07.2014 06:05, schrieb Dave Airlie:
> On 9 July 2014 22:29, Maarten Lankhorst <maarten.lankhorst@canonical.com> wrote:
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
>> ---
>> drivers/gpu/drm/radeon/radeon.h | 15 +-
>> drivers/gpu/drm/radeon/radeon_device.c | 60 ++++++++-
>> drivers/gpu/drm/radeon/radeon_fence.c | 223 ++++++++++++++++++++++++++------
>> 3 files changed, 248 insertions(+), 50 deletions(-)
>>
> From what I can see this is still suffering from the problem that we
> need to find a proper solution to,
>
> My summary of the issues after talking to Jerome and Ben and
> re-reading things is:
>
> We really need to work out a better interface into the drivers to be
> able to avoid random atomic entrypoints,
Which is exactly what I criticized from the very first beginning. Good
to know that I'm not the only one thinking that this isn't such a good idea.
> I'm sure you have some ideas and I think you really need to
> investigate them to move this thing forward,
> even it if means some issues with android sync pts.
Actually I think that TTMs fence interface already gave quite a good
hint how it might look like. I can only guess that this won't fit with
the Android stuff, otherwise I can't see a good reason why we didn't
stick with that.
> but none of the two major drivers seem to want the interface as-is so
> something needs to give
>
> My major question is why we need an atomic callback here at all, what
> scenario does it cover?
Agree totally. As far as I can see all current uses of the interface are
of the kind of waiting for a fence to signal.
No need for any callback from one driver into another, especially not in
atomic context. If a driver needs such a functionality it should just
start up a kernel thread and do it's waiting there.
This obviously shouldn't be an obstacle for pure hardware
implementations where one driver signals a semaphore another driver is
waiting for, or a high signal on an interrupt line directly wired
between two chips. And I think this is a completely different topic and
not necessarily part of the common fence interface we should currently
focus on.
Christian.
> Surely we can use a workqueue based callback to ask a driver to check
> its signalling, is it really
> that urgent?
>
> Dave.
next prev parent reply other threads:[~2014-07-22 8:43 UTC|newest]
Thread overview: 165+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-09 12:29 [PATCH 00/17] Convert TTM to the new fence interface Maarten Lankhorst
2014-07-09 12:29 ` [PATCH 01/17] drm/ttm: add interruptible parameter to ttm_eu_reserve_buffers Maarten Lankhorst
2014-07-09 12:29 ` [PATCH 02/17] drm/ttm: kill off some members to ttm_validate_buffer Maarten Lankhorst
2014-07-09 12:29 ` [PATCH 03/17] drm/nouveau: add reservation to nouveau_gem_ioctl_cpu_prep Maarten Lankhorst
2014-07-09 12:29 ` [PATCH 04/17] drm/nouveau: require reservations for nouveau_fence_sync and nouveau_bo_fence Maarten Lankhorst
2014-07-09 12:29 ` [PATCH 05/17] drm/ttm: call ttm_bo_wait while inside a reservation Maarten Lankhorst
2014-07-09 12:29 ` [PATCH 06/17] drm/ttm: kill fence_lock Maarten Lankhorst
2014-07-09 12:29 ` [PATCH 07/17] drm/nouveau: rework to new fence interface Maarten Lankhorst
2014-07-09 12:29 ` [PATCH 08/17] drm/radeon: add timeout argument to radeon_fence_wait_seq Maarten Lankhorst
2014-07-09 12:29 ` Maarten Lankhorst
2014-07-09 12:29 ` [PATCH 09/17] drm/radeon: use common fence implementation for fences Maarten Lankhorst
2014-07-09 12:57 ` Deucher, Alexander
2014-07-09 12:57 ` Deucher, Alexander
[not found] ` <A3397C8B8B789E45844E7EC5DEAD89D04D5D246C-XjPeyzlH3nS0ENz6UbWHXUEOCMrvLtNR@public.gmane.org>
2014-07-09 13:23 ` [PATCH v2 " Maarten Lankhorst
2014-07-09 13:23 ` Maarten Lankhorst
[not found] ` <53BD4265.2040508-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2014-07-10 17:27 ` Alex Deucher
2014-07-10 17:27 ` Alex Deucher
2014-07-22 4:05 ` [PATCH " Dave Airlie
2014-07-22 4:05 ` Dave Airlie
2014-07-22 4:05 ` Dave Airlie
2014-07-22 8:43 ` Christian König [this message]
2014-07-22 8:43 ` Christian König
[not found] ` <53CE2421.5040906-5C7GfCeVMHo@public.gmane.org>
2014-07-22 11:46 ` Daniel Vetter
2014-07-22 11:46 ` Daniel Vetter
2014-07-22 11:52 ` Daniel Vetter
2014-07-22 11:52 ` Daniel Vetter
[not found] ` <20140722114607.GL15237-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2014-07-22 11:57 ` Daniel Vetter
2014-07-22 11:57 ` Daniel Vetter
[not found] ` <20140722115737.GN15237-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2014-07-22 12:19 ` Christian König
2014-07-22 12:19 ` Christian König
2014-07-22 13:26 ` [Nouveau] " Daniel Vetter
2014-07-22 13:26 ` Daniel Vetter
[not found] ` <20140722132652.GO15237-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2014-07-22 13:45 ` Christian König
2014-07-22 13:45 ` [Nouveau] " Christian König
[not found] ` <53CE6AFA.1060807-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2014-07-22 14:44 ` Maarten Lankhorst
2014-07-22 14:44 ` [Nouveau] " Maarten Lankhorst
2014-07-22 15:02 ` Christian König
2014-07-22 15:18 ` Maarten Lankhorst
2014-07-22 15:17 ` Daniel Vetter
2014-07-22 15:17 ` [Nouveau] " Daniel Vetter
2014-07-22 15:35 ` Christian König
2014-07-22 15:35 ` Christian König
2014-07-22 15:42 ` Daniel Vetter
2014-07-22 15:42 ` Daniel Vetter
2014-07-22 15:59 ` Christian König
2014-07-22 15:59 ` Christian König
2014-07-22 16:21 ` Daniel Vetter
2014-07-22 16:21 ` Daniel Vetter
2014-07-22 16:39 ` Christian König
2014-07-22 16:39 ` Christian König
2014-07-22 16:52 ` Daniel Vetter
2014-07-22 16:52 ` Daniel Vetter
2014-07-22 16:43 ` Daniel Vetter
2014-07-22 16:43 ` Daniel Vetter
2014-07-23 6:40 ` Maarten Lankhorst
2014-07-23 6:40 ` Maarten Lankhorst
[not found] ` <53CF58FB.8070609-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2014-07-23 6:52 ` Christian König
2014-07-23 6:52 ` [Nouveau] " Christian König
[not found] ` <53CF5B9F.1050800-5C7GfCeVMHo@public.gmane.org>
2014-07-23 7:02 ` Daniel Vetter
2014-07-23 7:02 ` [Nouveau] " Daniel Vetter
2014-07-23 7:06 ` Maarten Lankhorst
2014-07-23 7:06 ` Maarten Lankhorst
2014-07-23 7:09 ` Daniel Vetter
2014-07-23 7:09 ` Daniel Vetter
[not found] ` <CAKMK7uHijSve_CsDE+pUk8+tjCAZjL7-nZCKeUkKuuufCPS4tQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-23 7:15 ` Christian König
2014-07-23 7:15 ` [Nouveau] " Christian König
2014-07-23 7:32 ` Maarten Lankhorst
2014-07-23 7:32 ` Maarten Lankhorst
[not found] ` <53CF64F9.7020701-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2014-07-23 7:41 ` Christian König
2014-07-23 7:41 ` [Nouveau] " Christian König
2014-07-23 7:26 ` Christian König
2014-07-23 7:26 ` Christian König
2014-07-23 7:31 ` Daniel Vetter
2014-07-23 7:31 ` Daniel Vetter
[not found] ` <CAKMK7uGJj+UwcnnzA+fj_=uWPN3i0sneWkoD+wfPJ_8Q6Y-DQg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-23 7:37 ` Christian König
2014-07-23 7:37 ` [Nouveau] " Christian König
[not found] ` <53CF6622.6060803-5C7GfCeVMHo@public.gmane.org>
2014-07-23 7:51 ` Maarten Lankhorst
2014-07-23 7:51 ` [Nouveau] " Maarten Lankhorst
[not found] ` <53CF699D.9070902-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2014-07-23 7:58 ` Christian König
2014-07-23 7:58 ` [Nouveau] " Christian König
[not found] ` <53CF6B18.5070107-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2014-07-23 8:07 ` Daniel Vetter
2014-07-23 8:07 ` [Nouveau] " Daniel Vetter
2014-07-23 8:20 ` Christian König
2014-07-23 8:20 ` Christian König
[not found] ` <53CF7035.2060808-5C7GfCeVMHo@public.gmane.org>
2014-07-23 8:25 ` Maarten Lankhorst
2014-07-23 8:25 ` [Nouveau] " Maarten Lankhorst
2014-07-23 8:42 ` Daniel Vetter
2014-07-23 8:42 ` Daniel Vetter
[not found] ` <CAKMK7uGLqzePAREsWhX0D1oN4FdqKwPgAL6x8sULpJSqYH5LwA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-23 8:46 ` Christian König
2014-07-23 8:46 ` [Nouveau] " Christian König
[not found] ` <53CF765E.7020802-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2014-07-23 8:54 ` Daniel Vetter
2014-07-23 8:54 ` [Nouveau] " Daniel Vetter
[not found] ` <CAKMK7uE1G-EjbJ2RAXC3ZfkaCo=Gber5PJuRG623Yoz9D=FmGw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-23 9:27 ` Christian König
2014-07-23 9:27 ` [Nouveau] " Christian König
[not found] ` <53CF8010.9060809-5C7GfCeVMHo@public.gmane.org>
2014-07-23 9:30 ` Daniel Vetter
2014-07-23 9:30 ` [Nouveau] " Daniel Vetter
[not found] ` <CAKMK7uEowhvc+4Jc6t2NAeE1joFaohJ6cP7sU-Akut6b3ta=1g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-23 9:36 ` Christian König
2014-07-23 9:36 ` [Nouveau] " Christian König
2014-07-23 9:38 ` Maarten Lankhorst
2014-07-23 9:38 ` Maarten Lankhorst
[not found] ` <53CF828E.5020201-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2014-07-23 9:39 ` Christian König
2014-07-23 9:39 ` [Nouveau] " Christian König
2014-07-23 9:39 ` Daniel Vetter
2014-07-23 9:39 ` Daniel Vetter
2014-07-23 9:44 ` Daniel Vetter
2014-07-23 9:44 ` [Nouveau] " Daniel Vetter
2014-07-23 9:47 ` Christian König
2014-07-23 9:47 ` Christian König
[not found] ` <53CF84C7.2020507-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2014-07-23 9:52 ` Daniel Vetter
2014-07-23 9:52 ` [Nouveau] " Daniel Vetter
2014-07-23 9:55 ` Maarten Lankhorst
2014-07-23 9:55 ` [Nouveau] " Maarten Lankhorst
[not found] ` <53CF8693.1040006@canonical.com >
[not found] ` <53CF8693.1040006-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2014-07-23 10:13 ` Christian König
2014-07-23 10:13 ` [Nouveau] " Christian König
2014-07-23 10:52 ` Daniel Vetter
2014-07-23 10:52 ` Daniel Vetter
2014-07-23 12:36 ` Christian König
2014-07-23 12:36 ` Christian König
2014-07-23 12:42 ` Daniel Vetter
2014-07-23 12:42 ` Daniel Vetter
[not found] ` <53CFAC38.9050501-5C7GfCeVMHo@public.gmane.org>
2014-07-23 13:16 ` Maarten Lankhorst
2014-07-23 13:16 ` [Nouveau] " Maarten Lankhorst
[not found] ` <53CFB5C2.7060207-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
2014-07-23 14:05 ` Maarten Lankhorst
2014-07-23 14:05 ` [Nouveau] " Maarten Lankhorst
2014-07-24 13:47 ` Christian König
2014-07-24 13:47 ` Christian König
2014-07-23 8:01 ` Daniel Vetter
2014-07-23 8:01 ` Daniel Vetter
2014-07-23 8:31 ` Christian König
2014-07-23 8:31 ` Christian König
2014-07-23 12:35 ` Rob Clark
2014-07-23 12:35 ` Rob Clark
2014-07-22 14:05 ` Maarten Lankhorst
2014-07-22 14:24 ` Christian König
2014-07-22 14:27 ` Maarten Lankhorst
2014-07-22 14:39 ` Christian König
2014-07-22 14:47 ` Maarten Lankhorst
2014-07-22 15:16 ` Christian König
2014-07-22 15:19 ` Daniel Vetter
2014-07-22 15:19 ` Daniel Vetter
[not found] ` <CAKMK7uESXrDtCov8whOTsffg6eZdibF4qaTFaCubM=mnhN=gNQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-22 15:42 ` Alex Deucher
2014-07-22 15:42 ` Alex Deucher
[not found] ` <CADnq5_Moy78A5JfDM0LME6_-48PW72DJpYYvEthQ5b=_amU8KQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-22 15:48 ` Daniel Vetter
2014-07-22 15:48 ` Daniel Vetter
[not found] ` <CAKMK7uGtfUTU=VwSnF07jncJsH1Ckie2m1FCjct60Yz88uE3cg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-22 19:14 ` Jesse Barnes
2014-07-22 19:14 ` Jesse Barnes
2014-07-23 9:47 ` Daniel Vetter
2014-07-23 9:47 ` [Nouveau] " Daniel Vetter
[not found] ` <CAKMK7uG-zX2ZDSoQ+XmXOvUeAZzvbdsv02+fX47uJUt=21cRaQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-23 15:37 ` Jesse Barnes
2014-07-23 15:37 ` [Nouveau] " Jesse Barnes
2014-07-22 11:51 ` Maarten Lankhorst
2014-07-22 11:51 ` Maarten Lankhorst
2014-07-09 12:29 ` [PATCH 10/17] drm/qxl: rework to new fence interface Maarten Lankhorst
2014-07-09 12:30 ` [PATCH 11/17] drm/vmwgfx: get rid of different types of fence_flags entirely Maarten Lankhorst
2014-07-09 12:30 ` [PATCH 12/17] drm/vmwgfx: rework to new fence interface Maarten Lankhorst
2014-07-09 12:30 ` [PATCH 13/17] drm/ttm: flip the switch, and convert to dma_fence Maarten Lankhorst
2014-07-09 12:30 ` [PATCH 14/17] drm/nouveau: use rcu in nouveau_gem_ioctl_cpu_prep Maarten Lankhorst
2014-07-09 12:30 ` [PATCH 15/17] drm/radeon: use rcu waits in some ioctls Maarten Lankhorst
2014-07-09 12:30 ` [PATCH 16/17] drm/vmwgfx: use rcu in vmw_user_dmabuf_synccpu_grab Maarten Lankhorst
2014-07-09 12:30 ` [PATCH 17/17] drm/ttm: use rcu in core ttm Maarten Lankhorst
2014-07-09 13:09 ` [PATCH 00/17] Convert TTM to the new fence interface Mike Lothian
2014-07-09 13:21 ` Maarten Lankhorst
2014-07-09 13:21 ` Maarten Lankhorst
2014-07-10 21:37 ` Thomas Hellström
2014-07-10 21:37 ` Thomas Hellström
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=53CE2421.5040906@amd.com \
--to=christian.koenig@amd.com \
--cc=airlied@gmail.com \
--cc=alexander.deucher@amd.com \
--cc=bskeggs@redhat.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@canonical.com \
--cc=nouveau@lists.freedesktop.org \
--cc=thellstrom@vmware.com \
/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.