On 03/30/2010 09:03 AM, Avi Kivity wrote:
So it looks like we really only have one operation
(qcow2_alloc_cluster_link_l2) that blocks. Do we really think that
it's sufficiently difficult to make this function asynchronous that
it justifies threading the block layer?
There are also tons of bdrv_pread()s and bdrv_pwrite()s. Isn't
growing some of the tables synchronous? how about creating a snapshot?
Eh, that ruins my whole argument.
If it were just one operation in qcow2, threading would be a big
overkill. But threading also fixes all of the other format drivers,
and makes working on qcow2 easier.
Yeah, I think the only question is whether to stick threading in the
generic block layer or within qcow2.
Regards,
Anthony Liguori