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 > 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. Stefan