On 12/15/2017 06:53 AM, Alberto Garcia wrote: > The table size in the qcow2 cache is currently equal to the cluster > size. This doesn't allow us to use the cache memory efficiently, > particularly with large cluster sizes, so we need to be able to have > smaller cache tables that are independent from the cluster size. This > patch adds a new field to Qcow2Cache that we can use instead of the > cluster size. > > The current table size is still being initialized to the cluster size, > so there are no semantic changes yet, but this patch will allow us to > prepare the rest of the code and simplify a few function calls. > > Signed-off-by: Alberto Garcia <[email protected]> > --- > block/qcow2-cache.c | 29 ++++++++++++++--------------- > 1 file changed, 14 insertions(+), 15 deletions(-) > > diff --git a/block/qcow2-cache.c b/block/qcow2-cache.c
Reviewed-by: Eric Blake <[email protected]> > > @@ -331,7 +330,7 @@ static int qcow2_cache_do_get(BlockDriverState *bs, > Qcow2Cache *c, > trace_qcow2_cache_get(qemu_coroutine_self(), c == s->l2_table_cache, > offset, read_from_disk); > > - if (offset_into_cluster(s, offset)) { > + if (offset & (c->table_size - 1)) { Worth writing that as QEMU_IS_ALIGNED(offset, c->table_size) instead of open-coding the bit-wise math? -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature
