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

Re: [Xen-devel] [PATCH] Credit1: Tweak reset condition


  • To: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
  • From: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
  • Date: Mon, 9 Aug 2010 13:49:39 +0100
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 09 Aug 2010 05:56:04 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=NVtH/GFKiLRjb0+UZo80ZOxtrdfhqMsrhmCF4bXBMNB2cFnYXIIKjlg4m3mK+u0OVO kLBCj8GtMP6DApNA5NvJdHm535X8KVXU2Tgz3prr7T7xLP5uAfO+r7U/aBHKmbYH94RI 8nwngX+Y7xzs+tTLJ5RcnOFsslsv72MEOy50A=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

If we wanted to be clever, we could rely upon the fact that this
condition only happens when credit > CSCHED_CREDITS_PER_TSLICE, which
is a positive value.

But I'm all for being defensive and using /= 2 instead.

 -George

On Mon, Aug 9, 2010 at 1:31 PM, Tim Deegan <Tim.Deegan@xxxxxxxxxx> wrote:
> Hi,
>
> At 12:38 +0100 on 09 Aug (1281357513), George Dunlap wrote:
>> VMs that don't use their full timeslice are guaranteed to flip back
>> and forth between "active" and "inactive".  If we set credit to 0
>> when setting "inactive", then when the VM comes back to "active"
>> again, it will effectively be behind most other vcpus in credit.
>> This causes the credit1 to effectively discriminate *against*
>> VMs which use less than their full timeslice.
>>
>> Instead of setting credit to 0, divide it in half (shifting
>> by one bit for more efficiency).
>
> "credit" here is signed, and the compiler is allowed to use either a
> signed or an unsigned shift for >>.  Better to code it as /=2 and trust
> the compiler to DTRT with a constant division.
>
> Cheers,
>
> Tim.
>
>>  This gets rid of some of the
>> system credit while allowing non-cpu-bound VMs to keep some priority
>> advantage.
>>
>> Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
>>
>> diff -r 6f07d9ac1e7c -r 1a29b22ef2e9 xen/common/sched_credit.c
>> --- a/xen/common/sched_credit.c       Thu Aug 05 14:41:14 2010 +0100
>> +++ b/xen/common/sched_credit.c       Mon Aug 09 12:38:12 2010 +0100
>> @@ -1069,7 +1069,9 @@
>>                  if ( credit > CSCHED_CREDITS_PER_TSLICE )
>>                  {
>>                      __csched_vcpu_acct_stop_locked(prv, svc);
>> -                    credit = 0;
>> +                    /* Divide credits in half, so that when it starts
>> +                     * accounting again, it starts a little bit "ahead" */
>> +                    credit >>= 1;
>>                      atomic_set(&svc->credit, credit);
>>                  }
>>              }
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel
>
> --
> Tim Deegan <Tim.Deegan@xxxxxxxxxx>
> Principal Software Engineer, XenServer Engineering
> Citrix Systems UK Ltd.  (Company #02937203, SL9 0BG)
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.