io_uring: split overflow state into SQ and CQ side
authorJens Axboe <axboe@kernel.dk>
Thu, 19 Dec 2019 00:12:20 +0000 (17:12 -0700)
committerJens Axboe <axboe@kernel.dk>
Sat, 28 Dec 2019 23:06:24 +0000 (16:06 -0700)
commita47dabe63cce464bc1d8ff5286a477a36a6b9b81
tree7aaa10e2918a2be58496fe0abdae191dec10a728
parent13ea85d914260d36da63d1d76fbecbf0d25a9fa7
io_uring: split overflow state into SQ and CQ side

We currently check ->cq_overflow_list from both SQ and CQ context, which
causes some bouncing of that cache line. Add separate bits of state for
this instead, so that the SQ side can check using its own state, and
likewise for the CQ side.

This adds ->sq_check_overflow with the SQ state, and ->cq_check_overflow
with the CQ state. If we hit an overflow condition, both of these bits
are set. Likewise for overflow flush clear, we clear both bits. For the
fast path of just checking if there's an overflow condition on either
the SQ or CQ side, we can use our own private bit for this.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c