Hello Stefan, 2011/4/3 Stefan Hajnoczi <stefa...@gmail.com>
> On Sat, Apr 2, 2011 at 8:03 PM, Lyu Mitnick <mitnick....@gmail.com> wrote: > > 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. > > You may want to read up on the QEMU threading model: > > http://blog.vmsplice.net/2011/03/qemu-internals-overall-architecture-and.html > > (Over)simplifying a bit, only one host thread can be executing QEMU > code at any given time because QEMU is not thread-safe internally. If > the VM issues a disk read and QEMU uses a read(2) system call to > service it, then QEMU and the VM is blocked until the read(2) system > call completes. Therefore it is better to use asynchronous I/O in > QEMU and resume the VM. Once the read operation completes a callback > in QEMU is invoked and we can signal completion back to the VM. > > Also, in terms of the storage controller interfaces that QEMU emulates > (IDE, SCSI, virtio-blk) disk operations are queued or handed to the > hardware. The guest operating system expects to continue executing > while the disk operation is in progress. On completion the storage > controller raises an interrupt and the operating system will complete > the I/O. Again, this is an asynchronous (request/response) model > rather than a synchronous operation from the guest operating system > perspective. > > Look at hw/virtio-blk.c:virtio_blk_handle_output() for an example of > how disk emulation works in QEMU. > > For qemu-img it is more natural to use synchronous I/O because it is > just a sequential C program, not an event-driven program like QEMU. > > Stefan > I am writing my proposal now. I met a problem about describing "Adding Fixed hard disk image and Differencing hard disk image support into VHD format. This is a format with three sub-format . Is exist another format containing sub-format and I can take a look?? Thanks Mitnick