Re: [Qemu-devel] [PATCH v3 3/4] migration: avoid recursive AioContext locking in save_vmstate()

2017-06-15 Thread Pavel Butsykin
On 14.06.2017 17:43, Kevin Wolf wrote: Am 14.06.2017 um 15:15 hat Pavel Butsykin geschrieben: On 14.06.2017 13:10, Pavel Butsykin wrote: On 22.05.2017 16:57, Stefan Hajnoczi wrote: AioContext was designed to allow nested acquire/release calls. It uses a recursive mutex so callers don't need

Re: [Qemu-devel] [PATCH v3 3/4] migration: avoid recursive AioContext locking in save_vmstate()

2017-06-14 Thread Kevin Wolf
Am 14.06.2017 um 15:15 hat Pavel Butsykin geschrieben: > On 14.06.2017 13:10, Pavel Butsykin wrote: > > > >On 22.05.2017 16:57, Stefan Hajnoczi wrote: > >>AioContext was designed to allow nested acquire/release calls. It uses > >>a recursive mutex so callers don't need to worry about nesting...or

Re: [Qemu-devel] [PATCH v3 3/4] migration: avoid recursive AioContext locking in save_vmstate()

2017-06-14 Thread Pavel Butsykin
On 14.06.2017 13:10, Pavel Butsykin wrote: On 22.05.2017 16:57, Stefan Hajnoczi wrote: AioContext was designed to allow nested acquire/release calls. It uses a recursive mutex so callers don't need to worry about nesting...or so we thought. BDRV_POLL_WHILE() is used to wait for block I/O requ

Re: [Qemu-devel] [PATCH v3 3/4] migration: avoid recursive AioContext locking in save_vmstate()

2017-06-14 Thread Pavel Butsykin
On 22.05.2017 16:57, Stefan Hajnoczi wrote: AioContext was designed to allow nested acquire/release calls. It uses a recursive mutex so callers don't need to worry about nesting...or so we thought. BDRV_POLL_WHILE() is used to wait for block I/O requests. It releases the AioContext temporaril

[Qemu-devel] [PATCH v3 3/4] migration: avoid recursive AioContext locking in save_vmstate()

2017-05-22 Thread Stefan Hajnoczi
AioContext was designed to allow nested acquire/release calls. It uses a recursive mutex so callers don't need to worry about nesting...or so we thought. BDRV_POLL_WHILE() is used to wait for block I/O requests. It releases the AioContext temporarily around aio_poll(). This gives IOThreads a ch