[Qemu-devel] [PATCH 01/10] coroutine: use qemu_coroutine_switch() directly

2012-04-03 Thread Lai Jiangshan
When qemu_coroutine_switch() in the qemu_coroutine_yield() returns,
It must be someone calls qemu_coroutine_enter() for it, so the @to
is active, the tests in coroutine_swap() are unneeded, so we use
qemu_coroutine_switch() directly in qemu_coroutine_yield().

Signed-off-by: Lai Jiangshan la...@cn.fujitsu.com
---
 qemu-coroutine.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/qemu-coroutine.c b/qemu-coroutine.c
index 600be26..c01252e 100644
--- a/qemu-coroutine.c
+++ b/qemu-coroutine.c
@@ -71,5 +71,5 @@ void coroutine_fn qemu_coroutine_yield(void)
 }
 
 self-caller = NULL;
-coroutine_swap(self, to);
+qemu_coroutine_switch(self, to, COROUTINE_YIELD);
 }
-- 
1.7.4.4




Re: [Qemu-devel] [PATCH 01/10] coroutine: use qemu_coroutine_switch() directly

2012-04-03 Thread Paolo Bonzini
Il 03/04/2012 10:38, Lai Jiangshan ha scritto:
 When qemu_coroutine_switch() in the qemu_coroutine_yield() returns,
 It must be someone calls qemu_coroutine_enter() for it, so the @to
 is active, the tests in coroutine_swap() are unneeded, so we use
 qemu_coroutine_switch() directly in qemu_coroutine_yield().

The patches are very different.  Some of them are just cleanups which I
like (patches 2 to 7, more or less).  The others seem to be a (micro?)
optimization whose usecase and result you didn't document because there
was no cover letter.  This patch is an example, is one or two ifs so
expensive that it matters?

Paolo

 Signed-off-by: Lai Jiangshan la...@cn.fujitsu.com
 ---
  qemu-coroutine.c |2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
 
 diff --git a/qemu-coroutine.c b/qemu-coroutine.c
 index 600be26..c01252e 100644
 --- a/qemu-coroutine.c
 +++ b/qemu-coroutine.c
 @@ -71,5 +71,5 @@ void coroutine_fn qemu_coroutine_yield(void)
  }
  
  self-caller = NULL;
 -coroutine_swap(self, to);
 +qemu_coroutine_switch(self, to, COROUTINE_YIELD);
  }