On 11/10/14 21:30, Daniel Vetter wrote:
On Thu, Oct 9, 2014 at 8:33 PM, Oded Gabbay oded.gabbay@amd.com wrote:
Thanks for the input. I do _not_ intend to fork IOCTLs for new H/W generations, if possible. i.e, our driver now supports 2 h/w generations with the exact same set of IOCTLs and I don't see how that would change in the future..
What I'm more worried about is supporting different sets of UMD, which will require different IOCTLs for the same operation, e.g. CreateQueue for HSA runtime and OpenCL runtime.
However, due to a very limited amount of UMDs, the "regular" way of adding IOCTLs may be sufficient.
Bottom line, need to think more about it :)
Hm, generally the ioctls should be modelled on the hw for a generic umd.
Agreed. Of course that's a bit hard in practice since predicting the
unkown is difficult ;-). But on intel hw we have about 5+ different umd stacks if you count them all, and they all seem to be more-or-less happy with the same ioctl interface.
The problems start when you start migrating UMD from one kernel driver to another, which already has other UMDs. Then, you may need to create new IOCTLs. Like I've said it does require a
bit a mindset change though since clean-slate designs should only be done when there's overwhelming reasons that the old interfaces just don't cut it any more. Otoh you also need to make sure that all the different umd teams talk to each another since ime they also err on the other side and each come up with their own special hack to enable a given new feature.
Sounds familiar ;)
-Daniel