All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 00/15] Introduce Architectural LBR for vPMU
@ 2021-08-06  7:42 Yang Weijiang
  2021-08-06  7:42 ` [PATCH v7 01/15] perf/x86/intel: Fix the comment about guest LBR support on KVM Yang Weijiang
                   ` (14 more replies)
  0 siblings, 15 replies; 29+ messages in thread
From: Yang Weijiang @ 2021-08-06  7:42 UTC (permalink / raw)
  To: pbonzini, jmattson, seanjc, vkuznets, wei.w.wang, like.xu.linux,
	kvm, linux-kernel
  Cc: root

From: root <root@984fee009f2b.jf.intel.com>

The Architectural Last Branch Records (LBRs) is published in the 319433-040
release of Intel Architecture Instruction Set Extensions and Future Features
Programming Reference[0].

The main advantages of Arch LBR are [1]:
- Faster context switching due to XSAVES support and faster reset of
  LBR MSRs via the new DEPTH MSR
- Faster LBR read for a non-PEBS event due to XSAVES support, which
  lowers the overhead of the NMI handler.
- Linux kernel can support the LBR features without knowing the model
  number of the current CPU.

From end user's point of view, the usage of Arch LBR is the same as
the Legacy LBR that has been merged in the mainline.

Note, there's one limitations for current guest Arch LBR implementation:
Guest can only use the same LBR record depth as host, this is due to
the special behavior of MSR_ARCH_LBR_DEPTH: a) On write to the MSR,
it'll reset all Arch LBR recording MSRs to 0s. b) XRSTORS will reset all
recording MSRs to 0s if the saved depth mismatches MSR_ARCH_LBR_DEPTH.

But this limitation won't impact guest perf tool usage.

[0] https://software.intel.com/content/www/us/en/develop/download/intel-architecture-instruction-set-extensions-and-future-features-programming-reference.html
[1] https://lore.kernel.org/lkml/1593780569-62993-1-git-send-email-kan.liang@linux.intel.com/


Previous version:
v6: https://lkml.kernel.org/kvm/1626425406-18582-1-git-send-email-weijiang.yang@intel.com/

Changes in v7:
1. Added fix patch for nested VM entry failure issue, also fix warnings from reported from L1.
2. Added patches to flip LBREn bit upon guest state changes, e.g., on #SMI, #DB, warm reset.
3. Added kvm unit-test application for Arch LBR.
4. Rebased v6 patches to kernel v5.14-rc4.


Like Xu (6):
  perf/x86/intel: Fix the comment about guest LBR support on KVM
  perf/x86/lbr: Simplify the exposure check for the LBR_INFO registers
  KVM: vmx/pmu: Emulate MSR_ARCH_LBR_DEPTH for guest Arch LBR
  KVM: vmx/pmu: Emulate MSR_ARCH_LBR_CTL for guest Arch LBR
  KVM: x86: Refine the matching and clearing logic for supported_xss
  KVM: x86: Add XSAVE Support for Architectural LBR

Sean Christopherson (1):
  KVM: x86: Report XSS as an MSR to be saved if there are supported
    features

Yang Weijiang (8):
  KVM: x86: Add Arch LBR MSRs to msrs_to_save_all list
  KVM: x86/pmu: Refactor code to support guest Arch LBR
  KVM: x86: Refresh CPUID on writes to MSR_IA32_XSS
  KVM: x86/vmx: Check Arch LBR config when return perf capabilities
  KVM: nVMX: Add necessary Arch LBR settings for nested VM
  KVM: x86/vmx: Clear Arch LBREn bit before inject #DB to guest
  KVM: x86/vmx: Flip Arch LBREn bit on guest state change
  KVM: x86/cpuid: Advise Arch LBR feature in CPUID

 arch/x86/events/intel/core.c     |   3 +-
 arch/x86/events/intel/lbr.c      |   6 +-
 arch/x86/include/asm/kvm_host.h  |   1 +
 arch/x86/include/asm/msr-index.h |   1 +
 arch/x86/include/asm/vmx.h       |   4 +
 arch/x86/kvm/cpuid.c             |  54 +++++++++++++-
 arch/x86/kvm/vmx/capabilities.h  |  25 +++++--
 arch/x86/kvm/vmx/nested.c        |   6 +-
 arch/x86/kvm/vmx/pmu_intel.c     | 122 +++++++++++++++++++++++++++----
 arch/x86/kvm/vmx/vmcs12.c        |   1 +
 arch/x86/kvm/vmx/vmcs12.h        |   3 +-
 arch/x86/kvm/vmx/vmx.c           |  54 ++++++++++++--
 arch/x86/kvm/x86.c               |  24 +++++-
 13 files changed, 261 insertions(+), 43 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 29+ messages in thread
* Re: [PATCH v7 12/15] KVM: nVMX: Add necessary Arch LBR settings for nested VM
@ 2021-08-06 20:18 kernel test robot
  0 siblings, 0 replies; 29+ messages in thread
From: kernel test robot @ 2021-08-06 20:18 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 19730 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <1628235745-26566-13-git-send-email-weijiang.yang@intel.com>
References: <1628235745-26566-13-git-send-email-weijiang.yang@intel.com>
TO: Yang Weijiang <weijiang.yang@intel.com>
TO: pbonzini(a)redhat.com
TO: jmattson(a)google.com
TO: seanjc(a)google.com
TO: vkuznets(a)redhat.com
TO: wei.w.wang(a)intel.com
TO: like.xu.linux(a)gmail.com
TO: kvm(a)vger.kernel.org
TO: linux-kernel(a)vger.kernel.org
CC: Yang Weijiang <weijiang.yang@intel.com>

Hi Yang,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v5.14-rc4]
[also build test WARNING on next-20210806]
[cannot apply to kvm/queue tip/perf/core tip/x86/core]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Yang-Weijiang/Introduce-Architectural-LBR-for-vPMU/20210806-153154
base:    c500bee1c5b2f1d59b1081ac879d73268ab0ff17
:::::: branch date: 13 hours ago
:::::: commit date: 13 hours ago
config: x86_64-rhel-8.3-kselftests (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-348-gf0e6938b-dirty
        # https://github.com/0day-ci/linux/commit/57b12c10139c103cc19e8dcc3f6eabc5dff10129
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Yang-Weijiang/Introduce-Architectural-LBR-for-vPMU/20210806-153154
        git checkout 57b12c10139c103cc19e8dcc3f6eabc5dff10129
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/kvm/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
   arch/x86/kvm/vmx/vmcs12.c:15:9: sparse: sparse: cast truncates bits from constant value (20002 becomes 2)
   arch/x86/kvm/vmx/vmcs12.c:16:9: sparse: sparse: cast truncates bits from constant value (20082 becomes 82)
   arch/x86/kvm/vmx/vmcs12.c:17:9: sparse: sparse: cast truncates bits from constant value (20102 becomes 102)
   arch/x86/kvm/vmx/vmcs12.c:18:9: sparse: sparse: cast truncates bits from constant value (20182 becomes 182)
   arch/x86/kvm/vmx/vmcs12.c:19:9: sparse: sparse: cast truncates bits from constant value (20202 becomes 202)
   arch/x86/kvm/vmx/vmcs12.c:20:9: sparse: sparse: cast truncates bits from constant value (20282 becomes 282)
   arch/x86/kvm/vmx/vmcs12.c:21:9: sparse: sparse: cast truncates bits from constant value (20302 becomes 302)
   arch/x86/kvm/vmx/vmcs12.c:22:9: sparse: sparse: cast truncates bits from constant value (20382 becomes 382)
   arch/x86/kvm/vmx/vmcs12.c:23:9: sparse: sparse: cast truncates bits from constant value (20402 becomes 402)
   arch/x86/kvm/vmx/vmcs12.c:24:9: sparse: sparse: cast truncates bits from constant value (20482 becomes 482)
   arch/x86/kvm/vmx/vmcs12.c:25:9: sparse: sparse: cast truncates bits from constant value (30003 becomes 3)
   arch/x86/kvm/vmx/vmcs12.c:26:9: sparse: sparse: cast truncates bits from constant value (30083 becomes 83)
   arch/x86/kvm/vmx/vmcs12.c:27:9: sparse: sparse: cast truncates bits from constant value (30103 becomes 103)
   arch/x86/kvm/vmx/vmcs12.c:28:9: sparse: sparse: cast truncates bits from constant value (30183 becomes 183)
   arch/x86/kvm/vmx/vmcs12.c:29:9: sparse: sparse: cast truncates bits from constant value (30203 becomes 203)
   arch/x86/kvm/vmx/vmcs12.c:30:9: sparse: sparse: cast truncates bits from constant value (30283 becomes 283)
   arch/x86/kvm/vmx/vmcs12.c:31:9: sparse: sparse: cast truncates bits from constant value (30303 becomes 303)
   arch/x86/kvm/vmx/vmcs12.c:32:9: sparse: sparse: cast truncates bits from constant value (80008 becomes 8)
   arch/x86/kvm/vmx/vmcs12.c:32:9: sparse: sparse: cast truncates bits from constant value (80048 becomes 48)
   arch/x86/kvm/vmx/vmcs12.c:33:9: sparse: sparse: cast truncates bits from constant value (80088 becomes 88)
   arch/x86/kvm/vmx/vmcs12.c:33:9: sparse: sparse: cast truncates bits from constant value (800c8 becomes c8)
   arch/x86/kvm/vmx/vmcs12.c:34:9: sparse: sparse: cast truncates bits from constant value (80108 becomes 108)
   arch/x86/kvm/vmx/vmcs12.c:34:9: sparse: sparse: cast truncates bits from constant value (80148 becomes 148)
   arch/x86/kvm/vmx/vmcs12.c:35:9: sparse: sparse: cast truncates bits from constant value (80188 becomes 188)
   arch/x86/kvm/vmx/vmcs12.c:35:9: sparse: sparse: cast truncates bits from constant value (801c8 becomes 1c8)
   arch/x86/kvm/vmx/vmcs12.c:36:9: sparse: sparse: cast truncates bits from constant value (80208 becomes 208)
   arch/x86/kvm/vmx/vmcs12.c:36:9: sparse: sparse: cast truncates bits from constant value (80248 becomes 248)
   arch/x86/kvm/vmx/vmcs12.c:37:9: sparse: sparse: cast truncates bits from constant value (80288 becomes 288)
   arch/x86/kvm/vmx/vmcs12.c:37:9: sparse: sparse: cast truncates bits from constant value (802c8 becomes 2c8)
   arch/x86/kvm/vmx/vmcs12.c:38:9: sparse: sparse: cast truncates bits from constant value (80388 becomes 388)
   arch/x86/kvm/vmx/vmcs12.c:38:9: sparse: sparse: cast truncates bits from constant value (803c8 becomes 3c8)
   arch/x86/kvm/vmx/vmcs12.c:39:9: sparse: sparse: cast truncates bits from constant value (80408 becomes 408)
   arch/x86/kvm/vmx/vmcs12.c:39:9: sparse: sparse: cast truncates bits from constant value (80448 becomes 448)
   arch/x86/kvm/vmx/vmcs12.c:40:9: sparse: sparse: cast truncates bits from constant value (80c88 becomes c88)
   arch/x86/kvm/vmx/vmcs12.c:40:9: sparse: sparse: cast truncates bits from constant value (80cc8 becomes cc8)
   arch/x86/kvm/vmx/vmcs12.c:41:9: sparse: sparse: cast truncates bits from constant value (80488 becomes 488)
   arch/x86/kvm/vmx/vmcs12.c:41:9: sparse: sparse: cast truncates bits from constant value (804c8 becomes 4c8)
   arch/x86/kvm/vmx/vmcs12.c:42:9: sparse: sparse: cast truncates bits from constant value (80508 becomes 508)
   arch/x86/kvm/vmx/vmcs12.c:42:9: sparse: sparse: cast truncates bits from constant value (80548 becomes 548)
   arch/x86/kvm/vmx/vmcs12.c:43:9: sparse: sparse: cast truncates bits from constant value (80588 becomes 588)
   arch/x86/kvm/vmx/vmcs12.c:43:9: sparse: sparse: cast truncates bits from constant value (805c8 becomes 5c8)
   arch/x86/kvm/vmx/vmcs12.c:44:9: sparse: sparse: cast truncates bits from constant value (80608 becomes 608)
   arch/x86/kvm/vmx/vmcs12.c:44:9: sparse: sparse: cast truncates bits from constant value (80648 becomes 648)
   arch/x86/kvm/vmx/vmcs12.c:45:9: sparse: sparse: cast truncates bits from constant value (80688 becomes 688)
   arch/x86/kvm/vmx/vmcs12.c:45:9: sparse: sparse: cast truncates bits from constant value (806c8 becomes 6c8)
   arch/x86/kvm/vmx/vmcs12.c:46:9: sparse: sparse: cast truncates bits from constant value (80708 becomes 708)
   arch/x86/kvm/vmx/vmcs12.c:46:9: sparse: sparse: cast truncates bits from constant value (80748 becomes 748)
   arch/x86/kvm/vmx/vmcs12.c:47:9: sparse: sparse: cast truncates bits from constant value (80788 becomes 788)
   arch/x86/kvm/vmx/vmcs12.c:47:9: sparse: sparse: cast truncates bits from constant value (807c8 becomes 7c8)
   arch/x86/kvm/vmx/vmcs12.c:48:9: sparse: sparse: cast truncates bits from constant value (80808 becomes 808)
   arch/x86/kvm/vmx/vmcs12.c:48:9: sparse: sparse: cast truncates bits from constant value (80848 becomes 848)
   arch/x86/kvm/vmx/vmcs12.c:49:9: sparse: sparse: cast truncates bits from constant value (80888 becomes 888)
   arch/x86/kvm/vmx/vmcs12.c:49:9: sparse: sparse: cast truncates bits from constant value (808c8 becomes 8c8)
   arch/x86/kvm/vmx/vmcs12.c:50:9: sparse: sparse: cast truncates bits from constant value (80908 becomes 908)
   arch/x86/kvm/vmx/vmcs12.c:50:9: sparse: sparse: cast truncates bits from constant value (80948 becomes 948)
   arch/x86/kvm/vmx/vmcs12.c:51:9: sparse: sparse: cast truncates bits from constant value (80988 becomes 988)
   arch/x86/kvm/vmx/vmcs12.c:51:9: sparse: sparse: cast truncates bits from constant value (809c8 becomes 9c8)
   arch/x86/kvm/vmx/vmcs12.c:52:9: sparse: sparse: cast truncates bits from constant value (80a08 becomes a08)
   arch/x86/kvm/vmx/vmcs12.c:52:9: sparse: sparse: cast truncates bits from constant value (80a48 becomes a48)
   arch/x86/kvm/vmx/vmcs12.c:53:9: sparse: sparse: cast truncates bits from constant value (80b08 becomes b08)
   arch/x86/kvm/vmx/vmcs12.c:53:9: sparse: sparse: cast truncates bits from constant value (80b48 becomes b48)
   arch/x86/kvm/vmx/vmcs12.c:54:9: sparse: sparse: cast truncates bits from constant value (80b88 becomes b88)
   arch/x86/kvm/vmx/vmcs12.c:54:9: sparse: sparse: cast truncates bits from constant value (80bc8 becomes bc8)
   arch/x86/kvm/vmx/vmcs12.c:55:9: sparse: sparse: cast truncates bits from constant value (90009 becomes 9)
   arch/x86/kvm/vmx/vmcs12.c:55:9: sparse: sparse: cast truncates bits from constant value (90049 becomes 49)
   arch/x86/kvm/vmx/vmcs12.c:56:9: sparse: sparse: cast truncates bits from constant value (a000a becomes a)
   arch/x86/kvm/vmx/vmcs12.c:56:9: sparse: sparse: cast truncates bits from constant value (a004a becomes 4a)
   arch/x86/kvm/vmx/vmcs12.c:57:9: sparse: sparse: cast truncates bits from constant value (a008a becomes 8a)
   arch/x86/kvm/vmx/vmcs12.c:57:9: sparse: sparse: cast truncates bits from constant value (a00ca becomes ca)
   arch/x86/kvm/vmx/vmcs12.c:58:9: sparse: sparse: cast truncates bits from constant value (a010a becomes 10a)
   arch/x86/kvm/vmx/vmcs12.c:58:9: sparse: sparse: cast truncates bits from constant value (a014a becomes 14a)
   arch/x86/kvm/vmx/vmcs12.c:59:9: sparse: sparse: cast truncates bits from constant value (a018a becomes 18a)
   arch/x86/kvm/vmx/vmcs12.c:59:9: sparse: sparse: cast truncates bits from constant value (a01ca becomes 1ca)
   arch/x86/kvm/vmx/vmcs12.c:60:9: sparse: sparse: cast truncates bits from constant value (a020a becomes 20a)
   arch/x86/kvm/vmx/vmcs12.c:60:9: sparse: sparse: cast truncates bits from constant value (a024a becomes 24a)
   arch/x86/kvm/vmx/vmcs12.c:61:9: sparse: sparse: cast truncates bits from constant value (a028a becomes 28a)
   arch/x86/kvm/vmx/vmcs12.c:61:9: sparse: sparse: cast truncates bits from constant value (a02ca becomes 2ca)
   arch/x86/kvm/vmx/vmcs12.c:62:9: sparse: sparse: cast truncates bits from constant value (a030a becomes 30a)
   arch/x86/kvm/vmx/vmcs12.c:62:9: sparse: sparse: cast truncates bits from constant value (a034a becomes 34a)
   arch/x86/kvm/vmx/vmcs12.c:63:9: sparse: sparse: cast truncates bits from constant value (a038a becomes 38a)
   arch/x86/kvm/vmx/vmcs12.c:63:9: sparse: sparse: cast truncates bits from constant value (a03ca becomes 3ca)
   arch/x86/kvm/vmx/vmcs12.c:64:9: sparse: sparse: cast truncates bits from constant value (a040a becomes 40a)
   arch/x86/kvm/vmx/vmcs12.c:64:9: sparse: sparse: cast truncates bits from constant value (a044a becomes 44a)
   arch/x86/kvm/vmx/vmcs12.c:65:9: sparse: sparse: cast truncates bits from constant value (a048a becomes 48a)
   arch/x86/kvm/vmx/vmcs12.c:65:9: sparse: sparse: cast truncates bits from constant value (a04ca becomes 4ca)
   arch/x86/kvm/vmx/vmcs12.c:66:9: sparse: sparse: cast truncates bits from constant value (b000b becomes b)
   arch/x86/kvm/vmx/vmcs12.c:66:9: sparse: sparse: cast truncates bits from constant value (b004b becomes 4b)
   arch/x86/kvm/vmx/vmcs12.c:67:9: sparse: sparse: cast truncates bits from constant value (b008b becomes 8b)
   arch/x86/kvm/vmx/vmcs12.c:67:9: sparse: sparse: cast truncates bits from constant value (b00cb becomes cb)
   arch/x86/kvm/vmx/vmcs12.c:68:9: sparse: sparse: cast truncates bits from constant value (b010b becomes 10b)
   arch/x86/kvm/vmx/vmcs12.c:68:9: sparse: sparse: cast truncates bits from constant value (b014b becomes 14b)
>> arch/x86/kvm/vmx/vmcs12.c:69:9: sparse: sparse: cast truncates bits from constant value (a058a becomes 58a)
>> arch/x86/kvm/vmx/vmcs12.c:69:9: sparse: sparse: cast truncates bits from constant value (a05ca becomes 5ca)
   arch/x86/kvm/vmx/vmcs12.c:70:9: sparse: sparse: cast truncates bits from constant value (100010 becomes 10)
   arch/x86/kvm/vmx/vmcs12.c:71:9: sparse: sparse: cast truncates bits from constant value (100090 becomes 90)
   arch/x86/kvm/vmx/vmcs12.c:72:9: sparse: sparse: cast truncates bits from constant value (100110 becomes 110)
   arch/x86/kvm/vmx/vmcs12.c:73:9: sparse: sparse: cast truncates bits from constant value (100190 becomes 190)
   arch/x86/kvm/vmx/vmcs12.c:74:9: sparse: sparse: cast truncates bits from constant value (100210 becomes 210)
   arch/x86/kvm/vmx/vmcs12.c:75:9: sparse: sparse: cast truncates bits from constant value (100290 becomes 290)
   arch/x86/kvm/vmx/vmcs12.c:76:9: sparse: sparse: too many warnings

vim +69 arch/x86/kvm/vmx/vmcs12.c

609363cf81fcbd Sean Christopherson 2018-12-03   4  
609363cf81fcbd Sean Christopherson 2018-12-03   5  #define ROL16(val, n) ((u16)(((u16)(val) << (n)) | ((u16)(val) >> (16 - (n)))))
609363cf81fcbd Sean Christopherson 2018-12-03   6  #define VMCS12_OFFSET(x) offsetof(struct vmcs12, x)
609363cf81fcbd Sean Christopherson 2018-12-03   7  #define FIELD(number, name)	[ROL16(number, 6)] = VMCS12_OFFSET(name)
609363cf81fcbd Sean Christopherson 2018-12-03   8  #define FIELD64(number, name)						\
609363cf81fcbd Sean Christopherson 2018-12-03   9  	FIELD(number, name),						\
609363cf81fcbd Sean Christopherson 2018-12-03  10  	[ROL16(number##_HIGH, 6)] = VMCS12_OFFSET(name) + sizeof(u32)
609363cf81fcbd Sean Christopherson 2018-12-03  11  
609363cf81fcbd Sean Christopherson 2018-12-03  12  const unsigned short vmcs_field_to_offset_table[] = {
609363cf81fcbd Sean Christopherson 2018-12-03  13  	FIELD(VIRTUAL_PROCESSOR_ID, virtual_processor_id),
609363cf81fcbd Sean Christopherson 2018-12-03  14  	FIELD(POSTED_INTR_NV, posted_intr_nv),
609363cf81fcbd Sean Christopherson 2018-12-03  15  	FIELD(GUEST_ES_SELECTOR, guest_es_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  16  	FIELD(GUEST_CS_SELECTOR, guest_cs_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  17  	FIELD(GUEST_SS_SELECTOR, guest_ss_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  18  	FIELD(GUEST_DS_SELECTOR, guest_ds_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  19  	FIELD(GUEST_FS_SELECTOR, guest_fs_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  20  	FIELD(GUEST_GS_SELECTOR, guest_gs_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  21  	FIELD(GUEST_LDTR_SELECTOR, guest_ldtr_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  22  	FIELD(GUEST_TR_SELECTOR, guest_tr_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  23  	FIELD(GUEST_INTR_STATUS, guest_intr_status),
609363cf81fcbd Sean Christopherson 2018-12-03  24  	FIELD(GUEST_PML_INDEX, guest_pml_index),
609363cf81fcbd Sean Christopherson 2018-12-03  25  	FIELD(HOST_ES_SELECTOR, host_es_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  26  	FIELD(HOST_CS_SELECTOR, host_cs_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  27  	FIELD(HOST_SS_SELECTOR, host_ss_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  28  	FIELD(HOST_DS_SELECTOR, host_ds_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  29  	FIELD(HOST_FS_SELECTOR, host_fs_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  30  	FIELD(HOST_GS_SELECTOR, host_gs_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  31  	FIELD(HOST_TR_SELECTOR, host_tr_selector),
609363cf81fcbd Sean Christopherson 2018-12-03  32  	FIELD64(IO_BITMAP_A, io_bitmap_a),
609363cf81fcbd Sean Christopherson 2018-12-03  33  	FIELD64(IO_BITMAP_B, io_bitmap_b),
609363cf81fcbd Sean Christopherson 2018-12-03  34  	FIELD64(MSR_BITMAP, msr_bitmap),
609363cf81fcbd Sean Christopherson 2018-12-03  35  	FIELD64(VM_EXIT_MSR_STORE_ADDR, vm_exit_msr_store_addr),
609363cf81fcbd Sean Christopherson 2018-12-03  36  	FIELD64(VM_EXIT_MSR_LOAD_ADDR, vm_exit_msr_load_addr),
609363cf81fcbd Sean Christopherson 2018-12-03  37  	FIELD64(VM_ENTRY_MSR_LOAD_ADDR, vm_entry_msr_load_addr),
609363cf81fcbd Sean Christopherson 2018-12-03  38  	FIELD64(PML_ADDRESS, pml_address),
609363cf81fcbd Sean Christopherson 2018-12-03  39  	FIELD64(TSC_OFFSET, tsc_offset),
3c0f99366e34c1 Ilias Stamatis      2021-05-26  40  	FIELD64(TSC_MULTIPLIER, tsc_multiplier),
609363cf81fcbd Sean Christopherson 2018-12-03  41  	FIELD64(VIRTUAL_APIC_PAGE_ADDR, virtual_apic_page_addr),
609363cf81fcbd Sean Christopherson 2018-12-03  42  	FIELD64(APIC_ACCESS_ADDR, apic_access_addr),
609363cf81fcbd Sean Christopherson 2018-12-03  43  	FIELD64(POSTED_INTR_DESC_ADDR, posted_intr_desc_addr),
609363cf81fcbd Sean Christopherson 2018-12-03  44  	FIELD64(VM_FUNCTION_CONTROL, vm_function_control),
609363cf81fcbd Sean Christopherson 2018-12-03  45  	FIELD64(EPT_POINTER, ept_pointer),
609363cf81fcbd Sean Christopherson 2018-12-03  46  	FIELD64(EOI_EXIT_BITMAP0, eoi_exit_bitmap0),
609363cf81fcbd Sean Christopherson 2018-12-03  47  	FIELD64(EOI_EXIT_BITMAP1, eoi_exit_bitmap1),
609363cf81fcbd Sean Christopherson 2018-12-03  48  	FIELD64(EOI_EXIT_BITMAP2, eoi_exit_bitmap2),
609363cf81fcbd Sean Christopherson 2018-12-03  49  	FIELD64(EOI_EXIT_BITMAP3, eoi_exit_bitmap3),
609363cf81fcbd Sean Christopherson 2018-12-03  50  	FIELD64(EPTP_LIST_ADDRESS, eptp_list_address),
609363cf81fcbd Sean Christopherson 2018-12-03  51  	FIELD64(VMREAD_BITMAP, vmread_bitmap),
609363cf81fcbd Sean Christopherson 2018-12-03  52  	FIELD64(VMWRITE_BITMAP, vmwrite_bitmap),
609363cf81fcbd Sean Christopherson 2018-12-03  53  	FIELD64(XSS_EXIT_BITMAP, xss_exit_bitmap),
72add915fbd5bf Sean Christopherson 2021-04-12  54  	FIELD64(ENCLS_EXITING_BITMAP, encls_exiting_bitmap),
609363cf81fcbd Sean Christopherson 2018-12-03  55  	FIELD64(GUEST_PHYSICAL_ADDRESS, guest_physical_address),
609363cf81fcbd Sean Christopherson 2018-12-03  56  	FIELD64(VMCS_LINK_POINTER, vmcs_link_pointer),
609363cf81fcbd Sean Christopherson 2018-12-03  57  	FIELD64(GUEST_IA32_DEBUGCTL, guest_ia32_debugctl),
609363cf81fcbd Sean Christopherson 2018-12-03  58  	FIELD64(GUEST_IA32_PAT, guest_ia32_pat),
609363cf81fcbd Sean Christopherson 2018-12-03  59  	FIELD64(GUEST_IA32_EFER, guest_ia32_efer),
609363cf81fcbd Sean Christopherson 2018-12-03  60  	FIELD64(GUEST_IA32_PERF_GLOBAL_CTRL, guest_ia32_perf_global_ctrl),
609363cf81fcbd Sean Christopherson 2018-12-03  61  	FIELD64(GUEST_PDPTR0, guest_pdptr0),
609363cf81fcbd Sean Christopherson 2018-12-03  62  	FIELD64(GUEST_PDPTR1, guest_pdptr1),
609363cf81fcbd Sean Christopherson 2018-12-03  63  	FIELD64(GUEST_PDPTR2, guest_pdptr2),
609363cf81fcbd Sean Christopherson 2018-12-03  64  	FIELD64(GUEST_PDPTR3, guest_pdptr3),
609363cf81fcbd Sean Christopherson 2018-12-03  65  	FIELD64(GUEST_BNDCFGS, guest_bndcfgs),
609363cf81fcbd Sean Christopherson 2018-12-03  66  	FIELD64(HOST_IA32_PAT, host_ia32_pat),
609363cf81fcbd Sean Christopherson 2018-12-03  67  	FIELD64(HOST_IA32_EFER, host_ia32_efer),
609363cf81fcbd Sean Christopherson 2018-12-03  68  	FIELD64(HOST_IA32_PERF_GLOBAL_CTRL, host_ia32_perf_global_ctrl),
57b12c10139c10 Yang Weijiang       2021-08-06 @69  	FIELD64(GUEST_IA32_LBR_CTL, guest_lbr_ctl),

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 42142 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2021-08-10  8:55 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-06  7:42 [PATCH v7 00/15] Introduce Architectural LBR for vPMU Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 01/15] perf/x86/intel: Fix the comment about guest LBR support on KVM Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 02/15] perf/x86/lbr: Simplify the exposure check for the LBR_INFO registers Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 03/15] KVM: x86: Add Arch LBR MSRs to msrs_to_save_all list Yang Weijiang
2021-08-09 13:07   ` Like Xu
2021-08-06  7:42 ` [PATCH v7 04/15] KVM: vmx/pmu: Emulate MSR_ARCH_LBR_DEPTH for guest Arch LBR Yang Weijiang
2021-08-09 13:16   ` Like Xu
2021-08-10  7:38     ` Yang Weijiang
2021-08-10  7:54       ` Like Xu
2021-08-10  9:08         ` Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 05/15] KVM: vmx/pmu: Emulate MSR_ARCH_LBR_CTL " Yang Weijiang
2021-08-06 16:26   ` kernel test robot
2021-08-06 16:26     ` kernel test robot
2021-08-09 13:36   ` Like Xu
2021-08-10  8:30     ` Yang Weijiang
2021-08-10  8:37       ` Like Xu
2021-08-06  7:42 ` [PATCH v7 06/15] KVM: x86/pmu: Refactor code to support " Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 07/15] KVM: x86: Refresh CPUID on writes to MSR_IA32_XSS Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 08/15] KVM: x86: Report XSS as an MSR to be saved if there are supported features Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 09/15] KVM: x86: Refine the matching and clearing logic for supported_xss Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 10/15] KVM: x86: Add XSAVE Support for Architectural LBR Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 11/15] KVM: x86/vmx: Check Arch LBR config when return perf capabilities Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 12/15] KVM: nVMX: Add necessary Arch LBR settings for nested VM Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 13/15] KVM: x86/vmx: Clear Arch LBREn bit before inject #DB to guest Yang Weijiang
2021-08-09  5:08   ` Like Xu
2021-08-09  9:02     ` Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 14/15] KVM: x86/vmx: Flip Arch LBREn bit on guest state change Yang Weijiang
2021-08-06  7:42 ` [PATCH v7 15/15] KVM: x86/cpuid: Advise Arch LBR feature in CPUID Yang Weijiang
2021-08-06 20:18 [PATCH v7 12/15] KVM: nVMX: Add necessary Arch LBR settings for nested VM kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.