Stefan Hajnoczi <stefa...@gmail.com> writes: > On Tue, Feb 16, 2016 at 08:20:44PM +0300, Denis V. Lunev wrote: >> the idea seems feasible at the first glance. I'll need to check >> the amount of the overhead of this approach. If we'll need >> to perform an additional request for each <granularity> >> block - the overhead is toooooo much. > > Regarding overhead, thankfully it's not one-block-at-a-time :). > >> Do you have the link to the spec/implementation? > > You can reference SCSI Block Commands (SBC-3) 5.4 GET LBA STATUS > command. The filename is sbc3r25.pdf and it's available from t10.org > although other sites seem to host copies too. > > The approach is similar to the QMP command you have proposed. Input > parameters are "starting LBA" and "allocation length". Outputs are a > list of "status descriptors" which consists of an LBA, number of blocks, > and a provisioning status field (allocated/unallocated/etc). > > This means a single call can retrieve information for a whole range of > the disk. It's slightly more efficient than QMP since the data is > binary and not JSON text.
Moreover, it avoids abusing control-plane QMP as data plane.