• Jens Axboe's avatar
    io-wq: make buffered file write hashed work map per-ctx · e941894e
    Jens Axboe authored
    Before the io-wq thread change, we maintained a hash work map and lock
    per-node per-ring. That wasn't ideal, as we really wanted it to be per
    ring. But now that we have per-task workers, the hash map ends up being
    just per-task. That'll work just fine for the normal case of having
    one task use a ring, but if you share the ring between tasks, then it's
    considerably worse than it was before.
    
    Make the hash map per ctx instead, which provides full per-ctx buffered
    write serialization on hashed writes.
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    e941894e
io-wq.c 26.5 KB