Currently we have just the one workqueue for each io_uring ctx, which supports any kind of IO. This is problematic with requests that have very different life times. For example, disk IO is always bounded in time, while networked IO can take a long time. Ditto with POLL commands, that also have unbounded execution time. First patch is just a prep patch, patch number two adds support for determining the io_wq placement based on the request type. Patches are against my for-5.5/io_uring-test branch. fs/io-wq.c | 8 +-- fs/io-wq.h | 2 +- fs/io_uring.c | 145 ++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 110 insertions(+), 45 deletions(-) -- Jens Axboe