Greetings everyone! I am Abhay a 3rd-year student at the
National Institute of Technology, Hamirpur, Bharat(India).
I am interested in utilizing the recently introduced feature
io_uring of the Linux kernel to speed up libnbd async I/O.
I have been in contact with Richard regarding this and
thanks to his guidance I have some ideas and approaches.
The rough approaches I can think of are:
1. Replacing the poll mechanism(nbd_poll) with the io_uring one.
2. A socket wrapper using io_uring
The latter requires less work as far as I can see and is easily
reusable. Though I have only recently read about the socket
wrapper method so can't tell for sure. I will try making a
wrapper to check feasibility.
A general suggestion for io_uring is to not use it, directly:)
But use a convenient wrapper liburing instead.
The doubts I have regarding this are:
1.
Should I create a new API or replace the old aio API.
On one end I see no problem in doing so but I am
not familiar with uses
2.
For testing wouldn't libnbd limited by nbdkit if try
to test on my pc and would be only marginally better
unless nbdkit is ported too.
As the task is not too difficult once I get my head around
the code base, I might be able to port nbdkit too(incase of socket wrapper)
and write some tests in the 180-200hr period of GSoC.
Thanks!
--
Humble Regards,
Abhay
(rathod-sahaab)