mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
AioContext: take bottom halves into account when computing aio_poll timeout
Right now, QEMU invokes aio_bh_poll before the "poll" phase of aio_poll. It is simpler to do it afterwards and skip the "poll" phase altogether when the OS-dependent parts of AioContext are invoked from GSource. This way, AioContext behaves more similarly when used as a GSource vs. when used as stand-alone. As a start, take bottom halves into account when computing the poll timeout. If a bottom half is ready, do a non-blocking poll. As a side effect, this makes idle bottom halves work with aio_poll; an improvement, but not really an important one since they are deprecated. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
3cbbe9fd1f
commit
845ca10dd0
4 changed files with 29 additions and 17 deletions
|
@ -303,4 +303,12 @@ static inline void aio_timer_init(AioContext *ctx,
|
|||
timer_init(ts, ctx->tlg.tl[type], scale, cb, opaque);
|
||||
}
|
||||
|
||||
/**
|
||||
* aio_compute_timeout:
|
||||
* @ctx: the aio context
|
||||
*
|
||||
* Compute the timeout that a blocking aio_poll should use.
|
||||
*/
|
||||
int64_t aio_compute_timeout(AioContext *ctx);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue