qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Question regarding two variables in qemu migration code


From: Jidong Xiao
Subject: Re: [Qemu-devel] Question regarding two variables in qemu migration code
Date: Tue, 13 Jan 2015 09:58:35 -0800

On Tue, Jan 13, 2015 at 1:38 AM, Dr. David Alan Gilbert
<address@hidden> wrote:
> * Jidong Xiao (address@hidden) wrote:
>> Hi,
>
> Hi,
>
>> I am looking at the qemu source code, and trying to understand the
>> migration part. In arch_init.c, there are two variables which seems
>> quite confusing to me,
>>
>> They are:
>>
>> static uint64_t migration_dirty_pages;
>
> 'migration_dirty_pages' is the number of pages that are currently known
> that need to be sent to the destination; it goes down whenever we send
> a page, but goes up when we sync the dirty bitmap that tells us that
> something changed the data in the page (see migration_bitmap_sync_range )
>
>> static int64_t num_dirty_pages_period; // defined in function
>> migration_bitmap_sync()
>
> This is looking how many pages we've noticed are now dirty within
> a particular time - to try and get an estimate of how fast memory is changing
> If you see migration_bitmap_sync  has an:
>        if (end_time > start_time + 1000) {
>
> and inside there it uses num_dirty_pages_period to update dirty_pages_rate.
>
>>
>> Can anyone kindly explain that what does these two variables mean? Thanks.
>>
>> -Jidong
>
> Dave
> --
Thanks Dave, your explanation is really really helpful.

But in function migration_bitmap_sync(), I see this:

    num_dirty_pages_period += migration_dirty_pages - num_dirty_pages_init;

If as you said, num_dirty_pages_period refers to the pages get dirty
within a particular time, then why it is "+=“, instead of "="? i.e.,
something like this:

    num_dirty_pages_period = migration_dirty_pages - num_dirty_pages_init;

I just don't see why num_dirty_pages_period has to be accumulated with
its previous value.

-Jidong



reply via email to

[Prev in Thread] Current Thread [Next in Thread]