On 4/23/19 2:31 PM, Jens Axboe wrote: >> 1. An error for a submission should be returned as completion for that >> submission. Please don't break my main event loop with strange error >> codes just because a single operation is broken/not supported/... > > So that's the case I was referring to above. We can just make that change, > there's absolutely no reason to have errors passed back through a different > channel. Thinking about this a bit more, and I think the current approach is the best one. The issue is that only submission side events tied to an sqe can return an cqe, the rest have to be returned through the system call value. So I think it's cleaner to keep it as-is, honestly. >> (Also RWF_NOWAIT doesn't work in io_uring right now: IOCB_NOWAIT is >> always removed in the workqueue context, and I don't see an early EAGAIN >> completion). > > That's a case I didn't consider, that you'd want to see EAGAIN after > it's been punted. Once punted, we're not going to return EAGAIN since > we can now block. Not sure how you'd want to handle that any better... I think I grok this one too now - what you're saying is that if the caller has RWF_NOWAIT set, then the EAGAIN should be returned instead of being punted to the workqueue? I totally agree with that, that's a bug. -- Jens Axboe