All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 04/11] KVM: VMX: Define VMCS-to-EVMCS conversion for the new fields
@ 2022-06-22 13:21 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-06-22 13:21 UTC (permalink / raw)
  To: kbuild

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

:::::: 
:::::: Manual check reason: "low confidence bisect report"
:::::: 

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
In-Reply-To: <20220621155830.60115-5-vkuznets@redhat.com>
References: <20220621155830.60115-5-vkuznets@redhat.com>
TO: Vitaly Kuznetsov <vkuznets@redhat.com>
TO: kvm(a)vger.kernel.org
TO: Paolo Bonzini <pbonzini@redhat.com>
CC: Anirudh Rayabharam <anrayabh@linux.microsoft.com>
CC: Sean Christopherson <seanjc@google.com>
CC: Wanpeng Li <wanpengli@tencent.com>
CC: Jim Mattson <jmattson@google.com>
CC: Maxim Levitsky <mlevitsk@redhat.com>
CC: linux-hyperv(a)vger.kernel.org
CC: linux-kernel(a)vger.kernel.org

Hi Vitaly,

I love your patch! Perhaps something to improve:

[auto build test WARNING on kvm/queue]
[also build test WARNING on tip/x86/core mst-vhost/linux-next linus/master next-20220622]
[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/intel-lab-lkp/linux/commits/Vitaly-Kuznetsov/KVM-VMX-Support-TscScaling-and-EnclsExitingBitmap-whith-eVMCS/20220622-000357
base:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
:::::: branch date: 21 hours ago
:::::: commit date: 21 hours ago
config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220622/202206222136.EXbzHGUw-lkp(a)intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-31-g4880bd19-dirty
        # https://github.com/intel-lab-lkp/linux/commit/933b7b547c0b7e486caf69d1f25626b90ea0f3a1
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Vitaly-Kuznetsov/KVM-VMX-Support-TscScaling-and-EnclsExitingBitmap-whith-eVMCS/20220622-000357
        git checkout 933b7b547c0b7e486caf69d1f25626b90ea0f3a1
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash

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


sparse warnings: (new ones prefixed by >>)
   arch/x86/kvm/vmx/evmcs.c:21:9: sparse: sparse: cast truncates bits from constant value (1a079a becomes 79a)
   arch/x86/kvm/vmx/evmcs.c:23:9: sparse: sparse: cast truncates bits from constant value (1a071a becomes 71a)
   arch/x86/kvm/vmx/evmcs.c:25:9: sparse: sparse: cast truncates bits from constant value (1a081a becomes 81a)
   arch/x86/kvm/vmx/evmcs.c:27:9: sparse: sparse: cast truncates bits from constant value (b000b becomes b)
   arch/x86/kvm/vmx/evmcs.c:29:9: sparse: sparse: cast truncates bits from constant value (b008b becomes 8b)
>> arch/x86/kvm/vmx/evmcs.c:31:9: sparse: sparse: cast truncates bits from constant value (b010b becomes 10b)
   arch/x86/kvm/vmx/evmcs.c:33:9: sparse: sparse: cast truncates bits from constant value (1b001b becomes 1b)
   arch/x86/kvm/vmx/evmcs.c:35:9: sparse: sparse: cast truncates bits from constant value (1b009b becomes 9b)
   arch/x86/kvm/vmx/evmcs.c:37:9: sparse: sparse: cast truncates bits from constant value (1b011b becomes 11b)
   arch/x86/kvm/vmx/evmcs.c:39:9: sparse: sparse: cast truncates bits from constant value (1b041b becomes 41b)
   arch/x86/kvm/vmx/evmcs.c:41:9: sparse: sparse: cast truncates bits from constant value (1b049b becomes 49b)
   arch/x86/kvm/vmx/evmcs.c:43:9: sparse: sparse: cast truncates bits from constant value (1b059b becomes 59b)
   arch/x86/kvm/vmx/evmcs.c:45:9: sparse: sparse: cast truncates bits from constant value (80008 becomes 8)
   arch/x86/kvm/vmx/evmcs.c:47:9: sparse: sparse: cast truncates bits from constant value (80088 becomes 88)
   arch/x86/kvm/vmx/evmcs.c:49:9: sparse: sparse: cast truncates bits from constant value (80108 becomes 108)
   arch/x86/kvm/vmx/evmcs.c:51:9: sparse: sparse: cast truncates bits from constant value (1a019a becomes 19a)
   arch/x86/kvm/vmx/evmcs.c:53:9: sparse: sparse: cast truncates bits from constant value (1a021a becomes 21a)
   arch/x86/kvm/vmx/evmcs.c:55:9: sparse: sparse: cast truncates bits from constant value (1a029a becomes 29a)
   arch/x86/kvm/vmx/evmcs.c:57:9: sparse: sparse: cast truncates bits from constant value (1a031a becomes 31a)
   arch/x86/kvm/vmx/evmcs.c:59:9: sparse: sparse: cast truncates bits from constant value (1a039a becomes 39a)
   arch/x86/kvm/vmx/evmcs.c:61:9: sparse: sparse: cast truncates bits from constant value (1a041a becomes 41a)
   arch/x86/kvm/vmx/evmcs.c:63:9: sparse: sparse: cast truncates bits from constant value (1a049a becomes 49a)
   arch/x86/kvm/vmx/evmcs.c:65:9: sparse: sparse: cast truncates bits from constant value (1a051a becomes 51a)
   arch/x86/kvm/vmx/evmcs.c:67:9: sparse: sparse: cast truncates bits from constant value (1a059a becomes 59a)
   arch/x86/kvm/vmx/evmcs.c:69:9: sparse: sparse: cast truncates bits from constant value (1a061a becomes 61a)
   arch/x86/kvm/vmx/evmcs.c:71:9: sparse: sparse: cast truncates bits from constant value (80408 becomes 408)
   arch/x86/kvm/vmx/evmcs.c:73:9: sparse: sparse: cast truncates bits from constant value (80488 becomes 488)
   arch/x86/kvm/vmx/evmcs.c:75:9: sparse: sparse: cast truncates bits from constant value (a000a becomes a)
   arch/x86/kvm/vmx/evmcs.c:77:9: sparse: sparse: cast truncates bits from constant value (a008a becomes 8a)
   arch/x86/kvm/vmx/evmcs.c:79:9: sparse: sparse: cast truncates bits from constant value (a010a becomes 10a)
   arch/x86/kvm/vmx/evmcs.c:81:9: sparse: sparse: cast truncates bits from constant value (a018a becomes 18a)
>> arch/x86/kvm/vmx/evmcs.c:83:9: sparse: sparse: cast truncates bits from constant value (a020a becomes 20a)
   arch/x86/kvm/vmx/evmcs.c:85:9: sparse: sparse: cast truncates bits from constant value (a028a becomes 28a)
   arch/x86/kvm/vmx/evmcs.c:87:9: sparse: sparse: cast truncates bits from constant value (a030a becomes 30a)
   arch/x86/kvm/vmx/evmcs.c:89:9: sparse: sparse: cast truncates bits from constant value (a038a becomes 38a)
   arch/x86/kvm/vmx/evmcs.c:91:9: sparse: sparse: cast truncates bits from constant value (a040a becomes 40a)
   arch/x86/kvm/vmx/evmcs.c:93:9: sparse: sparse: cast truncates bits from constant value (1a089a becomes 89a)
   arch/x86/kvm/vmx/evmcs.c:95:9: sparse: sparse: cast truncates bits from constant value (1a091a becomes 91a)
   arch/x86/kvm/vmx/evmcs.c:97:9: sparse: sparse: cast truncates bits from constant value (1a099a becomes 99a)
   arch/x86/kvm/vmx/evmcs.c:99:9: sparse: sparse: cast truncates bits from constant value (180018 becomes 18)
   arch/x86/kvm/vmx/evmcs.c:101:9: sparse: sparse: cast truncates bits from constant value (180098 becomes 98)
   arch/x86/kvm/vmx/evmcs.c:103:9: sparse: sparse: cast truncates bits from constant value (180118 becomes 118)
   arch/x86/kvm/vmx/evmcs.c:105:9: sparse: sparse: cast truncates bits from constant value (180198 becomes 198)
   arch/x86/kvm/vmx/evmcs.c:107:9: sparse: sparse: cast truncates bits from constant value (1a001a becomes 1a)
   arch/x86/kvm/vmx/evmcs.c:109:9: sparse: sparse: cast truncates bits from constant value (1a009a becomes 9a)
   arch/x86/kvm/vmx/evmcs.c:111:9: sparse: sparse: cast truncates bits from constant value (1a011a becomes 11a)
   arch/x86/kvm/vmx/evmcs.c:113:9: sparse: sparse: cast truncates bits from constant value (1a069a becomes 69a)
   arch/x86/kvm/vmx/evmcs.c:115:9: sparse: sparse: cast truncates bits from constant value (1b019b becomes 19b)
   arch/x86/kvm/vmx/evmcs.c:117:9: sparse: sparse: cast truncates bits from constant value (1b021b becomes 21b)
   arch/x86/kvm/vmx/evmcs.c:119:9: sparse: sparse: cast truncates bits from constant value (1b029b becomes 29b)
   arch/x86/kvm/vmx/evmcs.c:121:9: sparse: sparse: cast truncates bits from constant value (1b031b becomes 31b)
   arch/x86/kvm/vmx/evmcs.c:123:9: sparse: sparse: cast truncates bits from constant value (1b039b becomes 39b)
   arch/x86/kvm/vmx/evmcs.c:125:9: sparse: sparse: cast truncates bits from constant value (1b051b becomes 51b)
   arch/x86/kvm/vmx/evmcs.c:127:9: sparse: sparse: cast truncates bits from constant value (80688 becomes 688)
   arch/x86/kvm/vmx/evmcs.c:129:9: sparse: sparse: cast truncates bits from constant value (a048a becomes 48a)
   arch/x86/kvm/vmx/evmcs.c:131:9: sparse: sparse: cast truncates bits from constant value (80b08 becomes b08)
>> arch/x86/kvm/vmx/evmcs.c:133:9: sparse: sparse: cast truncates bits from constant value (80b88 becomes b88)
>> arch/x86/kvm/vmx/evmcs.c:135:9: sparse: sparse: cast truncates bits from constant value (80c88 becomes c88)
   arch/x86/kvm/vmx/evmcs.c:157:9: sparse: sparse: cast truncates bits from constant value (90009 becomes 9)
   arch/x86/kvm/vmx/evmcs.c:159:9: sparse: sparse: cast truncates bits from constant value (190019 becomes 19)
   arch/x86/kvm/vmx/evmcs.c:173:9: sparse: sparse: cast truncates bits from constant value (190299 becomes 299)
   arch/x86/kvm/vmx/evmcs.c:181:9: sparse: sparse: cast truncates bits from constant value (80188 becomes 188)
   arch/x86/kvm/vmx/evmcs.c:183:9: sparse: sparse: cast truncates bits from constant value (80208 becomes 208)
   arch/x86/kvm/vmx/evmcs.c:185:9: sparse: sparse: cast truncates bits from constant value (80288 becomes 288)
   arch/x86/kvm/vmx/evmcs.c:189:9: sparse: sparse: cast truncates bits from constant value (100710 becomes 710)
   arch/x86/kvm/vmx/evmcs.c:191:9: sparse: sparse: cast truncates bits from constant value (120912 becomes 912)
   arch/x86/kvm/vmx/evmcs.c:193:9: sparse: sparse: cast truncates bits from constant value (100090 becomes 90)
   arch/x86/kvm/vmx/evmcs.c:195:9: sparse: sparse: cast truncates bits from constant value (100110 becomes 110)
   arch/x86/kvm/vmx/evmcs.c:197:9: sparse: sparse: cast truncates bits from constant value (100490 becomes 490)
   arch/x86/kvm/vmx/evmcs.c:199:9: sparse: sparse: cast truncates bits from constant value (100590 becomes 590)
   arch/x86/kvm/vmx/evmcs.c:201:9: sparse: sparse: cast truncates bits from constant value (100610 becomes 610)
   arch/x86/kvm/vmx/evmcs.c:204:9: sparse: sparse: cast truncates bits from constant value (100690 becomes 690)
   arch/x86/kvm/vmx/evmcs.c:206:9: sparse: sparse: cast truncates bits from constant value (130013 becomes 13)
   arch/x86/kvm/vmx/evmcs.c:208:9: sparse: sparse: cast truncates bits from constant value (100010 becomes 10)
   arch/x86/kvm/vmx/evmcs.c:210:9: sparse: sparse: cast truncates bits from constant value (100310 becomes 310)
   arch/x86/kvm/vmx/evmcs.c:212:9: sparse: sparse: cast truncates bits from constant value (100790 becomes 790)
   arch/x86/kvm/vmx/evmcs.c:214:9: sparse: sparse: cast truncates bits from constant value (120012 becomes 12)
   arch/x86/kvm/vmx/evmcs.c:216:9: sparse: sparse: cast truncates bits from constant value (120092 becomes 92)
   arch/x86/kvm/vmx/evmcs.c:218:9: sparse: sparse: cast truncates bits from constant value (120112 becomes 112)
   arch/x86/kvm/vmx/evmcs.c:220:9: sparse: sparse: cast truncates bits from constant value (120192 becomes 192)
   arch/x86/kvm/vmx/evmcs.c:222:9: sparse: sparse: cast truncates bits from constant value (120212 becomes 212)
   arch/x86/kvm/vmx/evmcs.c:224:9: sparse: sparse: cast truncates bits from constant value (120292 becomes 292)
   arch/x86/kvm/vmx/evmcs.c:226:9: sparse: sparse: cast truncates bits from constant value (120312 becomes 312)
   arch/x86/kvm/vmx/evmcs.c:228:9: sparse: sparse: cast truncates bits from constant value (120392 becomes 392)
   arch/x86/kvm/vmx/evmcs.c:230:9: sparse: sparse: cast truncates bits from constant value (120412 becomes 412)
   arch/x86/kvm/vmx/evmcs.c:232:9: sparse: sparse: cast truncates bits from constant value (120492 becomes 492)
   arch/x86/kvm/vmx/evmcs.c:234:9: sparse: sparse: cast truncates bits from constant value (120512 becomes 512)
   arch/x86/kvm/vmx/evmcs.c:236:9: sparse: sparse: cast truncates bits from constant value (120592 becomes 592)
   arch/x86/kvm/vmx/evmcs.c:238:9: sparse: sparse: cast truncates bits from constant value (120612 becomes 612)
   arch/x86/kvm/vmx/evmcs.c:240:9: sparse: sparse: cast truncates bits from constant value (120692 becomes 692)
   arch/x86/kvm/vmx/evmcs.c:242:9: sparse: sparse: cast truncates bits from constant value (120712 becomes 712)
   arch/x86/kvm/vmx/evmcs.c:244:9: sparse: sparse: cast truncates bits from constant value (120792 becomes 792)
   arch/x86/kvm/vmx/evmcs.c:246:9: sparse: sparse: cast truncates bits from constant value (120812 becomes 812)
   arch/x86/kvm/vmx/evmcs.c:248:9: sparse: sparse: cast truncates bits from constant value (120892 becomes 892)
   arch/x86/kvm/vmx/evmcs.c:250:9: sparse: sparse: cast truncates bits from constant value (120992 becomes 992)
   arch/x86/kvm/vmx/evmcs.c:252:9: sparse: sparse: cast truncates bits from constant value (120a92 becomes a92)
   arch/x86/kvm/vmx/evmcs.c:256:9: sparse: sparse: cast truncates bits from constant value (110011 becomes 11)
   arch/x86/kvm/vmx/evmcs.c:258:9: sparse: sparse: cast truncates bits from constant value (110091 becomes 91)
   arch/x86/kvm/vmx/evmcs.c:260:9: sparse: sparse: cast truncates bits from constant value (110111 becomes 111)
   arch/x86/kvm/vmx/evmcs.c:262:9: sparse: sparse: too many warnings

vim +31 arch/x86/kvm/vmx/evmcs.c

75edce8a45486fe Sean Christopherson 2018-12-03   14  
75edce8a45486fe Sean Christopherson 2018-12-03   15  #define EVMCS1_OFFSET(x) offsetof(struct hv_enlightened_vmcs, x)
75edce8a45486fe Sean Christopherson 2018-12-03   16  #define EVMCS1_FIELD(number, name, clean_field)[ROL16(number, 6)] = \
75edce8a45486fe Sean Christopherson 2018-12-03   17  		{EVMCS1_OFFSET(name), clean_field}
75edce8a45486fe Sean Christopherson 2018-12-03   18  
75edce8a45486fe Sean Christopherson 2018-12-03   19  const struct evmcs_field vmcs_field_to_evmcs_1[] = {
75edce8a45486fe Sean Christopherson 2018-12-03   20  	/* 64 bit rw */
75edce8a45486fe Sean Christopherson 2018-12-03   21  	EVMCS1_FIELD(GUEST_RIP, guest_rip,
75edce8a45486fe Sean Christopherson 2018-12-03   22  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03   23  	EVMCS1_FIELD(GUEST_RSP, guest_rsp,
75edce8a45486fe Sean Christopherson 2018-12-03   24  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_BASIC),
75edce8a45486fe Sean Christopherson 2018-12-03   25  	EVMCS1_FIELD(GUEST_RFLAGS, guest_rflags,
75edce8a45486fe Sean Christopherson 2018-12-03   26  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_BASIC),
75edce8a45486fe Sean Christopherson 2018-12-03   27  	EVMCS1_FIELD(HOST_IA32_PAT, host_ia32_pat,
75edce8a45486fe Sean Christopherson 2018-12-03   28  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   29  	EVMCS1_FIELD(HOST_IA32_EFER, host_ia32_efer,
75edce8a45486fe Sean Christopherson 2018-12-03   30  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  @31  	EVMCS1_FIELD(HOST_IA32_PERF_GLOBAL_CTRL, host_ia32_perf_global_ctrl,
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21   32  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   33  	EVMCS1_FIELD(HOST_CR0, host_cr0,
75edce8a45486fe Sean Christopherson 2018-12-03   34  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   35  	EVMCS1_FIELD(HOST_CR3, host_cr3,
75edce8a45486fe Sean Christopherson 2018-12-03   36  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   37  	EVMCS1_FIELD(HOST_CR4, host_cr4,
75edce8a45486fe Sean Christopherson 2018-12-03   38  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   39  	EVMCS1_FIELD(HOST_IA32_SYSENTER_ESP, host_ia32_sysenter_esp,
75edce8a45486fe Sean Christopherson 2018-12-03   40  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   41  	EVMCS1_FIELD(HOST_IA32_SYSENTER_EIP, host_ia32_sysenter_eip,
75edce8a45486fe Sean Christopherson 2018-12-03   42  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   43  	EVMCS1_FIELD(HOST_RIP, host_rip,
75edce8a45486fe Sean Christopherson 2018-12-03   44  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   45  	EVMCS1_FIELD(IO_BITMAP_A, io_bitmap_a,
75edce8a45486fe Sean Christopherson 2018-12-03   46  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_IO_BITMAP),
75edce8a45486fe Sean Christopherson 2018-12-03   47  	EVMCS1_FIELD(IO_BITMAP_B, io_bitmap_b,
75edce8a45486fe Sean Christopherson 2018-12-03   48  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_IO_BITMAP),
75edce8a45486fe Sean Christopherson 2018-12-03   49  	EVMCS1_FIELD(MSR_BITMAP, msr_bitmap,
75edce8a45486fe Sean Christopherson 2018-12-03   50  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_MSR_BITMAP),
75edce8a45486fe Sean Christopherson 2018-12-03   51  	EVMCS1_FIELD(GUEST_ES_BASE, guest_es_base,
75edce8a45486fe Sean Christopherson 2018-12-03   52  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   53  	EVMCS1_FIELD(GUEST_CS_BASE, guest_cs_base,
75edce8a45486fe Sean Christopherson 2018-12-03   54  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   55  	EVMCS1_FIELD(GUEST_SS_BASE, guest_ss_base,
75edce8a45486fe Sean Christopherson 2018-12-03   56  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   57  	EVMCS1_FIELD(GUEST_DS_BASE, guest_ds_base,
75edce8a45486fe Sean Christopherson 2018-12-03   58  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   59  	EVMCS1_FIELD(GUEST_FS_BASE, guest_fs_base,
75edce8a45486fe Sean Christopherson 2018-12-03   60  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   61  	EVMCS1_FIELD(GUEST_GS_BASE, guest_gs_base,
75edce8a45486fe Sean Christopherson 2018-12-03   62  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   63  	EVMCS1_FIELD(GUEST_LDTR_BASE, guest_ldtr_base,
75edce8a45486fe Sean Christopherson 2018-12-03   64  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   65  	EVMCS1_FIELD(GUEST_TR_BASE, guest_tr_base,
75edce8a45486fe Sean Christopherson 2018-12-03   66  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   67  	EVMCS1_FIELD(GUEST_GDTR_BASE, guest_gdtr_base,
75edce8a45486fe Sean Christopherson 2018-12-03   68  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   69  	EVMCS1_FIELD(GUEST_IDTR_BASE, guest_idtr_base,
75edce8a45486fe Sean Christopherson 2018-12-03   70  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   71  	EVMCS1_FIELD(TSC_OFFSET, tsc_offset,
75edce8a45486fe Sean Christopherson 2018-12-03   72  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   73  	EVMCS1_FIELD(VIRTUAL_APIC_PAGE_ADDR, virtual_apic_page_addr,
75edce8a45486fe Sean Christopherson 2018-12-03   74  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03   75  	EVMCS1_FIELD(VMCS_LINK_POINTER, vmcs_link_pointer,
75edce8a45486fe Sean Christopherson 2018-12-03   76  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   77  	EVMCS1_FIELD(GUEST_IA32_DEBUGCTL, guest_ia32_debugctl,
75edce8a45486fe Sean Christopherson 2018-12-03   78  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   79  	EVMCS1_FIELD(GUEST_IA32_PAT, guest_ia32_pat,
75edce8a45486fe Sean Christopherson 2018-12-03   80  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   81  	EVMCS1_FIELD(GUEST_IA32_EFER, guest_ia32_efer,
75edce8a45486fe Sean Christopherson 2018-12-03   82  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  @83  	EVMCS1_FIELD(GUEST_IA32_PERF_GLOBAL_CTRL, guest_ia32_perf_global_ctrl,
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21   84  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   85  	EVMCS1_FIELD(GUEST_PDPTR0, guest_pdptr0,
75edce8a45486fe Sean Christopherson 2018-12-03   86  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   87  	EVMCS1_FIELD(GUEST_PDPTR1, guest_pdptr1,
75edce8a45486fe Sean Christopherson 2018-12-03   88  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   89  	EVMCS1_FIELD(GUEST_PDPTR2, guest_pdptr2,
75edce8a45486fe Sean Christopherson 2018-12-03   90  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   91  	EVMCS1_FIELD(GUEST_PDPTR3, guest_pdptr3,
75edce8a45486fe Sean Christopherson 2018-12-03   92  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   93  	EVMCS1_FIELD(GUEST_PENDING_DBG_EXCEPTIONS, guest_pending_dbg_exceptions,
75edce8a45486fe Sean Christopherson 2018-12-03   94  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   95  	EVMCS1_FIELD(GUEST_SYSENTER_ESP, guest_sysenter_esp,
75edce8a45486fe Sean Christopherson 2018-12-03   96  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   97  	EVMCS1_FIELD(GUEST_SYSENTER_EIP, guest_sysenter_eip,
75edce8a45486fe Sean Christopherson 2018-12-03   98  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03   99  	EVMCS1_FIELD(CR0_GUEST_HOST_MASK, cr0_guest_host_mask,
75edce8a45486fe Sean Christopherson 2018-12-03  100  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CRDR),
75edce8a45486fe Sean Christopherson 2018-12-03  101  	EVMCS1_FIELD(CR4_GUEST_HOST_MASK, cr4_guest_host_mask,
75edce8a45486fe Sean Christopherson 2018-12-03  102  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CRDR),
75edce8a45486fe Sean Christopherson 2018-12-03  103  	EVMCS1_FIELD(CR0_READ_SHADOW, cr0_read_shadow,
75edce8a45486fe Sean Christopherson 2018-12-03  104  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CRDR),
75edce8a45486fe Sean Christopherson 2018-12-03  105  	EVMCS1_FIELD(CR4_READ_SHADOW, cr4_read_shadow,
75edce8a45486fe Sean Christopherson 2018-12-03  106  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CRDR),
75edce8a45486fe Sean Christopherson 2018-12-03  107  	EVMCS1_FIELD(GUEST_CR0, guest_cr0,
75edce8a45486fe Sean Christopherson 2018-12-03  108  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CRDR),
75edce8a45486fe Sean Christopherson 2018-12-03  109  	EVMCS1_FIELD(GUEST_CR3, guest_cr3,
75edce8a45486fe Sean Christopherson 2018-12-03  110  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CRDR),
75edce8a45486fe Sean Christopherson 2018-12-03  111  	EVMCS1_FIELD(GUEST_CR4, guest_cr4,
75edce8a45486fe Sean Christopherson 2018-12-03  112  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CRDR),
75edce8a45486fe Sean Christopherson 2018-12-03  113  	EVMCS1_FIELD(GUEST_DR7, guest_dr7,
75edce8a45486fe Sean Christopherson 2018-12-03  114  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CRDR),
75edce8a45486fe Sean Christopherson 2018-12-03  115  	EVMCS1_FIELD(HOST_FS_BASE, host_fs_base,
75edce8a45486fe Sean Christopherson 2018-12-03  116  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_POINTER),
75edce8a45486fe Sean Christopherson 2018-12-03  117  	EVMCS1_FIELD(HOST_GS_BASE, host_gs_base,
75edce8a45486fe Sean Christopherson 2018-12-03  118  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_POINTER),
75edce8a45486fe Sean Christopherson 2018-12-03  119  	EVMCS1_FIELD(HOST_TR_BASE, host_tr_base,
75edce8a45486fe Sean Christopherson 2018-12-03  120  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_POINTER),
75edce8a45486fe Sean Christopherson 2018-12-03  121  	EVMCS1_FIELD(HOST_GDTR_BASE, host_gdtr_base,
75edce8a45486fe Sean Christopherson 2018-12-03  122  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_POINTER),
75edce8a45486fe Sean Christopherson 2018-12-03  123  	EVMCS1_FIELD(HOST_IDTR_BASE, host_idtr_base,
75edce8a45486fe Sean Christopherson 2018-12-03  124  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_POINTER),
75edce8a45486fe Sean Christopherson 2018-12-03  125  	EVMCS1_FIELD(HOST_RSP, host_rsp,
75edce8a45486fe Sean Christopherson 2018-12-03  126  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_POINTER),
75edce8a45486fe Sean Christopherson 2018-12-03  127  	EVMCS1_FIELD(EPT_POINTER, ept_pointer,
75edce8a45486fe Sean Christopherson 2018-12-03  128  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_XLAT),
75edce8a45486fe Sean Christopherson 2018-12-03  129  	EVMCS1_FIELD(GUEST_BNDCFGS, guest_bndcfgs,
75edce8a45486fe Sean Christopherson 2018-12-03  130  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  131  	EVMCS1_FIELD(XSS_EXIT_BITMAP, xss_exit_bitmap,
75edce8a45486fe Sean Christopherson 2018-12-03  132  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP2),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21 @133  	EVMCS1_FIELD(ENCLS_EXITING_BITMAP, encls_exiting_bitmap,
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  134  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP2),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21 @135  	EVMCS1_FIELD(TSC_MULTIPLIER, tsc_multiplier,
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  136  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP2),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  137  	/*
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  138  	 * Not used by KVM:
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  139  	 *
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  140  	 * EVMCS1_FIELD(0x00006828, guest_ia32_s_cet,
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  141  	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  142  	 * EVMCS1_FIELD(0x0000682A, guest_ssp,
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  143  	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_BASIC),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  144  	 * EVMCS1_FIELD(0x0000682C, guest_ia32_int_ssp_table_addr,
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  145  	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  146  	 * EVMCS1_FIELD(0x00002816, guest_ia32_lbr_ctl,
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  147  	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  148  	 * EVMCS1_FIELD(0x00006C18, host_ia32_s_cet,
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  149  	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  150  	 * EVMCS1_FIELD(0x00006C1A, host_ssp,
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  151  	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  152  	 * EVMCS1_FIELD(0x00006C1C, host_ia32_int_ssp_table_addr,
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  153  	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
933b7b547c0b7e4 Vitaly Kuznetsov    2022-06-21  154  	 */
75edce8a45486fe Sean Christopherson 2018-12-03  155  
75edce8a45486fe Sean Christopherson 2018-12-03  156  	/* 64 bit read only */
75edce8a45486fe Sean Christopherson 2018-12-03  157  	EVMCS1_FIELD(GUEST_PHYSICAL_ADDRESS, guest_physical_address,
75edce8a45486fe Sean Christopherson 2018-12-03  158  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  159  	EVMCS1_FIELD(EXIT_QUALIFICATION, exit_qualification,
75edce8a45486fe Sean Christopherson 2018-12-03  160  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  161  	/*
75edce8a45486fe Sean Christopherson 2018-12-03  162  	 * Not defined in KVM:
75edce8a45486fe Sean Christopherson 2018-12-03  163  	 *
75edce8a45486fe Sean Christopherson 2018-12-03  164  	 * EVMCS1_FIELD(0x00006402, exit_io_instruction_ecx,
75edce8a45486fe Sean Christopherson 2018-12-03  165  	 *		HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE);
75edce8a45486fe Sean Christopherson 2018-12-03  166  	 * EVMCS1_FIELD(0x00006404, exit_io_instruction_esi,
75edce8a45486fe Sean Christopherson 2018-12-03  167  	 *		HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE);
75edce8a45486fe Sean Christopherson 2018-12-03  168  	 * EVMCS1_FIELD(0x00006406, exit_io_instruction_esi,
75edce8a45486fe Sean Christopherson 2018-12-03  169  	 *		HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE);
75edce8a45486fe Sean Christopherson 2018-12-03  170  	 * EVMCS1_FIELD(0x00006408, exit_io_instruction_eip,
75edce8a45486fe Sean Christopherson 2018-12-03  171  	 *		HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE);
75edce8a45486fe Sean Christopherson 2018-12-03  172  	 */
75edce8a45486fe Sean Christopherson 2018-12-03  173  	EVMCS1_FIELD(GUEST_LINEAR_ADDRESS, guest_linear_address,
75edce8a45486fe Sean Christopherson 2018-12-03  174  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  175  
75edce8a45486fe Sean Christopherson 2018-12-03  176  	/*
75edce8a45486fe Sean Christopherson 2018-12-03  177  	 * No mask defined in the spec as Hyper-V doesn't currently support
75edce8a45486fe Sean Christopherson 2018-12-03  178  	 * these. Future proof by resetting the whole clean field mask on
75edce8a45486fe Sean Christopherson 2018-12-03  179  	 * access.
75edce8a45486fe Sean Christopherson 2018-12-03  180  	 */
75edce8a45486fe Sean Christopherson 2018-12-03  181  	EVMCS1_FIELD(VM_EXIT_MSR_STORE_ADDR, vm_exit_msr_store_addr,
75edce8a45486fe Sean Christopherson 2018-12-03  182  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL),
75edce8a45486fe Sean Christopherson 2018-12-03  183  	EVMCS1_FIELD(VM_EXIT_MSR_LOAD_ADDR, vm_exit_msr_load_addr,
75edce8a45486fe Sean Christopherson 2018-12-03  184  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL),
75edce8a45486fe Sean Christopherson 2018-12-03  185  	EVMCS1_FIELD(VM_ENTRY_MSR_LOAD_ADDR, vm_entry_msr_load_addr,
75edce8a45486fe Sean Christopherson 2018-12-03  186  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL),
75edce8a45486fe Sean Christopherson 2018-12-03  187  
75edce8a45486fe Sean Christopherson 2018-12-03  188  	/* 32 bit rw */
75edce8a45486fe Sean Christopherson 2018-12-03  189  	EVMCS1_FIELD(TPR_THRESHOLD, tpr_threshold,
75edce8a45486fe Sean Christopherson 2018-12-03  190  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  191  	EVMCS1_FIELD(GUEST_INTERRUPTIBILITY_INFO, guest_interruptibility_info,
75edce8a45486fe Sean Christopherson 2018-12-03  192  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_BASIC),
75edce8a45486fe Sean Christopherson 2018-12-03  193  	EVMCS1_FIELD(CPU_BASED_VM_EXEC_CONTROL, cpu_based_vm_exec_control,
75edce8a45486fe Sean Christopherson 2018-12-03  194  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_PROC),
75edce8a45486fe Sean Christopherson 2018-12-03  195  	EVMCS1_FIELD(EXCEPTION_BITMAP, exception_bitmap,
75edce8a45486fe Sean Christopherson 2018-12-03  196  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_EXCPN),
75edce8a45486fe Sean Christopherson 2018-12-03  197  	EVMCS1_FIELD(VM_ENTRY_CONTROLS, vm_entry_controls,
75edce8a45486fe Sean Christopherson 2018-12-03  198  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_ENTRY),
75edce8a45486fe Sean Christopherson 2018-12-03  199  	EVMCS1_FIELD(VM_ENTRY_INTR_INFO_FIELD, vm_entry_intr_info_field,
75edce8a45486fe Sean Christopherson 2018-12-03  200  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_EVENT),
75edce8a45486fe Sean Christopherson 2018-12-03  201  	EVMCS1_FIELD(VM_ENTRY_EXCEPTION_ERROR_CODE,
75edce8a45486fe Sean Christopherson 2018-12-03  202  		     vm_entry_exception_error_code,
75edce8a45486fe Sean Christopherson 2018-12-03  203  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_EVENT),
75edce8a45486fe Sean Christopherson 2018-12-03  204  	EVMCS1_FIELD(VM_ENTRY_INSTRUCTION_LEN, vm_entry_instruction_len,
75edce8a45486fe Sean Christopherson 2018-12-03  205  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_EVENT),
75edce8a45486fe Sean Christopherson 2018-12-03  206  	EVMCS1_FIELD(HOST_IA32_SYSENTER_CS, host_ia32_sysenter_cs,
75edce8a45486fe Sean Christopherson 2018-12-03  207  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  208  	EVMCS1_FIELD(PIN_BASED_VM_EXEC_CONTROL, pin_based_vm_exec_control,
75edce8a45486fe Sean Christopherson 2018-12-03  209  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  210  	EVMCS1_FIELD(VM_EXIT_CONTROLS, vm_exit_controls,
75edce8a45486fe Sean Christopherson 2018-12-03  211  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  212  	EVMCS1_FIELD(SECONDARY_VM_EXEC_CONTROL, secondary_vm_exec_control,
75edce8a45486fe Sean Christopherson 2018-12-03  213  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  214  	EVMCS1_FIELD(GUEST_ES_LIMIT, guest_es_limit,
75edce8a45486fe Sean Christopherson 2018-12-03  215  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  216  	EVMCS1_FIELD(GUEST_CS_LIMIT, guest_cs_limit,
75edce8a45486fe Sean Christopherson 2018-12-03  217  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  218  	EVMCS1_FIELD(GUEST_SS_LIMIT, guest_ss_limit,
75edce8a45486fe Sean Christopherson 2018-12-03  219  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  220  	EVMCS1_FIELD(GUEST_DS_LIMIT, guest_ds_limit,
75edce8a45486fe Sean Christopherson 2018-12-03  221  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  222  	EVMCS1_FIELD(GUEST_FS_LIMIT, guest_fs_limit,
75edce8a45486fe Sean Christopherson 2018-12-03  223  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  224  	EVMCS1_FIELD(GUEST_GS_LIMIT, guest_gs_limit,
75edce8a45486fe Sean Christopherson 2018-12-03  225  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  226  	EVMCS1_FIELD(GUEST_LDTR_LIMIT, guest_ldtr_limit,
75edce8a45486fe Sean Christopherson 2018-12-03  227  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  228  	EVMCS1_FIELD(GUEST_TR_LIMIT, guest_tr_limit,
75edce8a45486fe Sean Christopherson 2018-12-03  229  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  230  	EVMCS1_FIELD(GUEST_GDTR_LIMIT, guest_gdtr_limit,
75edce8a45486fe Sean Christopherson 2018-12-03  231  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  232  	EVMCS1_FIELD(GUEST_IDTR_LIMIT, guest_idtr_limit,
75edce8a45486fe Sean Christopherson 2018-12-03  233  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  234  	EVMCS1_FIELD(GUEST_ES_AR_BYTES, guest_es_ar_bytes,
75edce8a45486fe Sean Christopherson 2018-12-03  235  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  236  	EVMCS1_FIELD(GUEST_CS_AR_BYTES, guest_cs_ar_bytes,
75edce8a45486fe Sean Christopherson 2018-12-03  237  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  238  	EVMCS1_FIELD(GUEST_SS_AR_BYTES, guest_ss_ar_bytes,
75edce8a45486fe Sean Christopherson 2018-12-03  239  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  240  	EVMCS1_FIELD(GUEST_DS_AR_BYTES, guest_ds_ar_bytes,
75edce8a45486fe Sean Christopherson 2018-12-03  241  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  242  	EVMCS1_FIELD(GUEST_FS_AR_BYTES, guest_fs_ar_bytes,
75edce8a45486fe Sean Christopherson 2018-12-03  243  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  244  	EVMCS1_FIELD(GUEST_GS_AR_BYTES, guest_gs_ar_bytes,
75edce8a45486fe Sean Christopherson 2018-12-03  245  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  246  	EVMCS1_FIELD(GUEST_LDTR_AR_BYTES, guest_ldtr_ar_bytes,
75edce8a45486fe Sean Christopherson 2018-12-03  247  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  248  	EVMCS1_FIELD(GUEST_TR_AR_BYTES, guest_tr_ar_bytes,
75edce8a45486fe Sean Christopherson 2018-12-03  249  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  250  	EVMCS1_FIELD(GUEST_ACTIVITY_STATE, guest_activity_state,
75edce8a45486fe Sean Christopherson 2018-12-03  251  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  252  	EVMCS1_FIELD(GUEST_SYSENTER_CS, guest_sysenter_cs,
75edce8a45486fe Sean Christopherson 2018-12-03  253  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  254  
75edce8a45486fe Sean Christopherson 2018-12-03  255  	/* 32 bit read only */
75edce8a45486fe Sean Christopherson 2018-12-03  256  	EVMCS1_FIELD(VM_INSTRUCTION_ERROR, vm_instruction_error,
75edce8a45486fe Sean Christopherson 2018-12-03  257  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  258  	EVMCS1_FIELD(VM_EXIT_REASON, vm_exit_reason,
75edce8a45486fe Sean Christopherson 2018-12-03  259  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  260  	EVMCS1_FIELD(VM_EXIT_INTR_INFO, vm_exit_intr_info,
75edce8a45486fe Sean Christopherson 2018-12-03  261  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  262  	EVMCS1_FIELD(VM_EXIT_INTR_ERROR_CODE, vm_exit_intr_error_code,
75edce8a45486fe Sean Christopherson 2018-12-03  263  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  264  	EVMCS1_FIELD(IDT_VECTORING_INFO_FIELD, idt_vectoring_info_field,
75edce8a45486fe Sean Christopherson 2018-12-03  265  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  266  	EVMCS1_FIELD(IDT_VECTORING_ERROR_CODE, idt_vectoring_error_code,
75edce8a45486fe Sean Christopherson 2018-12-03  267  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  268  	EVMCS1_FIELD(VM_EXIT_INSTRUCTION_LEN, vm_exit_instruction_len,
75edce8a45486fe Sean Christopherson 2018-12-03  269  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  270  	EVMCS1_FIELD(VMX_INSTRUCTION_INFO, vmx_instruction_info,
75edce8a45486fe Sean Christopherson 2018-12-03  271  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE),
75edce8a45486fe Sean Christopherson 2018-12-03  272  
75edce8a45486fe Sean Christopherson 2018-12-03  273  	/* No mask defined in the spec (not used) */
75edce8a45486fe Sean Christopherson 2018-12-03  274  	EVMCS1_FIELD(PAGE_FAULT_ERROR_CODE_MASK, page_fault_error_code_mask,
75edce8a45486fe Sean Christopherson 2018-12-03  275  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL),
75edce8a45486fe Sean Christopherson 2018-12-03  276  	EVMCS1_FIELD(PAGE_FAULT_ERROR_CODE_MATCH, page_fault_error_code_match,
75edce8a45486fe Sean Christopherson 2018-12-03  277  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL),
75edce8a45486fe Sean Christopherson 2018-12-03  278  	EVMCS1_FIELD(CR3_TARGET_COUNT, cr3_target_count,
75edce8a45486fe Sean Christopherson 2018-12-03  279  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL),
75edce8a45486fe Sean Christopherson 2018-12-03  280  	EVMCS1_FIELD(VM_EXIT_MSR_STORE_COUNT, vm_exit_msr_store_count,
75edce8a45486fe Sean Christopherson 2018-12-03  281  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL),
75edce8a45486fe Sean Christopherson 2018-12-03  282  	EVMCS1_FIELD(VM_EXIT_MSR_LOAD_COUNT, vm_exit_msr_load_count,
75edce8a45486fe Sean Christopherson 2018-12-03  283  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL),
75edce8a45486fe Sean Christopherson 2018-12-03  284  	EVMCS1_FIELD(VM_ENTRY_MSR_LOAD_COUNT, vm_entry_msr_load_count,
75edce8a45486fe Sean Christopherson 2018-12-03  285  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL),
75edce8a45486fe Sean Christopherson 2018-12-03  286  
75edce8a45486fe Sean Christopherson 2018-12-03  287  	/* 16 bit rw */
75edce8a45486fe Sean Christopherson 2018-12-03  288  	EVMCS1_FIELD(HOST_ES_SELECTOR, host_es_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  289  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  290  	EVMCS1_FIELD(HOST_CS_SELECTOR, host_cs_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  291  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  292  	EVMCS1_FIELD(HOST_SS_SELECTOR, host_ss_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  293  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  294  	EVMCS1_FIELD(HOST_DS_SELECTOR, host_ds_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  295  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  296  	EVMCS1_FIELD(HOST_FS_SELECTOR, host_fs_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  297  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  298  	EVMCS1_FIELD(HOST_GS_SELECTOR, host_gs_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  299  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  300  	EVMCS1_FIELD(HOST_TR_SELECTOR, host_tr_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  301  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
75edce8a45486fe Sean Christopherson 2018-12-03  302  	EVMCS1_FIELD(GUEST_ES_SELECTOR, guest_es_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  303  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  304  	EVMCS1_FIELD(GUEST_CS_SELECTOR, guest_cs_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  305  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  306  	EVMCS1_FIELD(GUEST_SS_SELECTOR, guest_ss_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  307  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  308  	EVMCS1_FIELD(GUEST_DS_SELECTOR, guest_ds_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  309  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  310  	EVMCS1_FIELD(GUEST_FS_SELECTOR, guest_fs_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  311  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  312  	EVMCS1_FIELD(GUEST_GS_SELECTOR, guest_gs_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  313  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  314  	EVMCS1_FIELD(GUEST_LDTR_SELECTOR, guest_ldtr_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  315  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  316  	EVMCS1_FIELD(GUEST_TR_SELECTOR, guest_tr_selector,
75edce8a45486fe Sean Christopherson 2018-12-03  317  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2),
75edce8a45486fe Sean Christopherson 2018-12-03  318  	EVMCS1_FIELD(VIRTUAL_PROCESSOR_ID, virtual_processor_id,
75edce8a45486fe Sean Christopherson 2018-12-03  319  		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_XLAT),
75edce8a45486fe Sean Christopherson 2018-12-03  320  };
75edce8a45486fe Sean Christopherson 2018-12-03  321  const unsigned int nr_evmcs_1_fields = ARRAY_SIZE(vmcs_field_to_evmcs_1);
75edce8a45486fe Sean Christopherson 2018-12-03  322  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

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

* [PATCH 04/11] KVM: VMX: Define VMCS-to-EVMCS conversion for the new fields
  2022-06-21 15:58 [PATCH 00/11] KVM: VMX: Support TscScaling and EnclsExitingBitmap whith eVMCS Vitaly Kuznetsov
@ 2022-06-21 15:58 ` Vitaly Kuznetsov
  0 siblings, 0 replies; 2+ messages in thread
From: Vitaly Kuznetsov @ 2022-06-21 15:58 UTC (permalink / raw)
  To: kvm, Paolo Bonzini
  Cc: Anirudh Rayabharam, Sean Christopherson, Wanpeng Li, Jim Mattson,
	Maxim Levitsky, linux-hyperv, linux-kernel

Enlightened VMCS v1 definition was updated with new fields, support
them in KVM by defining VMCS-to-EVMCS conversion.

Note: SSP, CET and Guest LBR features are not supported by KVM yet and
the corresponding fields are not defined in 'enum vmcs_field', leave
them commented out for now.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
 arch/x86/kvm/vmx/evmcs.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/arch/x86/kvm/vmx/evmcs.c b/arch/x86/kvm/vmx/evmcs.c
index 6a61b1ae7942..8bea5dea0341 100644
--- a/arch/x86/kvm/vmx/evmcs.c
+++ b/arch/x86/kvm/vmx/evmcs.c
@@ -28,6 +28,8 @@ const struct evmcs_field vmcs_field_to_evmcs_1[] = {
 		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
 	EVMCS1_FIELD(HOST_IA32_EFER, host_ia32_efer,
 		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
+	EVMCS1_FIELD(HOST_IA32_PERF_GLOBAL_CTRL, host_ia32_perf_global_ctrl,
+		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
 	EVMCS1_FIELD(HOST_CR0, host_cr0,
 		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
 	EVMCS1_FIELD(HOST_CR3, host_cr3,
@@ -78,6 +80,8 @@ const struct evmcs_field vmcs_field_to_evmcs_1[] = {
 		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
 	EVMCS1_FIELD(GUEST_IA32_EFER, guest_ia32_efer,
 		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
+	EVMCS1_FIELD(GUEST_IA32_PERF_GLOBAL_CTRL, guest_ia32_perf_global_ctrl,
+		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
 	EVMCS1_FIELD(GUEST_PDPTR0, guest_pdptr0,
 		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
 	EVMCS1_FIELD(GUEST_PDPTR1, guest_pdptr1,
@@ -126,6 +130,28 @@ const struct evmcs_field vmcs_field_to_evmcs_1[] = {
 		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
 	EVMCS1_FIELD(XSS_EXIT_BITMAP, xss_exit_bitmap,
 		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP2),
+	EVMCS1_FIELD(ENCLS_EXITING_BITMAP, encls_exiting_bitmap,
+		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP2),
+	EVMCS1_FIELD(TSC_MULTIPLIER, tsc_multiplier,
+		     HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP2),
+	/*
+	 * Not used by KVM:
+	 *
+	 * EVMCS1_FIELD(0x00006828, guest_ia32_s_cet,
+	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
+	 * EVMCS1_FIELD(0x0000682A, guest_ssp,
+	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_BASIC),
+	 * EVMCS1_FIELD(0x0000682C, guest_ia32_int_ssp_table_addr,
+	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
+	 * EVMCS1_FIELD(0x00002816, guest_ia32_lbr_ctl,
+	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1),
+	 * EVMCS1_FIELD(0x00006C18, host_ia32_s_cet,
+	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
+	 * EVMCS1_FIELD(0x00006C1A, host_ssp,
+	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
+	 * EVMCS1_FIELD(0x00006C1C, host_ia32_int_ssp_table_addr,
+	 *	     HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1),
+	 */
 
 	/* 64 bit read only */
 	EVMCS1_FIELD(GUEST_PHYSICAL_ADDRESS, guest_physical_address,
-- 
2.35.3


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

end of thread, other threads:[~2022-06-22 13:21 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-22 13:21 [PATCH 04/11] KVM: VMX: Define VMCS-to-EVMCS conversion for the new fields kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2022-06-21 15:58 [PATCH 00/11] KVM: VMX: Support TscScaling and EnclsExitingBitmap whith eVMCS Vitaly Kuznetsov
2022-06-21 15:58 ` [PATCH 04/11] KVM: VMX: Define VMCS-to-EVMCS conversion for the new fields Vitaly Kuznetsov

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.