qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 3/3] replay: introduce block devices record/repl


From: Pavel Dovgalyuk
Subject: Re: [Qemu-devel] [PATCH 3/3] replay: introduce block devices record/replay
Date: Mon, 15 Feb 2016 17:50:10 +0300

> From: Kevin Wolf [mailto:address@hidden
> > void replay_run_block_event(uint32_t id)
> > {
> >     Request *req;
> >     if (replay_mode == REPLAY_MODE_PLAY) {
> >         while (!(req = block_request_find(id))) {
> >             //aio_poll(bdrv_get_aio_context(req->bs), true);
> >             usleep(1);
> >         }
> 
> >         qemu_coroutine_enter(req->co, NULL);
> >     }
> > }
> >
> > > Can you provide more detail about the exact place where it's hanging,
> > > both in the coroutine and in the main "coroutine" that executes
> > > aio_poll()?

I've tried to replace usleep with aio_poll.
In this case replay cannot be made, because of recursive mutex lock:
aio_poll -> qemu_clock_get_ns -> <lock replay mutex> -> 
  replay_run_block_event -> aio_poll -> qemu_clock_get_ns -> <lock replay 
mutex> ->
  <assert failed>

Pavel Dovgalyuk




reply via email to

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