X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fasio.h;h=6773c81fd1333d95a610381b509f9dd2ed7922ef;hb=c4bf633211b0424492b5a3937d6a6d2e0d79a4cf;hp=d17ee7ff5eef7bc62da3eb1aaba3ab2da7e233c6;hpb=c460be258f74353287bb852c37c7782a0322a3c0;p=libucw.git diff --git a/lib/asio.h b/lib/asio.h index d17ee7ff..6773c81f 100644 --- a/lib/asio.h +++ b/lib/asio.h @@ -13,7 +13,19 @@ #include "lib/workqueue.h" #include "lib/clists.h" -/* FIXME: Comment, especially on request ordering */ +/* + * This module takes care of scheduling and executing asynchronous I/O requests + * on files opened with O_DIRECT. It is primarily used by the fb-direct fastbuf + * back-end, but you can use it explicitly, too. + * + * You can define several I/O queues, each for use by a single thread. Requests + * on a single queue are always processed in order of their submits, requests + * from different queues may be interleaved (although the current implementation + * does not do so). Normal read and write requests are returned to their queue + * when they are completed. Write-back requests are automatically freed when + * done, but the number of such requests in fly is limited in order to avoid + * consuming all memory, so a submit of a write-back request can block. + */ struct asio_queue { uns buffer_size; // How large buffers do we use [user-settable]