From: "David S. Ahern" <daahern@cisco.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Ulrich Obergfell <uobergfe@redhat.com>,
kvm@vger.kernel.org, glommer@redhat.com, zamsden@redhat.com,
avi@redhat.com, mtosatti@redhat.com
Subject: Re: [RFC 0/4] KVM in-kernel PM Timer implementation
Date: Tue, 14 Dec 2010 16:59:12 -0700 [thread overview]
Message-ID: <4D0804D0.3090403@cisco.com> (raw)
In-Reply-To: <4D07E5CC.4040604@codemonkey.ws>
On 12/14/10 14:46, Anthony Liguori wrote:
> On 12/14/2010 01:54 PM, David S. Ahern wrote:
>>
>> On 12/14/10 12:49, Anthony Liguori wrote:
>>
>>> But that doesn't tell you what the impact is in real world workloads.
>>> Before we start pushing all device emulation into the kernel, we need to
>>> quantify how often gettimeofday() is really called in real workloads.
>>>
>> The workload that inspired that example program at its current max load
>> calls gtod upwards of 1000 times per second. The overhead of
>> gettimeofday was the biggest factor when comparing performance to bare
>> metal and esx. That's why I wrote the test program --- boils a complex
>> product/program to a single system call.
>>
>
> So the absolute performance impact was on the order of what?
At the time I did the investigations (18-24 months ago) KVM was on the
order of 15-20% worse for a RHEL4 based workload and the overhead
appeared to be due to the PIT or PM timer as the clock source. Switching
the clock to the TSC brought the performance on par with bare metal, but
that route has other issues.
>
> The difference in CPU time of a light weight vs. heavy weight exit
> should be something like 2-3us. That would mean 2-3ms of CPU time at a
> rate of 1000 per second.
The PIT causes 3 VMEXITs for each gettimeofday (get_offset_pit in RHEL4):
/* timer count may underflow right here */
outb_p(0x00, PIT_MODE); /* latch the count ASAP */
...
count = inb_p(PIT_CH0); /* read the latched count */
...
count |= inb_p(PIT_CH0) << 8;
...
David
>
> That should be pretty much in the noise.
>
> There are possibly second order effects that might make a large impact
> such as contention with the qemu_mutex. It's worth doing
> experimentation to see if a non-mutex acquiring fast path in userspace
> also resulted in a significant performance boost.
>
> Regards,
>
> Anthony Liguori
>
>> David
>>
>>
>>> Regards,
>>>
>>> Anthony Liguori
>>>
>>>
>>>> What's the relative speed of the in-kernel pmtimer compared to the PIT?
>>>>
>>>> David
>>>>
>>>>
>>>
>
next prev parent reply other threads:[~2010-12-14 23:59 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <344060531.680691292328457867.JavaMail.root@zmail07.collab.prod.int.phx2.redhat.com>
2010-12-14 12:09 ` [RFC 0/4] KVM in-kernel PM Timer implementation Ulrich Obergfell
2010-12-14 13:34 ` Avi Kivity
2010-12-14 13:40 ` Glauber Costa
2010-12-14 13:49 ` Avi Kivity
2010-12-14 13:52 ` Gleb Natapov
2010-12-14 15:32 ` Anthony Liguori
2010-12-14 15:38 ` Avi Kivity
2010-12-14 16:04 ` Anthony Liguori
2010-12-15 9:33 ` Avi Kivity
2010-12-14 15:29 ` Anthony Liguori
2010-12-14 18:00 ` David S. Ahern
2010-12-14 19:49 ` Anthony Liguori
2010-12-14 19:54 ` David S. Ahern
2010-12-14 21:46 ` Anthony Liguori
2010-12-14 23:59 ` David S. Ahern [this message]
[not found] <953393305.700721292337871455.JavaMail.root@zmail07.collab.prod.int.phx2.redhat.com>
2010-12-14 14:44 ` Ulrich Obergfell
2010-12-14 15:12 ` Avi Kivity
[not found] <1956121317.795411292413874075.JavaMail.root@zmail07.collab.prod.int.phx2.redhat.com>
2010-12-15 11:53 ` Ulrich Obergfell
2012-02-21 18:10 ` Peter Lieven
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=4D0804D0.3090403@cisco.com \
--to=daahern@cisco.com \
--cc=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=glommer@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=uobergfe@redhat.com \
--cc=zamsden@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