Received: by 2002:a05:6a10:83d0:0:0:0:0 with SMTP id o16csp162063pxh; Thu, 7 Apr 2022 17:28:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzizTM8dbMUi4ekA/06hFoheTSSc4pmd26nsEZIwnp0MXpqnv2YjBO1t6x8cN9AOn9lKTE6 X-Received: by 2002:a17:90b:4ad2:b0:1c7:cee:b126 with SMTP id mh18-20020a17090b4ad200b001c70ceeb126mr18537449pjb.219.1649377712162; Thu, 07 Apr 2022 17:28:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649377712; cv=none; d=google.com; s=arc-20160816; b=YwVH6SxyCd4htrPmGD1ox+Pxmi4svpSYvm3Ux4IgqbMK2kCJu6j7RbwwruTuZGGcEg P2w8F+1aUnXJ0DQVw1CooBPiL5EfuNbwkp57VdyiJtvpBq8x4hWkdxF1Ws+MzpTjEo3D LpJ/sqAMR8QF74AqroiDEMbvxh0RCOnbZrTC7KUjxF5XWyne8mGT9o4/QpgOndy9jeTd lK+PGoqTD4IeKoYDIzWSdE/byvB3yk5QaQog6hN9gkVcq/IKRJYfQb0a05SUMCGjQHNZ 0k/qaHucXgp5SscGz5+qVssqAbPBoWN4+d8kZL3sV2RQr/UVdZWi9I/x3DWTmE60XeJU rclA== 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=eJC07aHZt7z/wgAtShk+S/N+ZXk4jWI4fdogWYps2vw=; b=m5mC3jLKTvspXX1WEaeeDYAXoZZGTTouvAgeb+rr0Fc5RvxbFb1UmSKRsr9WgZ6Fu/ XboKZig2RudseJU1uruqDqbue+CKXarj0YMlDz7hAAEHgowG0lRRtCUd6OYIrGQMBff9 XYyFRUTiZtZz4IlR7HXArHexwxmM8l/pa4Ptj/vsQJM1Qyb70FS8ZEZM3amj1hh9lOfO g5h4botl7PoeryNhXwRALGB0z3Jxs2Xtst/7FB8SgBrV8c4QqnI0hmXL+Ek+NqYp+kOH NDMyikNs76opxwpQjauH54VF16bprLHZA9OwQ2YQtGvO2vPIzFmtlN/lmlxne07Vrgt7 ScUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=HnVe8VRg; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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. [23.128.96.19]) by mx.google.com with ESMTPS id l5-20020a170902ec0500b00153b2d16586si1054206pld.398.2022.04.07.17.28.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Apr 2022 17:28:32 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=HnVe8VRg; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 774BE14B022; Thu, 7 Apr 2022 16:58:37 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232667AbiDHAAc (ORCPT + 99 others); Thu, 7 Apr 2022 20:00:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53934 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230207AbiDHAA2 (ORCPT ); Thu, 7 Apr 2022 20:00:28 -0400 Received: from mail-yw1-x1131.google.com (mail-yw1-x1131.google.com [IPv6:2607:f8b0:4864:20::1131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 832C3149D32; Thu, 7 Apr 2022 16:58:27 -0700 (PDT) Received: by mail-yw1-x1131.google.com with SMTP id 00721157ae682-2eafabbc80aso78740927b3.11; Thu, 07 Apr 2022 16:58:27 -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=eJC07aHZt7z/wgAtShk+S/N+ZXk4jWI4fdogWYps2vw=; b=HnVe8VRgNBWpYrYXM8tIih6bBb/hhcapGg0IojyYJt1fTyzDd0jc/SQ6/CrDcA+eg0 xF8dI8BWHfmTCF1+cZHVYZ8Npdps0TnA7IoupdsHo/Y8G4JURyvqYsQS+Ghi+70kQOOv lzxFDIfJbG3Zd3BhKEBkt3IIiaJrvcaZJW9ZtL0S2epqvr52o7jEQftfm1yhOkLM/SqT ThWouWSnc3xkoro9U8cGmxeXb+Ts47ok1v2UR9OcOQ++eC5MUWuzVZrFKfqMPkTiBwvi LeO0DHKLJar4oVCFczBDPtag1BiBIF6918JTFK471X6d/GLhL/wglmY9Vg3q0mLdP1VC PyGQ== 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=eJC07aHZt7z/wgAtShk+S/N+ZXk4jWI4fdogWYps2vw=; b=T/+I6eg3L+PhsSr2GJ7VXmrDuYYAo0E/ieDxj6qo7w/Y+L+St7DS4F/zNfKSiqu9oj d6/WXULCL5F2SGtImq7ljUWZrJbZ1j1J0kJUSBIsJ94JSVNlZEe2H9XOKCTjpGXfl920 4nZQepUhgTv7rnK5weFmz6FsIy4g3sJJqL+ZqFMMDslu5dckmk7PTwcVzvyCyJtvzO0G Cw208WRPraIzq9xZTk41EB4OtI+m7mJW8AflhMWBFHxSfQctec1TMeKeFAyN3zbE75OP jyW09qhfOozBdbzdbzKksO05ov15dRL6R63n7M1vOVtQGtB1vwnRWjQaZu8FejgisjlZ Eujw== X-Gm-Message-State: AOAM530h5bwpnAOZ/BXLXJpd5y5cctmijy/BlM9SLKG4fRJs3CJV9pdx lARg/LpD4Wsv40jDVE0r5VqS73wgvzjN4SE9zrDDzUJ/ X-Received: by 2002:a0d:e044:0:b0:2eb:4bf0:d0e7 with SMTP id j65-20020a0de044000000b002eb4bf0d0e7mr14140239ywe.17.1649375906625; Thu, 07 Apr 2022 16:58:26 -0700 (PDT) MIME-Version: 1.0 References: <1648800605-18074-1-git-send-email-wanpengli@tencent.com> In-Reply-To: <1648800605-18074-1-git-send-email-wanpengli@tencent.com> From: Wanpeng Li Date: Fri, 8 Apr 2022 07:58:15 +0800 Message-ID: Subject: Re: [PATCH v2 0/5] KVM: X86: Scaling Guest OS Critical Sections with boosting To: LKML , kvm Cc: Paolo Bonzini , 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 ping, On Fri, 1 Apr 2022 at 16:10, Wanpeng Li wrote: > > The missing semantic gap that occurs when a guest OS is preempted > when executing its own critical section, this leads to degradation > of application scalability. We try to bridge this semantic gap in > some ways, by passing guest preempt_count to the host and checking > guest irq disable state, the hypervisor now knows whether guest > OSes are running in the critical section, the hypervisor yield-on-spin > heuristics can be more smart this time to boost the vCPU candidate > who is in the critical section to mitigate this preemption problem, > in addition, it is more likely to be a potential lock holder. > > Testing on 96 HT 2 socket Xeon CLX server, with 96 vCPUs VM 100GB RAM, > one VM running benchmark, the other(none-2) VMs running cpu-bound > workloads, There is no performance regression for other benchmarks > like Unixbench etc. > > 1VM > vanilla optimized improved > > hackbench -l 50000 > 28 21.45 30.5% > ebizzy -M > 12189 12354 1.4% > dbench > 712 MB/sec 722 MB/sec 1.4% > > 2VM: > vanilla optimized improved > > hackbench -l 10000 > 29.4 26 13% > ebizzy -M > 3834 4033 5% > dbench > 42.3 MB/sec 44.1 MB/sec 4.3% > > 3VM: > vanilla optimized improved > > hackbench -l 10000 > 47 35.46 33% > ebizzy -M > 3828 4031 5% > dbench > 30.5 MB/sec 31.16 MB/sec 2.3% > > v1 -> v2: > * add more comments to irq disable state > * renaming irq_disabled to last_guest_irq_disabled > * renaming, inverting the return, and also return a bool for kvm_vcpu_non_preemptable > > Wanpeng Li (5): > KVM: X86: Add MSR_KVM_PREEMPT_COUNT support > KVM: X86: Add last guest interrupt disable state support > KVM: X86: Boost vCPU which is in critical section > x86/kvm: Add MSR_KVM_PREEMPT_COUNT guest support > KVM: X86: Expose PREEMT_COUNT CPUID feature bit to guest > > Documentation/virt/kvm/cpuid.rst | 3 ++ > arch/x86/include/asm/kvm_host.h | 8 ++++ > arch/x86/include/uapi/asm/kvm_para.h | 2 + > arch/x86/kernel/kvm.c | 10 +++++ > arch/x86/kvm/cpuid.c | 3 +- > arch/x86/kvm/x86.c | 60 ++++++++++++++++++++++++++++ > include/linux/kvm_host.h | 1 + > virt/kvm/kvm_main.c | 7 ++++ > 8 files changed, 93 insertions(+), 1 deletion(-) > > -- > 2.25.1 >