qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [question] savevm/delvm: Is it necessary to perform bdr


From: Kevin Wolf
Subject: Re: [Qemu-devel] [question] savevm/delvm: Is it necessary to perform bdrv_drain_all before savevm and delvm?
Date: Mon, 20 Oct 2014 18:07:24 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

Am 20.10.2014 um 17:09 hat Zhang Haoyu geschrieben:
> >> Hi,
> >>
> >> I noticed that bdrv_drain_all is performed in load_vmstate before
> bdrv_snapshot_goto,
> >> and bdrv_drain_all is performed in qmp_transaction before
> internal_snapshot_prepare,
> >> so is it also neccesary to perform bdrv_drain_all in savevm and delvm?
> >
> >Definitely yes for savevm. do_savevm() calls it indirectly via
> >vm_stop(), so that part looks okay.
> >
> Yes, you are right.
> 
> >delvm doesn't affect the currently running VM, and therefore doesn't
> >interfere with guest requests that are in flight. So I think that a
> >bdrv_drain_all() isn't needed there.
> >
> I'm worried about that there are still pending IOs while deleting snapshot,
> then is it possible that there is concurrency problem between the
> process of deleting snapshot
> and the coroutine of io read/write(bdrv_co_do_rw) invoked by the
> pending IOs?
> This coroutine is also in main thread.
> Am I missing something?

What kind of concurrency problem are you thinking of?

I do see that there might be a chance of concurrency, but that doesn't
automatically mean the requests are conflicting.

Would you feel better with taking s->lock in qcow2_snapshot_delete()?
This might actually be a valid concern.

Kevin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]