From: Vadim Rozenfeld <vrozenfe@redhat.com>
To: Peter Lieven <pl@dlh.net>
Cc: Gleb Natapov <gleb@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 17:55:27 +0200 [thread overview]
Message-ID: <201203271755.27864.vrozenfe@redhat.com> (raw)
In-Reply-To: <4F71DF1E.8000308@dlh.net>
On Tuesday, March 27, 2012 05:39:10 PM Peter Lieven wrote:
> On 27.03.2012 17:37, Vadim Rozenfeld wrote:
> > On Tuesday, March 27, 2012 04:44:51 PM Peter Lieven wrote:
> >> On 27.03.2012 13:43, Vadim Rozenfeld wrote:
> >>> On Tuesday, March 27, 2012 12:49:58 PM Peter Lieven wrote:
> >>>> On 27.03.2012 12:40, Vadim Rozenfeld wrote:
> >>>>> On Tuesday, March 27, 2012 11:26:29 AM 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-1v
> >>>>>>>>>>>>>>>>>>>> cp u- 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/ff542
> >>>>>>>>>>>> 63 3% 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?
> >>>>>
> >>>>> Gleb mentioned that it properly handled in upstream,
> >>>>> otherwise just comment the entire HPET section in
> >>>>> acpi-dsdt.dsl file.
> >>>>
> >>>> i have upstream bios installed. so -no-hpet should disable hpet
> >>>> completely. can you give a hint, what
> >>>> "bits 1 and 9 must be set to on in leaf 0x40000003" means?
> >>>
> >>> I mean the following code:
> >>> + if (hyperv_ref_counter_enabled()) {
> >>> + c->eax |= HV_X64_MSR_TIME_REF_COUNT_AVAILABLE;
> >>> + c->eax |= 0x200;
> >>> + }
> >>>
> >>> Please see attached file for more information.
> >>>
> >>>>>> the stuff you send yesterday is for qemu, right? would
> >>>>>> it be possible to use it in qemu-kvm also?
> >>>>>
> >>>>> Yes, but don't forget about kvm patch as well.
> >>>>
> >>>> ok, i will try my best. would you consider your patch a quick hack
> >>>> or do you think it would be worth to be uploaded to the upstream
> >>>> repository?
> >>>
> >>> It was just a brief attempt from my side, mostly inspirited by our with
> >>> Gleb conversation, to see what it worth to turn this option on.
> >>> It is not fully tested. It will crash Win8 (as well as the rest of the
> >>> currently introduced hyper-v features).
> >>
> >> i can confirm that windows 8 installer does not start and resets the
> >> vm continously. it tries to access hv msr 0x40000021
> >
> > Win8 needs more comprehensive Hyper-V support.
>
> yes it seems. i read your comment wrong. i was believing the
> hv_refcnt breaks the other hv_features and windows 8, but
> i guess you said any of the hv_features will break win 8?!
>
Right.
Seems like Win8 needs synthetic interrupts supported.
> peter
>
> >> http://msdn.microsoft.com/en-us/library/windows/hardware/ff542648%28v=vs
> >> .85 %29.aspx
> >>
> >> it is possible to tell the guest that the host is not iTSC (how they
> >> call it) capable. i will try to hack
> >> a patch for this.
> >>
> >> peter
> >>
> >>> I wouldn't commit this code without comprehensive testing.
> >>> Vadim.
> >>>
> >>>> peter
> >>>>
> >>>>>> peter
> >>>>>>
> >>>>>>>> --
> >>>>>>>>
> >>>>>>>> Gleb.
next prev parent reply other threads:[~2012-03-27 15:57 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
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 [this message]
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=201203271755.27864.vrozenfe@redhat.com \
--to=vrozenfe@redhat.com \
--cc=avi@redhat.com \
--cc=gleb@redhat.com \
--cc=kvm@cure.nom.fr \
--cc=kvm@vger.kernel.org \
--cc=pl@dlh.net \
/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).