From: Jerome G. <gl...@fr...> - 2008-04-12 19:11:09
|
Hi again Thomas, It seems that if a fence is created with a userobject in superioctl, one ref on the fence from one of the associated bo (the EXE bo i think) is not properly unreferenced automagicly by kernel on program exit if program never wait or ask for the status on each BO. So for instance -SIOCTL CMD BUFFER, BO_DATA1, BO_DATA2 - create fence & emit (fence refcount = 1) - associate buffer & fence (fence refcount = 4 3buffers) - program exit (doesn't do any more thing) - fence wait & flush - fence fully signaled - bo data1 & data2 deref the fence (fence refcount = 2) - fence is destructed (fence refcount = 1 so no destruction) (i am not showing temporary refcounting which happen while the fence is in use by a function) You end up with a fence signaled but still referenced by a BO, it looks like that drm doesn't properly unreference the fence from the associated EXE BO. Shouldn't the BO associated with a fence deref this fence in fence_handler ? Or where should i look to find why one of the BO is not properly derefing the fence. Cheers, Jerome Glisse <gl...@fr...> |