Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp996410iob; Fri, 13 May 2022 19:01:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyAgTM/AkDQV4SUJwa093b1AAGNxzyZ+OcMt1jSCXqwb7nLOpGm6tCp4X6QeJsglDd+cT/K X-Received: by 2002:a5d:6a4c:0:b0:20c:dff2:34b2 with SMTP id t12-20020a5d6a4c000000b0020cdff234b2mr5985752wrw.671.1652493717163; Fri, 13 May 2022 19:01:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652493717; cv=none; d=google.com; s=arc-20160816; b=jsYgba3wsfU7KdHWiGCLvlxEKcFxSz3YiPk5Utn8JgM29C15PdhfFS0+UOJ+ks2dm0 stydenB6eVIhvRqM5dIpxNFS9Cf3qBSgUIb1QKj+nmaaGrWxRcDeJjKG2TcBse4SzMzz L9HOXYE3Cl4Jj1uJlmx4843K3rpLO/iq+5fpiPv4G7onQ6tjjwWJKHPjzLV8q70Q9FLn pEWLflgpHW6iWBOxdiqh6wnF1QejPNTH8pZ9WSBfeeIYRaejAZ7xyTRDU9WZuMCiCpjv mA9xPaya9avvNyS4ijYxoD40X+tuLwZk360TwGLtDD3lW+Qljg3Z+9LItEgfwyO3BOES sVlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=brHoAYESbYaw3qeDx896/zwLySs+sKATjJeEldnRzw0=; b=cZVEuBMO8m04JBSoKNGLpNPVzVoKCBQVaXNz2Zjj+5/yxjKs6F4j+RiDw5whPE91BC T9g49ActSPbzCOlVPrxV47qAYeBGelJtumYqzWpap44i4A+ainWFBASIrh1p1EciQ/aY AxxU5mloyPd/eMPjrFkjtmp2U5OP3X8PKOPsJIFZMXV6vB+3BBhqhkkpffUCg1/Loi3C SRruJe7SHuqO8f6WvmbG2IIfvIghV7Rtemb6nodjQ5uShDdSU/nNglw+Gz5kdFrWdWhL ElEH7FvDEqYMM1RQR0hB8fyyyiNKfNdnTs2fDkbt2PGEzr4r7pQ9MhgRHtff5TuRVHCf 3fvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=KgfUkaQA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1: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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id o5-20020a05600002c500b0020c5f61dc9fsi4962876wry.343.2022.05.13.19.01.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 May 2022 19:01:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=KgfUkaQA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1: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: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id D8D28477CC2; Fri, 13 May 2022 17:23:29 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343716AbiELIX6 (ORCPT + 99 others); Thu, 12 May 2022 04:23:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237176AbiELIXy (ORCPT ); Thu, 12 May 2022 04:23:54 -0400 Received: from mail-qk1-x730.google.com (mail-qk1-x730.google.com [IPv6:2607:f8b0:4864:20::730]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 58DD769B4F; Thu, 12 May 2022 01:23:52 -0700 (PDT) Received: by mail-qk1-x730.google.com with SMTP id 126so4089205qkm.4; Thu, 12 May 2022 01:23:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=brHoAYESbYaw3qeDx896/zwLySs+sKATjJeEldnRzw0=; b=KgfUkaQARcExIlpU4rOm6uwSVpDtKV+CYKxa0xV36nWPu6HcqwegrlwMmwFAmZCk6s JQDg3yjgtLGYy+rcSgvEVNFUgZHXFXUVbvv5q2Opa9B7XCKnmWety+W8z5Tj8U2QT0bk jaOVNY5CQyv6rg2n7ZcbKTP1R1V+I+cakkG+vgl7hrN8yo3/wP9m8vuti0jZawo67nUM AOXHoTOt6BzMq31dQCgIf5+E+VYaJTp7fM7BLTpfY5Bm+2QtbnGAFA/N4R0Bgo3hLRBz IuawAuEQryOHeLJdgBSFKkWdRV31YdI8b4NmiIO7NbBVnCtHXV0ocffJkMFjjECtf4Km yrDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=brHoAYESbYaw3qeDx896/zwLySs+sKATjJeEldnRzw0=; b=EneTyFqni5ce8/avtpC1N/e/YaF257wfLCaO8v34J/f0tFk93wwEitc/nott7MHDat Ymildo1METv69iG2kYmWv7PPpM6UGlb6YqeWcm9KSb/+ao9HiQTgvnUubPeDv2QaWUx+ LLXAo5ruzmSD4yHlr985mXli0066AfOwNR0LYxnog6b00AyHGrULieeB3gQxlTKdV+lg kQmHx5ZrvfgcrzJLHsggavazs7mdSMFIz65mREhJWuXEpwOeb3l0xS1mOCHRMe09FOAY ApiEAA2jiE1TM1jtB//8fd+1zs/h9BuzZC6LVgwxS0Ye22yhRt7k/GQRzyXYrsQRP1PZ Xzng== X-Gm-Message-State: AOAM532GF/+pO5TxsQLYb34oBc3LP9LOCmNwSzN124PhmEClhXtK6PDf 5OXFo9bwf+FVMNpzRa8izQKtEywsE4QVWrWcBv8= X-Received: by 2002:a37:9ace:0:b0:69f:b424:25b4 with SMTP id c197-20020a379ace000000b0069fb42425b4mr21826665qke.250.1652343831504; Thu, 12 May 2022 01:23:51 -0700 (PDT) MIME-Version: 1.0 References: <1652236710-36524-1-git-send-email-wanpengli@tencent.com> <7d9d5f72-21ed-070e-c063-1cd7ae6671ec@redhat.com> In-Reply-To: <7d9d5f72-21ed-070e-c063-1cd7ae6671ec@redhat.com> From: Wanpeng Li Date: Thu, 12 May 2022 16:23:40 +0800 Message-ID: Subject: Re: [PATCH v2 1/2] KVM: LAPIC: Disarm LAPIC timer includes pending timer around TSC deadline switch To: Paolo Bonzini Cc: LKML , kvm , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 11 May 2022 at 21:54, Paolo Bonzini wrote: > > On 5/11/22 04:38, Wanpeng Li wrote: > > > > Fixes: 4427593258 (KVM: x86: thoroughly disarm LAPIC timer around TSC deadline switch) > > Signed-off-by: Wanpeng Li > > --- > > Please write a testcase for this. Something like this, however, it is not easy to catch the pending timer in this scenario. diff --git a/x86/apic.c b/x86/apic.c index 23508ad..108c1c8 100644 --- a/x86/apic.c +++ b/x86/apic.c @@ -22,7 +22,7 @@ static void test_lapic_existence(void) #define TSC_DEADLINE_TIMER_VECTOR 0xef #define BROADCAST_VECTOR 0xcf -static int tdt_count; +static int volatile tdt_count; static void tsc_deadline_timer_isr(isr_regs_t *regs) { @@ -672,6 +672,18 @@ static void test_apic_change_mode(void) /* now tmcct == 0 and tmict != 0 */ apic_change_mode(APIC_LVT_TIMER_PERIODIC); report(!apic_read(APIC_TMCCT), "TMCCT should stay at zero"); + + handle_irq(TSC_DEADLINE_TIMER_VECTOR, tsc_deadline_timer_isr); + irq_enable(); + + apic_write(APIC_LVTT, APIC_LVT_TIMER_ONESHOT | + APIC_LVT_TIMER_VECTOR); + /* Divider == 1 */ + apic_write(APIC_TDCR, 0x0000000b); + + apic_write(APIC_TMICT, 0x999999); + enable_tsc_deadline_timer(); + while(tdt_count == 1); } #define KVM_HC_SEND_IPI 10