On 01/20/2017 12:00 PM, Alex Bligh wrote: > >> On 20 Jan 2017, at 17:04, Vladimir Sementsov-Ogievskiy wrote: >> >> About extents: is 32bit length enough? We will have to send 4096 for empty 16tb disk.. > > The nbd protocol uniformly uses 32 bit lengths (for better or for worse). This is baked into the specification heavily. > > I'm not sure sending 4,096 items for an empty 16TB disk is any great hardship to be honest. If it truly matters, an idea that has already been floated on the list is to add a new NBD_CMD_FLAG_SCALE (or some other spelling) that states that a particular command is sending lengths scaled by a particular factor (by the block size? obviously it would have to be better specified). Under this idea, the scaling factor would allow you to report larger extents for fewer back-and-forth operations, but it gets tricky if the scaling is allowed to get larger than the minimum granularity between extent changes. The other idea that has been floated is a way to report whether the entire export is known to be all-zero content at the time the client connects, which would trade 4096+ queries (you'd actually have to do more than 4096 queries, since length is < 4G, not <= 4G) with a single piece of information at the time the client connects. Either way, discussion on such enhancements are probably worth a new thread. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org