> > > I think you do. You're wasting time reading unallocated clusters > > > and checking that they are zero. bdrv_is_allocated_above gives you > > > the same information much more efficiently. > > > > I thought that just returns information if the data is allocated, or > > if data is on backing file? > > > > Or is data guaranteed to be zero if bdrv_is_allocated_above() return 0? > > Oh, I need to pass NULL for base to get that information?
I just posted v5 of the patch. But I get a slow down of 15% if I use bdrv_is_allocated_above. (tested with empty qcow2 files.) Please can you take a look at the code - maybe I am doing something wrong?