From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-1?Q?Christian_K=F6nig?= Subject: Re: [PATCH 09/17] drm/radeon: use common fence implementation for fences Date: Tue, 22 Jul 2014 17:16:48 +0200 Message-ID: <53CE8060.8030500@vodafone.de> References: <20140709093124.11354.3774.stgit@patser> <20140709122953.11354.46381.stgit@patser> <53CE2421.5040906@amd.com> <20140722114607.GL15237@phenom.ffwll.local> <20140722115737.GN15237@phenom.ffwll.local> <53CE56ED.4040109@vodafone.de> <53CE6FB0.90500@canonical.com> <53CE7410.3090603@amd.com> <53CE74B5.3000201@canonical.com> <53CE77B4.6020801@amd.com> <53CE7974.2010209@canonical.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1"; Format="flowed" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <53CE7974.2010209@canonical.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maarten Lankhorst , =?ISO-8859-1?Q?Christian_K=F6nig?= , Dave Airlie , Thomas Hellstrom , nouveau , LKML , dri-devel , Ben Skeggs , "Deucher, Alexander" List-Id: nouveau.vger.kernel.org Am 22.07.2014 16:47, schrieb Maarten Lankhorst: > op 22-07-14 16:39, Christian K=F6nig schreef: >> Am 22.07.2014 16:27, schrieb Maarten Lankhorst: >>> op 22-07-14 16:24, Christian K=F6nig schreef: >>>>> No, you really shouldn't be doing much in the check anyway, it's mean= t to be a lightweight check. If you're not ready yet because of a lockup si= mply return not signaled yet. >>>> It's not only the lockup case from radeon I have in mind here. For use= rspace queues it might be necessary to call copy_from_user to figure out if= a fence is signaled or not. >>>> >>>> Returning false all the time is probably not a good idea either. >>> Having userspace implement a fence sounds like an awful idea, why would= you want to do that? >> Marketing moves in mysterious ways. Don't ask me, but that the direction= it currently moves with userspace queues and IOMMU etc... >> >>> A fence could be exported to userspace, but that would only mean it can= wait for it to be signaled with an interface like poll.. >> Yeah agree totally, but the point for the fence interface is that I can'= t predict what's necessary to check if a fence is signaled or not on future= hardware. >> >> For the currently available radeon hardware I can say that reading a val= ue from a kernel page is pretty much all you need. But for older hardware t= hat was reading from a register which might become very tricky if the hardw= are is power off or currently inside a reset cycle. >> >> Because off this I would avoid any such interface if it's not absolutely= required by some use case, and currently I don't see this requirement beca= use the functionality you want to archive could be implemented without this. > Oh? I've already done that in radeon_fence, there is no way enable_signal= ing will fiddle with hardware registers during a reset cycle. > I've also made sure that __radeon_fence_is_signaled grabs exclusive_lock = in read mode before touching any hw state. > > Older hardware also doesn't implement optimus, so I think power off is no= t much of a worry for them, if you could point me at the checking done for = that I could make sure that this is the case. I'm not talking about any specific radeon hardware or use case here. As = far as I can see you indeed solved all driver problems with the current = interface design. The question I'm raising is if the current interface design needs as = complex as it is. And my answer to this is a clear *no*, so why do you = want to stick with this design? I still haven't understood that. If it's just to support a further feature of direct synchronization in = interrupt context between different drivers then I must clearly say that = this is a NAK, cause you add complexity to the kernel that isn't necessary. Christian. > > ~Maarten >