Received: by 2002:a25:ca44:0:0:0:0:0 with SMTP id a65csp809676ybg; Sun, 26 Jul 2020 23:20:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyl32QNR3YEQbJh7YJq46CjUgoyCiBJ5YhaoMXj2axTKxjWAA319pLetXaeMW0kkPc7nBtU X-Received: by 2002:a05:6402:148e:: with SMTP id e14mr9673624edv.162.1595830839923; Sun, 26 Jul 2020 23:20:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595830839; cv=none; d=google.com; s=arc-20160816; b=Cyxxm1g4/Z8DxWzmopaf4fjQpSsbuAjgPIHhgPT33lW5ATUnH+7eXqBHn0u7Afv5uA xJSkYhnzw/cUckKhdeGjRiRCLAu/ywvFZcx6eIgcmzRpV+Opqok0ovd2tcpls2IVbzr1 +zqyceTMD9OR2gW//X45jUc1sxRLbFTOk9HFsnQUbqDnbhv8D1+McB2tqG3d+qi1l7pI Nf5kU0MUwygiGQZjryx+2Fm8ANANFGljHWJO/t30FHIDqH+2zLeb2dvp8JiW44P7SRL0 61nhSTvoAXT/fDuo1Pg/QpKfH8BbANIIGdmZ9j7GbCoNLreCduzavE2Z8Lp1cHEH2/UZ HzOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=JcGPO+gK+jWmNFf+CGlBsEJa/nwVwhmsLiCBZk9Bm6c=; b=WHg6bkDXnsjuyUN+AiSXFo19WW01299xyEDgdRGGNfanbV4l1isAo8U4QuEnH47En8 bkPpWDMQb/JVGPjsma9+R6iAgqmV2Tbd7oKbpZYYxNpsX3ojVwe78DvN5VZRtGojVIY2 /P2+zmP7yCZaJO0ApfngyCGIKEQNkLhVYVB+MFCr95HQ4gFu8CcWOlmWl3wI0znElxNy HyBDwkl0Uc+X3vYygc5C1XBE53bFx4OawX9zseiEqYtTOuoOph/9WrM+ZvMWMhKPWnJj ynVNJpSzrAEtlvWK7oDyDkMtpSH6iozGJQ2VorgE9R5HyTRuXw3fN4Prd9XbFxK8DkOt WqTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ZRIJqfmy; 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 f8si4920876edy.251.2020.07.26.23.20.17; Sun, 26 Jul 2020 23:20:39 -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=ZRIJqfmy; 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 S1726297AbgG0GTJ (ORCPT + 99 others); Mon, 27 Jul 2020 02:19:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726139AbgG0GTJ (ORCPT ); Mon, 27 Jul 2020 02:19:09 -0400 Received: from mail-ot1-x341.google.com (mail-ot1-x341.google.com [IPv6:2607:f8b0:4864:20::341]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DA2E3C0619D2; Sun, 26 Jul 2020 23:19:08 -0700 (PDT) Received: by mail-ot1-x341.google.com with SMTP id h13so11534536otr.0; Sun, 26 Jul 2020 23:19:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=JcGPO+gK+jWmNFf+CGlBsEJa/nwVwhmsLiCBZk9Bm6c=; b=ZRIJqfmyF6JoJMPHAxV1n7kaOdtTfIJpUm3bc2ADAcF76KJ8yGRId56k4UMgAzNQ8Y eivWVwHPzAbmFcCMajMQVgGWXWwogG9JVeIVsv76CnA52v8sL8nyVLkQNGouowpP1/jP 0dLoBUQGRRU/kgquLKrSb9Qqk8kwnVWIyhemjesO4sBsH68KBUGELGnprFO5ygqqJFrL MT2V93fnUdL921XD+jt+bU0F36X2/kwOa49EvAltpBZiAWVUH5oqBEte8dlOzE78c/Ya O/mcxAm2VdOiRlFSya4HXIwtJ85iyYOqYJnSwocGMg3KcH4SbQVQHrVSJ4bhYEep7Ud7 2DDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=JcGPO+gK+jWmNFf+CGlBsEJa/nwVwhmsLiCBZk9Bm6c=; b=YdNDuyOk3R5x5x6TQIKDHtG0OAZ2U/Yh9qLb9oKCXnYFuS3OC/Osy8xPh5KzaA/5zn EOqZnaswTBgrct++ol2+L117+BNsjhK/v3iqeXiy4EpXEh3E08SGUtbN5LW2lVrDsoqx 4rdHUPwr0mQZIFs3cAkJpSe3dy6m4wa4wCaoXWNTRb34il7aUpwEM93NCrGSRhvfLHPE SMBUi+Vcboi0cRs4D9pxf81Dc8EdkYx5mutjQXi04OGX5UFY5HCkX5TY67SJbuAt6uon tuNdgUFsSgV/7jobkv82DNTkaLriXfO6bOMwoeSkAfgv3mw3KPJE6ITMySRoA2+Ev771 1iAg== X-Gm-Message-State: AOAM531QSjRKTIF1R3yvHkG5vbDtSzKo5hj6iHCYokk/UIjKInxT2rnk UuTNnMgF63NHvCcikJrPySSSoH06sKNGDU2inI4= X-Received: by 2002:a9d:6f0d:: with SMTP id n13mr17284568otq.254.1595830747538; Sun, 26 Jul 2020 23:19:07 -0700 (PDT) MIME-Version: 1.0 References: <1595323468-4380-1-git-send-email-wanpengli@tencent.com> <87o8o9p356.fsf@vitty.brq.redhat.com> <20200721152519.GB22083@linux.intel.com> In-Reply-To: <20200721152519.GB22083@linux.intel.com> From: Wanpeng Li Date: Mon, 27 Jul 2020 14:18:56 +0800 Message-ID: Subject: Re: [PATCH 1/2] KVM: LAPIC: Prevent setting the tscdeadline timer if the lapic is hw disabled To: Sean Christopherson Cc: Vitaly Kuznetsov , LKML , kvm , Paolo Bonzini , Wanpeng Li , Jim Mattson , Joerg Roedel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 21 Jul 2020 at 23:25, Sean Christopherson wrote: > > On Tue, Jul 21, 2020 at 12:35:01PM +0200, Vitaly Kuznetsov wrote: > > Wanpeng Li writes: > > > > > From: Wanpeng Li > > > > > > Prevent setting the tscdeadline timer if the lapic is hw disabled. > > > > > > Signed-off-by: Wanpeng Li > > A Fixes and/or Cc stable is probably needed for this. > > > > --- > > > arch/x86/kvm/lapic.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c > > > index 5bf72fc..4ce2ddd 100644 > > > --- a/arch/x86/kvm/lapic.c > > > +++ b/arch/x86/kvm/lapic.c > > > @@ -2195,7 +2195,7 @@ void kvm_set_lapic_tscdeadline_msr(struct kvm_v= cpu *vcpu, u64 data) > > > { > > > struct kvm_lapic *apic =3D vcpu->arch.apic; > > > > > > - if (!lapic_in_kernel(vcpu) || apic_lvtt_oneshot(apic) || > > > + if (!kvm_apic_present(vcpu) || apic_lvtt_oneshot(apic) || > > > apic_lvtt_period(apic)) > > > return; > > > > Out of pure curiosity, what is the architectural behavior if I disable > > LAPIC, write to IA32_TSC_DEADLINE and then re-enable LAPIC before the > > timer was supposed to fire? > > Intel's SDM reserves the right for the CPU to do whatever it wants :-) > > When IA32_APIC_BASE[11] is set to 0, prior initialization to the APIC > may be lost and the APIC may return to the state described in Section > 10.4.7.1, =E2=80=9CLocal APIC State After Power-Up or Reset.=E2=80=9D > > Practically speaking, resetting APIC state seems like the sane approach, > i.e. KVM should probably call kvm_lapic_reset() when the APIC transitions > from HW enabled -> disabled. Maybe in a follow-up patch to this one? kvm_lapic_reset() will call the set base logic, a little recursive in the codes, it can be done after this recursion is solved. Wanpeng