Hi, Stefan: Thanks for your relay. There are some jobs like drive-mirror, can keep running continuously (without --finish/--pivort option ). While the mirroring, we may need to run other block jobs, e.g. running block-commit or block-stream to decrease the length of the image chain so that the vm's perf can be improved. Although I am also agree that it will require a lot of care, the ability for enabling multiple jobs at the same time does make sence under some scenario.
> -----Original Message----- > From: Stefan Hajnoczi [mailto:stefa...@gmail.com] > Sent: Wednesday, April 24, 2013 9:55 PM > To: Zhangleiqiang > Cc: Paolo Bonzini; qemu-devel@nongnu.org > Subject: Re: [Qemu-devel] question about concurrent block job > > On Wed, Apr 24, 2013 at 12:28 PM, Zhangleiqiang > <zhangleiqi...@huawei.com> wrote: > > I found qemu does not support concurrently running multiple block > jobs of the same drive (limited by the bs->in_use field). But there are > indeed > some type of block job can run concurrently, such as running block stream job > while running drive mirror, etc. Am I right ? Is it necessary to introduce > the > concurrency mechanism in qemu ? > > stream and mirror both switch to the destination image file when they > complete. I'm not sure it makes sense to run both at the same time. > Some of the block jobs can interfere with each other, so it's simplest > to only allow one. > Enabling multiple jobs at the same time will require a lot of care, > including extending the HMP/QMP APIs to deal with multiple jobs. > bs->job is a scalar field at the moment. > > Stefan ---------- Leiqzhang Best Regards