From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752547AbdJFNDX (ORCPT ); Fri, 6 Oct 2017 09:03:23 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51398 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752187AbdJFNDV (ORCPT ); Fri, 6 Oct 2017 09:03:21 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 91CFF7C83E Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=rkrcmar@redhat.com Date: Fri, 6 Oct 2017 15:03:18 +0200 From: Radim =?utf-8?B?S3LEjW3DocWZ?= To: Wanpeng Li Cc: "linux-kernel@vger.kernel.org" , kvm , Paolo Bonzini , Wanpeng Li Subject: Re: [PATCH v5 3/3] KVM: LAPIC: Apply change to TDCR right away to the timer Message-ID: <20171006130318.GA16459@flask> References: <1507214117-2899-1-git-send-email-wanpeng.li@hotmail.com> <20171005181427.GB5656@flask> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 06 Oct 2017 13:03:21 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2017-10-06 07:14+0800, Wanpeng Li: > 2017-10-06 2:14 GMT+08:00 Radim Krčmář : > > 2017-10-05 07:35-0700, Wanpeng Li: > >> From: Wanpeng Li > >> + remaining = ktime_sub(apic->lapic_timer.target_expiration, now); > >> + if (ktime_to_ns(remaining) < 0) > >> + remaining = 0; > >> + delta = mod_64(ktime_to_ns(remaining), apic->lapic_timer.period); > >> + > >> + if (!delta) > >> + return false; > >> + > >> + apic->lapic_timer.period = (u64)kvm_lapic_get_reg(apic, APIC_TMICT) > >> + * APIC_BUS_CYCLE_NS * apic->divide_count; > > > > I'd prefer to apply the rate limiting (done earlier in this function) to > > the period. This version allows the guest to configure 128 times more > > frequent interrupts in the host. > > (And thinking about it, the version of [2/3] I proposed has similar > > problem when switching from one-shot to periodic, only there it is > > unpredictably limited by the speed of KVM.) > > We didn't stop and restart the timer, why the rate will influence us for [2/3]? It is because of the rate limiting -- the guest could setup a one-shot timer with a short expiration and switch to periodic It is mostly theoretical as the expiration would have to be long enough so that the timer doesn't fire before KVM emulates the next instruction that switches the timer to periodic mode, but shorter than rate limit. I see you handled that in v6, thanks!