On Thu, Apr 13, 2017 at 06:51:17AM +1000, Dave Airlie wrote: > On 13 April 2017 at 06:39, Chris Wilson <chris at chris-wilson.co.uk> wrote: > > On Wed, Apr 12, 2017 at 09:01:32PM +0100, Chris Wilson wrote: > >> On Thu, Apr 13, 2017 at 05:05:27AM +1000, Dave Airlie wrote: > >> > >> > >> > >> Not sure what the best semantics are there, any opinions on barring > >> > >> wakeups/polling on semaphore sync_files, and just punting this > >> > >> until we need it. > >> > > > >> > > I think getting it right now will make writing sw_sync-esque (i.e. cpu) > >> > > tests easier and more complete. > >> > > >> > I just don't have any use case for it, so we would be writing code to > >> > write tests for it. > >> > > >> > That doesn't seem smart. > >> > > >> > If there is a future non-testing use case, the API is expressive > >> > enough for someone > >> > to add a flag or new sync obj to allow polling and to add support in a > >> > nice easily > >> > digestible patch. > >> > >> My first thought was to check the signaled status would be to use > >> poll(0), but that can be retrieved from the sync_file_status ioctl. But > >> to get that still needs for us to acquire an fd from the syncobj. And if > >> we were to want check the flag on a driver syncobj, we would need to be > >> able to export one. That doesn't look very promising... > > > > Hmm, you do export fd to pass syncobj between processes. Let's not start > > with syncobj being a second class sync_file. > > It's not the same semantics as a sync_file. Userspace should never be polling on > semaphores. > > Semaphores are one process signals, one process waits, no semantics for > sniffing or use cases. Unless you have a practical use case for an new > or proposed > API I don't think we should start with adding functionality. The problem, as I see it, is that you are taking functionality away from sync_file. If you are wrapping them up inside a sync_file, we have a fair expectation that our code to handle sync_files will continue to work. -Chris -- Chris Wilson, Intel Open Source Technology Centre