Re: [Qemu-devel] [PATCH 01/16] aio: introduce aio_co_schedule and aio_co_wake

2017-01-19 Thread Stefan Hajnoczi
On Wed, Jan 18, 2017 at 04:40:29PM +0100, Paolo Bonzini wrote: > On 18/01/2017 15:33, Stefan Hajnoczi wrote: > > On Fri, Jan 13, 2017 at 02:17:16PM +0100, Paolo Bonzini wrote: > >> +static void co_schedule_bh_cb(void *opaque) > >> +{ > >> +AioContext *ctx = opaque; > >> +QSLIST_HEAD(,

Re: [Qemu-devel] [PATCH 01/16] aio: introduce aio_co_schedule and aio_co_wake

2017-01-18 Thread Paolo Bonzini
On 18/01/2017 15:33, Stefan Hajnoczi wrote: > On Fri, Jan 13, 2017 at 02:17:16PM +0100, Paolo Bonzini wrote: >> +static void co_schedule_bh_cb(void *opaque) >> +{ >> +AioContext *ctx = opaque; >> +QSLIST_HEAD(, Coroutine) straight, reversed; >> + >> +QSLIST_MOVE_ATOMIC(,

Re: [Qemu-devel] [PATCH 01/16] aio: introduce aio_co_schedule and aio_co_wake

2017-01-18 Thread Stefan Hajnoczi
On Fri, Jan 13, 2017 at 02:17:16PM +0100, Paolo Bonzini wrote: > +static void co_schedule_bh_cb(void *opaque) > +{ > +AioContext *ctx = opaque; > +QSLIST_HEAD(, Coroutine) straight, reversed; > + > +QSLIST_MOVE_ATOMIC(, >scheduled_coroutines); > +QSLIST_INIT(); > + > +while

Re: [Qemu-devel] [PATCH 01/16] aio: introduce aio_co_schedule and aio_co_wake

2017-01-16 Thread Fam Zheng
On Mon, 01/16 13:19, Paolo Bonzini wrote: > >> +static void co_schedule_bh_cb(void *opaque) > >> +{ > >> +AioContext *ctx = opaque; > >> +QSLIST_HEAD(, Coroutine) straight, reversed; > >> + > >> +QSLIST_MOVE_ATOMIC(, >scheduled_coroutines); > >> +QSLIST_INIT(); > > > > Worth

Re: [Qemu-devel] [PATCH 01/16] aio: introduce aio_co_schedule and aio_co_wake

2017-01-16 Thread Paolo Bonzini
On 16/01/2017 12:09, Fam Zheng wrote: > On Fri, 01/13 14:17, Paolo Bonzini wrote: >> aio_co_wake provides the infrastructure to start a coroutine on a "home" >> AioContext. It will be used by CoMutex and CoQueue, so that coroutines >> don't jump from one context to another when they go to sleep

Re: [Qemu-devel] [PATCH 01/16] aio: introduce aio_co_schedule and aio_co_wake

2017-01-16 Thread Fam Zheng
On Fri, 01/13 14:17, Paolo Bonzini wrote: > aio_co_wake provides the infrastructure to start a coroutine on a "home" > AioContext. It will be used by CoMutex and CoQueue, so that coroutines > don't jump from one context to another when they go to sleep on a > mutex or waitqueue. However, it can