qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] How to understand the coroutine context?
@ 2014-03-17 23:56 Le Tan
  2014-03-18  4:04 ` Kashyap Chamarthy
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Le Tan @ 2014-03-17 23:56 UTC (permalink / raw)
  To: qemu-devel

Hi, I am diving into the source code of qemu. I see the word
"coroutine" appears in so many places. I can't figure out what it
means. So, please, can anyone help me, telling me the mechanism or
semantic of "coroutine"? Thanks!

--Le Tan

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] How to understand the coroutine context?
  2014-03-17 23:56 [Qemu-devel] How to understand the coroutine context? Le Tan
@ 2014-03-18  4:04 ` Kashyap Chamarthy
  2014-03-18  5:45   ` Le Tan
  2014-03-18 22:28   ` Thomas Huth
  2014-03-18 12:28 ` Juan Quintela
  2014-03-18 13:57 ` Leandro Dorileo
  2 siblings, 2 replies; 12+ messages in thread
From: Kashyap Chamarthy @ 2014-03-18  4:04 UTC (permalink / raw)
  To: Le Tan; +Cc: qemu-devel

On Tue, Mar 18, 2014 at 07:56:16AM +0800, Le Tan wrote:
> Hi, I am diving into the source code of qemu. I see the word
> "coroutine" appears in so many places. I can't figure out what it
> means. So, please, can anyone help me, telling me the mechanism or
> semantic of "coroutine"? Thanks!

This might be of help --
http://blog.vmsplice.net/2014/01/coroutines-in-qemu-basics.html


-- 
/kashyap

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] How to understand the coroutine context?
  2014-03-18  4:04 ` Kashyap Chamarthy
@ 2014-03-18  5:45   ` Le Tan
  2014-03-18 22:28   ` Thomas Huth
  1 sibling, 0 replies; 12+ messages in thread
From: Le Tan @ 2014-03-18  5:45 UTC (permalink / raw)
  To: Kashyap Chamarthy; +Cc: qemu-devel

Thanks, that is an excellent blog!

2014-03-18 12:04 GMT+08:00 Kashyap Chamarthy <kchamart@redhat.com>:
> On Tue, Mar 18, 2014 at 07:56:16AM +0800, Le Tan wrote:
>> Hi, I am diving into the source code of qemu. I see the word
>> "coroutine" appears in so many places. I can't figure out what it
>> means. So, please, can anyone help me, telling me the mechanism or
>> semantic of "coroutine"? Thanks!
>
> This might be of help --
> http://blog.vmsplice.net/2014/01/coroutines-in-qemu-basics.html
>
>
> --
> /kashyap

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] How to understand the coroutine context?
  2014-03-17 23:56 [Qemu-devel] How to understand the coroutine context? Le Tan
  2014-03-18  4:04 ` Kashyap Chamarthy
@ 2014-03-18 12:28 ` Juan Quintela
  2014-03-18 12:54   ` Markus Armbruster
  2014-03-18 13:57 ` Leandro Dorileo
  2 siblings, 1 reply; 12+ messages in thread
From: Juan Quintela @ 2014-03-18 12:28 UTC (permalink / raw)
  To: Le Tan; +Cc: qemu-devel

Le Tan <tamlokveer@gmail.com> wrote:
> Hi, I am diving into the source code of qemu. I see the word
> "coroutine" appears in so many places. I can't figure out what it
> means. So, please, can anyone help me, telling me the mechanism or
> semantic of "coroutine"? Thanks!

google, 1st hit, wikipedia:

https://en.wikipedia.org/wiki/Coroutine

A bit short resume:

Getting "user"-threads when you don't have threads.

Later, Juan.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] How to understand the coroutine context?
  2014-03-18 12:28 ` Juan Quintela
@ 2014-03-18 12:54   ` Markus Armbruster
  2014-03-18 13:13     ` Juan Quintela
  0 siblings, 1 reply; 12+ messages in thread
From: Markus Armbruster @ 2014-03-18 12:54 UTC (permalink / raw)
  To: quintela; +Cc: Le Tan, qemu-devel

Juan Quintela <quintela@redhat.com> writes:

> Le Tan <tamlokveer@gmail.com> wrote:
>> Hi, I am diving into the source code of qemu. I see the word
>> "coroutine" appears in so many places. I can't figure out what it
>> means. So, please, can anyone help me, telling me the mechanism or
>> semantic of "coroutine"? Thanks!
>
> google, 1st hit, wikipedia:
>
> https://en.wikipedia.org/wiki/Coroutine
>
> A bit short resume:
>
> Getting "user"-threads when you don't have threads.

More like getting multiple flows of control even though you don't want
threads.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] How to understand the coroutine context?
  2014-03-18 12:54   ` Markus Armbruster
@ 2014-03-18 13:13     ` Juan Quintela
  2014-03-18 13:48       ` Markus Armbruster
  0 siblings, 1 reply; 12+ messages in thread
From: Juan Quintela @ 2014-03-18 13:13 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: Le Tan, qemu-devel

Markus Armbruster <armbru@redhat.com> wrote:
> Juan Quintela <quintela@redhat.com> writes:
>
>> Le Tan <tamlokveer@gmail.com> wrote:
>>> Hi, I am diving into the source code of qemu. I see the word
>>> "coroutine" appears in so many places. I can't figure out what it
>>> means. So, please, can anyone help me, telling me the mechanism or
>>> semantic of "coroutine"? Thanks!
>>
>> google, 1st hit, wikipedia:
>>
>> https://en.wikipedia.org/wiki/Coroutine
>>
>> A bit short resume:
>>
>> Getting "user"-threads when you don't have threads.
>
> More like getting multiple flows of control even though you don't want
> threads.

If he don't understand coroutine, you think that flows of control has
any chance? O:-)

Later, Juan.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] How to understand the coroutine context?
  2014-03-18 13:13     ` Juan Quintela
@ 2014-03-18 13:48       ` Markus Armbruster
  0 siblings, 0 replies; 12+ messages in thread
From: Markus Armbruster @ 2014-03-18 13:48 UTC (permalink / raw)
  To: quintela; +Cc: Le Tan, qemu-devel

Juan Quintela <quintela@redhat.com> writes:

> Markus Armbruster <armbru@redhat.com> wrote:
>> Juan Quintela <quintela@redhat.com> writes:
>>
>>> Le Tan <tamlokveer@gmail.com> wrote:
>>>> Hi, I am diving into the source code of qemu. I see the word
>>>> "coroutine" appears in so many places. I can't figure out what it
>>>> means. So, please, can anyone help me, telling me the mechanism or
>>>> semantic of "coroutine"? Thanks!
>>>
>>> google, 1st hit, wikipedia:
>>>
>>> https://en.wikipedia.org/wiki/Coroutine
>>>
>>> A bit short resume:
>>>
>>> Getting "user"-threads when you don't have threads.
>>
>> More like getting multiple flows of control even though you don't want
>> threads.
>
> If he don't understand coroutine, you think that flows of control has
> any chance? O:-)

Point taken & LOL

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] How to understand the coroutine context?
  2014-03-17 23:56 [Qemu-devel] How to understand the coroutine context? Le Tan
  2014-03-18  4:04 ` Kashyap Chamarthy
  2014-03-18 12:28 ` Juan Quintela
@ 2014-03-18 13:57 ` Leandro Dorileo
  2 siblings, 0 replies; 12+ messages in thread
From: Leandro Dorileo @ 2014-03-18 13:57 UTC (permalink / raw)
  To: Le Tan; +Cc: qemu-devel

Hi,

On Tue, Mar 18, 2014 at 07:56:16AM +0800, Le Tan wrote:
> Hi, I am diving into the source code of qemu. I see the word
> "coroutine" appears in so many places. I can't figure out what it
> means. So, please, can anyone help me, telling me the mechanism or
> semantic of "coroutine"? Thanks!

If you want to understand the coroutine technique itself take a look
at this page[1], the're two references that may be helpfull.

A friend of mine has described[2] his view on implementing coroutine,
this may be helpfull as well.

[1] - http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html
[2] - http://tia.mat.br/blog/html/2012/09/29/asynchronous_i_o_in_c_with_coroutines.html

Regards...

-- 
Leandro Dorileo

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] How to understand the coroutine context?
  2014-03-18  4:04 ` Kashyap Chamarthy
  2014-03-18  5:45   ` Le Tan
@ 2014-03-18 22:28   ` Thomas Huth
  2014-03-19 10:05     ` Stefan Hajnoczi
  1 sibling, 1 reply; 12+ messages in thread
From: Thomas Huth @ 2014-03-18 22:28 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: qemu-devel, Le Tan, Kashyap Chamarthy

On Tue, 18 Mar 2014 09:34:56 +0530
Kashyap Chamarthy <kchamart@redhat.com> wrote:

> On Tue, Mar 18, 2014 at 07:56:16AM +0800, Le Tan wrote:
> > Hi, I am diving into the source code of qemu. I see the word
> > "coroutine" appears in so many places. I can't figure out what it
> > means. So, please, can anyone help me, telling me the mechanism or
> > semantic of "coroutine"? Thanks!
> 
> This might be of help --
> http://blog.vmsplice.net/2014/01/coroutines-in-qemu-basics.html

That's a very nice introduction ... Stefan, maybe you could also add
that to the docs directory of the QEMU repository? There does not seem
to be a description of the QEMU coroutines there yet...

 Regards,
  Thomas

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] How to understand the coroutine context?
  2014-03-18 22:28   ` Thomas Huth
@ 2014-03-19 10:05     ` Stefan Hajnoczi
  2014-03-19 10:13       ` Thomas Huth
  0 siblings, 1 reply; 12+ messages in thread
From: Stefan Hajnoczi @ 2014-03-19 10:05 UTC (permalink / raw)
  To: Thomas Huth; +Cc: qemu-devel, Le Tan, Kashyap Chamarthy

On Tue, Mar 18, 2014 at 11:28:47PM +0100, Thomas Huth wrote:
> On Tue, 18 Mar 2014 09:34:56 +0530
> Kashyap Chamarthy <kchamart@redhat.com> wrote:
> 
> > On Tue, Mar 18, 2014 at 07:56:16AM +0800, Le Tan wrote:
> > > Hi, I am diving into the source code of qemu. I see the word
> > > "coroutine" appears in so many places. I can't figure out what it
> > > means. So, please, can anyone help me, telling me the mechanism or
> > > semantic of "coroutine"? Thanks!
> > 
> > This might be of help --
> > http://blog.vmsplice.net/2014/01/coroutines-in-qemu-basics.html
> 
> That's a very nice introduction ... Stefan, maybe you could also add
> that to the docs directory of the QEMU repository? There does not seem
> to be a description of the QEMU coroutines there yet...

Have you seen the documentation in include/block/coroutine.h?

Stefan

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] How to understand the coroutine context?
  2014-03-19 10:05     ` Stefan Hajnoczi
@ 2014-03-19 10:13       ` Thomas Huth
  2014-03-19 11:15         ` Stefan Hajnoczi
  0 siblings, 1 reply; 12+ messages in thread
From: Thomas Huth @ 2014-03-19 10:13 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: qemu-devel, Le Tan, Kashyap Chamarthy

On Wed, 19 Mar 2014 11:05:02 +0100
Stefan Hajnoczi <stefanha@redhat.com> wrote:

> On Tue, Mar 18, 2014 at 11:28:47PM +0100, Thomas Huth wrote:
> > On Tue, 18 Mar 2014 09:34:56 +0530
> > Kashyap Chamarthy <kchamart@redhat.com> wrote:
> > 
> > > On Tue, Mar 18, 2014 at 07:56:16AM +0800, Le Tan wrote:
> > > > Hi, I am diving into the source code of qemu. I see the word
> > > > "coroutine" appears in so many places. I can't figure out what it
> > > > means. So, please, can anyone help me, telling me the mechanism or
> > > > semantic of "coroutine"? Thanks!
> > > 
> > > This might be of help --
> > > http://blog.vmsplice.net/2014/01/coroutines-in-qemu-basics.html
> > 
> > That's a very nice introduction ... Stefan, maybe you could also add
> > that to the docs directory of the QEMU repository? There does not seem
> > to be a description of the QEMU coroutines there yet...
> 
> Have you seen the documentation in include/block/coroutine.h?

Yes, but that does not have the nice introduction that you've given in
your blog - that's why I though it might be useful to have that
information in a file in the docs directory, too. Well, it was just an
idea ... if you think the API description in coroutine.h is sufficient,
I am certainly fine with that.

 Regards,
  Thomas

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Qemu-devel] How to understand the coroutine context?
  2014-03-19 10:13       ` Thomas Huth
@ 2014-03-19 11:15         ` Stefan Hajnoczi
  0 siblings, 0 replies; 12+ messages in thread
From: Stefan Hajnoczi @ 2014-03-19 11:15 UTC (permalink / raw)
  To: Thomas Huth; +Cc: qemu-devel, Le Tan, Kashyap Chamarthy

On Wed, Mar 19, 2014 at 11:13:56AM +0100, Thomas Huth wrote:
> On Wed, 19 Mar 2014 11:05:02 +0100
> Stefan Hajnoczi <stefanha@redhat.com> wrote:
> 
> > On Tue, Mar 18, 2014 at 11:28:47PM +0100, Thomas Huth wrote:
> > > On Tue, 18 Mar 2014 09:34:56 +0530
> > > Kashyap Chamarthy <kchamart@redhat.com> wrote:
> > > 
> > > > On Tue, Mar 18, 2014 at 07:56:16AM +0800, Le Tan wrote:
> > > > > Hi, I am diving into the source code of qemu. I see the word
> > > > > "coroutine" appears in so many places. I can't figure out what it
> > > > > means. So, please, can anyone help me, telling me the mechanism or
> > > > > semantic of "coroutine"? Thanks!
> > > > 
> > > > This might be of help --
> > > > http://blog.vmsplice.net/2014/01/coroutines-in-qemu-basics.html
> > > 
> > > That's a very nice introduction ... Stefan, maybe you could also add
> > > that to the docs directory of the QEMU repository? There does not seem
> > > to be a description of the QEMU coroutines there yet...
> > 
> > Have you seen the documentation in include/block/coroutine.h?
> 
> Yes, but that does not have the nice introduction that you've given in
> your blog - that's why I though it might be useful to have that
> information in a file in the docs directory, too. Well, it was just an
> idea ... if you think the API description in coroutine.h is sufficient,
> I am certainly fine with that.

I will expand the documentation in include/block/coroutine.h.

Stefan

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-03-19 11:15 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-17 23:56 [Qemu-devel] How to understand the coroutine context? Le Tan
2014-03-18  4:04 ` Kashyap Chamarthy
2014-03-18  5:45   ` Le Tan
2014-03-18 22:28   ` Thomas Huth
2014-03-19 10:05     ` Stefan Hajnoczi
2014-03-19 10:13       ` Thomas Huth
2014-03-19 11:15         ` Stefan Hajnoczi
2014-03-18 12:28 ` Juan Quintela
2014-03-18 12:54   ` Markus Armbruster
2014-03-18 13:13     ` Juan Quintela
2014-03-18 13:48       ` Markus Armbruster
2014-03-18 13:57 ` Leandro Dorileo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).