On 5/19/21 8:51 PM, Drew DeVault wrote: > Hi folks! I'm trying to use IO_TIMEOUT to insert a pause in the middle > of my SQ. I set the off (desired number of events to wait for) to zero, > which according to the docs just makes it behave like a timer. Right > > Essentially, I want the following: > > [operations...] > OP_TIMEOUT > [operations...] > > To be well-ordered, so that the second batch executes after the first. > To accomplish this, I've tried to submit the first operation of the > second batch with IO_DRAIN, which causes the CQE to be delayed, but ...causes request submission (i.e. execution) to be delayed to be exact, not CQE. But anyway sounds workable to me. (if timeout works well) the second should not be submitted earlier than submission_time + timeout. Or if timeout is marked DRAIN as well would be batch1_completion_time + timeout. > ultimately it fails with EINTR instead of just waiting to execute. Does some request fails and you find such a CQE (which request?)? Or a syscall? submission or waiting? > I understand that the primary motivator for OP_TIMEOUT is to provide a > timeout functionality for other CQEs. Is my use-case not accomodated by > io_uring? -- Pavel Begunkov