lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <payubtjhc2kxtkkhqudjof4srs64fo4dnwkawslinuwzbrqlcq@sqythyig5r3c>
Date: Thu, 5 Feb 2026 23:33:13 +0530
From: Anirudh Rayabharam <anirudh@...rudhrb.com>
To: Stanislav Kinsburskii <skinsburskii@...ux.microsoft.com>
Cc: kys@...rosoft.com, haiyangz@...rosoft.com, wei.liu@...nel.org, 
	decui@...rosoft.com, longli@...rosoft.com, linux-hyperv@...r.kernel.org, 
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 3/4] mshv: Handle insufficient contiguous memory
 hypervisor status

On Mon, Feb 02, 2026 at 05:59:09PM +0000, Stanislav Kinsburskii wrote:
> The HV_STATUS_INSUFFICIENT_CONTIGUOUS_MEMORY status indicates that the
> hypervisor lacks sufficient contiguous memory for its internal allocations.
> 
> When this status is encountered, allocate and deposit
> HV_MAX_CONTIGUOUS_ALLOCATION_PAGES contiguous pages to the hypervisor.
> HV_MAX_CONTIGUOUS_ALLOCATION_PAGES is defined in the hypervisor headers, a
> deposit of this size will always satisfy the hypervisor's requirements.
> 
> Signed-off-by: Stanislav Kinsburskii <skinsburskii@...ux.microsoft.com>
> ---
>  drivers/hv/hv_common.c      |    1 +
>  drivers/hv/hv_proc.c        |    4 ++++
>  include/hyperv/hvgdk_mini.h |    1 +
>  include/hyperv/hvhdk_mini.h |    2 ++
>  4 files changed, 8 insertions(+)
> 
> diff --git a/drivers/hv/hv_common.c b/drivers/hv/hv_common.c
> index 0a3ab7efed46..c7f63c9de503 100644
> --- a/drivers/hv/hv_common.c
> +++ b/drivers/hv/hv_common.c
> @@ -791,6 +791,7 @@ static const struct hv_status_info hv_status_infos[] = {
>  	_STATUS_INFO(HV_STATUS_UNKNOWN_PROPERTY,		-EIO),
>  	_STATUS_INFO(HV_STATUS_PROPERTY_VALUE_OUT_OF_RANGE,	-EIO),
>  	_STATUS_INFO(HV_STATUS_INSUFFICIENT_MEMORY,		-ENOMEM),
> +	_STATUS_INFO(HV_STATUS_INSUFFICIENT_CONTIGUOUS_MEMORY,	-ENOMEM),
>  	_STATUS_INFO(HV_STATUS_INVALID_PARTITION_ID,		-EINVAL),
>  	_STATUS_INFO(HV_STATUS_INVALID_VP_INDEX,		-EINVAL),
>  	_STATUS_INFO(HV_STATUS_NOT_FOUND,			-EIO),
> diff --git a/drivers/hv/hv_proc.c b/drivers/hv/hv_proc.c
> index ffa25cd6e4e9..dfa27be66ff7 100644
> --- a/drivers/hv/hv_proc.c
> +++ b/drivers/hv/hv_proc.c
> @@ -119,6 +119,9 @@ int hv_deposit_memory_node(int node, u64 partition_id,
>  	case HV_STATUS_INSUFFICIENT_MEMORY:
>  		num_pages = 1;
>  		break;
> +	case HV_STATUS_INSUFFICIENT_CONTIGUOUS_MEMORY:
> +		num_pages = HV_MAX_CONTIGUOUS_ALLOCATION_PAGES;
> +		break;
>  	default:
>  		hv_status_err(hv_status, "Unexpected!\n");
>  		return -ENOMEM;
> @@ -131,6 +134,7 @@ bool hv_result_needs_memory(u64 status)
>  {
>  	switch (hv_result(status)) {
>  	case HV_STATUS_INSUFFICIENT_MEMORY:
> +	case HV_STATUS_INSUFFICIENT_CONTIGUOUS_MEMORY:
>  		return true;
>  	}
>  	return false;
> diff --git a/include/hyperv/hvgdk_mini.h b/include/hyperv/hvgdk_mini.h
> index 04b18d0e37af..70f22ef44948 100644
> --- a/include/hyperv/hvgdk_mini.h
> +++ b/include/hyperv/hvgdk_mini.h
> @@ -38,6 +38,7 @@ struct hv_u128 {
>  #define HV_STATUS_INVALID_LP_INDEX		    0x41
>  #define HV_STATUS_INVALID_REGISTER_VALUE	    0x50
>  #define HV_STATUS_OPERATION_FAILED		    0x71
> +#define HV_STATUS_INSUFFICIENT_CONTIGUOUS_MEMORY    0x75
>  #define HV_STATUS_TIME_OUT			    0x78
>  #define HV_STATUS_CALL_PENDING			    0x79
>  #define HV_STATUS_VTL_ALREADY_ENABLED		    0x86
> diff --git a/include/hyperv/hvhdk_mini.h b/include/hyperv/hvhdk_mini.h
> index c0300910808b..091c03e26046 100644
> --- a/include/hyperv/hvhdk_mini.h
> +++ b/include/hyperv/hvhdk_mini.h
> @@ -7,6 +7,8 @@
>  
>  #include "hvgdk_mini.h"
>  
> +#define HV_MAX_CONTIGUOUS_ALLOCATION_PAGES	8
> +
>  /*
>   * Doorbell connection_info flags.
>   */
> 
> 

Reviewed-by: Anirudh Rayabharam (Microsoft) <anirudh@...rudhrb.com>


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ