Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp1752010ybg; Sun, 27 Oct 2019 04:13:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqxRoyTgju6hW3+6lCrFXwQSHtd69PPcLETTsPwa4eY38tipVFR9tOITjakNExUyRE9fhWwx X-Received: by 2002:a17:906:9504:: with SMTP id u4mr11246293ejx.317.1572174813890; Sun, 27 Oct 2019 04:13:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572174813; cv=none; d=google.com; s=arc-20160816; b=OqA96wSld5jN++AE5AX/+fpYn37ddoQqVVtCXP2hsnStMNZqwBC4ktOY2xnpI5ijdo PVGBe4ap5YrYrRCYCQlb5lMEMfJLReOBwO6A3Eb/jXl6V6wPeRBLn0QfLLapnpZNvwru biSiv+Tvi3hzFh5ANXbAIX/1cNB6p1KB7Tq2NSPG2m1gh6TqD0M5jPQ2PnQhssr5thsX V7GvTDkE7lI3Qb8VS1wjgw7FWVcC+5meobUM3RrPoZHXh98tdmKM2dtf4NcllsQnGWVl /TqE8iU4GUaC55fvN17Z//8TqfySL9F4BW+6NoytALTUAdEI7ev20AA5BHbBbV46Yu6q CQUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=A3QywD+Vbb8DdJDXdOzieEQOQ0DNNZNl3Vavs2bTVnA=; b=cXa0FLoQtzKPmeAZpIEM03ViweNosK2Fw6uJWTHEhv+T3q/BgKJe5K1A4s1A/Wf8Bt vePtL8KD/XmbY2OF01seD95KGzAmseNg3eWCCDzXIi7eZdSs2aYIgrzVLVQl21ezdr9q wQ7DdVdXVJbbR/OpVLD7ismGNHKbOlWo1L7HImAoxWH3yzT4apy42UL0+0POrh3pefyI WA4eD458uAvYt9jOtA7VcyJeBXD3kSvmayUyEYu1VI2MicyKiTpFerE48wn/03TujAEl cQYybfpkbK2ZiQCx09oaqumM25aFtuweb0ZgkQ2hP61ZNyj0Vg6+mpSW6qFa+oRnFSix j1yA== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q44si3158180eda.242.2019.10.27.04.13.08; Sun, 27 Oct 2019 04:13:33 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726772AbfJ0LMb (ORCPT + 99 others); Sun, 27 Oct 2019 07:12:31 -0400 Received: from mga02.intel.com ([134.134.136.20]:12491 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726469AbfJ0LMb (ORCPT ); Sun, 27 Oct 2019 07:12:31 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Oct 2019 04:12:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,236,1569308400"; d="scan'208";a="282690135" Received: from unknown (HELO snr.jf.intel.com) ([10.54.39.141]) by orsmga001.jf.intel.com with ESMTP; 27 Oct 2019 04:12:28 -0700 From: Luwei Kang To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: pbonzini@redhat.com, rkrcmar@redhat.com, sean.j.christopherson@intel.com, vkuznets@redhat.com, wanpengli@tencent.com, jmattson@google.com, joro@8bytes.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, hpa@zytor.com, x86@kernel.org, ak@linux.intel.com, thomas.lendacky@amd.com, peterz@infradead.org, acme@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@redhat.com, namhyung@kernel.org, Luwei Kang Subject: [PATCH v1 0/8] PEBS enabling in KVM guest Date: Sun, 27 Oct 2019 19:11:09 -0400 Message-Id: <1572217877-26484-1-git-send-email-luwei.kang@intel.com> X-Mailer: git-send-email 1.8.3.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Intel new hardware introduces some Precise Event-Based Sampling(PEBS) extensions that output the PEBS record to Intel PT stream instead of DS area. The PEBS record will be packaged in a specific format when outputting to Intel PT. This patch set will enable PEBS functionality in KVM Guest by PEBS output to Intel PT. The patch 1 introduce a MSRs "base" parameter that use for get the kvm_pmc structure by New MSR_RELOAD_FIXED_CTRx like get_gp_pmc() function. The patch 2 implement the PEBS MSRs read/write emulation. Patch 5/6/7 expose some capabilities(CPUID, MSRs) to KVM guest which relate with PEBS feature. Patch 3 introduces "pebs" parameter to allocate a perf event counter from host perf event framework. The counter using for PEBS event should be disabled before VM-entry in the previous platform, patch 4 skip this operation when PEBS is enabled in KVM guest. Patch 8 has some code changes in native that to make the aux_event only be needed for a non-kernel event(the couner allocate by KVM is kernel event). Luwei Kang (8): KVM: x86: Add base address parameter for get_fixed_pmc function KVM: x86: PEBS output to Intel PT MSRs emulation KVM: x86: Allocate performance counter for PEBS event KVM: x86: Aviod clear the PEBS counter when PEBS enabled in guest KVM: X86: Expose PDCM cpuid to guest KVM: X86: MSR_IA32_PERF_CAPABILITIES MSR emulation KVM: x86: Expose PEBS feature to guest perf/x86: Add event owner check when PEBS output to Intel PT arch/x86/events/core.c | 3 +- arch/x86/events/intel/core.c | 19 ++++++---- arch/x86/events/perf_event.h | 2 +- arch/x86/include/asm/kvm_host.h | 7 ++++ arch/x86/include/asm/msr-index.h | 9 +++++ arch/x86/include/asm/perf_event.h | 5 ++- arch/x86/kvm/cpuid.c | 3 +- arch/x86/kvm/pmu.c | 23 ++++++++---- arch/x86/kvm/pmu.h | 10 ++--- arch/x86/kvm/pmu_amd.c | 2 +- arch/x86/kvm/svm.c | 12 ++++++ arch/x86/kvm/vmx/capabilities.h | 25 +++++++++++++ arch/x86/kvm/vmx/pmu_intel.c | 79 +++++++++++++++++++++++++++++++++++---- arch/x86/kvm/vmx/vmx.c | 19 +++++++++- arch/x86/kvm/x86.c | 22 ++++++++--- include/linux/perf_event.h | 1 + kernel/events/core.c | 2 +- 17 files changed, 201 insertions(+), 42 deletions(-) -- 1.8.3.1