On Thu, 26 Sep 2019 at 03:29, Sean Christopherson <sean.j.christopherson@xxxxxxxxx> wrote: > > On Wed, Sep 25, 2019 at 01:47:04PM +0800, Wanpeng Li wrote: > > From: Wanpeng Li <wanpengli@xxxxxxxxxxx> > > > > 5000 guest cycles delta is easy to encounter on desktop, per-vCPU > > lapic_timer_advance_ns always keeps at 1000ns initial value, lets > > loose fluctuation filter a bit to make auto tune can make some > > progress. > > > > Signed-off-by: Wanpeng Li <wanpengli@xxxxxxxxxxx> > > --- > > arch/x86/kvm/lapic.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c > > index 3a3a685..258407e 100644 > > --- a/arch/x86/kvm/lapic.c > > +++ b/arch/x86/kvm/lapic.c > > @@ -67,7 +67,7 @@ > > > > static bool lapic_timer_advance_dynamic __read_mostly; > > #define LAPIC_TIMER_ADVANCE_ADJUST_MIN 100 > > -#define LAPIC_TIMER_ADVANCE_ADJUST_MAX 5000 > > +#define LAPIC_TIMER_ADVANCE_ADJUST_MAX 10000 > > #define LAPIC_TIMER_ADVANCE_ADJUST_INIT 1000 > > /* step-by-step approximation to mitigate fluctuation */ > > #define LAPIC_TIMER_ADVANCE_ADJUST_STEP 8 > > @@ -1504,7 +1504,7 @@ static inline void adjust_lapic_timer_advance(struct kvm_vcpu *vcpu, > > timer_advance_ns += ns/LAPIC_TIMER_ADVANCE_ADJUST_STEP; > > } > > > > - if (unlikely(timer_advance_ns > LAPIC_TIMER_ADVANCE_ADJUST_MAX)) > > + if (unlikely(timer_advance_ns > LAPIC_TIMER_ADVANCE_ADJUST_MAX/2)) > > Doh, missed that these are two different time domains in the original > review, i.e. ns vs. cycles. I try to save one #define in this patch, will fold below in next version. Wanpeng > > We should use separate defines for the filter since that check is done > in cycles. Not sure what names to use to keep things somewhat clear. > > Maybe s/ADJUST/EXPIRE for the cycles, and s/ADJUST/NS for the ns ones? > E.g.: > > #define LAPIC_TIMER_ADVANCE_EXPIRE_MIN 100 > #define LAPIC_TIMER_ADVANCE_EXPIRE_MAX 10000 > #define LAPIC_TIMER_ADVANCE_NS_MAX 5000 > #define LAPIC_TIMER_ADVANCE_NS_INIT 1000 > > > timer_advance_ns = LAPIC_TIMER_ADVANCE_ADJUST_INIT; > > apic->lapic_timer.timer_advance_ns = timer_advance_ns; > > } > > -- > > 2.7.4 > >