On 1/17/19 1:36 PM, Eric Blake wrote: > I got tired of debugging whether a server was advertising the > correct things during negotiation by inspecting the trace > logs of qemu-io as client - not to mention that without SOME > sort of client tracing particular commands, we can't easily > regression test the server for correct behavior. The final > straw was at KVM Forum, when Nir asked me to make sure there > was a way to easily determine if an NBD server is exposing what > we really want (and fixing x-dirty-bitmap to behave saner fell > out as a result of answering that question). > > I note that upstream NBD has 'nbd-client -l $host' for querying > just export names (with no quoting, so you have to know that > a blank line means the default export), but it wasn't powerful > enough, so I implemented 'qemu-nbd -L' to document everything. > Upstream NBD has separate 'nbd-client' and 'nbd-server' binaries, > while we only have 'qemu-nbd' (which is normally just a server, > but 'qemu-nbd -c' also operates a second thread as a client). > Our other uses of qemu as NBD client are for consuming a block > device (as in qemu-io, qemu-img, or a drive to qemu) - but those > binaries are less suited to something so specific to the NBD > protocol. > > Bonus: As a result of my work on this series, nbdkit now supports > NBD_OPT_INFO (my interoperability testing between server > implementations has been paying off, both at fixing server bugs, > and at making this code more reliable across difference in valid > servers). > > Also available at: > https://repo.or.cz/qemu/ericb.git qemu-nbd-list-v4
Vladimir spotted a few more tweaks to make, but they all look sufficiently minor that I'll go ahead and queue this on my NBD tree for a pull request on Monday, rather than posting a v5, if there aren't any other major comments in the meantime. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature