On 14/05/21 19:27, Roman Kagan wrote:
AFAICS your patch has basically the same effect as Vladimir's patch "util/async: aio_co_enter(): do aio_co_schedule in general case" (https://lore.kernel.org/qemu-devel/20210408140827.332915-4-vsement...@virtuozzo.com/). That one was found to break e.g. aio=threads cases. I guessed it implicitly relied upon aio_co_enter() acquiring the aio_context but we didn't dig further to pinpoint the exact scenario.
That one is much more intrusive, because it goes through a bottom half unnecessarily in the case of aio_co_wake being called from an I/O callback (or from another bottom half). I'll test my patch with aio=threads.
Paolo