Re: Performance overhead of get_cycles_sync

Andi Kleen
2007-12-11T15:02:37Z

On Tue, Dec 11, 2007 at 04:57:16PM +0200, Dor Laor wrote:
> Andi Kleen wrote:
> >[headers rewritten because of gmane crosspost breakage]
> >
> >
> >>In the latest kernel (2.6.24-rc3) I noticed a drastic performance
> >>decrease for KVM networking.
> >>
> >
> >That should not have changed for quite some time.
> >
> >Also it depends on the CPU of course.
> >
> I didn't find the exact place of the change but using fedora 2.6.23-8
> there is no problem.
> 3aefbe0746580a710d4392a884ac1e4aac7c728f turn X86_FEATURE_SYNC_RDTSC
> off for most
> intel cpus, but it was committed in May.

Ah there was a change to enable it on Core2. On AMD it was
always there except on CPUs with RDTSCP

Anyways the very likely right way (I'm still waiting for final
confirmation from Intel) to solve this is to use LFENCE which
happens to stop RDTSC and is relatively light weight and won't
cause vmexits. Unfortunately that doesn't work on AMD, but
there MFENCE happens to work. But there are more problems
in this code which I have a (.24) patchkit to fix.

> According to Intel spec it is a serializing instruction along with cpuid
> and others.

You're right. The real roblem is that it is ring 0 only and that can
be executed in ring 3. That is why Ingo's patch was wrong too.

-Andi