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

Re: [SPAM] Re: [Xen-devel] A patch to xen/arch/x86/hvm/pmtimer.c for both Xen 4.0.0 and Xen 4.0.1 to improve HVM scalability


  • To: Song Xiang <classicxsong@xxxxxxxxx>, Jan Beulich <JBeulich@xxxxxxxxxx>
  • From: Keir Fraser <keir@xxxxxxx>
  • Date: Tue, 16 Nov 2010 07:48:40 +0000
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, Haibo Chen <oldseawave@xxxxxxxxx>
  • Delivery-date: Mon, 15 Nov 2010 23:49:26 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:user-agent:date:subject:from:to:cc:message-id:thread-topic :thread-index:in-reply-to:x-priority:mime-version:content-type :content-transfer-encoding; b=FG/fdV8mYe+KKo3Wg7IxsB33atpwzGiUoHxBFGkvikgjunX6Ixz9u9YGckteFS//wU yyV9OdnGSW9QK69xSm5oRUAPLZsoACDHKXnqSpkiFrjJd4s1d742LZ7VbwtRxEvJokhF U8DvIwG/01or7dvmc+cH0GJ7WHYTRoK3pRtxo=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcuFYq8HP2d0+S9n6E2w/J/+Qy/AKw==
  • Thread-topic: [SPAM] Re: [Xen-devel] A patch to xen/arch/x86/hvm/pmtimer.c for both Xen 4.0.0 and Xen 4.0.1 to improve HVM scalability

On 16/11/2010 14:51, "Song Xiang" <classicxsong@xxxxxxxxx> wrote:

> +        /*
> +         * if acquired the PMTState lock then update the time
> +         * else other vcpu is updating it ,it should be up to date.
> +         */
> +        tmp = atomic_read(&s-> ownership);
> +        if (spin_trylock(&s->lock)) {
> +            pmt_update_time(s);
> +            *val = s->pm.tmr_val;
> +            spin_unlock(&s->lock);
> +            atomic_inc(&s-> ownership);
> +        }
> +        else {
> +            while (tmp == atomic_read(&s-> ownership));

You've kind of implemented a spin_barrier(). What you implemented could be
better and equivalently done as something like:

if (spin_trylock(&s->lock)) {
  ...
} else {
  spin_barrier(&s->lock);
}

No need for your new field at all! It initially seems weird that this
performs much better than the original code, but I guess it might: if all
VCPUs are piling in here at the same time, rather than having to execute one
by one, we'll have one go first and then the others will all execute
simultaneously read-only in convoy...

Anyway, please modify your patch as I suggest above, and then also confirm
what speedups you get with the revised patch. I want to know what the wins
are before applying optimisation hacks. I don't particularly have an issue
with them as long as they work! :-)

 -- Keir



_______________________________________________
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®.