summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_phys_gpu.h')
-rw-r--r--kernel/gsp_phys_gpu.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/kernel/gsp_phys_gpu.h b/kernel/gsp_phys_gpu.h
index 70b98e4..6bfe3f0 100644
--- a/kernel/gsp_phys_gpu.h
+++ b/kernel/gsp_phys_gpu.h
@@ -124,6 +124,21 @@ bool gsp_phys_work_defer_release_enabled(void);
bool gsp_phys_work_hw_primary_enabled(void);
/*
+ * True when the gsp_phys_relay module parameter is set (default 0: a
+ * forwarded guest CE copy polls the module-owned ladder semaphore and the
+ * software release path stays the sole author of the guest-visible release).
+ * When set with gsp_phys_work_forward, gsp_phys_guest_mem and
+ * gsp_phys_work_defer_release, one selected one-word release of a forwarded
+ * guest push is authored by the real CE engine directly into the
+ * guest-visible semaphore page (a third scratch PTE maps that page) and the
+ * service thread skips the software apply of that record once the guest word
+ * carries the payload; every failure, timeout, abort or failed verification
+ * falls back to the unchanged software apply, so a release is never lost or
+ * duplicated. One-line rollback: gsp_phys_relay=0.
+ */
+bool gsp_phys_relay_enabled(void);
+
+/*
* Translate a guest GPA to the pinned host PA (gsp_phys_guest_mem ladder
* support). The mdev is registered with vfio_register_emulated_iommu_dev():
* its VFIO type-1 container keeps the guest DMA mappings privately, so