Please enable JavaScript.
Coggle requires JavaScript to display documents.
libublk-io-offload - Coggle Diagram
libublk-io-offload
requirements
simplify target code for handling IO in remove conexts
single aio context can handle multiple queue & devices
ideas
use two channels
one channel is for send io to remote context
multiple senders
single receivers
another is for getting io result
1:1
data structures
local side
per-queue (eventfd, tx of mpc)
register dev_id/qctx/efd/tx_of_ch2 to aio_ctx
write_lock
send(dev_id, qid, tag) to remote side
remote side
reading data of aio_ctx
read_lock
use dev_id/qid to query tx_ch2/qctx
use tx_ch2 to send back io result
io result(tag, res)
write(efd) after sending out result
aio_ctx is the shared data