Alberto García

O Grove (Spain)

One of the founding members of Igalia, Alberto loves computing since he got his first ZX Spectrum in the early nineties.

Latest Updates

Alberto García 08/02/2017

QEMU and the qcow2 metadata checks

When choosing a disk image format for your virtual machine one of the factors to take into considerations is its I/O performance. In this post I’ll talk a bit about the internals of qcow2 and about one of the aspects that can affect its performance...

Alberto García 24/05/2016

I/O bursts with QEMU 2.6

QEMU 2.6 was released a few days ago. One new feature that I have been working on is the new way to configure I/O limits in disk drives to allow bursts and increase the responsiveness of the virtual machine. In this post I’ll try to explain how it...

Alberto García 17/12/2015

Improving disk I/O performance in QEMU 2.5 with the qcow2 L2 cache

QEMU 2.5 has just been released, with a lot of new features. As with the previous release, we have also created a video changelog. I plan to write a few blog posts explaining some of the things I have been working on. In this one I’m going to talk...

Filter

By Type:

Commits

qcow2: Use offset_into_cluster() and offset_to_l2_index()

qcow2: Use offset_into_cluster() and offset_to_l2_index() We already have functions for doing these calculations, so let's use them instead of doing everything by hand. This makes the code a bit more readable. Signed-off-by: Alberto Garcia...

Alberto García26/06/2017

qcow2: Merge the writing of the COW regions with the guest data

qcow2: Merge the writing of the COW regions with the guest data If the guest tries to write data that results on the allocation of a new cluster, instead of writing the guest data first and then the data from the COW regions, write everything together...

Alberto García26/06/2017

qcow2: Pass a QEMUIOVector to do_perform_cow_{read,write}()

qcow2: Pass a QEMUIOVector to do_perform_cow_{read,write}() Instead of passing a single buffer pointer to do_perform_cow_write(), pass a QEMUIOVector. This will allow us to merge the write requests for the COW regions and the actual data into a single...

Alberto García26/06/2017

qcow2: Allow reading both COW regions with only one request

qcow2: Allow reading both COW regions with only one request Reading both COW regions requires two separate requests, but it's perfectly possible to merge them and perform only one. This generally improves performance, particularly on rotating disk...

Alberto García26/06/2017

qcow2: Split do_perform_cow() into _read(), _encrypt() and _write()

qcow2: Split do_perform_cow() into _read(), _encrypt() and _write() This patch splits do_perform_cow() into three separate functions to read, encrypt and write the COW regions. perform_cow() can now read both regions first, then encrypt them...

Alberto García26/06/2017