public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
To: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: QEMU PIC indirection patch for in-kernel APIC work
Date: Thu, 05 Apr 2007 10:22:45 -0500	[thread overview]
Message-ID: <46151445.6050503@codemonkey.ws> (raw)
In-Reply-To: <46150F4F.4030505-atKUWr5tajBWk0Htik3J/w@public.gmane.org>

Avi Kivity wrote:
> Dong, Eddie wrote:
>> Avi Kivity wrote:
>>  
>>>> With PIC in Xen, CPU2K gets 6.5% performance gain in old 1000HZ linux
>>>> kernel, KB gets 14% gain. We also did a shared PIC model which share
>>>>  PIC state among Qemu & VMM with less LOC in VMM, it can get
>>>> similar performance gain (5.8% in my test).
>>>> BTW, at that time, PIT is in VMM already.
>>>>
>>>>       
>>> I expect that the gain in kvm will be smaller.  Xen has to schedule
>>> dom0 to process the event channel (possibly on another cpu), dom0 has
>>> to schedule qemu-dm (again, possibly on another cpu), qemu does its
>>> thing, and then Xen has to schedule domU again.  With kvm, we are
>>> always on the same cpu, and the only overhead is the system call,
>>> which is a few hundred nanoseconds.  I expect with current hardware
>>> that it will be negligible (as a vmexit is measured in microseconds),
>>> but to become measurable as hardware improves.
>>>     
>> Yes very possible.
>> We can take a quick mesurement to see how many cycles are spent in a
>> dummy
>> I/O emulation in KVM/Qemu. In Xen, one of my old P4 3.8GHZ platform
>> takes about 50-60K cycles. We can see how many is it in KVM.
>> BTW, today Linux kernel is no longer 1000HZ :-)
>> thx,eddie
>>   
>
> There's some (old) data here:
>
>  http://virt.kernelnewbies.org/KVM/Performance
>
> showing pio latency of ~5600 cycles.  Note that this is on AMD, which 
> takes less cycles to switch than the P4, but on the other hand, we 
> still do a save/restore of the fpu state on every exit, so we can 
> speed it up even more.

It varies quite a lot.  On more modern Intel processors, the PIO latency 
is pretty good.  Also, the number on the wiki is worse than what there 
is today as back then there was an extra syscall pair in the PIO path.

I posted a timeline a while ago on kvm-devel.  IIRC, going to userspace 
added < 1k cycles.  However, this will get much more pronounced as we 
improve the VMEXIT latency in KVM.

Right now we save a lot of state that we strictly don't have to.  Avi 
mentioned the FPU state but we also save many MSRs on every exit that we 
strictly only have to save/restore when we lose the CPU (such as the 
sysenter MSRs).  The saving and restoring of these MSRs make up the bulk 
of the (avoidable) VMEXIT overhead.  Eliminating these will actually 
make the difference between handling in-kernel and userspace much more 
pronounced.

Xen PIO latency is definitely much worse (at least a factor of 3).  
However, what really kills Xen is that occasionally an undesirable 
scheduling decision is made and the PIO latency jumps to an enormous 
value.  This ends making the mean PIO latency considerably worse than 
the median latency.

Regards,

Anthony Liguori

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

  parent reply	other threads:[~2007-04-05 15:22 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-02 11:46 QEMU PIC indirection patch for in-kernel APIC work Gregory Haskins
     [not found] ` <4610A6A9.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-04-04  6:53   ` Avi Kivity
     [not found]     ` <46134B74.1080004-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-04 14:20       ` Anthony Liguori
     [not found]         ` <4613B438.60107-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-04-04 14:39           ` Avi Kivity
     [not found]             ` <4613B89F.8090806-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-04 14:55               ` Anthony Liguori
     [not found]                 ` <4613BC6B.1070708-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-04-04 15:06                   ` Avi Kivity
     [not found]                     ` <4613BF07.50606-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-04 15:36                       ` Nakajima, Jun
     [not found]                         ` <8FFF7E42E93CC646B632AB40643802A8025B9580-1a9uaKK1+wJcIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-04-04 15:47                           ` Dor Laor
     [not found]                             ` <64F9B87B6B770947A9F8391472E032160B318E96-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-04-04 15:53                               ` Anthony Liguori
     [not found]                                 ` <4613C9EE.5030600-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-04-04 16:05                                   ` Avi Kivity
     [not found]                                     ` <4613CCD1.2070702-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-04 16:20                                       ` Nakajima, Jun
     [not found]                                         ` <8FFF7E42E93CC646B632AB40643802A8025B962E-1a9uaKK1+wJcIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-04-04 16:27                                           ` Dor Laor
     [not found]                                             ` <64F9B87B6B770947A9F8391472E032160B318EDB-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-04-04 16:43                                               ` Anthony Liguori
     [not found]                                                 ` <4613D596.7080201-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-04-04 16:54                                                   ` Avi Kivity
2007-04-04 16:32                                           ` Avi Kivity
     [not found]                                             ` <4613D30E.7030905-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-04 16:48                                               ` Nakajima, Jun
     [not found]                                                 ` <8FFF7E42E93CC646B632AB40643802A8025B96AA-1a9uaKK1+wJcIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-04-04 16:58                                                   ` Avi Kivity
     [not found]                                                     ` <4613D93A.5020902-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-04 17:09                                                       ` Nakajima, Jun
     [not found]                                                         ` <8FFF7E42E93CC646B632AB40643802A8025B970D-1a9uaKK1+wJcIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-04-04 21:33                                                           ` Dor Laor
2007-04-04 18:12                                                   ` Anthony Liguori
2007-04-04 15:51                       ` Anthony Liguori
     [not found]                         ` <4613C993.9020405-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-04-04 16:02                           ` Avi Kivity
     [not found]                             ` <4613CC01.1090500-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-04 16:09                               ` Anthony Liguori
     [not found]                                 ` <4613CDB2.4000903-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-04-04 16:19                                   ` Avi Kivity
     [not found]                                     ` <4613D001.3040606-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-04 20:01                                       ` Ingo Molnar
     [not found]                                         ` <20070404200112.GA6070-X9Un+BFzKDI@public.gmane.org>
2007-04-04 20:24                                           ` Anthony Liguori
     [not found]                                             ` <4614098F.2030307-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-04-04 21:21                                               ` Ingo Molnar
2007-04-04 23:19                                                 ` [kvm-devel] " Rusty Russell
2007-04-05  7:17                                                   ` Avi Kivity
2007-04-06  1:02                                                     ` Rusty Russell
2007-04-08  5:36                                                       ` Avi Kivity
     [not found]                                                         ` <46187F4E.1080807-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-08  9:04                                                           ` Muli Ben-Yehuda
2007-04-09  2:50                                                           ` Rusty Russell
     [not found]                                                             ` <1176087018.11664.65.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-04-09  7:10                                                               ` Avi Kivity
     [not found]                                                                 ` <4619E6DC.3010804-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-09  9:46                                                                   ` Rusty Russell
     [not found]                                                                     ` <1176111984.11664.90.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-04-09 13:38                                                                       ` Avi Kivity
     [not found]                                                                         ` <461A41CA.9080201-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-10  8:07                                                                           ` Evgeniy Polyakov
2007-04-10  8:19                                                                             ` [kvm-devel] " Avi Kivity
     [not found]                                                                               ` <461B48A8.1060904-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-10  8:58                                                                                 ` Evgeniy Polyakov
2007-04-10 11:21                                                                                   ` [kvm-devel] " Avi Kivity
     [not found]                                                                                     ` <461B7334.8090807-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-10 11:50                                                                                       ` Evgeniy Polyakov
2007-04-10 12:17                                                                                         ` [kvm-devel] " Avi Kivity
     [not found]                                                                                           ` <461B8069.6070007-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-10 12:30                                                                                             ` Evgeniy Polyakov
     [not found]                                                                                               ` <20070410123034.GA11493-9fLWQ3dKdXwox3rIn2DAYQ@public.gmane.org>
2007-04-10 12:49                                                                                                 ` Avi Kivity
2007-04-11  3:53                                                                         ` [kvm-devel] " Rusty Russell
     [not found]                                                                           ` <1176263593.26372.84.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-04-11  4:26                                                                             ` Avi Kivity
     [not found]                                                                               ` <461C6360.1060908-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-11 13:23                                                                                 ` Rusty Russell
     [not found]                                                                                   ` <1176297794.14322.72.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-04-11 14:28                                                                                     ` Avi Kivity
     [not found]                                                                                       ` <461CF098.3090003-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-11 23:30                                                                                         ` Rusty Russell
     [not found]                                                                                           ` <1176334200.14322.133.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-04-12  3:32                                                                                             ` Avi Kivity
2007-04-16  0:22                                                                                               ` [kvm-devel] " Rusty Russell
2007-04-16  5:13                                                                                                 ` Avi Kivity
     [not found]                                                   ` <1175728768.12230.593.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-04-05  9:30                                                     ` Ingo Molnar
     [not found]                                                       ` <20070405093033.GC25448-X9Un+BFzKDI@public.gmane.org>
2007-04-05  9:58                                                         ` Avi Kivity
2007-04-05 10:26                                                           ` [kvm-devel] " Ingo Molnar
2007-04-05 11:26                                                             ` Avi Kivity
     [not found]                                                               ` <4614DCE1.70905-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-05 11:36                                                                 ` Ingo Molnar
2007-04-06  1:16                                                                   ` [kvm-devel] " Rusty Russell
2007-04-06 18:59                                                                     ` Ingo Molnar
2007-04-05 10:55                                                         ` Ingo Molnar
2007-04-05 14:32                                                       ` [kvm-devel] " Anthony Liguori
2007-04-06 10:37                                                         ` Ingo Molnar
2007-04-06 11:07                                                           ` Ingo Molnar
2007-04-04 22:07                                               ` Dor Laor
2007-04-05  6:54                                               ` Avi Kivity
2007-04-05  6:40                                           ` Avi Kivity
2007-04-04 16:23                                   ` Dor Laor
     [not found]                                     ` <64F9B87B6B770947A9F8391472E032160B318ED4-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-04-04 16:48                                       ` Anthony Liguori
     [not found]                                         ` <4613D6CD.6060209-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-04-04 20:07                                           ` Ingo Molnar
2007-04-05 13:50                                       ` Dong, Eddie
     [not found]                                         ` <0E6FE5D295DE5B4B8D9070C26A227987E0D1EC-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-04-05 13:59                                           ` Avi Kivity
     [not found]                                             ` <461500B5.4080102-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-05 14:52                                               ` Dong, Eddie
     [not found]                                                 ` <0E6FE5D295DE5B4B8D9070C26A227987F2444B-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-04-05 15:01                                                   ` Avi Kivity
     [not found]                                                     ` <46150F4F.4030505-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-04-05 15:16                                                       ` Dong, Eddie
     [not found]                                                         ` <0E6FE5D295DE5B4B8D9070C26A227987F24452-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-04-05 15:26                                                           ` Anthony Liguori
2007-04-05 15:22                                                       ` Anthony Liguori [this message]
2007-04-05 14:41                                           ` Dor Laor
     [not found]                                             ` <64F9B87B6B770947A9F8391472E032160B319509-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-04-05 14:48                                               ` Dong, Eddie
2007-04-05 14:57                                               ` Dong, Eddie
2007-04-04 17:51           ` Gregory Haskins
     [not found]             ` <46139F39.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-04-04 18:19               ` Anthony Liguori

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=46151445.6050503@codemonkey.ws \
    --to=anthony-rdkfgonbjusknkdkm+me6a@public.gmane.org \
    --cc=avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox