Re: [Qemu-devel] [PATCH 09/10] coroutine: schedule timeout coroutine instead process it directly

2012-04-03 Thread Paolo Bonzini
Il 03/04/2012 10:38, Lai Jiangshan ha scritto:
> Avoid a timer callback spends too much time.
> 
> Signed-off-by: Lai Jiangshan 
> ---
>  qemu-coroutine-sleep.c |2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/qemu-coroutine-sleep.c b/qemu-coroutine-sleep.c
> index fd65274..df9254a 100644
> --- a/qemu-coroutine-sleep.c
> +++ b/qemu-coroutine-sleep.c
> @@ -24,7 +24,7 @@ static void co_sleep_cb(void *opaque)
>  CoSleepCB *sleep_cb = opaque;
>  
>  qemu_free_timer(sleep_cb->ts);
> -qemu_coroutine_enter(sleep_cb->co, NULL);
> +qemu_co_runnable_schedule(sleep_cb->co);
>  }
>  
>  void coroutine_fn co_sleep_ns(QEMUClock *clock, int64_t ns)

Why is this important?

Also, why should it be different for timers, fd_handlers (used for
example by NBD) and bottom halves (used for AIO callbacks)?

Paolo




[Qemu-devel] [PATCH 09/10] coroutine: schedule timeout coroutine instead process it directly

2012-04-03 Thread Lai Jiangshan
Avoid a timer callback spends too much time.

Signed-off-by: Lai Jiangshan 
---
 qemu-coroutine-sleep.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/qemu-coroutine-sleep.c b/qemu-coroutine-sleep.c
index fd65274..df9254a 100644
--- a/qemu-coroutine-sleep.c
+++ b/qemu-coroutine-sleep.c
@@ -24,7 +24,7 @@ static void co_sleep_cb(void *opaque)
 CoSleepCB *sleep_cb = opaque;
 
 qemu_free_timer(sleep_cb->ts);
-qemu_coroutine_enter(sleep_cb->co, NULL);
+qemu_co_runnable_schedule(sleep_cb->co);
 }
 
 void coroutine_fn co_sleep_ns(QEMUClock *clock, int64_t ns)
-- 
1.7.4.4