Hello Stefan, I have take a look at block.c. But I am a little confused about the meaning of synchronous/asynchronous i/o. I know the two concept in a operating system. However I am not sure whether it is analogous in virtual machine.
2011/4/2 Stefan Hajnoczi <stefa...@gmail.com> > On Fri, Apr 1, 2011 at 7:29 PM, Lyu Mitnick <mitnick....@gmail.com> wrote: > > Hello > > I have some question about asynchronous i/o in QEMU block driver: Why a > file > > format with asynchronous i/o support(ex. qcow) doesn't need to register > > bdrv_read/bdrv_write which is registered in vhd file format?? Would qcow > > block driver > > also support synchronous i/o?? > > Take a look at block.c. There are synchronous I/O emulation (and > asynchronous I/O emulation) functions in case the block driver > provides only asynchronous (or synchronous, respectively) functions. > > One thing to mention about synchronous and asynchronous interfaces is > that block drivers which are synchronous really don't work well for > running VMs. They block execution until I/O completes (which can take > a long time) and therefore steal time from the guest (i.e. laggy, poor > I am wondering the meaning of execution block. It is for host host operating system or for guest operating system?? (ie, Could I issue an asynchronous i/o in guest operating system when the vhd file system image mounted) > responsiveness from the guest). Therefore synchronous block drivers > are useful for qemu-img convert but not running VMs. > > Stefan Mitnick