virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* Re: system call time increase when turning on CONFIG_PARAVIRT
       [not found] <1172866274.4898.14.camel@localhost.localdomain>
@ 2007-03-02 21:54 ` Jeremy Fitzhardinge
  2007-03-02 23:11   ` Tim Chen
  0 siblings, 1 reply; 6+ messages in thread
From: Jeremy Fitzhardinge @ 2007-03-02 21:54 UTC (permalink / raw)
  To: tim.c.chen; +Cc: Virtualization Mailing List, linux-kernel

Tim Chen wrote:
> With CONFIG_PARAVIRT turned on, I've found that time invoking
> system_call jumped up quite a lot.  Using TCP streaming test as a
> workload and running on 32-bit 2.6.20 kernel, system_call goes up from
> 0.00025% all the way to 1.6% in the oprofile data.  There is a drop of
> about 4% in overall throughput for this particular workload. 
>
> With lmbench's null system call test, the call time goes up from 0.10
> usec to 0.225 usec.
>
> I'm testing on dual socket Intel core 2 processor running at 2.67 GHz
> with 4 GB RAM.
[ I assume you're talking about running on native hardware. ]

In the current paravirt changes in the kernel, many of the
paravirtualized operations are implemented as (expensive) indirect calls
via paravirt_ops.  Among the changes in the paravirt patches I posted
yesterday is an enhanced patching mechanism which inlines a lot of the
common operations, and converts the rest into direct calls.

I haven't done any detailed measurements on what effect this will have,
but it does bring the actual executed instruction stream much closer to
the !CONFIG_PARAVIRT case, and so I would hope it would recover most or
all of the performance loss you've noticed.

    J

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: system call time increase when turning on CONFIG_PARAVIRT
  2007-03-02 21:54 ` system call time increase when turning on CONFIG_PARAVIRT Jeremy Fitzhardinge
@ 2007-03-02 23:11   ` Tim Chen
  2007-03-03  0:16     ` Jeremy Fitzhardinge
  0 siblings, 1 reply; 6+ messages in thread
From: Tim Chen @ 2007-03-02 23:11 UTC (permalink / raw)
  To: Jeremy Fitzhardinge; +Cc: linux-kernel, Virtualization Mailing List

On Fri, 2007-03-02 at 13:54 -0800, Jeremy Fitzhardinge wrote:

> [ I assume you're talking about running on native hardware. ]
> 
That's correct.

> I haven't done any detailed measurements on what effect this will have,
> but it does bring the actual executed instruction stream much closer to
> the !CONFIG_PARAVIRT case, and so I would hope it would recover most or
> all of the performance loss you've noticed.
> 
I also hope that the performance can be recovered as this option could
enabled in distributions' kernels in future.

Tim

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: system call time increase when turning on CONFIG_PARAVIRT
  2007-03-02 23:11   ` Tim Chen
@ 2007-03-03  0:16     ` Jeremy Fitzhardinge
  2007-03-03  7:00       ` Zachary Amsden
  2007-03-08  0:02       ` Tim Chen
  0 siblings, 2 replies; 6+ messages in thread
From: Jeremy Fitzhardinge @ 2007-03-03  0:16 UTC (permalink / raw)
  To: tim.c.chen; +Cc: Virtualization Mailing List, linux-kernel

Tim Chen wrote:
> I also hope that the performance can be recovered as this option could
> enabled in distributions' kernels in future.

Yes, the intent is that running a CONFIG_PARAVIRT kernel on native
hardware will have negligible performance hit compared to running a
non-paravirt kernel.

    J

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: system call time increase when turning on CONFIG_PARAVIRT
  2007-03-03  0:16     ` Jeremy Fitzhardinge
@ 2007-03-03  7:00       ` Zachary Amsden
  2007-03-08  0:02       ` Tim Chen
  1 sibling, 0 replies; 6+ messages in thread
From: Zachary Amsden @ 2007-03-03  7:00 UTC (permalink / raw)
  To: Jeremy Fitzhardinge; +Cc: tim.c.chen, linux-kernel, Virtualization Mailing List

Jeremy Fitzhardinge wrote:
> Tim Chen wrote:
>   
>> I also hope that the performance can be recovered as this option could
>> enabled in distributions' kernels in future.
>>     
>
> Yes, the intent is that running a CONFIG_PARAVIRT kernel on native
> hardware will have negligible performance hit compared to running a
> non-paravirt kernel.
>   

We can validate that claim entirely.  The way we are proceeding, the 
native code will be inlined or direct called as much as possible.  With 
the VMI-Linux code we had earlier, this mostly created <3% overhead for 
microbenchmarks (and in some cases, we actually won over the unmodified 
native code).  For macro-benchmarks, with real-world workloads, this 
reduced to immeasurable noise, never off by more than +/- 0.5% IIRC.

I believe all of this is totally achievable.  We have the technology.  
We can rebuild it.

Zach

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: system call time increase when turning on CONFIG_PARAVIRT
  2007-03-03  0:16     ` Jeremy Fitzhardinge
  2007-03-03  7:00       ` Zachary Amsden
@ 2007-03-08  0:02       ` Tim Chen
  2007-03-08  0:55         ` Jeremy Fitzhardinge
  1 sibling, 1 reply; 6+ messages in thread
From: Tim Chen @ 2007-03-08  0:02 UTC (permalink / raw)
  To: Jeremy Fitzhardinge, zach; +Cc: Virtualization Mailing List, linux-kernel

On Fri, 2007-03-02 at 16:16 -0800, Jeremy Fitzhardinge wrote:

> 
> Yes, the intent is that running a CONFIG_PARAVIRT kernel on native
> hardware will have negligible performance hit compared to running a
> non-paravirt kernel.
> 
>     J

It turned out that VDSO was turned off by CONFIG_PARAVIRT option,
causing the system call to use inefficient int 0x80 which led to the
increase system_call time I was seeing.  I noted that Ingo has caught
this problem and proposed a patch to correct this issue in another mail
thread.

Tim

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: system call time increase when turning on CONFIG_PARAVIRT
  2007-03-08  0:02       ` Tim Chen
@ 2007-03-08  0:55         ` Jeremy Fitzhardinge
  0 siblings, 0 replies; 6+ messages in thread
From: Jeremy Fitzhardinge @ 2007-03-08  0:55 UTC (permalink / raw)
  To: tim.c.chen; +Cc: Virtualization Mailing List, linux-kernel

Tim Chen wrote:
> It turned out that VDSO was turned off by CONFIG_PARAVIRT option,
> causing the system call to use inefficient int 0x80 which led to the
> increase system_call time I was seeing.  I noted that Ingo has caught
> this problem and proposed a patch to correct this issue in another mail
> thread.

Thanks for identifying this.  We'll be posting a more general fix for
COMPAT_VDSO soon which will address this.

    J

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-03-08  0:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1172866274.4898.14.camel@localhost.localdomain>
2007-03-02 21:54 ` system call time increase when turning on CONFIG_PARAVIRT Jeremy Fitzhardinge
2007-03-02 23:11   ` Tim Chen
2007-03-03  0:16     ` Jeremy Fitzhardinge
2007-03-03  7:00       ` Zachary Amsden
2007-03-08  0:02       ` Tim Chen
2007-03-08  0:55         ` Jeremy Fitzhardinge

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).