All of lore.kernel.org
 help / color / mirror / Atom feed
From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/2] ARM: KVM: Yield CPU when vcpu executes a WFE
Date: Tue, 08 Oct 2013 17:09:11 +0100	[thread overview]
Message-ID: <52542E27.1030004@arm.com> (raw)
In-Reply-To: <525420FF.30503@linux.vnet.ibm.com>

On 08/10/13 16:13, Raghavendra K T wrote:
> On 10/08/2013 08:36 PM, Marc Zyngier wrote:
>>>> Just gave it a go, and the results are slightly (but consistently)
>>>> worse. Over 10 runs:
>>>>
>>>> Without RELAX_INTERCEPT: Average run 3.3623s
>>>> With RELAX_INTERCEPT: Average run 3.4226s
>>>>
>>>> Not massive, but still noticeable. Any clue?
>>>
>>> Is it  a 4x overcommit? Probably we would have hit the code
>>> overhead if it were small guests.
>>
>> Only 2x overcommit (dual core host, quad vcpu guests).
> 
> Okay. quad vcpu seem to explain.
> 
>>
>>> RELAX_INTERCEPT is worth enabling for large guests with
>>> overcommits.
>>
>> I'll try something more aggressive as soon as I get the time. What do
>> you call a large guest? So far, the hard limit on ARM is 8 vcpus.
>>
> 
> Okay. I was referring to guests >= 32 vcpus.
> May be 8vcpu guests with 2x/4x is worth trying. If we still do not
> see benefit, then it is not worth enabling.

I've just tried with the worse case I can construct, which is a 8 vcpu
guest limited to one physical CPU:

Over 10 runs:

Without RELAX_INTERCEPT:
Time: 6.793
Time: 7.619
Time: 6.690
Time: 7.198
Time: 7.659
Time: 7.054
Time: 7.728
Time: 8.546
Time: 7.306
Time: 7.219

Average: 7.381

With RELAX_INTERCEPT:
Time: 6.850
Time: 6.889
Time: 7.170
Time: 6.938
Time: 6.756
Time: 7.341
Time: 6.707
Time: 7.452
Time: 6.617
Time: 8.095

Average: 7.082

We're now starting to see some (small) benefits: slightly faster with
RELAX_INTERCEPT, and less jitter (the heuristic is better at picking the
target vcpu than the default behaviour).

I'll enable it in the next version of the series.

Thanks!

	M.
-- 
Jazz is not dead. It just smells funny...

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <marc.zyngier@arm.com>
To: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
Cc: Raghavendra KT <raghavendra.kt.linux@gmail.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	Christoffer Dall <christoffer.dall@linaro.org>
Subject: Re: [PATCH 1/2] ARM: KVM: Yield CPU when vcpu executes a WFE
Date: Tue, 08 Oct 2013 17:09:11 +0100	[thread overview]
Message-ID: <52542E27.1030004@arm.com> (raw)
In-Reply-To: <525420FF.30503@linux.vnet.ibm.com>

On 08/10/13 16:13, Raghavendra K T wrote:
> On 10/08/2013 08:36 PM, Marc Zyngier wrote:
>>>> Just gave it a go, and the results are slightly (but consistently)
>>>> worse. Over 10 runs:
>>>>
>>>> Without RELAX_INTERCEPT: Average run 3.3623s
>>>> With RELAX_INTERCEPT: Average run 3.4226s
>>>>
>>>> Not massive, but still noticeable. Any clue?
>>>
>>> Is it  a 4x overcommit? Probably we would have hit the code
>>> overhead if it were small guests.
>>
>> Only 2x overcommit (dual core host, quad vcpu guests).
> 
> Okay. quad vcpu seem to explain.
> 
>>
>>> RELAX_INTERCEPT is worth enabling for large guests with
>>> overcommits.
>>
>> I'll try something more aggressive as soon as I get the time. What do
>> you call a large guest? So far, the hard limit on ARM is 8 vcpus.
>>
> 
> Okay. I was referring to guests >= 32 vcpus.
> May be 8vcpu guests with 2x/4x is worth trying. If we still do not
> see benefit, then it is not worth enabling.

I've just tried with the worse case I can construct, which is a 8 vcpu
guest limited to one physical CPU:

Over 10 runs:

Without RELAX_INTERCEPT:
Time: 6.793
Time: 7.619
Time: 6.690
Time: 7.198
Time: 7.659
Time: 7.054
Time: 7.728
Time: 8.546
Time: 7.306
Time: 7.219

Average: 7.381

With RELAX_INTERCEPT:
Time: 6.850
Time: 6.889
Time: 7.170
Time: 6.938
Time: 6.756
Time: 7.341
Time: 6.707
Time: 7.452
Time: 6.617
Time: 8.095

Average: 7.082

We're now starting to see some (small) benefits: slightly faster with
RELAX_INTERCEPT, and less jitter (the heuristic is better at picking the
target vcpu than the default behaviour).

I'll enable it in the next version of the series.

Thanks!

	M.
-- 
Jazz is not dead. It just smells funny...


  reply	other threads:[~2013-10-08 16:09 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-07 15:40 [PATCH 0/2] ARM/arm64: KVM: Yield CPU when vcpu executes a WFE Marc Zyngier
2013-10-07 15:40 ` Marc Zyngier
2013-10-07 15:40 ` [PATCH 1/2] ARM: " Marc Zyngier
2013-10-07 15:40   ` Marc Zyngier
2013-10-07 16:04   ` Alexander Graf
2013-10-07 16:04     ` Alexander Graf
2013-10-07 16:16     ` Marc Zyngier
2013-10-07 16:16       ` Marc Zyngier
2013-10-07 16:30       ` Alexander Graf
2013-10-07 16:30         ` Alexander Graf
2013-10-07 16:53         ` Gleb Natapov
2013-10-07 16:53           ` Gleb Natapov
2013-10-09 13:09           ` Alexander Graf
2013-10-09 13:09             ` Alexander Graf
2013-10-09 13:26             ` Gleb Natapov
2013-10-09 13:26               ` Gleb Natapov
2013-10-09 14:18               ` Marc Zyngier
2013-10-09 14:18                 ` Marc Zyngier
2013-10-09 14:50                 ` Anup Patel
2013-10-09 14:50                   ` Anup Patel
2013-10-09 14:52                   ` Anup Patel
2013-10-09 14:52                     ` Anup Patel
2013-10-09 14:59                   ` Marc Zyngier
2013-10-09 14:59                     ` Marc Zyngier
2013-10-09 15:10                     ` Anup Patel
2013-10-09 15:10                       ` Anup Patel
2013-10-09 15:17                       ` Marc Zyngier
2013-10-09 15:17                         ` Marc Zyngier
2013-10-09 15:17                       ` Anup Patel
2013-10-09 15:17                         ` Anup Patel
2013-10-07 16:55         ` Marc Zyngier
2013-10-07 16:55           ` Marc Zyngier
2013-10-08 11:26   ` Raghavendra KT
2013-10-08 11:26     ` Raghavendra KT
2013-10-08 12:43     ` Marc Zyngier
2013-10-08 12:43       ` Marc Zyngier
2013-10-08 15:02       ` Raghavendra K T
2013-10-08 15:02         ` Raghavendra K T
2013-10-08 15:06         ` Marc Zyngier
2013-10-08 15:06           ` Marc Zyngier
2013-10-08 15:13           ` Raghavendra K T
2013-10-08 15:13             ` Raghavendra K T
2013-10-08 16:09             ` Marc Zyngier [this message]
2013-10-08 16:09               ` Marc Zyngier
2013-10-07 15:40 ` [PATCH 2/2] arm64: " Marc Zyngier
2013-10-07 15:40   ` Marc Zyngier
2013-10-07 15:52   ` Bhushan Bharat-R65777
2013-10-07 15:52     ` Bhushan Bharat-R65777
2013-10-07 16:00     ` Marc Zyngier
2013-10-07 16:00       ` Marc Zyngier

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=52542E27.1030004@arm.com \
    --to=marc.zyngier@arm.com \
    --cc=linux-arm-kernel@lists.infradead.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 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.