From: isaku.yamahata@intel.com
To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: isaku.yamahata@intel.com, isaku.yamahata@gmail.com,
Paolo Bonzini <pbonzini@redhat.com>,
erdemaktas@google.com, Sean Christopherson <seanjc@google.com>,
Sagi Shahar <sagis@google.com>,
David Matlack <dmatlack@google.com>,
Kai Huang <kai.huang@intel.com>,
Zhi Wang <zhi.wang.linux@gmail.com>,
chen.bo@intel.com
Subject: [PATCH v14 037/113] KVM: VMX: Introduce test mode related to EPT violation VE
Date: Sun, 28 May 2023 21:19:19 -0700 [thread overview]
Message-ID: <76765dd2b0e0572949e175625e5fb838fb92bcd2.1685333727.git.isaku.yamahata@intel.com> (raw)
In-Reply-To: <cover.1685333727.git.isaku.yamahata@intel.com>
From: Isaku Yamahata <isaku.yamahata@intel.com>
To support TDX, KVM is enhanced to operate with #VE. For TDX, KVM programs
to inject #VE conditionally and set #VE suppress bit in EPT entry. For VMX
case, #VE isn't used. If #VE happens for VMX, it's a bug. To be
defensive (test that VMX case isn't broken), introduce option
ept_violation_ve_test and when it's set, set error.
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
---
arch/x86/include/asm/vmx.h | 12 +++++++
arch/x86/kvm/vmx/vmcs.h | 5 +++
arch/x86/kvm/vmx/vmx.c | 69 +++++++++++++++++++++++++++++++++++++-
arch/x86/kvm/vmx/vmx.h | 6 +++-
4 files changed, 90 insertions(+), 2 deletions(-)
diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h
index 3066ca5ca246..56e192797742 100644
--- a/arch/x86/include/asm/vmx.h
+++ b/arch/x86/include/asm/vmx.h
@@ -70,6 +70,7 @@
#define SECONDARY_EXEC_ENCLS_EXITING VMCS_CONTROL_BIT(ENCLS_EXITING)
#define SECONDARY_EXEC_RDSEED_EXITING VMCS_CONTROL_BIT(RDSEED_EXITING)
#define SECONDARY_EXEC_ENABLE_PML VMCS_CONTROL_BIT(PAGE_MOD_LOGGING)
+#define SECONDARY_EXEC_EPT_VIOLATION_VE VMCS_CONTROL_BIT(EPT_VIOLATION_VE)
#define SECONDARY_EXEC_PT_CONCEAL_VMX VMCS_CONTROL_BIT(PT_CONCEAL_VMX)
#define SECONDARY_EXEC_XSAVES VMCS_CONTROL_BIT(XSAVES)
#define SECONDARY_EXEC_MODE_BASED_EPT_EXEC VMCS_CONTROL_BIT(MODE_BASED_EPT_EXEC)
@@ -225,6 +226,8 @@ enum vmcs_field {
VMREAD_BITMAP_HIGH = 0x00002027,
VMWRITE_BITMAP = 0x00002028,
VMWRITE_BITMAP_HIGH = 0x00002029,
+ VE_INFORMATION_ADDRESS = 0x0000202A,
+ VE_INFORMATION_ADDRESS_HIGH = 0x0000202B,
XSS_EXIT_BITMAP = 0x0000202C,
XSS_EXIT_BITMAP_HIGH = 0x0000202D,
ENCLS_EXITING_BITMAP = 0x0000202E,
@@ -630,4 +633,13 @@ enum vmx_l1d_flush_state {
extern enum vmx_l1d_flush_state l1tf_vmx_mitigation;
+struct vmx_ve_information {
+ u32 exit_reason;
+ u32 delivery;
+ u64 exit_qualification;
+ u64 guest_linear_address;
+ u64 guest_physical_address;
+ u16 eptp_index;
+};
+
#endif
diff --git a/arch/x86/kvm/vmx/vmcs.h b/arch/x86/kvm/vmx/vmcs.h
index 7c1996b433e2..b25625314658 100644
--- a/arch/x86/kvm/vmx/vmcs.h
+++ b/arch/x86/kvm/vmx/vmcs.h
@@ -140,6 +140,11 @@ static inline bool is_nm_fault(u32 intr_info)
return is_exception_n(intr_info, NM_VECTOR);
}
+static inline bool is_ve_fault(u32 intr_info)
+{
+ return is_exception_n(intr_info, VE_VECTOR);
+}
+
/* Undocumented: icebp/int1 */
static inline bool is_icebp(u32 intr_info)
{
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index aca18d6b50c5..eef2d3f708ca 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -127,6 +127,9 @@ module_param(error_on_inconsistent_vmcs_config, bool, 0444);
static bool __read_mostly dump_invalid_vmcs = 0;
module_param(dump_invalid_vmcs, bool, 0644);
+static bool __read_mostly ept_violation_ve_test;
+module_param(ept_violation_ve_test, bool, 0444);
+
#define MSR_BITMAP_MODE_X2APIC 1
#define MSR_BITMAP_MODE_X2APIC_APICV 2
@@ -845,6 +848,13 @@ void vmx_update_exception_bitmap(struct kvm_vcpu *vcpu)
eb = (1u << PF_VECTOR) | (1u << UD_VECTOR) | (1u << MC_VECTOR) |
(1u << DB_VECTOR) | (1u << AC_VECTOR);
+ /*
+ * #VE isn't used for VMX, but for TDX. To test against unexpected
+ * change related to #VE for VMX, intercept unexpected #VE and warn on
+ * it.
+ */
+ if (ept_violation_ve_test)
+ eb |= 1u << VE_VECTOR;
/*
* Guest access to VMware backdoor ports could legitimately
* trigger #GP because of TSS I/O permission bitmap.
@@ -2587,6 +2597,9 @@ static int setup_vmcs_config(struct vmcs_config *vmcs_conf,
&_cpu_based_2nd_exec_control))
return -EIO;
}
+ if (!ept_violation_ve_test)
+ _cpu_based_2nd_exec_control &= ~SECONDARY_EXEC_EPT_VIOLATION_VE;
+
#ifndef CONFIG_X86_64
if (!(_cpu_based_2nd_exec_control &
SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES))
@@ -2611,6 +2624,7 @@ static int setup_vmcs_config(struct vmcs_config *vmcs_conf,
return -EIO;
vmx_cap->ept = 0;
+ _cpu_based_2nd_exec_control &= ~SECONDARY_EXEC_EPT_VIOLATION_VE;
}
if (!(_cpu_based_2nd_exec_control & SECONDARY_EXEC_ENABLE_VPID) &&
vmx_cap->vpid) {
@@ -4546,6 +4560,7 @@ static u32 vmx_secondary_exec_control(struct vcpu_vmx *vmx)
exec_control &= ~SECONDARY_EXEC_ENABLE_VPID;
if (!enable_ept) {
exec_control &= ~SECONDARY_EXEC_ENABLE_EPT;
+ exec_control &= ~SECONDARY_EXEC_EPT_VIOLATION_VE;
enable_unrestricted_guest = 0;
}
if (!enable_unrestricted_guest)
@@ -4679,8 +4694,40 @@ static void init_vmcs(struct vcpu_vmx *vmx)
exec_controls_set(vmx, vmx_exec_control(vmx));
- if (cpu_has_secondary_exec_ctrls())
+ if (cpu_has_secondary_exec_ctrls()) {
secondary_exec_controls_set(vmx, vmx_secondary_exec_control(vmx));
+ if (secondary_exec_controls_get(vmx) &
+ SECONDARY_EXEC_EPT_VIOLATION_VE) {
+ if (!vmx->ve_info) {
+ /* ve_info must be page aligned. */
+ struct page *page;
+
+ BUILD_BUG_ON(sizeof(*vmx->ve_info) > PAGE_SIZE);
+ page = alloc_page(GFP_KERNEL_ACCOUNT | __GFP_ZERO);
+ if (page)
+ vmx->ve_info = page_to_virt(page);
+ }
+ if (vmx->ve_info) {
+ /*
+ * Allow #VE delivery. CPU sets this field to
+ * 0xFFFFFFFF on #VE delivery. Another #VE can
+ * occur only if software clears the field.
+ */
+ vmx->ve_info->delivery = 0;
+ vmcs_write64(VE_INFORMATION_ADDRESS,
+ __pa(vmx->ve_info));
+ } else {
+ /*
+ * Because SECONDARY_EXEC_EPT_VIOLATION_VE is
+ * used only when ept_violation_ve_test is true,
+ * it's okay to go with the bit disabled.
+ */
+ pr_err("Failed to allocate ve_info. disabling EPT_VIOLATION_VE.\n");
+ secondary_exec_controls_clearbit(vmx,
+ SECONDARY_EXEC_EPT_VIOLATION_VE);
+ }
+ }
+ }
if (cpu_has_tertiary_exec_ctrls())
tertiary_exec_controls_set(vmx, vmx_tertiary_exec_control(vmx));
@@ -5165,6 +5212,12 @@ static int handle_exception_nmi(struct kvm_vcpu *vcpu)
if (is_invalid_opcode(intr_info))
return handle_ud(vcpu);
+ /*
+ * #VE isn't supposed to happen. Although vcpu can send
+ */
+ if (KVM_BUG_ON(is_ve_fault(intr_info), vcpu->kvm))
+ return -EIO;
+
error_code = 0;
if (intr_info & INTR_INFO_DELIVER_CODE_MASK)
error_code = vmcs_read32(VM_EXIT_INTR_ERROR_CODE);
@@ -6353,6 +6406,18 @@ void dump_vmcs(struct kvm_vcpu *vcpu)
if (secondary_exec_control & SECONDARY_EXEC_ENABLE_VPID)
pr_err("Virtual processor ID = 0x%04x\n",
vmcs_read16(VIRTUAL_PROCESSOR_ID));
+ if (secondary_exec_control & SECONDARY_EXEC_EPT_VIOLATION_VE) {
+ struct vmx_ve_information *ve_info;
+
+ pr_err("VE info address = 0x%016llx\n",
+ vmcs_read64(VE_INFORMATION_ADDRESS));
+ ve_info = __va(vmcs_read64(VE_INFORMATION_ADDRESS));
+ pr_err("ve_info: 0x%08x 0x%08x 0x%016llx 0x%016llx 0x%016llx 0x%04x\n",
+ ve_info->exit_reason, ve_info->delivery,
+ ve_info->exit_qualification,
+ ve_info->guest_linear_address,
+ ve_info->guest_physical_address, ve_info->eptp_index);
+ }
}
/*
@@ -7351,6 +7416,8 @@ void vmx_vcpu_free(struct kvm_vcpu *vcpu)
free_vpid(vmx->vpid);
nested_vmx_free_vcpu(vcpu);
free_loaded_vmcs(vmx->loaded_vmcs);
+ if (vmx->ve_info)
+ free_page((unsigned long)vmx->ve_info);
}
int vmx_vcpu_create(struct kvm_vcpu *vcpu)
diff --git a/arch/x86/kvm/vmx/vmx.h b/arch/x86/kvm/vmx/vmx.h
index 026e87a5ecae..9e8dfb0cfee5 100644
--- a/arch/x86/kvm/vmx/vmx.h
+++ b/arch/x86/kvm/vmx/vmx.h
@@ -359,6 +359,9 @@ struct vcpu_vmx {
DECLARE_BITMAP(read, MAX_POSSIBLE_PASSTHROUGH_MSRS);
DECLARE_BITMAP(write, MAX_POSSIBLE_PASSTHROUGH_MSRS);
} shadow_msr_intercept;
+
+ /* ve_info must be page aligned. */
+ struct vmx_ve_information *ve_info;
};
struct kvm_vmx {
@@ -570,7 +573,8 @@ static inline u8 vmx_get_rvi(void)
SECONDARY_EXEC_ENABLE_VMFUNC | \
SECONDARY_EXEC_BUS_LOCK_DETECTION | \
SECONDARY_EXEC_NOTIFY_VM_EXITING | \
- SECONDARY_EXEC_ENCLS_EXITING)
+ SECONDARY_EXEC_ENCLS_EXITING | \
+ SECONDARY_EXEC_EPT_VIOLATION_VE)
#define KVM_REQUIRED_VMX_TERTIARY_VM_EXEC_CONTROL 0
#define KVM_OPTIONAL_VMX_TERTIARY_VM_EXEC_CONTROL \
--
2.25.1
next prev parent reply other threads:[~2023-05-29 4:25 UTC|newest]
Thread overview: 149+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-29 4:18 [PATCH v14 000/113] KVM TDX basic feature support isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 001/113] KVM: VMX: Move out vmx_x86_ops to 'main.c' to wrap VMX and TDX isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 002/113] KVM: x86/vmx: initialize loaded_vmcss_on_cpu in vmx_hardware_setup() isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 003/113] KVM: x86/vmx: Refactor KVM VMX module init/exit functions isaku.yamahata
2023-05-31 1:57 ` Zhi Wang
[not found] ` <20230531203012.GG1234772@ls.amr.corp.intel.com>
2023-05-31 22:10 ` Isaku Yamahata
2023-05-29 4:18 ` [PATCH v14 004/113] KVM: TDX: Initialize the TDX module when loading the KVM intel kernel module isaku.yamahata
2023-05-30 14:35 ` Zhi Wang
2023-05-30 17:14 ` Sean Christopherson
2023-06-06 4:19 ` Huang, Kai
2023-06-07 18:06 ` Isaku Yamahata
2023-06-12 23:55 ` Huang, Kai
2023-06-13 17:38 ` Isaku Yamahata
2023-06-14 9:41 ` Huang, Kai
2023-06-14 16:05 ` Isaku Yamahata
2023-06-14 23:14 ` Huang, Kai
2023-05-29 4:18 ` [PATCH v14 005/113] KVM: TDX: Add placeholders for TDX VM/vcpu structure isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 006/113] KVM: x86: Introduce vm_type to differentiate default VMs from confidential VMs isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 007/113] KVM: TDX: Make TDX VM type supported isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 008/113] [MARKER] The start of TDX KVM patch series: TDX architectural definitions isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 009/113] KVM: TDX: Define " isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 010/113] KVM: TDX: Add TDX "architectural" error codes isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 011/113] KVM: TDX: Add C wrapper functions for SEAMCALLs to the TDX module isaku.yamahata
2023-06-01 13:24 ` Wang, Wei W
2023-06-02 0:15 ` Isaku Yamahata
2023-06-05 15:20 ` Wang, Wei W
2023-06-07 18:15 ` Isaku Yamahata
2023-06-08 1:43 ` Wang, Wei W
2023-06-08 20:10 ` Isaku Yamahata
2023-06-14 11:45 ` Wang, Wei W
2023-06-14 16:29 ` Isaku Yamahata
2023-05-29 4:18 ` [PATCH v14 012/113] KVM: TDX: Add helper functions to print TDX SEAMCALL error isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 013/113] [MARKER] The start of TDX KVM patch series: TD VM creation/destruction isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 014/113] x86/cpu: Add helper functions to allocate/free TDX private host key id isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 015/113] x86/virt/tdx: Add a helper function to return system wide info about TDX module isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 016/113] KVM: TDX: Add place holder for TDX VM specific mem_enc_op ioctl isaku.yamahata
2023-05-29 4:18 ` [PATCH v14 017/113] KVM: TDX: x86: Add ioctl to get TDX systemwide parameters isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 018/113] KVM: x86, tdx: Make KVM_CAP_MAX_VCPUS backend specific isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 019/113] KVM: TDX: create/destroy VM structure isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 020/113] KVM: TDX: initialize VM with TDX specific parameters isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 021/113] KVM: TDX: Make pmu_intel.c ignore guest TD case isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 022/113] KVM: TDX: Refuse to unplug the last cpu on the package isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 023/113] [MARKER] The start of TDX KVM patch series: TD vcpu creation/destruction isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 024/113] KVM: TDX: allocate/free TDX vcpu structure isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 025/113] KVM: TDX: Do TDX specific vcpu initialization isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 026/113] [MARKER] The start of TDX KVM patch series: KVM MMU GPA shared bits isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 027/113] KVM: x86/mmu: introduce config for PRIVATE KVM MMU isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 028/113] KVM: x86/mmu: Add address conversion functions for TDX shared bit of GPA isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 029/113] [MARKER] The start of TDX KVM patch series: KVM TDP refactoring for TDX isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 030/113] KVM: Allow page-sized MMU caches to be initialized with custom 64-bit values isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 031/113] KVM: x86/mmu: Replace hardcoded value 0 for the initial value for SPTE isaku.yamahata
2023-06-06 4:59 ` Yuan Yao
2023-06-06 13:19 ` Isaku Yamahata
2023-06-06 5:31 ` Wu, Dan1
2023-05-29 4:19 ` [PATCH v14 032/113] KVM: x86/mmu: Allow non-zero value for non-present SPTE and removed SPTE isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 033/113] KVM: x86/mmu: Add Suppress VE bit to shadow_mmio_mask/shadow_present_mask isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 034/113] KVM: x86/mmu: Track shadow MMIO value on a per-VM basis isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 035/113] KVM: x86/mmu: Disallow fast page fault on private GPA isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 036/113] KVM: x86/mmu: Allow per-VM override of the TDP max page level isaku.yamahata
2023-05-29 4:19 ` isaku.yamahata [this message]
2023-05-29 4:19 ` [PATCH v14 038/113] [MARKER] The start of TDX KVM patch series: KVM TDP MMU hooks isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 039/113] KVM: x86/mmu: Assume guest MMIOs are shared isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 040/113] KVM: x86/tdp_mmu: Init role member of struct kvm_mmu_page at allocation isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 041/113] KVM: x86/mmu: Add a new is_private member for union kvm_mmu_page_role isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 042/113] KVM: x86/mmu: Add a private pointer to struct kvm_mmu_page isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 043/113] KVM: Add flags to struct kvm_gfn_range isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 044/113] KVM: x86/tdp_mmu: Don't zap private pages for unsupported cases isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 045/113] KVM: x86/tdp_mmu: Sprinkle __must_check isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 046/113] KVM: x86/tdp_mmu: Support TDX private mapping for TDP MMU isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 047/113] [MARKER] The start of TDX KVM patch series: TDX EPT violation isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 048/113] KVM: x86/mmu: TDX: Do not enable page track for TD guest isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 049/113] KVM: VMX: Split out guts of EPT violation to common/exposed function isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 050/113] KVM: VMX: Move setting of EPT MMU masks to common VT-x code isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 051/113] KVM: TDX: Add accessors VMX VMCS helpers isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 052/113] KVM: TDX: Add load_mmu_pgd method for TDX isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 053/113] KVM: TDX: Retry seamcall when TDX_OPERAND_BUSY with operand SEPT isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 054/113] KVM: TDX: Require TDP MMU and mmio caching for TDX isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 055/113] KVM: TDX: TDP MMU TDX support isaku.yamahata
[not found] ` <CAAYXXYzR6JZq8OOD2qqC_vVGiCa3e5KmZZ+36YffGW6JFK4+Hw@mail.gmail.com>
2023-06-08 11:29 ` Erdem Aktas
2023-06-08 20:55 ` Isaku Yamahata
2023-05-29 4:19 ` [PATCH v14 056/113] KVM: TDX: MTRR: implement get_mt_mask() for TDX isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 057/113] [MARKER] The start of TDX KVM patch series: TD finalization isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 058/113] KVM: x86/mmu: Introduce kvm_mmu_map_tdp_page() for use by TDX isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 059/113] KVM: TDX: Create initial guest memory isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 060/113] KVM: TDX: Finalize VM initialization isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 061/113] [MARKER] The start of TDX KVM patch series: TD vcpu enter/exit isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 062/113] KVM: TDX: Add helper assembly function to TDX vcpu isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 063/113] KVM: TDX: Implement TDX vcpu enter/exit path isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 064/113] KVM: TDX: vcpu_run: save/restore host state(host kernel gs) isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 065/113] KVM: TDX: restore host xsave state when exit from the guest TD isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 066/113] KVM: x86: Allow to update cached values in kvm_user_return_msrs w/o wrmsr isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 067/113] KVM: TDX: restore user ret MSRs isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 068/113] KVM: TDX: Add TSX_CTRL msr into uret_msrs list isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 069/113] [MARKER] The start of TDX KVM patch series: TD vcpu exits/interrupts/hypercalls isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 070/113] KVM: TDX: complete interrupts after tdexit isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 071/113] KVM: TDX: restore debug store when TD exit isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 072/113] KVM: TDX: handle vcpu migration over logical processor isaku.yamahata
2023-07-12 6:08 ` Wen, Qian
2023-07-17 17:12 ` Isaku Yamahata
2023-05-29 4:19 ` [PATCH v14 073/113] KVM: x86: Add a switch_db_regs flag to handle TDX's auto-switched behavior isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 074/113] KVM: TDX: Add support for find pending IRQ in a protected local APIC isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 075/113] KVM: x86: Assume timer IRQ was injected if APIC state is proteced isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 076/113] KVM: TDX: remove use of struct vcpu_vmx from posted_interrupt.c isaku.yamahata
2023-05-29 4:19 ` [PATCH v14 077/113] KVM: TDX: Implement interrupt injection isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 078/113] KVM: TDX: Implements vcpu request_immediate_exit isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 079/113] KVM: TDX: Implement methods to inject NMI isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 080/113] KVM: VMX: Modify NMI and INTR handlers to take intr_info as function argument isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 081/113] KVM: VMX: Move NMI/exception handler to common helper isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 082/113] KVM: x86: Split core of hypercall emulation to helper function isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 083/113] KVM: TDX: Add a place holder to handle TDX VM exit isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 084/113] KVM: TDX: Handle vmentry failure for INTEL TD guest isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 085/113] KVM: TDX: handle EXIT_REASON_OTHER_SMI isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 086/113] KVM: TDX: handle ept violation/misconfig exit isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 087/113] KVM: TDX: handle EXCEPTION_NMI and EXTERNAL_INTERRUPT isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 088/113] KVM: TDX: Add a place holder for handler of TDX hypercalls (TDG.VP.VMCALL) isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 089/113] KVM: TDX: handle KVM hypercall with TDG.VP.VMCALL isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 090/113] KVM: TDX: Add KVM Exit for TDX TDG.VP.VMCALL isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 091/113] KVM: TDX: Handle TDX PV CPUID hypercall isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 092/113] KVM: TDX: Handle TDX PV HLT hypercall isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 093/113] KVM: TDX: Handle TDX PV port io hypercall isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 094/113] KVM: TDX: Handle TDX PV MMIO hypercall isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 095/113] KVM: TDX: Implement callbacks for MSR operations for TDX isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 096/113] KVM: TDX: Handle TDX PV rdmsr/wrmsr hypercall isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 097/113] KVM: TDX: Handle MSR MTRRCap and MTRRDefType access isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 098/113] KVM: TDX: Handle TDG.VP.VMCALL<GetTdVmCallInfo> hypercall isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 099/113] KVM: TDX: Silently discard SMI request isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 100/113] KVM: TDX: Silently ignore INIT/SIPI isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 101/113] KVM: TDX: Add methods to ignore accesses to CPU state isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 102/113] KVM: TDX: Add methods to ignore guest instruction emulation isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 103/113] KVM: TDX: Add a method to ignore dirty logging isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 104/113] KVM: TDX: Add methods to ignore VMX preemption timer isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 105/113] KVM: TDX: Add methods to ignore accesses to TSC isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 106/113] KVM: TDX: Ignore setting up mce isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 107/113] KVM: TDX: Add a method to ignore for TDX to ignore hypercall patch isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 108/113] KVM: TDX: Add methods to ignore virtual apic related operation isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 109/113] Documentation/virt/kvm: Document on Trust Domain Extensions(TDX) isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 110/113] KVM: x86: design documentation on TDX support of x86 KVM TDP MMU isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 111/113] RFC: KVM: x86, TDX: Add check for setting CPUID isaku.yamahata
2023-06-03 1:29 ` Zhi Wang
2023-06-03 18:02 ` Isaku Yamahata
2023-06-05 2:25 ` Zhi Wang
2023-06-05 20:46 ` Isaku Yamahata
2023-06-06 23:57 ` Huang, Kai
2023-06-13 17:31 ` Isaku Yamahata
2023-06-14 9:43 ` Huang, Kai
2023-05-29 4:20 ` [PATCH v14 112/113] RFC: KVM: TDX: Make busy with S-EPT on entry bug isaku.yamahata
2023-05-29 4:20 ` [PATCH v14 113/113] [MARKER] the end of (the first phase of) TDX KVM patch series isaku.yamahata
2023-05-30 7:34 ` [PATCH v14 000/113] KVM TDX basic feature support Wang, Wei W
2023-05-30 22:11 ` Isaku Yamahata
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=76765dd2b0e0572949e175625e5fb838fb92bcd2.1685333727.git.isaku.yamahata@intel.com \
--to=isaku.yamahata@intel.com \
--cc=chen.bo@intel.com \
--cc=dmatlack@google.com \
--cc=erdemaktas@google.com \
--cc=isaku.yamahata@gmail.com \
--cc=kai.huang@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=sagis@google.com \
--cc=seanjc@google.com \
--cc=zhi.wang.linux@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).