From: "Chen, Tianyang" <tiche@seas.upenn.edu>
To: Meng Xu <mengxu@cis.upenn.edu>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
Dario Faggioli <dario.faggioli@citrix.com>,
George Dunlap <george.dunlap@citrix.com>,
Dagaen Golomb <dgolomb@seas.upenn.edu>
Subject: Re: [PATCH v9]xen: sched: convert RTDS from time to event driven model
Date: Tue, 15 Mar 2016 23:32:36 -0400 [thread overview]
Message-ID: <56E8D3D4.1070203@seas.upenn.edu> (raw)
In-Reply-To: <CAENZ-+kxbhucXbGBrOozQ2h-AGa_w-WVc6hHxCXuhPKaSK22_Q@mail.gmail.com>
On 03/15/2016 11:11 PM, Meng Xu wrote:
>> +
>> /*
>> * Flags
>> */
>> @@ -115,6 +118,18 @@
>> #define RTDS_delayed_runq_add (1<<__RTDS_delayed_runq_add)
>>
>> /*
>> + * The replenishment timer handler needs to check this bit
>> + * to know where a replenished vcpu was, when deciding which
>> + * vcpu should tickle.
>> + * A replenished vcpu should tickle if it was moved from the
>> + * depleted queue to the run queue.
>> + * + Set in burn_budget() if a vcpu has zero budget left.
>> + * + Cleared and checked in the repenishment handler.
>
> It seems you have an extra + here...
> Need to be removed.
>
> My bad, I didn't spot it out in last patch... :-(
>
You mean before "Cleared"? For __RTDS_scheduled there are '+' before
'Cleared', 'Checked', 'Set'.
>> @@ -840,8 +991,6 @@ rt_schedule(const struct scheduler *ops, s_time_t now, bool_t tasklet_work_sched
>> /* burn_budget would return for IDLE VCPU */
>> burn_budget(ops, scurr, now);
>>
>> - __repl_update(ops, now);
>> -
>> if ( tasklet_work_scheduled )
>> {
>> trace_var(TRC_RTDS_SCHED_TASKLET, 1, 0, NULL);
>> @@ -868,6 +1017,7 @@ rt_schedule(const struct scheduler *ops, s_time_t now, bool_t tasklet_work_sched
>> set_bit(__RTDS_delayed_runq_add, &scurr->flags);
>>
>> snext->last_start = now;
>> + ret.time = -1; /* if an idle vcpu is picked */
>> if ( !is_idle_vcpu(snext->vcpu) )
>> {
>> if ( snext != scurr )
>> @@ -880,9 +1030,8 @@ rt_schedule(const struct scheduler *ops, s_time_t now, bool_t tasklet_work_sched
>> snext->vcpu->processor = cpu;
>> ret.migrated = 1;
>> }
>> + ret.time = snext->budget; /* invoke the scheduler next time */
>
> Ah, this is incorrect, although this is easy to fix.
>
> The ret.time is the relative time when the *budget enforcement* timer
> should be invoked.
> Since snext is not always full budget, it may have already consumed some budget.
>
> It should be
> ret.time = snext->cur_budget
>
> Isn't it? :-)
Good catch. This bug kinda ruins the fix for busy waiting.
Thanks,
Tianyang
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-03-16 3:33 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-15 0:04 [PATCH v9]xen: sched: convert RTDS from time to event driven model Tianyang Chen
2016-03-16 3:11 ` Meng Xu
2016-03-16 3:32 ` Chen, Tianyang [this message]
2016-03-16 3:40 ` Meng Xu
2016-03-16 10:23 ` Dario Faggioli
2016-03-16 14:20 ` Meng Xu
2016-03-16 14:44 ` Dario Faggioli
2016-03-16 20:51 ` Meng Xu
2016-03-16 14:25 ` Dario Faggioli
2016-03-16 15:43 ` Chen, Tianyang
2016-03-16 16:11 ` Dario Faggioli
2016-03-16 20:54 ` Meng Xu
2016-03-16 20:45 ` Meng Xu
2016-03-17 2:24 ` Chen, Tianyang
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=56E8D3D4.1070203@seas.upenn.edu \
--to=tiche@seas.upenn.edu \
--cc=dario.faggioli@citrix.com \
--cc=dgolomb@seas.upenn.edu \
--cc=george.dunlap@citrix.com \
--cc=mengxu@cis.upenn.edu \
--cc=xen-devel@lists.xenproject.org \
/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 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).