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