Re: [Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-09-11 Thread Fam Zheng
On Fri, 09/11 10:15, Paolo Bonzini wrote: > > > On 09/09/2015 05:22, Fam Zheng wrote: > > Another advantage for bdrv_aio_poll() is, in main loop we will not need > > a separate AioContext in changes like: > > > > http://patchwork.ozlabs.org/patch/514968/ > > > > Because nested aio_poll will aut

Re: [Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-09-11 Thread Paolo Bonzini
On 09/09/2015 05:22, Fam Zheng wrote: > Another advantage for bdrv_aio_poll() is, in main loop we will not need > a separate AioContext in changes like: > > http://patchwork.ozlabs.org/patch/514968/ > > Because nested aio_poll will automatically be limited to only process block > layer events.

Re: [Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-09-08 Thread Fam Zheng
On Wed, 07/29 14:03, Paolo Bonzini wrote: > > > On 29/07/2015 13:53, Fam Zheng wrote: > >> > Yes, though I think you'd end up reverting patches 10 and 11 in the end. > > We will add outer disable/enable pairs to prevent another threads's aio_poll > > from sneaking in between bdrv_aio_poll calls,

Re: [Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-07-30 Thread Paolo Bonzini
On 30/07/2015 03:35, Fam Zheng wrote: > block.cbdrv_create > block/curl.c curl_init_state > block/io.c bdrv_drain > block/io.c bdrv_drain_all > block/io.c bdrv_prwv_co > block/io.c bdrv_get_block_status_above > block/io.c

Re: [Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-07-29 Thread Fam Zheng
On Wed, 07/29 14:03, Paolo Bonzini wrote: > > > On 29/07/2015 13:53, Fam Zheng wrote: > >> > Yes, though I think you'd end up reverting patches 10 and 11 in the end. > > We will add outer disable/enable pairs to prevent another threads's aio_poll > > from sneaking in between bdrv_aio_poll calls,

Re: [Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-07-29 Thread Paolo Bonzini
On 29/07/2015 13:53, Fam Zheng wrote: >> > Yes, though I think you'd end up reverting patches 10 and 11 in the end. > We will add outer disable/enable pairs to prevent another threads's aio_poll > from sneaking in between bdrv_aio_poll calls, but we needn't obsolete > bdrv_aio_poll() because of t

Re: [Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-07-29 Thread Fam Zheng
On Wed, 07/29 13:02, Paolo Bonzini wrote: > > > On 29/07/2015 12:57, Fam Zheng wrote: > > On Wed, 07/29 09:37, Paolo Bonzini wrote: > >> > >> > >> On 29/07/2015 06:42, Fam Zheng wrote: > >>> @@ -2613,6 +2613,8 @@ bool bdrv_aio_poll(AioContext *ctx, bool blocking) > >>> { > >>> bool ret; > >

Re: [Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-07-29 Thread Paolo Bonzini
On 29/07/2015 12:57, Fam Zheng wrote: > On Wed, 07/29 09:37, Paolo Bonzini wrote: >> >> >> On 29/07/2015 06:42, Fam Zheng wrote: >>> @@ -2613,6 +2613,8 @@ bool bdrv_aio_poll(AioContext *ctx, bool blocking) >>> { >>> bool ret; >>> >>> +aio_disable_clients(ctx, AIO_CLIENT_DATAPLANE | AI

Re: [Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-07-29 Thread Fam Zheng
On Wed, 07/29 09:37, Paolo Bonzini wrote: > > > On 29/07/2015 06:42, Fam Zheng wrote: > > @@ -2613,6 +2613,8 @@ bool bdrv_aio_poll(AioContext *ctx, bool blocking) > > { > > bool ret; > > > > +aio_disable_clients(ctx, AIO_CLIENT_DATAPLANE | AIO_CLIENT_NBD_SERVER); > > ret = aio_po

Re: [Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-07-29 Thread Paolo Bonzini
On 29/07/2015 06:42, Fam Zheng wrote: > @@ -2613,6 +2613,8 @@ bool bdrv_aio_poll(AioContext *ctx, bool blocking) > { > bool ret; > > +aio_disable_clients(ctx, AIO_CLIENT_DATAPLANE | AIO_CLIENT_NBD_SERVER); > ret = aio_poll(ctx, blocking); > +aio_enable_clients(ctx, AIO_CLIENT

Re: [Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-07-29 Thread Paolo Bonzini
On 29/07/2015 06:42, Fam Zheng wrote: > @@ -2613,6 +2613,8 @@ bool bdrv_aio_poll(AioContext *ctx, bool blocking) > { > bool ret; > > +aio_disable_clients(ctx, AIO_CLIENT_DATAPLANE | AIO_CLIENT_NBD_SERVER); > ret = aio_poll(ctx, blocking); > +aio_enable_clients(ctx, AIO_CLIENT

[Qemu-devel] [PATCH v2 11/11] block: Only poll block layer fds in bdrv_aio_poll

2015-07-28 Thread Fam Zheng
So that external events are not processed in nested event loops. Signed-off-by: Fam Zheng --- block/io.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/block/io.c b/block/io.c index 3d255e0..84047fe 100644 --- a/block/io.c +++ b/block/io.c @@ -2613,6 +2613,8 @@ bool bdrv_aio_poll(AioConte