Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp599129imm; Fri, 29 Jun 2018 03:18:15 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLqYV0ZB1vXjPb1LgWg60QCqrUq7QeBOqwDrc0eKatx/2gnbTlgsz2V1b0tGJ7fF9rkS4jW X-Received: by 2002:a17:902:422:: with SMTP id 31-v6mr14179387ple.320.1530267495493; Fri, 29 Jun 2018 03:18:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530267495; cv=none; d=google.com; s=arc-20160816; b=J2yPG2ywnY/Qsz5wAYdQ4N+Rg/T6FmLwM+2W3bj9frqsYg5clbK7W8Mc9VVtrSVrY4 7PLjV0M+B9v+BJAI3f9ZqUlxqbdOCpFqlQjK9YgdRhleu9MZMDMhkwRNbWbhHG04qfiH GANSZRnbX0BQ7G7XvjMu1poAdTKmP3wf2ujoWFeMpRR9aNSMSFQJBodtJh5RVxjrETez 9oMncLkE00DtsA2IR/qr3yIzZtitWNdq9YrufFD7XFMGeyj3b4UbZ28qqkoNIRADZa6f IUpkFLRNghGh6+oymVvdnV5DUEZ5+S0xoI7KBL40WVTF+ok/R2tS39MwVtKRc9YJn6YY 7EpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=gzqBCyemS5Hh2v//fHumPlk1EpHJH6n9shOPGT7uypg=; b=sZiZvBeJHsg0j0sOERCMMWdeEaAOWiToF4FGAs0ukAOGakhjXsCvc0Sqacy8KkBvNM l/aEDMR4V2Y/X9X1I6CLm7W6Ep/CbMZpOIM+rG5auhDSRkK3terZpKcU2JChJMk0LT5R Qwtm1k5v/jNnHeJcBRh8u05ABtirws8gFD/m+k8RH8bjsZWTkM3dCTupqnRab0CFtJU/ iWIBmpTPbQfW29Q5W9YNmN+Y/OtX5fR86TvSA+iQK3d9BT2XUoUl5FzN6IWbgSKFZ9zN WPBqBMHyGzukrUjQAdexy/8JkmwffDfHMN0tHLXUw2zpdORhk+3zZIzSQ82XoGDgNo6b GMdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=AP3LWUlW; 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=QUARANTINE 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 r9-v6si7493726pgp.591.2018.06.29.03.18.00; Fri, 29 Jun 2018 03:18:15 -0700 (PDT) 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=AP3LWUlW; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934419AbeF2JvX (ORCPT + 99 others); Fri, 29 Jun 2018 05:51:23 -0400 Received: from mail-pl0-f67.google.com ([209.85.160.67]:34998 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932288AbeF2JvW (ORCPT ); Fri, 29 Jun 2018 05:51:22 -0400 Received: by mail-pl0-f67.google.com with SMTP id k1-v6so4213024plt.2; Fri, 29 Jun 2018 02:51:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=gzqBCyemS5Hh2v//fHumPlk1EpHJH6n9shOPGT7uypg=; b=AP3LWUlWgOlpyiizaorqvkyPV1yV+Eq6bvz0rtb/k9fTA75bxuyf/y02KmgIRhFFh1 BjOIcufUKD93t/Jy7oqXEqYat5Qx4MCTDOPuu/E575PQ4hCEkGQuzciNl++s9xRDeS2J 8G3663XMIkOOZ0AiVynsfeoVKeyUvl+CIhxGrcQnht5FRUPRMQ+IhErtop/KnJ4/i0w4 lYPZiSC19+UFNM34jNVL5Bd5HPCb1nhKqNbyyp1kIlCr5nQuL06xwR9iGsY93Y9bUBjT S57miAjDca0R6N7+sshd+OMEgzPw2DXJRQX3tLOddHKwShxJC8tHQBYxhW8yBNfIgSj0 Y49Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=gzqBCyemS5Hh2v//fHumPlk1EpHJH6n9shOPGT7uypg=; b=VQX1+5YKYy4+jtiPSjHlRxnGxLWLuWqTnwr9XZqD41xg46nK+o7SoNJKM7P8LcImmd G3QWuwmehIAUJOtmegJeoI9KWE9tK+M5PqYGlMDRBHPhDLyRZB/BHc5/xg04qd2NtY13 i/sXDbchMbKNsPAXPnmkT2h5WVayNbO456gZoIrDwu+S72MH3IErruWusjW9GAI4Bwgv ydn3wSO9jcElmPfVqQSgUtA5z80hbgWopTreMWjQAMlAiLmxgCO6uZCv/jvdvNItQrsn rl3FfvH1OfljBHo/5m1KfvEb17x6hqsEiCDMMGCOVa+PH8qOeT3MVVrIP91WY1/09+iO IxMg== X-Gm-Message-State: APt69E0Q0nA2bc93xFop+sQ+VSoy8Khmhc1wK8VlaFmGCDjHGvs2PZ18 unypiAxFth6D2bB6XBRctwcoEA== X-Received: by 2002:a17:902:43a4:: with SMTP id j33-v6mr14173965pld.118.1530265881304; Fri, 29 Jun 2018 02:51:21 -0700 (PDT) Received: from localhost.localdomain ([203.205.141.123]) by smtp.googlemail.com with ESMTPSA id z19-v6sm16802066pfm.187.2018.06.29.02.51.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 29 Jun 2018 02:51:20 -0700 (PDT) From: Wanpeng Li X-Google-Original-From: Wanpeng Li To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Vitaly Kuznetsov Subject: [PATCH 0/2] KVM: x86: Add PV IPIs support Date: Fri, 29 Jun 2018 17:51:14 +0800 Message-Id: <1530265876-18136-1-git-send-email-wanpengli@tencent.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Using hypercall to send IPIs by one vmexit instead of one by one for xAPIC/x2APIC physical mode and one vmexit per-cluster for x2APIC cluster mode. Even if enable qemu interrupt remapping and PV TLB Shootdown, I can still observe ~14% performance boost by ebizzy benchmark for 64 vCPUs VM, the total msr-induced vmexits reduce ~70%. The patchset implements the PV IPIs for vCPUs <= 64 VM, this is really common in cloud environment, after this patchset is applied, I can continue to add > 64 vCPUs VM support and that implementation has to introduce more complex logic. Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Vitaly Kuznetsov Wanpeng Li (2): KVM: X86: Implement PV IPI in linux guest KVM: X86: Implement PV send IPI support Documentation/virtual/kvm/cpuid.txt | 4 +++ arch/x86/include/uapi/asm/kvm_para.h | 1 + arch/x86/kernel/kvm.c | 63 ++++++++++++++++++++++++++++++++++++ arch/x86/kvm/cpuid.c | 3 +- arch/x86/kvm/x86.c | 25 ++++++++++++++ include/uapi/linux/kvm_para.h | 1 + 6 files changed, 96 insertions(+), 1 deletion(-) -- 2.7.4