09.08.2019 15:25, Max Reitz wrote: > On 09.08.19 09:50, Vladimir Sementsov-Ogievskiy wrote: >> 07.08.2019 21:01, Max Reitz wrote: >>> On 07.08.19 10:07, Vladimir Sementsov-Ogievskiy wrote: >>>> Limit block_status querying to request bounds on write notifier to >>>> avoid extra seeking. >>> >>> I don’t understand this reasoning. Checking whether something is >>> allocated for qcow2 should just mean an L2 cache lookup. Which we have >>> to do anyway when we try to copy data off the source. >> >> But for raw it's seeking. > > (1) That’s a bug in block_status then, isn’t it? > > file-posix cannot determine the allocation status, or rather, everything > is allocated. bdrv_co_block_status() should probably pass @want_zero on > to the driver’s implementation, and file-posix should just > unconditionally return DATA if it’s false. > > (2) Why would you even use sync=top for raw nodes? >
As I described in parallel letters, raw was bad example. NBD is good. Anyway, now I'm refactoring cluster skipping more deeply for v2. About top-mode: finally block-status should be used to improve other modes too. In virtuozzo we skip unallocated for full mode too, for example. Unfortunately, backup is most long-term thing to upstream for me.. -- Best regards, Vladimir