All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Edmondson <dme@dme.org>
To: Zheng Chuan <zhengchuan@huawei.com>,
	quintela@redhat.com, eblake@redhat.com, dgilbert@redhat.com,
	berrange@redhat.com
Cc: zhang.zhanghailiang@huawei.com, qemu-devel@nongnu.org,
	xiexiangyou@huawei.com, alex.chen@huawei.com,
	ann.zhuangyanying@huawei.com, fangying1@huawei.com
Subject: Re: [PATCH v5 11/12] migration/dirtyrate: Implement qmp_cal_dirty_rate()/qmp_get_dirty_rate() function
Date: Thu, 27 Aug 2020 14:07:05 +0100	[thread overview]
Message-ID: <m2a6ygjkzq.fsf@dme.org> (raw)
In-Reply-To: <e578c320-4864-863a-f54c-be1d6ab9d1bd@huawei.com>

On Thursday, 2020-08-27 at 20:55:51 +08, Zheng Chuan wrote:

> On 2020/8/27 19:58, David Edmondson wrote:
>> On Thursday, 2020-08-27 at 17:34:13 +08, Zheng Chuan wrote:
>> 
>>>>> +    /*
>>>>> +     * Only support query once for each calculation,
>>>>> +     * reset as DIRTY_RATE_STATUS_UNSTARTED after query
>>>>> +     */
>>>>> +    (void)dirtyrate_set_state(&CalculatingState, CalculatingState,
>>>>> +                              DIRTY_RATE_STATUS_UNSTARTED);
>>>>
>>>> Is there a reason for this restriction? Removing it would require
>>>> clarifying the state model, I suppose.
>>>>
>>> We only support query once for each calculation.
>>> Otherwise, it could always query dirtyrate, but maybe the dirtyrate is calculated
>>> long time ago.
>> 
>> There's nothing in the current interface that prevents this from being
>> the case already - the caller could initiate a 1 second sample, then
>> wait 24 hours to query the result.
>> 
>> Obviously this would generally be regarded as "d'oh - don't do that",
>> but the same argument would apply if the caller is allowed to query the
>> results multiple times.
>> 
>> Perhaps a complete solution would be to include information about the
>> sample period with the result. The caller could then determine whether
>> the sample is of adequate quality (sufficiently recent, taken over a
>> sufficiently long time period) for its' intended use.
>> 
> You mean add timestamp when i calculate?

You already have a timestamp, though I'm not sure if it is one that is
appropriate to report to a user.

I was thinking that you would include both the start time and duration
of the sample in the output of the query-dirty-rate QMP command, as well
as the dirty rate itself. That way the caller can make a decision about
whether the data is useful.

> Actually, I do not want make it complicate for qemu code,
> maybe it could be left for user to implement both two qmp commands
> like in libvirt-api.

Sorry, I didn't understand this comment.

> On the other hand, it really bother me that we need to reset calculating state
> to make sure the state model could be restart in next calculation.
>
> For now, i put it after query_dirty_rate_info is finished as you see, it should not be a good idea:(
>
> Maybe it is better to initialize at the beginning of qmp_calc_dirty_rate().
>
>> dme.
>> 

dme.
-- 
Another lonely day, no one here but me-o.


  reply	other threads:[~2020-08-27 13:07 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-24  9:14 [PATCH v5 00/12] *** A Method for evaluating dirty page rate *** Chuan Zheng
2020-08-24  9:14 ` [PATCH v5 01/12] migration/dirtyrate: setup up query-dirtyrate framwork Chuan Zheng
2020-08-24  9:14 ` [PATCH v5 02/12] migration/dirtyrate: add DirtyRateStatus to denote calculation status Chuan Zheng
2020-08-26  9:22   ` David Edmondson
2020-08-24  9:14 ` [PATCH v5 03/12] migration/dirtyrate: Add RamlockDirtyInfo to store sampled page info Chuan Zheng
2020-08-26  9:29   ` David Edmondson
2020-08-26  9:40     ` Zheng Chuan
2020-08-26 10:03       ` Zheng Chuan
2020-08-26 10:33     ` Dr. David Alan Gilbert
2020-08-26 10:53       ` David Edmondson
2020-08-24  9:14 ` [PATCH v5 04/12] migration/dirtyrate: Add dirtyrate statistics series functions Chuan Zheng
2020-08-24  9:14 ` [PATCH v5 05/12] migration/dirtyrate: move RAMBLOCK_FOREACH_MIGRATABLE into ram.h Chuan Zheng
2020-08-24  9:14 ` [PATCH v5 06/12] migration/dirtyrate: Record hash results for each sampled page Chuan Zheng
2020-08-26  9:56   ` David Edmondson
2020-08-26 12:30     ` Dr. David Alan Gilbert
2020-08-26 12:33       ` David Edmondson
2020-08-27  6:28       ` Zheng Chuan
2020-08-27  7:11         ` David Edmondson
2020-08-24  9:14 ` [PATCH v5 07/12] migration/dirtyrate: Compare page hash results for recorded " Chuan Zheng
2020-08-26 10:10   ` David Edmondson
2020-08-24  9:14 ` [PATCH v5 08/12] migration/dirtyrate: skip sampling ramblock with size below MIN_RAMBLOCK_SIZE Chuan Zheng
2020-08-26 10:12   ` David Edmondson
2020-08-24  9:14 ` [PATCH v5 09/12] migration/dirtyrate: Implement get_sample_page_period() and block_sample_page_period() Chuan Zheng
2020-08-26 10:17   ` David Edmondson
2020-08-27  8:01     ` Zheng Chuan
2020-08-27  8:12       ` Zheng Chuan
2020-08-27  8:30       ` David Edmondson
2020-08-24  9:14 ` [PATCH v5 10/12] migration/dirtyrate: Implement calculate_dirtyrate() function Chuan Zheng
2020-08-26 10:21   ` David Edmondson
2020-08-27  8:16     ` Zheng Chuan
2020-08-24  9:14 ` [PATCH v5 11/12] migration/dirtyrate: Implement qmp_cal_dirty_rate()/qmp_get_dirty_rate() function Chuan Zheng
2020-08-26 10:26   ` David Edmondson
2020-08-27  9:34     ` Zheng Chuan
2020-08-27 11:58       ` David Edmondson
2020-08-27 12:55         ` Zheng Chuan
2020-08-27 13:07           ` David Edmondson [this message]
2020-08-27 14:47             ` Zheng Chuan
2020-08-27 15:36               ` David Edmondson
2020-08-24  9:14 ` [PATCH v5 12/12] migration/dirtyrate: Add trace_calls to make it easier to debug Chuan Zheng
2020-08-24 16:50 ` [PATCH v5 00/12] *** A Method for evaluating dirty page rate *** no-reply
2020-08-25  1:40 Chuan Zheng
2020-08-25  1:40 ` [PATCH v5 11/12] migration/dirtyrate: Implement qmp_cal_dirty_rate()/qmp_get_dirty_rate() function Chuan Zheng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2a6ygjkzq.fsf@dme.org \
    --to=dme@dme.org \
    --cc=alex.chen@huawei.com \
    --cc=ann.zhuangyanying@huawei.com \
    --cc=berrange@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=fangying1@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=xiexiangyou@huawei.com \
    --cc=zhang.zhanghailiang@huawei.com \
    --cc=zhengchuan@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.