From: Peter Lieven <pl@dlh.net>
To: Gleb Natapov <gleb@redhat.com>
Cc: Vadim Rozenfeld <vrozenfe@redhat.com>,
David Cure <kvm@cure.nom.fr>, Avi Kivity <avi@redhat.com>,
kvm@vger.kernel.org
Subject: Re: performance trouble
Date: Tue, 27 Mar 2012 16:06:13 +0200 [thread overview]
Message-ID: <4F71C955.8030002@dlh.net> (raw)
In-Reply-To: <20120327122902.GX22368@redhat.com>
On 27.03.2012 14:29, Gleb Natapov wrote:
> On Tue, Mar 27, 2012 at 02:28:04PM +0200, Peter Lieven wrote:
>> On 27.03.2012 14:26, Gleb Natapov wrote:
>>> On Tue, Mar 27, 2012 at 02:20:23PM +0200, Peter Lieven wrote:
>>>> On 27.03.2012 12:00, Gleb Natapov wrote:
>>>>> On Tue, Mar 27, 2012 at 11:26:29AM +0200, Peter Lieven wrote:
>>>>>> On 27.03.2012 11:23, Vadim Rozenfeld wrote:
>>>>>>> On Tuesday, March 27, 2012 10:56:05 AM Gleb Natapov wrote:
>>>>>>>> On Mon, Mar 26, 2012 at 10:11:43PM +0200, Vadim Rozenfeld wrote:
>>>>>>>>> On Monday, March 26, 2012 08:54:50 PM Peter Lieven wrote:
>>>>>>>>>> On 26.03.2012 20:36, Vadim Rozenfeld wrote:
>>>>>>>>>>> On Monday, March 26, 2012 07:52:49 PM Gleb Natapov wrote:
>>>>>>>>>>>> On Mon, Mar 26, 2012 at 07:46:03PM +0200, Vadim Rozenfeld wrote:
>>>>>>>>>>>>> On Monday, March 26, 2012 07:00:32 PM Peter Lieven wrote:
>>>>>>>>>>>>>> On 22.03.2012 10:38, Vadim Rozenfeld wrote:
>>>>>>>>>>>>>>> On Thursday, March 22, 2012 10:52:42 AM Peter Lieven wrote:
>>>>>>>>>>>>>>>> On 22.03.2012 09:48, Vadim Rozenfeld wrote:
>>>>>>>>>>>>>>>>> On Thursday, March 22, 2012 09:53:45 AM Gleb Natapov wrote:
>>>>>>>>>>>>>>>>>> On Wed, Mar 21, 2012 at 06:31:02PM +0100, Peter Lieven wrote:
>>>>>>>>>>>>>>>>>>> On 21.03.2012 12:10, David Cure wrote:
>>>>>>>>>>>>>>>>>>>> hello,
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Le Tue, Mar 20, 2012 at 02:38:22PM +0200, Gleb Natapov
>>>>>>> ecrivait :
>>>>>>>>>>>>>>>>>>>>> Try to add<feature policy='disable' name='hypervisor'/>
>>>>>>>>>>>>>>>>>>>>> to cpu definition in XML and check command line.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> ok I try this but I can't use<cpu model> to map the
>>>>>>>>>>>>>>>>>>>> host cpu
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> (my libvirt is 0.9.8) so I use :
>>>>>>>>>>>>>>>>>>>> <cpu match='exact'>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> <model>Opteron_G3</model>
>>>>>>>>>>>>>>>>>>>> <feature policy='disable' name='hypervisor'/>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> </cpu>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> (the physical server use Opteron CPU).
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> The log is here :
>>>>>>>>>>>>>>>>>>>> http://www.roullier.net/Report/report-3.2-vhost-net-1vcpu-cp
>>>>>>>>>>>>>>>>>>>> u.tx t.gz
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> And now with only 1 vcpu, the response time is 8.5s, great
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> improvment. We keep this configuration for production : we
>>>>>>>>>>>>>>>>>>>> check the response time when some other users are
>>>>>>>>>>>>>>>>>>>> connected.
>>>>>>>>>>>>>>>>>>> please keep in mind, that setting -hypervisor, disabling hpet
>>>>>>>>>>>>>>>>>>> and only one vcpu
>>>>>>>>>>>>>>>>>>> makes windows use tsc as clocksource. you have to make sure,
>>>>>>>>>>>>>>>>>>> that your vm is not switching between physical sockets on
>>>>>>>>>>>>>>>>>>> your system and that you have constant_tsc feature to have a
>>>>>>>>>>>>>>>>>>> stable tsc between the cores in the same socket. its also
>>>>>>>>>>>>>>>>>>> likely that the vm will crash when live migrated.
>>>>>>>>>>>>>>>>>> All true. I asked to try -hypervisor only to verify where we
>>>>>>>>>>>>>>>>>> loose performance. Since you get good result with it frequent
>>>>>>>>>>>>>>>>>> access to PM timer is probably the reason. I do not recommend
>>>>>>>>>>>>>>>>>> using -hypervisor for production!
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> @gleb: do you know whats the state of in-kernel hyper-v
>>>>>>>>>>>>>>>>>>> timers?
>>>>>>>>>>>>>>>>>> Vadim is working on it. I'll let him answer.
>>>>>>>>>>>>>>>>> It would be nice to have synthetic timers supported. But, at
>>>>>>>>>>>>>>>>> the moment, I'm only researching this feature.
>>>>>>>>>>>>>>>> So it will take months at least?
>>>>>>>>>>>>>>> I would say weeks.
>>>>>>>>>>>>>> Is there a way, we could contribute and help you with this?
>>>>>>>>>>>>> Hi Peter,
>>>>>>>>>>>>> You are welcome to add an appropriate handler.
>>>>>>>>>>>> I think Vadim refers to this HV MSR
>>>>>>>>>>>> http://msdn.microsoft.com/en-us/library/windows/hardware/ff542633%28
>>>>>>>>>>>> v=vs .85 %29.aspx
>>>>>>>>>>> This one is pretty simple to support. Please see attachments for more
>>>>>>>>>>> details. I was thinking about synthetic timers
>>>>>>>>>>> http://msdn.microsoft.com/en-
>>>>>>>>>>> us/library/windows/hardware/ff542758(v=vs.85).aspx
>>>>>>>>>> is this what microsoft qpc uses as clocksource in hyper-v?
>>>>>>>>> Yes, it should be enough for Win7 / W2K8R2.
>>>>>>>> To clarify the thing that microsoft qpc uses is what is implemented by
>>>>>>>> the patch Vadim attached to his previous email. But I believe that
>>>>>>>> additional qemu patch is needed for Windows to actually use it.
>>>>>>> You are right.
>>>>>>> bits 1 and 9 must be set to on in leaf 0x40000003 and HPET
>>>>>>> should be completely removed from ACPI.
>>>>>> could you advise how to do this and/or make a patch?
>>>>>>
>>>>>> the stuff you send yesterday is for qemu, right? would
>>>>>> it be possible to use it in qemu-kvm also?
>>>>>>
>>>>> No, they are for kernel.
>>>> i meant the qemu.diff file.
>>>>
>>> Yes, I missed the second attachment.
>>>
>>>> if i understand correctly i have to pass -cpu host,+hv_refcnt to qemu?
>>>>
>>> Looks like it.
>> ok, so it would be interesting if it helps to avoid the pmtimer reads
>> we observed earlier. right?
>>
> Yes.
first feedback: performance seems to be amazing. i cannot confirm that
it breaks hv_spinlocks, hv_vapic and hv_relaxed.
why did you assume this?
no more pmtimer reads. i can now almost fully utililizy a 1GBit
interface with a file transfer while there was not one
cpu core fully utilized as observed with pmtimer. some live migration
tests revealed that it did not crash even under load.
@vadim: i think we need a proper patch for the others to test this ;-)
what i observed: is it right, that HV_X64_MSR_TIME_REF_COUNT is missing
in msrs_to_save[] in x86/x86.c of the kernel module?
thanks for you help,
peter
> --
> Gleb.
next prev parent reply other threads:[~2012-03-27 14:06 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-23 8:28 performance trouble David Cure
2012-01-23 10:04 ` David Cure
2012-01-30 15:36 ` David Cure
2012-01-30 16:20 ` Brian Jackson
2012-01-30 16:51 ` David Cure
2012-01-30 17:21 ` Avi Kivity
2012-01-31 17:15 ` David Cure
2012-01-31 17:21 ` Avi Kivity
2012-02-02 10:41 ` David Cure
2012-02-03 8:59 ` David Cure
2012-02-05 9:38 ` Avi Kivity
2012-02-10 10:09 ` David Cure
2012-02-14 13:32 ` Avi Kivity
2012-02-14 13:40 ` Gleb Natapov
2012-02-16 8:55 ` David Cure
2012-02-16 9:01 ` Gleb Natapov
2012-02-17 8:59 ` David Cure
2012-02-17 10:07 ` Gleb Natapov
2012-02-17 14:01 ` David Cure
2012-02-19 9:13 ` Gleb Natapov
2012-02-22 16:33 ` David Cure
2012-02-22 16:58 ` David Cure
2012-02-23 8:38 ` Gleb Natapov
2012-03-16 10:13 ` David Cure
2012-03-19 10:51 ` Gleb Natapov
2012-03-20 9:32 ` David Cure
2012-03-20 9:45 ` Gleb Natapov
2012-03-20 11:18 ` David Cure
2012-03-20 12:38 ` Gleb Natapov
2012-03-21 11:10 ` David Cure
2012-03-21 17:31 ` Peter Lieven
2012-03-22 7:53 ` Gleb Natapov
2012-03-22 7:57 ` Peter Lieven
2012-03-22 8:35 ` David Cure
2012-03-22 8:33 ` David Cure
2012-03-22 8:50 ` Peter Lieven
2012-03-22 8:48 ` Vadim Rozenfeld
2012-03-22 8:52 ` Peter Lieven
2012-03-22 9:38 ` Vadim Rozenfeld
2012-03-26 17:00 ` Peter Lieven
2012-03-26 17:46 ` Vadim Rozenfeld
2012-03-26 17:52 ` Gleb Natapov
2012-03-26 18:36 ` Vadim Rozenfeld
2012-03-26 18:54 ` Peter Lieven
2012-03-26 20:11 ` Vadim Rozenfeld
2012-03-27 8:56 ` Gleb Natapov
2012-03-27 9:23 ` Vadim Rozenfeld
2012-03-27 9:24 ` Gleb Natapov
2012-03-27 9:26 ` Peter Lieven
2012-03-27 10:00 ` Gleb Natapov
2012-03-27 12:20 ` Peter Lieven
2012-03-27 12:26 ` Gleb Natapov
2012-03-27 12:28 ` Peter Lieven
2012-03-27 12:29 ` Gleb Natapov
2012-03-27 12:30 ` Peter Lieven
2012-03-27 14:06 ` Peter Lieven [this message]
2012-03-27 15:44 ` Vadim Rozenfeld
2012-03-27 15:58 ` Peter Lieven
2012-03-27 16:12 ` Vadim Rozenfeld
2012-03-27 16:16 ` Peter Lieven
2012-03-27 17:06 ` Vadim Rozenfeld
2012-03-28 8:38 ` Peter Lieven
2012-03-27 10:40 ` Vadim Rozenfeld
2012-03-27 10:49 ` Peter Lieven
2012-03-27 11:43 ` Vadim Rozenfeld
2012-03-27 14:44 ` Peter Lieven
2012-03-27 15:37 ` Vadim Rozenfeld
2012-03-27 15:39 ` Peter Lieven
2012-03-27 15:55 ` Vadim Rozenfeld
2012-03-22 8:31 ` David Cure
2012-03-22 8:47 ` Peter Lieven
2012-02-14 13:48 ` Vadim Rozenfeld
2012-02-16 9:10 ` David Cure
2012-02-17 15:27 ` David Cure
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=4F71C955.8030002@dlh.net \
--to=pl@dlh.net \
--cc=avi@redhat.com \
--cc=gleb@redhat.com \
--cc=kvm@cure.nom.fr \
--cc=kvm@vger.kernel.org \
--cc=vrozenfe@redhat.com \
/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).