All of lore.kernel.org
 help / color / mirror / Atom feed
* GEM - radeon cs ioctl deadlock
@ 2010-10-13 21:57 Jerome Glisse
  2010-10-13 22:14 ` Dave Airlie
  0 siblings, 1 reply; 4+ messages in thread
From: Jerome Glisse @ 2010-10-13 21:57 UTC (permalink / raw)
  To: dri-devel

So we are facing a deadlock with the radeon cs ioctl. When a buffer is given
a name (with flink) we could endup with 2 handle pointing to the same
object (flink object and open it from same file descriptor). Would it be ok
if i change gem open to first look if we already have an handle for the
object and to use that handle instead of creating a new one ? Or could
this break intel driver ?

Cheers,
Jerome

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: GEM - radeon cs ioctl deadlock
  2010-10-13 21:57 GEM - radeon cs ioctl deadlock Jerome Glisse
@ 2010-10-13 22:14 ` Dave Airlie
  2010-10-14  1:47   ` Ben Skeggs
  0 siblings, 1 reply; 4+ messages in thread
From: Dave Airlie @ 2010-10-13 22:14 UTC (permalink / raw)
  To: Jerome Glisse; +Cc: dri-devel

On Wed, 2010-10-13 at 17:57 -0400, Jerome Glisse wrote:
> So we are facing a deadlock with the radeon cs ioctl. When a buffer is given
> a name (with flink) we could endup with 2 handle pointing to the same
> object (flink object and open it from same file descriptor). Would it be ok
> if i change gem open to first look if we already have an handle for the
> object and to use that handle instead of creating a new one ? Or could
> this break intel driver ?

I think r300g worked around this already, maybe we should just avoid
doing it from userspace if possible.

Dave.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: GEM - radeon cs ioctl deadlock
  2010-10-13 22:14 ` Dave Airlie
@ 2010-10-14  1:47   ` Ben Skeggs
  2010-10-18 15:16     ` Thomas Hellstrom
  0 siblings, 1 reply; 4+ messages in thread
From: Ben Skeggs @ 2010-10-14  1:47 UTC (permalink / raw)
  To: Dave Airlie; +Cc: dri-devel

On Thu, 2010-10-14 at 08:14 +1000, Dave Airlie wrote:
> On Wed, 2010-10-13 at 17:57 -0400, Jerome Glisse wrote:
> > So we are facing a deadlock with the radeon cs ioctl. When a buffer is given
> > a name (with flink) we could endup with 2 handle pointing to the same
> > object (flink object and open it from same file descriptor). Would it be ok
> > if i change gem open to first look if we already have an handle for the
> > object and to use that handle instead of creating a new one ? Or could
> > this break intel driver ?
> 
> I think r300g worked around this already, maybe we should just avoid
> doing it from userspace if possible.
We had this in nouveau at some point.  In the end, I prevented the
deadlock from occuring by checking that a process doesn't reserve the
same buffer twice (we store file_priv in a reserved_by field in the bo
as we reserve the buffers), and then just fixed userspace.

Ben.
> 
> Dave.
> 
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: GEM - radeon cs ioctl deadlock
  2010-10-14  1:47   ` Ben Skeggs
@ 2010-10-18 15:16     ` Thomas Hellstrom
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Hellstrom @ 2010-10-18 15:16 UTC (permalink / raw)
  To: dri-devel

On 10/14/2010 03:47 AM, Ben Skeggs wrote:
> On Thu, 2010-10-14 at 08:14 +1000, Dave Airlie wrote:
>    
>> On Wed, 2010-10-13 at 17:57 -0400, Jerome Glisse wrote:
>>      
>>> So we are facing a deadlock with the radeon cs ioctl. When a buffer is given
>>> a name (with flink) we could endup with 2 handle pointing to the same
>>> object (flink object and open it from same file descriptor). Would it be ok
>>> if i change gem open to first look if we already have an handle for the
>>> object and to use that handle instead of creating a new one ? Or could
>>> this break intel driver ?
>>>        
>> I think r300g worked around this already, maybe we should just avoid
>> doing it from userspace if possible.
>>      
> We had this in nouveau at some point.  In the end, I prevented the
> deadlock from occuring by checking that a process doesn't reserve the
> same buffer twice (we store file_priv in a reserved_by field in the bo
> as we reserve the buffers), and then just fixed userspace.
>
> Ben.
>    
>>      
Hi, Ben,

Without knowing the exact details, that sounds a little dangerous? It 
would be better to use a process identifier rather than a file 
identifier since multiple threads in a single client can and should use 
the same file descriptor.

/Thomas


>> Dave.
>>
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>>      
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>    

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-10-18 15:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-13 21:57 GEM - radeon cs ioctl deadlock Jerome Glisse
2010-10-13 22:14 ` Dave Airlie
2010-10-14  1:47   ` Ben Skeggs
2010-10-18 15:16     ` Thomas Hellstrom

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.