Please enable JavaScript.
Coggle requires JavaScript to display documents.
rethinking libublk APIs - Coggle Diagram
rethinking libublk APIs
IO ring related APIs
the ring has to be defined as thread_local
so related API needs to be accept ring as parameter
thread_local is slow
don't expose executor
unblock vs. spawn_blocking
remove rublk's offload handler
unified uring_cmd APIs
let uring_cmd handles queue status update
mark one last flag for uring_cmd
let the last uring_cmd API to handle queue status update
let submit_io_commit_cmd to update status
async/.await performance issue
MultiQueueManager
how to cover BATCH_IO
fetch command multishot buffer
commit buffer
remove smol dependency from libublk
not an issue any more
ctrl async/.await
call into async interface
use macro to build all sync interface based on async implementation
finally just maintain ctrl async interface
what if start_dev
which may depends on io queue
queue idle/busy handler
need to deal with buffer page discard & reload
mlock & zero copy needn't the handler
how to check queue idle & busy
standalone timeout task
submit_with_args
provide discard & reload APIs