These are relatively independent enough from my ongoing work to add FUA support that I'll post them now. Eric Blake (2): todo: More items include: Properly decorate attributes in public headers TODO | 15 ++++++++++++++- include/nbdkit-common.h | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) -- 2.14.3
Signed-off-by: Eric Blake <eblake@redhat.com> --- TODO | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/TODO b/TODO index 65541ca..64b3fbe 100644 --- a/TODO +++ b/TODO @@ -17,6 +17,16 @@ General ideas for improvements * Limit number of incoming connections (like qemu-nbd -e). +* Async callbacks. The current parallel support requires one thread + per pending message; a solution with fewer threads would split + low-level code between request and response, where the callback has + to inform nbdkit when the response is ready: + https://www.redhat.com/archives/libguestfs/2018-January/msg00149.html + +* More NBD protocol features. Qemu has implemented Structured Replies, + which allows for more efficient serving of sparse files. Also in + the upstream pipeline: proposals for block status and online resize. + Suggestions for plugins ----------------------- @@ -37,7 +47,10 @@ directed to qemu-nbd for these use cases. Suggestions for filters ----------------------- -* injecting artificial errors for testing clients +* injecting artificial errors or otherwise masking plugin features + (such as hiding zero support) for testing clients + +* logging all client commands nbdkit-cache-filter needs considerable work: -- 2.14.3
Eric Blake
2018-Jan-23 16:24 UTC
[Libguestfs] [nbdkit PATCH 2/2] include: Properly decorate attributes in public headers
gcc and clang intentionally support __decorated__ forms of all attribute arguments (in the namespace reserved to the compiler implementation), precisely so that any public header does not risk mis-compilation in the face of a language-compliant user-defined macro that collides with the bare-word counterpart. We don't have to decorate our attribute usage in .c files, because there we are in control of making sure no collisions will interfere. Signed-off-by: Eric Blake <eblake@redhat.com> --- include/nbdkit-common.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/nbdkit-common.h b/include/nbdkit-common.h index 3177878..5e69579 100644 --- a/include/nbdkit-common.h +++ b/include/nbdkit-common.h @@ -51,10 +51,10 @@ extern "C" { #define NBDKIT_THREAD_MODEL_PARALLEL 3 extern void nbdkit_error (const char *msg, ...) - __attribute__((format (printf, 1, 2))); + __attribute__((__format__ (__printf__, 1, 2))); extern void nbdkit_verror (const char *msg, va_list args); extern void nbdkit_debug (const char *msg, ...) - __attribute__((format (printf, 1, 2))); + __attribute__((__format__ (__printf__, 1, 2))); extern void nbdkit_vdebug (const char *msg, va_list args); extern char *nbdkit_absolute_path (const char *path); -- 2.14.3
Richard W.M. Jones
2018-Jan-23 17:09 UTC
Re: [Libguestfs] [nbdkit PATCH 0/2] Miscellaneous patches
On Tue, Jan 23, 2018 at 10:24:10AM -0600, Eric Blake wrote:> These are relatively independent enough from my ongoing work to > add FUA support that I'll post them now.ACK series. There's no need to review patches to the ‘TODO’ file, just push any ideas you have to that file. Thanks, Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW