lkml.org 
[lkml]   [2024]   [Mar]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v19 070/130] KVM: TDX: TDP MMU TDX support
    >+#if IS_ENABLED(CONFIG_HYPERV)
    >+static int vt_flush_remote_tlbs(struct kvm *kvm);
    >+#endif
    >+
    > static __init int vt_hardware_setup(void)
    > {
    > int ret;
    >@@ -49,11 +53,29 @@ static __init int vt_hardware_setup(void)
    > pr_warn_ratelimited("TDX requires mmio caching. Please enable mmio caching for TDX.\n");
    > }
    >
    >+#if IS_ENABLED(CONFIG_HYPERV)
    >+ /*
    >+ * TDX KVM overrides flush_remote_tlbs method and assumes
    >+ * flush_remote_tlbs_range = NULL that falls back to
    >+ * flush_remote_tlbs. Disable TDX if there are conflicts.
    >+ */
    >+ if (vt_x86_ops.flush_remote_tlbs ||
    >+ vt_x86_ops.flush_remote_tlbs_range) {
    >+ enable_tdx = false;
    >+ pr_warn_ratelimited("TDX requires baremetal. Not Supported on VMM guest.\n");
    >+ }
    >+#endif
    >+
    > enable_tdx = enable_tdx && !tdx_hardware_setup(&vt_x86_ops);
    > if (enable_tdx)
    > vt_x86_ops.vm_size = max_t(unsigned int, vt_x86_ops.vm_size,
    > sizeof(struct kvm_tdx));
    >
    >+#if IS_ENABLED(CONFIG_HYPERV)
    >+ if (enable_tdx)
    >+ vt_x86_ops.flush_remote_tlbs = vt_flush_remote_tlbs;

    Is this hook necessary/beneficial to TDX?

    if no, we can leave .flush_remote_tlbs as NULL. if yes, we should do:

    struct kvm_x86_ops {
    ..
    #if IS_ENABLED(CONFIG_HYPERV) || IS_ENABLED(TDX...)
    int (*flush_remote_tlbs)(struct kvm *kvm);
    int (*flush_remote_tlbs_range)(struct kvm *kvm, gfn_t gfn,
    gfn_t nr_pages);
    #endif

    \
     
     \ /
      Last update: 2024-05-27 16:13    [W:4.041 / U:0.388 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site