On Thu, Aug 14, 2014 at 09:16:02AM -0400, Rob Clark wrote:
On Wed, Aug 13, 2014 at 1:07 PM, Jerome Glisse j.glisse@gmail.com wrote:
So this is fundamentaly different, fence as they are now allow random driver callback and this is bound to get ugly this is bound to lead to one driver doing something that seems innocuous but turn out to break heavoc when call from some other driver function.
tbh, that seems solvable by some strict rules about what you can do in the callback.. ie. don't do anything you couldn't do in atomic, and don't signal another fence.. off the top of my head that seems sufficient.
If the driver getting the callback needs to do more, then it can always schedule a worker..
But I could certainly see the case where the driver waiting on fence sets everything up before installing the cb and then just needs to write one or a couple regs from the cb.
Yes sane code will do sane things, sadly i fear we can not enforce sane code everywhere especialy with out of tree driver and i would rather force there hand to only allow sane implementation. Providing call back api obviously allows them to do crazy stuff.
BR, -R