The hypervisor's map GPA hypercall handles large pages intelligently, combining 2M pages into 1G mappings when alignment allows.
Remove the PMD_ORDER check in mshv_chunk_stride() so that 1G hugepages and other large page orders are passed through as 2M-aligned chunks, letting the hypervisor promote them to 1G mappings automatically. Signed-off-by: Anirudh Rayabharam (Microsoft) <[email protected]> --- drivers/hv/mshv_regions.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/hv/mshv_regions.c b/drivers/hv/mshv_regions.c index fdffd4f002f6..5f617a96d97a 100644 --- a/drivers/hv/mshv_regions.c +++ b/drivers/hv/mshv_regions.c @@ -29,7 +29,7 @@ * Uses huge page stride if the backing page is huge and the guest mapping * is properly aligned; otherwise falls back to single page stride. * - * Return: Stride in pages, or -EINVAL if page order is unsupported. + * Return: Stride in pages. */ static int mshv_chunk_stride(struct page *page, u64 gfn, u64 page_count) @@ -47,9 +47,6 @@ static int mshv_chunk_stride(struct page *page, return 1; page_order = folio_order(page_folio(page)); - /* The hypervisor only supports 2M huge page */ - if (page_order != PMD_ORDER) - return -EINVAL; return 1 << page_order; } --- base-commit: cd9f2e7d6e5b1837ef40b96e300fa28b73ab5a77 change-id: 20260416-huge_1g-e44461393c8f Best regards, -- Anirudh Rayabharam (Microsoft) <[email protected]>

