On Tue, Mar 31, 2015 at 12:35:16PM +0200, Paolo Bonzini wrote: > > > On 20/02/2015 17:26, Paolo Bonzini wrote: > > Right now, iothreads are relying on a "contention callback" to release > > the AioContext (e.g. for block device operations or to do bdrv_drain_all). > > This is necessary because aio_poll needs to be called within an > > aio_context_acquire. > > > > This series drops this requirement for aio_poll, with two effects: > > > > 1) it makes it possible to remove the "contention callback" in RFifoLock > > (and possibly to convert it to a normal GRecMutex, which is why I am not > > including a patch to remove callbacks from RFifoLock). > > > > 2) it makes it possible to start work around making critical sections > > for the block layer fine-grained. > > > > In order to do this, some data is moved from AioContext to local storage. > > Stack allocation has size limitations, so thread-local storage is used > > instead. There are no reentrancy problems because the data is only live > > throughout a small part of aio_poll, and in particular not during the > > invocation of callbacks. > > > > Comments? > > Stefan, can you put this on track for 2.4 or do you need a repost?
Done
pgpF_QopK46W3.pgp
Description: PGP signature