On Thu, Apr 16, 2026 at 01:37:15PM +0000, Anirudh Rayabharam (Microsoft) wrote:
> 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)

Nit: the return type of the function should now become unsigned.

Reviewed-by: Stanislav Kinsburskii <[email protected]>

> @@ -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]>
> 

Reply via email to