From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-21.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 898ADC433ED for ; Tue, 13 Apr 2021 18:29:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 415B2613C0 for ; Tue, 13 Apr 2021 18:29:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347754AbhDMSaC (ORCPT ); Tue, 13 Apr 2021 14:30:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55332 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237037AbhDMSaB (ORCPT ); Tue, 13 Apr 2021 14:30:01 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6DE86C061756 for ; Tue, 13 Apr 2021 11:29:41 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id z39so16981743ybh.23 for ; Tue, 13 Apr 2021 11:29:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=reply-to:date:message-id:mime-version:subject:from:to:cc; bh=p83dQZ0k0Eku5abiiX2RjEKklE9nuw+yn1MAe8TcP90=; b=WGEETEvbMvrLyFMBiTAiYONPkYqzwOzAjj5TqcXJb7f2DOKCVBc5SnXYbf095GvieY 2S2mZpybQt3p9wOmu75YEXGr0NVWpSTWueGJNFKG2gS8/qAJpTmtYFj7h1knDMA7VJV6 1KNA7k6dWVV6wfmA9mWFl42uxC16zfwR5fBajJsI23DWzHHVJXf33hOfKldQI0HZ/K76 JXj6Q0o2hqKTx5w6OHqhSk75Ln5rXr4cDgemAHVl08JxiA/N7D+p7l/4xhHqibUQyT1+ 4JHPLjNwNG4OsW0wN6nJoeh139xm5lQI23sDfFXscPbqSyhDQBWRJTj8ImaE5qd2jp86 rJ3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:date:message-id:mime-version:subject :from:to:cc; bh=p83dQZ0k0Eku5abiiX2RjEKklE9nuw+yn1MAe8TcP90=; b=cn94UG9+frNSG2vIbzX7DvPmZ9HuBizc4uG1xtSGYOAudCDd+qyQGkGP02b8Q79EZm n4+P2z2pZGqbkaccWJfbm7BxsnAfzu4nSRZgHocuMeeJuz3oiFn8rePxrDIRc7On6zaj uL3roOhv3oHZR628b9rTEkGdMNLMZZYSIOeY/+dSpC37/DtSwnmOEdkqpGwFhegDxRir 56O3bwBuWJdqKRI+cxtHrq2T8GI6vn1SNNR1ZDx7ZTiDZcfI0w6sYZkmD05semPzRcbE gTEtHLskqxBSl/IkQ++3qSI4vcX8aVFCav7HrivhmjU45VuOs3/zcuFH/qgO1+bEo8E2 gjgg== X-Gm-Message-State: AOAM533O3Fbnns4xHdZbIgHCLyRldNL1reYirZrAr+tH5GWu3KYcEx8t b1mm9HmpJD+e3a+TBB1iMB4g2fWgZi0= X-Google-Smtp-Source: ABdhPJxBMDkmeyEto5eh42lN8cMHROwXTUtvBnzTEYFcNOkJOkf/rgYS0/lHDysrjGIZzbyEsxmuAMbUxXk= X-Received: from seanjc798194.pdx.corp.google.com ([2620:15c:f:10:f031:9c1c:56c7:c3bf]) (user=seanjc job=sendgmr) by 2002:a5b:7c5:: with SMTP id t5mr46632593ybq.190.1618338580729; Tue, 13 Apr 2021 11:29:40 -0700 (PDT) Reply-To: Sean Christopherson Date: Tue, 13 Apr 2021 11:29:26 -0700 Message-Id: <20210413182933.1046389-1-seanjc@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.31.1.295.g9ea45b61b8-goog Subject: [RFC PATCH 0/7] KVM: Fix tick-based vtime accounting on x86 From: Sean Christopherson To: Paolo Bonzini Cc: Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Thomas Gleixner , Christian Borntraeger , Michael Tokarev Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is an alternative to Wanpeng's series[*] to fix tick-based accounting on x86. The approach for fixing the bug is identical: defer accounting until after tick IRQs are handled. The difference is purely in how the context tracking and vtime code is refactored in order to give KVM the hooks it needs to fix the x86 bug. x86 compile tested only, hence the RFC. If folks like the direction and there are no unsolvable issues, I'll cross-compile, properly test on x86, and post an "official" series. Sean Christopherson (7): sched/vtime: Move guest enter/exit vtime accounting to separate helpers context_tracking: Move guest enter/exit logic to standalone helpers context_tracking: Consolidate guest enter/exit wrappers context_tracking: KVM: Move guest enter/exit wrappers to KVM's domain KVM: Move vtime accounting of guest exit to separate helper KVM: x86: Consolidate guest enter/exit logic to common helpers KVM: x86: Defer tick-based accounting 'til after IRQ handling arch/x86/kvm/svm/svm.c | 39 +----------- arch/x86/kvm/vmx/vmx.c | 39 +----------- arch/x86/kvm/x86.c | 8 +++ arch/x86/kvm/x86.h | 48 +++++++++++++++ include/linux/context_tracking.h | 100 ++++++++----------------------- include/linux/kvm_host.h | 50 ++++++++++++++++ include/linux/vtime.h | 45 ++++++++++++-- 7 files changed, 175 insertions(+), 154 deletions(-) -- 2.31.1.295.g9ea45b61b8-goog