From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [patch 2/2] KVM: x86: add option to advance tscdeadline hrtimer expiration Date: Wed, 10 Dec 2014 18:08:14 +0100 Message-ID: <54887DFE.3070904@redhat.com> References: <20141210165339.875103463@localhost.localdomain> <20141210165432.367137017@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Cc: Luiz Capitulino , Rik van Riel , Radim Krcmar , Marcelo Tosatti To: Marcelo.Tosatti@amt.cnet, kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:33286 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932255AbaLJR3f (ORCPT ); Wed, 10 Dec 2014 12:29:35 -0500 In-Reply-To: <20141210165432.367137017@localhost.localdomain> Sender: kvm-owner@vger.kernel.org List-ID: On 10/12/2014 17:53, Marcelo.Tosatti@amt.cnet wrote: > For the hrtimer which emulates the tscdeadline timer in the guest, > add an option to advance expiration, and busy spin on VM-entry waiting > for the actual expiration time to elapse. > > This allows achieving low latencies in cyclictest (or any scenario > which requires strict timing regarding timer expiration). > > Reduces cyclictest avg latency by 50%. > > Note: this option requires tuning to find the appropriate value > for a particular hardware/guest combination. One method is to measure the > average delay between apic_timer_fn and VM-entry. > Another method is to start with 1000ns, and increase the value > in say 500ns increments until avg cyclictest numbers stop decreasing. > > Signed-off-by: Marcelo Tosatti What is the latency value that you find in practice, for both apic_timer_fn to vmentry? Or for apic_timer_fn to just before vmrun? Let's start with a kvm-unit-tests patch to measure this value. We can then decide whether to hardcode a small default value (e.g. 1000-3000) and make it a module parameter? Or perhaps start with a higher value (twice what you find in practice?) and adjust it towards a target every time wait_lapic_expire is called. But in order to judge the correct approach, I need to see the numbers. Paolo