Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp3710720imm; Mon, 2 Jul 2018 04:19:28 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKHUIoH0d+QAKXH2KrdkwLwhlyRw3uXspRn1iOzBqVYO/TxLO/+RZUYA4T9z7DsF6sH3G7U X-Received: by 2002:a63:bd51:: with SMTP id d17-v6mr22036660pgp.42.1530530368379; Mon, 02 Jul 2018 04:19:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530530368; cv=none; d=google.com; s=arc-20160816; b=MB9+qKMNRKxtw8LtCeXYBNrHK+BpFIu3+Hv0QuJep/tFYuc+Lem1hP8lLdubwx44mT liTZQtzJ1DOZutAB5KcgyOmM9IG8RIgusc90fZY2J6uTUGrKnWTHBD73CxU16aN453CF oLjax0IUWN8M8WIkWmQBVMcDrzBIv4/O4LEZl/9PPlyS+mVAsg0D+bpjyT6DYamRCzI7 WMN0vLedRqlKB9vvxZVNnPAHYuX5hacNa4P1uu+WGcXUGHjPMKxJ0mZqLrU4XbfncevA a5qcp9hJbQdj41lm3gZnFb2X7GPu/p8MEphy+A/sPJlgo1g7tKicqRS04qKVrzJ1Ss/C ie9Q== 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=/Rtpfg+se8dIxiMFgzatUyoy5RnqZSOwCyV08qQSNvI=; b=N1wJL83e6xc4QChE8OrNRQtAsmrRJgq+CbULSBEwMl+s1XMC415uquNQ7NbE97wOVp Zkif5L+h7pFQYm64DY0EaCmoH1TMEkg4lnPy5w0baQrbRO9UG4UAHQh/Vx6PcLpWJXgq r5U5jtD+yMhpmUqukci4WmOq2BqtRYlvbuQgkcj0s7ZAhGtNHhQembcW1Z33qzSrPWPn xaEWgwkd09lc6zuchdIR0L+9mvHr1Gn5mlaTkWZ8EGnJ4MXKP4XeTVJcEZJfWzrvnmgL bC3K6bvjRWaAWcLVQAF1/rWb+z2giAgiBjaiHISS+hAPaU69oVjAzQyZssd/b+Dmtc8c OuLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=d+y5M+tc; 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 n14-v6si3361882pgg.216.2018.07.02.04.19.13; Mon, 02 Jul 2018 04:19:28 -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=d+y5M+tc; 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 S965326AbeGBKOd (ORCPT + 99 others); Mon, 2 Jul 2018 06:14:33 -0400 Received: from mail-pl0-f66.google.com ([209.85.160.66]:36727 "EHLO mail-pl0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965036AbeGBKO2 (ORCPT ); Mon, 2 Jul 2018 06:14:28 -0400 Received: by mail-pl0-f66.google.com with SMTP id a7-v6so7726523plp.3; Mon, 02 Jul 2018 03:14:28 -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=/Rtpfg+se8dIxiMFgzatUyoy5RnqZSOwCyV08qQSNvI=; b=d+y5M+tcbwkam3bgq2dgfrrIz8TGDllBnRkA06danLLKLnINimCycBdA+uB0uzuoIq 1sW0R1FnNEpJWrejSWcJKdfjhg69+7XhoA80/lkGRsLSOSq2Xt+jlcWpwGJVO++8Rlz4 IzWoucIUkiDPyfx6fpqW8h0EoLgx/pMWbgR7GCR7KhHCiAm0LMDSkgWj5AMeQL92/gzg 8m1m71t8fSAySBp09jLba1J0yR1XxonpgJylyOrd6lJkIACyy/Z53wQitAKhQUb31Jqk WA8BPRQkDNLA+qHzm2eGp2uGFl1PLzfEGnlGiNJZb8b9e1UySw9WrAmC5ZY91rpYLLU5 NQ5w== 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=/Rtpfg+se8dIxiMFgzatUyoy5RnqZSOwCyV08qQSNvI=; b=E4mC9BJJ4C5CncsP1v9ff2nC7aRPAfswiDldVxSJ2ys9rx9Vsc+QM3EI20wRL3t3uM jRrCX/QdIf05TRz40RKVtPtT6dWkxsja+3l8Wfx4Q2hTuktxZlZUjKcdqi75YtxtNV1J /7+ZzcwUP46OyymyaC/ZghOnXXcw2X91It5KZoC+krvK1doFYm+kktr3z4LWvdPPSfa9 bEv7I+jVPrfDuWNB31sPCTHaC0+VM/PqEyRVNEhyUO0JA6JC4IYZwVmtrWjiV+BeLP/H tHX4j98QyxFncFFoJU2VS1ovGvEJ6yI1UXs8qL4IhP5EDlN6S1BbW/JH80fFdEIjYSfC bT7Q== X-Gm-Message-State: APt69E15SXfL0BefG7bFQbJrsiD9+ZwBKLoDs45bPrjFqwcevu/qAvxO 9wjJE0061Se2pZelMHz6r8+LjQ== X-Received: by 2002:a17:902:8f94:: with SMTP id z20-v6mr24928541plo.337.1530526467730; Mon, 02 Jul 2018 03:14:27 -0700 (PDT) Received: from localhost.localdomain ([203.205.141.123]) by smtp.googlemail.com with ESMTPSA id n68-v6sm29685665pfg.98.2018.07.02.03.14.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 02 Jul 2018 03:14:27 -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 v2 0/2] KVM: x86: Add PV IPIs support Date: Mon, 2 Jul 2018 18:14:20 +0800 Message-Id: <1530526462-920-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 <= 128 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 v1 -> v2: * sparse apic id > 128, or any other errors, fallback to original apic hooks * have two bitmask arguments so that one hypercall handles 128 vCPUs * fix KVM_FEATURE_PV_SEND_IPI doc * document hypercall * fix NMI selftest fails * fix build errors reported by 0day Wanpeng Li (2): KVM: X86: Implement PV IPI in linux guest KVM: X86: Implement PV send IPI support Documentation/virtual/kvm/cpuid.txt | 4 ++ Documentation/virtual/kvm/hypercalls.txt | 6 ++ arch/x86/include/uapi/asm/kvm_para.h | 1 + arch/x86/kernel/kvm.c | 99 ++++++++++++++++++++++++++++++++ arch/x86/kvm/cpuid.c | 3 +- arch/x86/kvm/x86.c | 42 ++++++++++++++ include/uapi/linux/kvm_para.h | 1 + 7 files changed, 155 insertions(+), 1 deletion(-) -- 2.7.4