xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
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

  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).