On 7/12/20 11:42 AM, Pavel Begunkov wrote: > io_kiocb::task_work was de-unionised, and is not planned to be shared > back, because it's too useful and commonly used. Hence, instead of > keeping a separate task_work in struct io_async_rw just reuse > req->task_work. This is a good idea, req->task_work is a first class citizen these days. Unfortunately it doesn't do much good for io_async_ctx, since it's so huge with the msghdr related bits. It'd be nice to do something about that too, though not a huge priority as allocating async context is somewhat of a slow path. Though with the proliferation of task_work, it's no longer nearly as expensive as it used to be with the async thread offload. Could be argued to be a full-on fast path these days. Applied, thanks. -- Jens Axboe