On Tue, Jan 08, 2019 at 10:45:52PM +0300, Vladimir Sementsov-Ogievskiy wrote: > bdrv_co_block_status digs bs->file for additional, more accurate search > for hole inside region, reported as DATA by bs since 5daa74a6ebc. > > This accuracy is not free: assume we have qcow2 disk. Actually, qcow2 > knows, where are holes and where is data. But every block_status > request calls lseek additionally. Assume a big disk, full of > data, in any iterative copying block job (or img convert) we'll call > lseek(HOLE) on every iteration, and each of these lseeks will have to > iterate through all metadata up to the end of file. It's obviously > ineffective behavior. And for many scenarios we don't need this lseek > at all. > > So, add an option to omit calling lseek. > > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> > --- > > Hi all! > > This is a continuation of "do not lseek in qcow2 block_status" thread > (https://lists.gnu.org/archive/html/qemu-devel/2018-12/msg05749.html)
I don't have time to participate in the discussion so my (uneducated?) opinion doesn't count for much, but I wish it were possible to perform this optimization automatically without introducing a new user-visible option. That way existing users benefit and new users don't have to learn about a new option. Stefan
signature.asc
Description: PGP signature