• Jens Axboe's avatar
    io_uring: manage provided buffers strictly ordered · dbc7d452
    Jens Axboe authored
    Workloads using provided buffers benefit from using and returning buffers
    in the right order, and so does TLBs for that matter. Manage the internal
    buffer list in a straight list, rather than use the head buffer as the
    insertion node. Use a hashed list for the buffer group IDs instead of
    xarray, the overhead is much lower this way. xarray provides internal
    locking and other trickery that is handy for some uses cases, but
    io_uring already locks internally for the buffer manipulation and needs
    none of that.
    
    This is good for about a 2% reduction in overhead, combination of the
    improved management and the fact that the workload has an easier time
    bundling back provided buffers.
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    dbc7d452
io_uring.c 295 KB