qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Different type of qcow2_get_cluster_type


From: Eric Blake
Subject: Re: [Qemu-devel] Different type of qcow2_get_cluster_type
Date: Fri, 14 Sep 2018 09:59:15 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0

On 9/14/18 3:35 AM, lampahome wrote:
The function qcow2_get_cluster_type() is in /block/qcow2.h
It will return the flage based on the entry.

There're some flags confused me.
What's difference between QCOW2_CLUSTER_ZERO_ALLOC &
QCOW2_CLUSTER_ZERO_PLAIN
in there?

Look at docs/interop/qcow2.txt at the L2 entry format:

Bit 0: If set to 1, the cluster reads as all zeros
Bits 9-55: Bits 9-55 of host cluster offset; if 0 the cluster is unallocated

Both values correspond to L2 entries with bit 0 set. However, QCOW2_CLUSTER_ZERO_ALLOC is an entry that has a non-zero value in bits 9-55 (the cluster has an allocated host location, we guarantee that things read as zero regardless of whether the host data actually contains zeroes at that offset, and writes go directly to that offset with no further allocation required); while QCOW2_CLUSTER_ZERO_PLAIN is an entry with all zeros in bits 9-55 (we guarantee things read as zero, but writes have to allocate a new cluster because we have not reserved any space in the host yet).

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



reply via email to

[Prev in Thread] Current Thread [Next in Thread]