All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] QEMU live block-migration
@ 2013-07-07 14:55 Yaodong Yang
  2013-07-08 15:32 ` Michael Roth
  0 siblings, 1 reply; 6+ messages in thread
From: Yaodong Yang @ 2013-07-07 14:55 UTC (permalink / raw)
  To: qemu-discuss, qemu-devel; +Cc: Yaodong Yang

[-- Attachment #1: Type: text/plain, Size: 602 bytes --]

Hello everyone,

I have a short question about the implementation of QEMU. When the qemu
perform the live block migration using "migrate -b tcp:...." command. Does
a new thread for migration created or not? I went through the code, only
find that this activity is triggered in the main loop (main_loop_wait(int
nonblocking) function). I want to know is there a new dedicated thread
created for this migration task or not? If so, where in the code the new
thread created.

Thanks!
Yaodong
-- 
Yaodong Yang
Computer Science and Engineering Department
University of Nebraska--Lincoln,
Lincoln, NE, U.S.A.

[-- Attachment #2: Type: text/html, Size: 751 bytes --]

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

* Re: [Qemu-devel] QEMU live block-migration
  2013-07-07 14:55 [Qemu-devel] QEMU live block-migration Yaodong Yang
@ 2013-07-08 15:32 ` Michael Roth
  2013-07-08 15:57   ` Yaodong Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Roth @ 2013-07-08 15:32 UTC (permalink / raw)
  To: Yaodong Yang, qemu-discuss, qemu-devel; +Cc: Yaodong Yang

Quoting Yaodong Yang (2013-07-07 09:55:06)
> Hello everyone,
>    I have a short question about the implementation of QEMU. When the qemu
>    perform the live block migration using "migrate -b tcp:...." command. Does
>    a new thread for migration created or not? I went through the code, only
>    find that this activity is triggered in the main loop (main_loop_wait(int

An outgoing non-blocking connection is triggered by
tcp_start_outgoing_migration, once the connection is completed the
tcp_wait_for_connect() callback is executed by the main loop.

>    nonblocking) function). I want to know is there a new dedicated thread
>    created for this migration task or not? If so, where in the code the new
>    thread created.

Within that callback there's a call to migrate_fd_connect(), which is where the
migration thread is created.

Incoming migration is still handled by the main loop's thread

>    Thanks!
>    Yaodong
>    --
>    Yaodong Yang
>    Computer Science and Engineering Department
>    University of Nebraska--Lincoln, 
>    Lincoln, NE, U.S.A.

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

* Re: [Qemu-devel] QEMU live block-migration
  2013-07-08 15:32 ` Michael Roth
@ 2013-07-08 15:57   ` Yaodong Yang
  2013-07-08 17:18     ` Michael Roth
  0 siblings, 1 reply; 6+ messages in thread
From: Yaodong Yang @ 2013-07-08 15:57 UTC (permalink / raw)
  To: Michael Roth; +Cc: qemu-devel, qemu-discuss

[-- Attachment #1: Type: text/plain, Size: 1843 bytes --]

Hello Michael,

Thanks for your help!

I read the function of tcp_wait_for_connect(), there is a statement; "
qemu_set_fd_handler2(s->fd, NULL, NULL, NULL, NULL); " I guess this will
disable this file-descriptor from the main loop and make the current
execution parallel with the main loop. Is it correct?

Also, I did not find any thread_create related function in the
migrate_fd_connect() function.

I think my current goal is to find the exact start point of the migration
thread. Thanks again.

Yaodong




On Mon, Jul 8, 2013 at 10:32 AM, Michael Roth <mdroth@linux.vnet.ibm.com>wrote:

> Quoting Yaodong Yang (2013-07-07 09:55:06)
> > Hello everyone,
> >    I have a short question about the implementation of QEMU. When the
> qemu
> >    perform the live block migration using "migrate -b tcp:...." command.
> Does
> >    a new thread for migration created or not? I went through the code,
> only
> >    find that this activity is triggered in the main loop
> (main_loop_wait(int
>
> An outgoing non-blocking connection is triggered by
> tcp_start_outgoing_migration, once the connection is completed the
> tcp_wait_for_connect() callback is executed by the main loop.
>
> >    nonblocking) function). I want to know is there a new dedicated thread
> >    created for this migration task or not? If so, where in the code the
> new
> >    thread created.
>
> Within that callback there's a call to migrate_fd_connect(), which is
> where the
> migration thread is created.
>
> Incoming migration is still handled by the main loop's thread
>
> >    Thanks!
> >    Yaodong
> >    --
> >    Yaodong Yang
> >    Computer Science and Engineering Department
> >    University of Nebraska--Lincoln,
> >    Lincoln, NE, U.S.A.
>



-- 
Yaodong Yang
Computer Science and Engineering Department
University of Nebraska--Lincoln,
Lincoln, NE, U.S.A.

[-- Attachment #2: Type: text/html, Size: 2742 bytes --]

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

* Re: [Qemu-devel] QEMU live block-migration
  2013-07-08 15:57   ` Yaodong Yang
@ 2013-07-08 17:18     ` Michael Roth
  2013-07-08 17:29       ` Yaodong Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Roth @ 2013-07-08 17:18 UTC (permalink / raw)
  To: Yaodong Yang; +Cc: qemu-devel, qemu-discuss

Quoting Yaodong Yang (2013-07-08 10:57:25)
> Hello Michael,
>    Thanks for your help! 
>    I read the function of tcp_wait_for_connect(), there is a statement; "
>    qemu_set_fd_handler2(s->fd, NULL, NULL, NULL, NULL); " I guess this will
>    disable this file-descriptor from the main loop and make the current
>    execution parallel with the main loop. Is it correct? 

Yup

>    Also, I did not find any thread_create related function in the
>    migrate_fd_connect() function.

What version of QEMU are you looking at? For current releases you should see
the following in migrate_fd_connect():

    qemu_thread_create(&s->thread, migration_thread, s,
                       QEMU_THREAD_JOINABLE);

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

* Re: [Qemu-devel] QEMU live block-migration
  2013-07-08 17:18     ` Michael Roth
@ 2013-07-08 17:29       ` Yaodong Yang
  2013-07-08 18:02         ` Yaodong Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Yaodong Yang @ 2013-07-08 17:29 UTC (permalink / raw)
  To: Michael Roth; +Cc: qemu-devel, qemu-discuss

[-- Attachment #1: Type: text/plain, Size: 1053 bytes --]

I used the qemu-kvm 1.2.0, so I did not find it in the code. I will move to
the current qemu version. Thanks!



On Mon, Jul 8, 2013 at 12:18 PM, Michael Roth <mdroth@linux.vnet.ibm.com>wrote:

> Quoting Yaodong Yang (2013-07-08 10:57:25)
> > Hello Michael,
> >    Thanks for your help!
> >    I read the function of tcp_wait_for_connect(), there is a statement; "
> >    qemu_set_fd_handler2(s->fd, NULL, NULL, NULL, NULL); " I guess this
> will
> >    disable this file-descriptor from the main loop and make the current
> >    execution parallel with the main loop. Is it correct?
>
> Yup
>
> >    Also, I did not find any thread_create related function in the
> >    migrate_fd_connect() function.
>
> What version of QEMU are you looking at? For current releases you should
> see
> the following in migrate_fd_connect():
>
>     qemu_thread_create(&s->thread, migration_thread, s,
>                        QEMU_THREAD_JOINABLE);
>



-- 
Yaodong Yang
Computer Science and Engineering Department
University of Nebraska--Lincoln,
Lincoln, NE, U.S.A.

[-- Attachment #2: Type: text/html, Size: 1576 bytes --]

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

* Re: [Qemu-devel] QEMU live block-migration
  2013-07-08 17:29       ` Yaodong Yang
@ 2013-07-08 18:02         ` Yaodong Yang
  0 siblings, 0 replies; 6+ messages in thread
From: Yaodong Yang @ 2013-07-08 18:02 UTC (permalink / raw)
  To: Michael Roth; +Cc: qemu-devel, qemu-discuss

[-- Attachment #1: Type: text/plain, Size: 1465 bytes --]

Yes, I found it in the qemu-1.5.1 and it's much clear for me now. I think I
need to work on this version, other than the out-of-date version
qemu-kvm-1.2.0. Thanks a lot.


On Mon, Jul 8, 2013 at 12:29 PM, Yaodong Yang <yyang@cse.unl.edu> wrote:

> I used the qemu-kvm 1.2.0, so I did not find it in the code. I will move
> to the current qemu version. Thanks!
>
>
>
> On Mon, Jul 8, 2013 at 12:18 PM, Michael Roth <mdroth@linux.vnet.ibm.com>wrote:
>
>> Quoting Yaodong Yang (2013-07-08 10:57:25)
>> > Hello Michael,
>> >    Thanks for your help!
>> >    I read the function of tcp_wait_for_connect(), there is a statement;
>> "
>> >    qemu_set_fd_handler2(s->fd, NULL, NULL, NULL, NULL); " I guess this
>> will
>> >    disable this file-descriptor from the main loop and make the current
>> >    execution parallel with the main loop. Is it correct?
>>
>> Yup
>>
>> >    Also, I did not find any thread_create related function in the
>> >    migrate_fd_connect() function.
>>
>> What version of QEMU are you looking at? For current releases you should
>> see
>> the following in migrate_fd_connect():
>>
>>     qemu_thread_create(&s->thread, migration_thread, s,
>>                        QEMU_THREAD_JOINABLE);
>>
>
>
>
> --
> Yaodong Yang
> Computer Science and Engineering Department
> University of Nebraska--Lincoln,
> Lincoln, NE, U.S.A.
>



-- 
Yaodong Yang
Computer Science and Engineering Department
University of Nebraska--Lincoln,
Lincoln, NE, U.S.A.

[-- Attachment #2: Type: text/html, Size: 2343 bytes --]

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

end of thread, other threads:[~2013-07-08 18:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-07 14:55 [Qemu-devel] QEMU live block-migration Yaodong Yang
2013-07-08 15:32 ` Michael Roth
2013-07-08 15:57   ` Yaodong Yang
2013-07-08 17:18     ` Michael Roth
2013-07-08 17:29       ` Yaodong Yang
2013-07-08 18:02         ` Yaodong Yang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.