Received: by 10.223.164.202 with SMTP id h10csp1174368wrb; Thu, 9 Nov 2017 23:12:00 -0800 (PST) X-Google-Smtp-Source: ABhQp+Q+GS8XGEiDnBR8sqilcWm/W7NfYWjceOJfu/t7WlJsXXExxGxAcBJsI8kCKJk2ppCMSCGo X-Received: by 10.84.216.82 with SMTP id f18mr3156993plj.330.1510297920862; Thu, 09 Nov 2017 23:12:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510297920; cv=none; d=google.com; s=arc-20160816; b=xTMMivtsa1AQGO4wWpZUEtqD0XVtAnRDYVPbqtmeqLpuj8m7klBtXfa/8pTZPpWIa2 pmze4ccUupdhTOwdP7DEvYTpjjHhhWX+4qtepWMk9ENg4TteCqDrfa3/8JUC5HnvioHU ly+D/7x+QLWeT6jb25b1wp3/M3ltLqkSLehlwLOoCiQ14BeujDrm6wLWtfAjmxE6mNor QIQ/or/E37Z2sZlfzM+f6RYN1Ojr6RuBYMAinDoJefYdNjLst4glTIw3RFLJl/3Wzs0Z bTC4bxzRhSagDcCtCKKsoVZIVa5o+UrDwnaOmOwKeKSxbMmi0wDXTWoP0KQsRWOj2Znt fgAA== 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=cPRLZMTYfRWU26ejRDbLyGvvee/zyzXbz/gGixLElSM=; b=XxkPYDZYXhPSl8GU2G+catQPCr8qIC0nLim8iR3vaffAm4sphKb2Ot6b9wOkgJbtlm Xy2GSsX4iKq4ok79QZc0CKJ+c2cFPRA1Slmbdz9mYM+BSxqUJAExDA/YXK9NJjZ0JXdJ PgVrEERezw+AfRAc8yH/yEXciBSWH4CFEA9/ENPi6nWZlDvRgPDSVdXnpK65G382oD+O eitypC4KRBXCKB9xlX/5yPyTGpnR5UZM4pa4pCTVBp+/XM9ZiUALFCoON7KgC7CnYdrf SkWkG4dSkLn57ms8BKudtYZFWNeU5LKoVMCaubBaBDn4J/MqD5YmKAFl7jJR4GVmMTYa r9PQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=nkLok0iU; 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 a67si8699728pfe.76.2017.11.09.23.11.49; Thu, 09 Nov 2017 23:12:00 -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=nkLok0iU; 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 S1755410AbdKJHLF (ORCPT + 83 others); Fri, 10 Nov 2017 02:11:05 -0500 Received: from mail-oi0-f66.google.com ([209.85.218.66]:47488 "EHLO mail-oi0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755260AbdKJHLE (ORCPT ); Fri, 10 Nov 2017 02:11:04 -0500 Received: by mail-oi0-f66.google.com with SMTP id y206so4956392oiy.4; Thu, 09 Nov 2017 23:11:03 -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=cPRLZMTYfRWU26ejRDbLyGvvee/zyzXbz/gGixLElSM=; b=nkLok0iUsEbcdxVZEJYunRUpSFNYZ4PCMoedTfjIGxt+Pt2MZ5ShjiG2BQR+xeHUwV PMLuKN1JA0gSYrN8MVmu30A/BZAZQlIgQKBP4xRxW1XTQS76HnyHSjAkTikrErE4V0aM Ai/5e8ZyJZMqkML1OHjd4mi9LdtPaO4H4hJlcHQp+dtvDmMqnG3DWAYn1xG7KIz2lmV2 jSotZToczRah+ZmU1JIqMmgbR6xorgKBXfIokvvi4IHLqpJQr/OUSm2O20Lu/tGXmtBD 4fBP8ZeC8bjm2h7mmlyT4qb2zaFCLZU7+5l+iaw3IVm/vUfXlFPC5KBnahuYqwKO7u4g 4O3w== 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=cPRLZMTYfRWU26ejRDbLyGvvee/zyzXbz/gGixLElSM=; b=GMtNxTXu5kFczUPpG4cDE88u4vJG4cD/yet8+wue0Vf9fUYkOot7LoQu2vKU9SIAiB WRZblS5po81yp9fr9NhNm44Epepj/uh0CO1qSZYPzhAWIf5lxClpTWKxkOxJ4ojgu362 Q+aKXNlPXUa9RU3U8t8kZujQMIrncJyviWqI7ZNKXbj2zt7Ukf9PAKIgjHCVP74FBVXa r9tk6YNAy+H9JV7Zi8Vm1xHT8BZbnG7XZW+Lp7mnHEmY2Si+y90P0nWVTjHFCs7aygxI nJ6oK2rxdTpLEjiWTCbYvUwenbt08yrlSTjVwegbxzbD8d0IsZW2ZbVEJPcM/op2O5nh hECA== X-Gm-Message-State: AJaThX7bX9JjKBwEPCTX6iXCUoN6+RhWHapq+JMGOojo3T0zn46vTkOQ YGLUQ+u7/4OHvBhgGywMBMhy16Azj7wU+4VQFGKy4g== X-Received: by 10.202.229.75 with SMTP id c72mr2003508oih.396.1510297863035; Thu, 09 Nov 2017 23:11:03 -0800 (PST) MIME-Version: 1.0 Received: by 10.74.53.27 with HTTP; Thu, 9 Nov 2017 23:11:02 -0800 (PST) In-Reply-To: <1510297497-10063-1-git-send-email-wanpeng.li@hotmail.com> References: <1510297497-10063-1-git-send-email-wanpeng.li@hotmail.com> From: Wanpeng Li Date: Fri, 10 Nov 2017 15:11:02 +0800 Message-ID: Subject: Re: [PATCH v2 0/4] KVM: Paravirt remote TLB flush To: "linux-kernel@vger.kernel.org" , kvm Cc: Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , 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-10 15:04 GMT+08:00 Wanpeng Li : > 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. > > 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% 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: Add vCPU running/preempted state > KVM: Add paravirt remote TLB flush > KVM: X86: introduce invalidate_gpa argument to tlb flush > KVM: Add flush_on_enter before guest enter > > Documentation/virtual/kvm/cpuid.txt | 10 ++++++++++ > arch/x86/include/asm/kvm_host.h | 2 +- > arch/x86/include/uapi/asm/kvm_para.h | 6 ++++++ > arch/x86/kernel/kvm.c | 35 ++++++++++++++++++++++++++++++++++- > arch/x86/kvm/cpuid.c | 3 ++- > arch/x86/kvm/svm.c | 14 +++++++------- > arch/x86/kvm/vmx.c | 21 +++++++++++---------- > arch/x86/kvm/x86.c | 24 +++++++++++++++--------- > 8 files changed, 86 insertions(+), 29 deletions(-) > > -- > 2.7.4 > From 1583661782195795507@xxx Fri Nov 10 07:06:07 +0000 2017 X-GM-THRID: 1583661782195795507 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread