Received: by 10.223.164.202 with SMTP id h10csp1875582wrb; Thu, 16 Nov 2017 05:55:44 -0800 (PST) X-Google-Smtp-Source: AGs4zMY9WYAj6pceEqWR7kot6zNQ4FZV+you3o7DA2sa/ScTULeOTRAVNzkKT0vKlO0YMSd3LJVx X-Received: by 10.98.11.155 with SMTP id 27mr1938265pfl.242.1510840544622; Thu, 16 Nov 2017 05:55:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510840544; cv=none; d=google.com; s=arc-20160816; b=CN+Rf+rM6p2fIYXeJ3GRncc3zboCON9kS3lgIL7kePOayuvC6O1l4PRbFW0paDIZAZ dCPTxoklZ3ed/rdr5cOZ5n4PvkcYqWriQ9m4snAg1qMt8xDXsICoM4jQzeBvYCsqnLYi NESmPTnnNxYU5PxOdfSn1tvTLnZ3z5Ed8b0nOe8gEaKnDUPCqemZjFVg+40/lfJVwR1U 2PSoaD270itNznBRUC4jGa0D1x+4+AT7FqRTSSMrW9DuqdoXU6UY1BSsWbdR+5MLCsBV ZQKQynUz11th2/LII8lKFypmM7Yb9e/QJWLjSmKfOAreDxOeuNYD22zOxtcjCZj2Ye4V IISg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=ziyETLbKZ+YPx34SQCW7kjKmoxA4LDxfdJYH3++uIzw=; b=JIpY4msXquD0MF1b36HMgNxEXzmVFbDAJnb9YGLs0ByEQyjk8flecc7Wdnuaomhdsy SIBT5HJCEsAgWUrgEhSvQyKrtAru914PhyE21WIbwl+OfNGsNRou6lnhR42gf0gm325m Up8D29R7FwSfcwgwMkYoRAsFMsaGzV87HuIAZbPM3DE6/m6QFwRuaAfuD2FCIZs5Ming 0WN9NCSW00gsE9Jjiz0DBSDgu0Qc1nvJS7J9poZOwERcLkf8ennDsTMUtsHPNcZAEuTc 9+z0dpSw3xGS/PVEXogyECTtO3Gtd6QAG1OgBA6lbvvu1sHrq2LPbziwK78E/MbDvRK3 0RJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=JxPJWOyD; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 207si1027042pfz.5.2017.11.16.05.55.18; Thu, 16 Nov 2017 05:55:44 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=JxPJWOyD; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759266AbdKPKWC (ORCPT + 91 others); Thu, 16 Nov 2017 05:22:02 -0500 Received: from mail-ot0-f196.google.com ([74.125.82.196]:51967 "EHLO mail-ot0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758694AbdKPKVz (ORCPT ); Thu, 16 Nov 2017 05:21:55 -0500 Received: by mail-ot0-f196.google.com with SMTP id b54so9978171otd.8; Thu, 16 Nov 2017 02:21:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ziyETLbKZ+YPx34SQCW7kjKmoxA4LDxfdJYH3++uIzw=; b=JxPJWOyDnXMsK1odMUkkow0tWrMASPP+EotE1rd4xNFhA4xBQ1fM++FsHZx6fpixEJ 0VX6JXsICCO5f3OxIVgNzONMlnpRkxoUs3rquPNdec4Pwkt8pxBIECZWTPq7II5gZHYr 3WdJNZHhKNMxxvtxULAAuKClr/kJsjhsssZ30VBNPNe7G3IWLzx0iaIFibsKhOFQYfIm lRIhVtIATnKjer4mdMcGCa1bLn08OGuNj50PEMbQvZ0S3QYL37k07P7UY7QvqSc2Vc1I MJDrd3p+0lyJw1OPNocoUF7fUJtpCE1JkYlc0P4f3dpHbcfi7z2odbGH8S+t+5Rwl96g AUUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ziyETLbKZ+YPx34SQCW7kjKmoxA4LDxfdJYH3++uIzw=; b=BZ0UYj0zkbfdLU4dHHB/e0VO96qNerzODPAmtQqYKFP3Hgi8gIikt144qnabooVMNv wnS64naDIbWbIOyfeFM2a7i/UCM99nvE7Q/4Voub5Wbm7LhRkUx3dBB4P6bG25wa06Da 1Vv9nyas1WK+aTwYcULn2+igKgkc3joT5Vy8BqPA1ch4OBC96gC+Y8a//uXMcjt0vA/q u9ut0phcXKgNu+U+uiIhw3/bE9m4Oda3+DbodJVogyH/VDNINVbT05fYhildA5QAgz9/ atCdP3UXELRUwi7XNqDdgdVgdbI7T5oMYH8vwpSS7F2uDXr4BzPXqomWTHjOE/ahALum ejXQ== X-Gm-Message-State: AJaThX5HsI23DX6ON7e4wGKbZ+YI+f/HLzWCwLdAPNw7b1Df3RdQyRzp mD/Nf+U9achS1hpZawonQWUb8/N5P2ucoTlNMsU= X-Received: by 10.157.33.131 with SMTP id s3mr755573otb.125.1510827714882; Thu, 16 Nov 2017 02:21:54 -0800 (PST) MIME-Version: 1.0 Received: by 10.74.53.27 with HTTP; Thu, 16 Nov 2017 02:21:54 -0800 (PST) In-Reply-To: <20171115210502.GX21113@char.us.oracle.com> References: <1510567280-19376-1-git-send-email-wanpeng.li@hotmail.com> <20171115210502.GX21113@char.us.oracle.com> From: Wanpeng Li Date: Thu, 16 Nov 2017 18:21:54 +0800 Message-ID: Subject: Re: [PATCH v5 0/4] KVM: X86: Paravirt remote TLB flush To: Konrad Rzeszutek Wilk Cc: "linux-kernel@vger.kernel.org" , kvm , Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Peter Zijlstra , Wanpeng Li Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2017-11-16 5:05 GMT+08:00 Konrad Rzeszutek Wilk : > On Mon, Nov 13, 2017 at 02:01:16AM -0800, Wanpeng Li wrote: >> Remote flushing api's does a busy wait which is fine in bare-metal >> scenario. But with-in the guest, the vcpus might have been pre-empted >> or blocked. In this scenario, the initator vcpu would end up >> busy-waiting for a long amount of time. >> >> This patch set implements para-virt flush tlbs making sure that it >> does not wait for vcpus that are sleeping. And all the sleeping vcpus >> flush the tlb on guest enter. Idea was discussed here: >> https://lkml.org/lkml/2012/2/20/157 >> >> The best result is achieved when we're overcommiting the host by running >> multiple vCPUs on each pCPU. In this case PV tlb flush avoids touching >> vCPUs which are not scheduled and avoid the wait on the main CPU. >> >> In addition, thanks for commit 9e52fc2b50d ("x86/mm: Enable RCU based >> page table freeing (CONFIG_HAVE_RCU_TABLE_FREE=y)") >> >> Test on a Haswell i7 desktop 4 cores (2HT), so 8 pCPUs, running ebizzy >> in one linux guest. > > 8 pCPUS? >> >> ebizzy -M >> vanilla optimized boost >> 8 vCPUs 10152 10083 -0.68% >> 16 vCPUs 1224 4866 297.5% >> 24 vCPUs 1109 3871 249% >> 32 vCPUs 1025 3375 229.3% > > so this is all just one guest? What happens if you have say a 64pCPU > machine with eight of these guests? That is more of a realistic > workload in todays cloud situations. Yeah, testing on a Xeon Gold 6142 2.6GHz 2 socket, each 16 cores (each 2 HTs), so 64 pCPUs, and each VM is 64 vCPUs. vanilla optimized boost 1VM 46799 46788 -0.01% 2VM 23962 42691 78% 3VM 16152 37539 132% Regards, Wanpeng Li > >> >> Note: The patchset is rebased against "locking/qspinlock/x86: Avoid >> test-and-set when PV_DEDICATED is set" v3 >> >> v4 -> v5: >> * flushmask instead of cpumask >> >> v3 -> v4: >> * use READ_ONCE() >> * use try_cmpxchg instead of cmpxchg >> * add {} to if >> * no FLUSH flags to preserve during set_preempted >> * "KVM: X86" prefix to patch subject >> >> v2 -> v3: >> * percpu cpumask >> >> v1 -> v2: >> * a new CPUID feature bit >> * fix cmpxchg check >> * use kvm_vcpu_flush_tlb() to get the statistics right >> * just OR the KVM_VCPU_PREEMPTED in kvm_steal_time_set_preempted >> * add a new bool argument to kvm_x86_ops->tlb_flush >> * __cpumask_clear_cpu() instead of cpumask_clear_cpu() >> * not put cpumask_t on stack >> * rebase the patchset against "locking/qspinlock/x86: Avoid >> test-and-set when PV_DEDICATED is set" v3 >> >> Wanpeng Li (4): >> KVM: X86: Add vCPU running/preempted state >> KVM: X86: Add paravirt remote TLB flush >> KVM: X86: introduce invalidate_gpa argument to tlb flush >> KVM: X86: Add flush_on_enter before guest enter >> >> Documentation/virtual/kvm/cpuid.txt | 4 ++++ >> arch/x86/include/asm/kvm_host.h | 2 +- >> arch/x86/include/uapi/asm/kvm_para.h | 6 +++++ >> arch/x86/kernel/kvm.c | 46 ++++++++++++++++++++++++++++++++++-- >> arch/x86/kvm/cpuid.c | 3 ++- >> arch/x86/kvm/svm.c | 14 +++++------ >> arch/x86/kvm/vmx.c | 21 ++++++++-------- >> arch/x86/kvm/x86.c | 25 +++++++++++++------- >> 8 files changed, 88 insertions(+), 30 deletions(-) >> >> -- >> 2.7.4 >> From 1584176673022678271@xxx Wed Nov 15 23:30:05 +0000 2017 X-GM-THRID: 1583909022730674607 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread