Received: by 2002:a05:6a10:6006:0:0:0:0 with SMTP id w6csp858366pxa; Thu, 27 Aug 2020 18:36:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwn+7IYDTmpkcjVQWn/P8+ZgopTXu5AQj9rQ/Sn3NMyJChwyYDH9EER46Egvql9+7voXmen X-Received: by 2002:a05:6402:1f6:: with SMTP id i22mr21793252edy.374.1598578589720; Thu, 27 Aug 2020 18:36:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598578589; cv=none; d=google.com; s=arc-20160816; b=HarTfKuT27oowsOYWev4hu7my3khYKjeZ+5WDBmWqK9a6YVG6R4s9oK+fAlr2zYO+Y EdJg2Hl6LA143JXiUzK6P78gMlYH6WHa1YarIm9cSmsybb+04IXsIt2RWT0NwsLXOzTO FGY4CgcVcXPfKiOa5u1WK/9hd3MkEZUsTga3Htc39R+H+ussKwBEHzX9v2SYrWipria5 i81M6DumG1nqBbSQyste2yMe0e5HSHM7MptzROrggeiR0/7vX1q1+8/T/HmOt1XeWWqr bzUBpSsmXYdlozQreCYeOgspL493B+bm5e4iDb1LWuujuaftlrjEmMOTR5n4ZqepP7s6 XOSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=rxAwjBtuOkOHsCKI2ATmMoWk7nn27DCJ9baRXRPv7gw=; b=sQB3uxOBJGQxK2FtW7QbIQGM3c9QeCRttGGHYHpjCHZb5wtH/lrPgbI6M5UM3zmosc AtCaNFZoyw6x0uYVBVsngKIS0U9Ts3lxbBe2h0VYA11ep5/TiFWQtV92qpnRobzUFQ7K xRM+G/G2vhq3zVm/QQrb8BzqU+pQgRvzJWWMR4KJLW6DiG1dFL0cQ5shWvpNE4JqGLJG UscuOjzFm6WvDPSQegLBf2Zm/WFQbRxiIKcOdf933K9YfoUuvsn8gnvt1KS/YdmdkCMh rixzUZWdBeM2Dhp6+K8DlzZPz9isJJgIwkoUOD1KC48/WEIIUWT57ZLfkh0LbL9zGaXw 2WNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fRHT5WZF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q3si2652773eds.564.2020.08.27.18.36.06; Thu, 27 Aug 2020 18:36:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fRHT5WZF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727843AbgH1BfU (ORCPT + 99 others); Thu, 27 Aug 2020 21:35:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48778 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726147AbgH1BfU (ORCPT ); Thu, 27 Aug 2020 21:35:20 -0400 Received: from mail-pj1-x1043.google.com (mail-pj1-x1043.google.com [IPv6:2607:f8b0:4864:20::1043]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E648C061264; Thu, 27 Aug 2020 18:35:20 -0700 (PDT) Received: by mail-pj1-x1043.google.com with SMTP id 2so3561540pjx.5; Thu, 27 Aug 2020 18:35:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=rxAwjBtuOkOHsCKI2ATmMoWk7nn27DCJ9baRXRPv7gw=; b=fRHT5WZFbeMN+s2XVWB/NxbZCCyRDtI6J+tcc1/dyBOTnfX954wwDt3kriLkxSvyzM p5zo85HxXxh3wTjsQ5b57HMd4x6/sq0M8kmBRo24B5PfrwE+6rngKdYU22ZH2PmEsbYN tf/d/7IPgibKHH+/DjBwn8hyAZ6ccE2bFNzCoeUIrveT23AB7Dm/oPhej5AyFGNH2n1x vjDk6zWGOfx50Np0VhiAGPPImXpKlR48Zwo0HtQStzP7Lqll037XWBGQdX4JFpds/PZJ Zumtzf5UzA6ebwN2wGOVmZuYJzf6VXL9tw4eLOFGT8c7Bpo0X/aHtOGcS6ATBjvPFTta K5mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=rxAwjBtuOkOHsCKI2ATmMoWk7nn27DCJ9baRXRPv7gw=; b=TnW/k6GBKS+pRvUvKMK9iEc6zal91lglHa9MraFXv6/cu0YJpd2EBZvatIZi2taYVR fWYLbjvIhNaXk0AtR+y577OKwdymLwASTDUOaUfkVcXir7RM3dRk1C3AzQqhZmMskPJa ACZQSQU9oCJLfpPDISSIKzCscbNA17SuExtnGAdu0yGmQxL3W7f0TN2rY2iw4zfvdq/V weY7sNpX6QouuZ0VZLXXaHDsaSJaMkD7MtSJBeiY1ZSt+MkcOcT4GW6DQlQe7SCmYj5k YSSyL8mPHgAHeDyTUchvQfeHTIrQWBJuF/f2CemrUIIAyMSQ1MST3Dg6jC9kDf3dWtGD Lf6Q== X-Gm-Message-State: AOAM530nvCC7eAeX+v2189FXXY4zEyp919nQJ9eoob+L50KPcgUNRszA IbfHWnx/LL1u4NHOTeG2FnT2vAdOFBQ= X-Received: by 2002:a17:90a:d597:: with SMTP id v23mr352068pju.24.1598578519288; Thu, 27 Aug 2020 18:35:19 -0700 (PDT) Received: from localhost.localdomain ([103.7.29.6]) by smtp.googlemail.com with ESMTPSA id b6sm3309715pjz.33.2020.08.27.18.35.16 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 27 Aug 2020 18:35:18 -0700 (PDT) From: Wanpeng Li X-Google-Original-From: Wanpeng Li To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Paolo Bonzini , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel Subject: [PATCH] KVM: LAPIC: Reset timer_advance_ns if timer mode switch Date: Fri, 28 Aug 2020 09:35:08 +0800 Message-Id: <1598578508-14134-1-git-send-email-wanpengli@tencent.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Wanpeng Li per-vCPU timer_advance_ns should be set to 0 if timer mode is not tscdeadline otherwise we waste cpu cycles in the function lapic_timer_int_injected(), especially on AMD platform which doesn't support tscdeadline mode. We can reset timer_advance_ns to the initial value if switch back to tscdealine timer mode. Signed-off-by: Wanpeng Li --- arch/x86/kvm/lapic.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 654649b..abc296d 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -1499,10 +1499,16 @@ static void apic_update_lvtt(struct kvm_lapic *apic) kvm_lapic_set_reg(apic, APIC_TMICT, 0); apic->lapic_timer.period = 0; apic->lapic_timer.tscdeadline = 0; + if (timer_mode == APIC_LVT_TIMER_TSCDEADLINE && + lapic_timer_advance_dynamic) + apic->lapic_timer.timer_advance_ns = LAPIC_TIMER_ADVANCE_NS_INIT; } apic->lapic_timer.timer_mode = timer_mode; limit_periodic_timer_frequency(apic); } + if (timer_mode != APIC_LVT_TIMER_TSCDEADLINE && + lapic_timer_advance_dynamic) + apic->lapic_timer.timer_advance_ns = 0; } /* -- 2.7.4