[PATCH 1/1] mshv: Add comment about huge page mappings in guest physical address space
From: mhkelley58
Date: Mon Feb 02 2026 - 11:51:29 EST
From: Michael Kelley <mhklinux@xxxxxxxxxxx>
Huge page mappings in the guest physical address space depend on having
matching alignment of the userspace address in the parent partition and
of the guest physical address. Add a comment that captures this
information. See the link to the mailing list thread.
No code or functional change.
Link: https://lore.kernel.org/linux-hyperv/aUrC94YvscoqBzh3@skinsburskii.localdomain/T/#m0871d2cae9b297fd397ddb8459e534981307c7dc
Signed-off-by: Michael Kelley <mhklinux@xxxxxxxxxxx>
---
drivers/hv/mshv_root_main.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/hv/mshv_root_main.c b/drivers/hv/mshv_root_main.c
index 681b58154d5e..bc738ff4508e 100644
--- a/drivers/hv/mshv_root_main.c
+++ b/drivers/hv/mshv_root_main.c
@@ -1389,6 +1389,20 @@ mshv_partition_ioctl_set_memory(struct mshv_partition *partition,
if (mem.flags & BIT(MSHV_SET_MEM_BIT_UNMAP))
return mshv_unmap_user_memory(partition, mem);
+ /*
+ * If the userspace_addr and the guest physical address (as derived
+ * from the guest_pfn) have the same alignment modulo PMD huge page
+ * size, the MSHV driver can map any PMD huge pages to the guest
+ * physical address space as PMD huge pages. If the alignments do
+ * not match, PMD huge pages must be mapped as single pages in the
+ * guest physical address space. The MSHV driver does not enforce
+ * that the alignments match, and it invokes the hypervisor to set
+ * up correct functional mappings either way. See mshv_chunk_stride().
+ * The caller of the ioctl is responsible for providing userspace_addr
+ * and guest_pfn values with matching alignments if it wants the guest
+ * to get the performance benefits of PMD huge page mappings of its
+ * physical address space to real system memory.
+ */
return mshv_map_user_memory(partition, mem);
}
--
2.25.1