All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sunil Muthuswamy <sunilmut@microsoft.com>
To: Nuno Das Neves <nunodasneves@linux.microsoft.com>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "virtualization@lists.linux-foundation.org" 
	<virtualization@lists.linux-foundation.org>,
	Michael Kelley <mikelley@microsoft.com>,
	"viremana@linux.microsoft.com" <viremana@linux.microsoft.com>,
	"wei.liu@kernel.org" <wei.liu@kernel.org>,
	vkuznets <vkuznets@redhat.com>,
	Lillian Grassin-Drake <Lillian.GrassinDrake@microsoft.com>,
	KY Srinivasan <kys@microsoft.com>
Subject: RE: [PATCH 02/19] asm-generic/hyperv: convert hyperv statuses to strings
Date: Thu, 10 Jun 2021 18:42:17 +0000	[thread overview]
Message-ID: <MW4PR21MB200490109062F93EDCBB3DE7C0359@MW4PR21MB2004.namprd21.prod.outlook.com> (raw)
In-Reply-To: <1622241819-21155-3-git-send-email-nunodasneves@linux.microsoft.com>



> -----Original Message-----
> From: Nuno Das Neves <nunodasneves@linux.microsoft.com>
> Sent: Friday, May 28, 2021 3:43 PM
> To: linux-hyperv@vger.kernel.org; linux-kernel@vger.kernel.org
> Cc: virtualization@lists.linux-foundation.org; Michael Kelley <mikelley@microsoft.com>; viremana@linux.microsoft.com; Sunil
> Muthuswamy <sunilmut@microsoft.com>; wei.liu@kernel.org; vkuznets <vkuznets@redhat.com>; Lillian Grassin-Drake
> <Lillian.GrassinDrake@microsoft.com>; KY Srinivasan <kys@microsoft.com>
> Subject: [PATCH 02/19] asm-generic/hyperv: convert hyperv statuses to strings
> 
> Allow hyperv hypercall failures to be debugged more easily with dmesg.
> This will be used in the mshv module.
> 
> Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
> ---
>  arch/x86/hyperv/hv_init.c         |  2 +-
>  arch/x86/hyperv/hv_proc.c         | 10 +++---
>  include/asm-generic/hyperv-tlfs.h | 52 ++++++++++++++++++-------------
>  include/asm-generic/mshyperv.h    |  8 +++++
>  4 files changed, 44 insertions(+), 28 deletions(-)
> 
> diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c
> index bb0ae4b5c00f..722bafdb2225 100644
> --- a/arch/x86/hyperv/hv_init.c
> +++ b/arch/x86/hyperv/hv_init.c
> @@ -349,7 +349,7 @@ static void __init hv_get_partition_id(void)
>  	status = hv_do_hypercall(HVCALL_GET_PARTITION_ID, NULL, output_page);
>  	if (!hv_result_success(status)) {
>  		/* No point in proceeding if this failed */
> -		pr_err("Failed to get partition ID: %lld\n", status);
> +		pr_err("Failed to get partition ID: %s\n", hv_status_to_string(status));
>  		BUG();
>  	}
>  	hv_current_partition_id = output_page->partition_id;
> diff --git a/arch/x86/hyperv/hv_proc.c b/arch/x86/hyperv/hv_proc.c
> index 59cf9a9e0975..30951e778577 100644
> --- a/arch/x86/hyperv/hv_proc.c
> +++ b/arch/x86/hyperv/hv_proc.c
> @@ -117,7 +117,7 @@ int hv_call_deposit_pages(int node, u64 partition_id, u32 num_pages)
>  				     page_count, 0, input_page, NULL);
>  	local_irq_restore(flags);
>  	if (!hv_result_success(status)) {
> -		pr_err("Failed to deposit pages: %lld\n", status);
> +		pr_err("Failed to deposit pages: %s\n", hv_status_to_string(status));
>  		ret = hv_status_to_errno(status);
>  		goto err_free_allocations;
>  	}
> @@ -172,8 +172,8 @@ int hv_call_add_logical_proc(int node, u32 lp_index, u32 apic_id)
> 
>  		if (hv_result(status) != HV_STATUS_INSUFFICIENT_MEMORY) {
>  			if (!hv_result_success(status)) {
> -				pr_err("%s: cpu %u apic ID %u, %lld\n", __func__,
> -				       lp_index, apic_id, status);
> +				pr_err("%s: cpu %u apic ID %u, %s\n", __func__,
> +				       lp_index, apic_id, hv_status_to_string(status));
>  				ret = hv_status_to_errno(status);
>  			}
>  			break;
> @@ -222,8 +222,8 @@ int hv_call_create_vp(int node, u64 partition_id, u32 vp_index, u32 flags)
> 
>  		if (hv_result(status) != HV_STATUS_INSUFFICIENT_MEMORY) {
>  			if (!hv_result_success(status)) {
> -				pr_err("%s: vcpu %u, lp %u, %lld\n", __func__,
> -				       vp_index, flags, status);
> +				pr_err("%s: vcpu %u, lp %u, %s\n", __func__,
> +				       vp_index, flags, hv_status_to_string(status));
>  				ret = hv_status_to_errno(status);
>  			}
>  			break;
> diff --git a/include/asm-generic/hyperv-tlfs.h b/include/asm-generic/hyperv-tlfs.h
> index fe6d41d0b114..40ff7cdd4a2b 100644
> --- a/include/asm-generic/hyperv-tlfs.h
> +++ b/include/asm-generic/hyperv-tlfs.h
> @@ -189,28 +189,36 @@ enum HV_GENERIC_SET_FORMAT {
>  #define HV_HYPERCALL_REP_START_MASK	GENMASK_ULL(59, 48)
> 
>  /* hypercall status code */
> -#define HV_STATUS_SUCCESS			0x0
> -#define HV_STATUS_INVALID_HYPERCALL_CODE	0x2
> -#define HV_STATUS_INVALID_HYPERCALL_INPUT	0x3
> -#define HV_STATUS_INVALID_ALIGNMENT		0x4
> -#define HV_STATUS_INVALID_PARAMETER		0x5
> -#define HV_STATUS_ACCESS_DENIED			0x6
> -#define HV_STATUS_INVALID_PARTITION_STATE	0x7
> -#define HV_STATUS_OPERATION_DENIED		0x8
> -#define HV_STATUS_UNKNOWN_PROPERTY		0x9
> -#define HV_STATUS_PROPERTY_VALUE_OUT_OF_RANGE	0xA
> -#define HV_STATUS_INSUFFICIENT_MEMORY		0xB
> -#define HV_STATUS_INVALID_PARTITION_ID		0xD
> -#define HV_STATUS_INVALID_VP_INDEX		0xE
> -#define HV_STATUS_NOT_FOUND			0x10
> -#define HV_STATUS_INVALID_PORT_ID		0x11
> -#define HV_STATUS_INVALID_CONNECTION_ID		0x12
> -#define HV_STATUS_INSUFFICIENT_BUFFERS		0x13
> -#define HV_STATUS_NOT_ACKNOWLEDGED		0x14
> -#define HV_STATUS_INVALID_VP_STATE		0x15
> -#define HV_STATUS_NO_RESOURCES			0x1D
> -#define HV_STATUS_INVALID_LP_INDEX		0x41
> -#define HV_STATUS_INVALID_REGISTER_VALUE	0x50
> +#define __HV_STATUS_DEF(OP) \
> +	OP(HV_STATUS_SUCCESS,				0x0) \
> +	OP(HV_STATUS_INVALID_HYPERCALL_CODE,		0x2) \
> +	OP(HV_STATUS_INVALID_HYPERCALL_INPUT,		0x3) \
> +	OP(HV_STATUS_INVALID_ALIGNMENT,			0x4) \
> +	OP(HV_STATUS_INVALID_PARAMETER,			0x5) \
> +	OP(HV_STATUS_ACCESS_DENIED,			0x6) \
> +	OP(HV_STATUS_INVALID_PARTITION_STATE,		0x7) \
> +	OP(HV_STATUS_OPERATION_DENIED,			0x8) \
> +	OP(HV_STATUS_UNKNOWN_PROPERTY,			0x9) \
> +	OP(HV_STATUS_PROPERTY_VALUE_OUT_OF_RANGE,	0xA) \
> +	OP(HV_STATUS_INSUFFICIENT_MEMORY,		0xB) \
> +	OP(HV_STATUS_INVALID_PARTITION_ID,		0xD) \
> +	OP(HV_STATUS_INVALID_VP_INDEX,			0xE) \
> +	OP(HV_STATUS_NOT_FOUND,				0x10) \
> +	OP(HV_STATUS_INVALID_PORT_ID,			0x11) \
> +	OP(HV_STATUS_INVALID_CONNECTION_ID,		0x12) \
> +	OP(HV_STATUS_INSUFFICIENT_BUFFERS,		0x13) \
> +	OP(HV_STATUS_NOT_ACKNOWLEDGED,			0x14) \
> +	OP(HV_STATUS_INVALID_VP_STATE,			0x15) \
> +	OP(HV_STATUS_NO_RESOURCES,			0x1D) \
> +	OP(HV_STATUS_INVALID_LP_INDEX,			0x41) \
> +	OP(HV_STATUS_INVALID_REGISTER_VALUE,		0x50)
> +
> +#define __HV_MAKE_HV_STATUS_ENUM(NAME, VAL) NAME = (VAL),
> +#define __HV_MAKE_HV_STATUS_CASE(NAME, VAL) case (NAME): return (#NAME);
> +
> +enum hv_status {
> +	__HV_STATUS_DEF(__HV_MAKE_HV_STATUS_ENUM)
> +};
> 
>  /*
>   * The Hyper-V TimeRefCount register and the TSC
> diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h
> index 9a000ba2bb75..21fb71ca1ba9 100644
> --- a/include/asm-generic/mshyperv.h
> +++ b/include/asm-generic/mshyperv.h
> @@ -59,6 +59,14 @@ static inline unsigned int hv_repcomp(u64 status)
>  			 HV_HYPERCALL_REP_COMP_OFFSET;
>  }
> 
> +static inline const char *hv_status_to_string(u64 hv_status)
> +{
> +	switch (hv_result(hv_status)) {
> +	__HV_STATUS_DEF(__HV_MAKE_HV_STATUS_CASE)
> +	default : return "Unknown";
> +	}
> +}
Wouldn't this be a big switch statement that will get duplicated all over the place
in the code because of the inline (and also the strings within)?

- Sunil

WARNING: multiple messages have this Message-ID (diff)
From: Sunil Muthuswamy via Virtualization <virtualization@lists.linux-foundation.org>
To: Nuno Das Neves <nunodasneves@linux.microsoft.com>,
	"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "wei.liu@kernel.org" <wei.liu@kernel.org>,
	Lillian Grassin-Drake <Lillian.GrassinDrake@microsoft.com>,
	Michael Kelley <mikelley@microsoft.com>,
	"virtualization@lists.linux-foundation.org"
	<virtualization@lists.linux-foundation.org>,
	"viremana@linux.microsoft.com" <viremana@linux.microsoft.com>
Subject: RE: [PATCH 02/19] asm-generic/hyperv: convert hyperv statuses to strings
Date: Thu, 10 Jun 2021 18:42:17 +0000	[thread overview]
Message-ID: <MW4PR21MB200490109062F93EDCBB3DE7C0359@MW4PR21MB2004.namprd21.prod.outlook.com> (raw)
In-Reply-To: <1622241819-21155-3-git-send-email-nunodasneves@linux.microsoft.com>



> -----Original Message-----
> From: Nuno Das Neves <nunodasneves@linux.microsoft.com>
> Sent: Friday, May 28, 2021 3:43 PM
> To: linux-hyperv@vger.kernel.org; linux-kernel@vger.kernel.org
> Cc: virtualization@lists.linux-foundation.org; Michael Kelley <mikelley@microsoft.com>; viremana@linux.microsoft.com; Sunil
> Muthuswamy <sunilmut@microsoft.com>; wei.liu@kernel.org; vkuznets <vkuznets@redhat.com>; Lillian Grassin-Drake
> <Lillian.GrassinDrake@microsoft.com>; KY Srinivasan <kys@microsoft.com>
> Subject: [PATCH 02/19] asm-generic/hyperv: convert hyperv statuses to strings
> 
> Allow hyperv hypercall failures to be debugged more easily with dmesg.
> This will be used in the mshv module.
> 
> Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
> ---
>  arch/x86/hyperv/hv_init.c         |  2 +-
>  arch/x86/hyperv/hv_proc.c         | 10 +++---
>  include/asm-generic/hyperv-tlfs.h | 52 ++++++++++++++++++-------------
>  include/asm-generic/mshyperv.h    |  8 +++++
>  4 files changed, 44 insertions(+), 28 deletions(-)
> 
> diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c
> index bb0ae4b5c00f..722bafdb2225 100644
> --- a/arch/x86/hyperv/hv_init.c
> +++ b/arch/x86/hyperv/hv_init.c
> @@ -349,7 +349,7 @@ static void __init hv_get_partition_id(void)
>  	status = hv_do_hypercall(HVCALL_GET_PARTITION_ID, NULL, output_page);
>  	if (!hv_result_success(status)) {
>  		/* No point in proceeding if this failed */
> -		pr_err("Failed to get partition ID: %lld\n", status);
> +		pr_err("Failed to get partition ID: %s\n", hv_status_to_string(status));
>  		BUG();
>  	}
>  	hv_current_partition_id = output_page->partition_id;
> diff --git a/arch/x86/hyperv/hv_proc.c b/arch/x86/hyperv/hv_proc.c
> index 59cf9a9e0975..30951e778577 100644
> --- a/arch/x86/hyperv/hv_proc.c
> +++ b/arch/x86/hyperv/hv_proc.c
> @@ -117,7 +117,7 @@ int hv_call_deposit_pages(int node, u64 partition_id, u32 num_pages)
>  				     page_count, 0, input_page, NULL);
>  	local_irq_restore(flags);
>  	if (!hv_result_success(status)) {
> -		pr_err("Failed to deposit pages: %lld\n", status);
> +		pr_err("Failed to deposit pages: %s\n", hv_status_to_string(status));
>  		ret = hv_status_to_errno(status);
>  		goto err_free_allocations;
>  	}
> @@ -172,8 +172,8 @@ int hv_call_add_logical_proc(int node, u32 lp_index, u32 apic_id)
> 
>  		if (hv_result(status) != HV_STATUS_INSUFFICIENT_MEMORY) {
>  			if (!hv_result_success(status)) {
> -				pr_err("%s: cpu %u apic ID %u, %lld\n", __func__,
> -				       lp_index, apic_id, status);
> +				pr_err("%s: cpu %u apic ID %u, %s\n", __func__,
> +				       lp_index, apic_id, hv_status_to_string(status));
>  				ret = hv_status_to_errno(status);
>  			}
>  			break;
> @@ -222,8 +222,8 @@ int hv_call_create_vp(int node, u64 partition_id, u32 vp_index, u32 flags)
> 
>  		if (hv_result(status) != HV_STATUS_INSUFFICIENT_MEMORY) {
>  			if (!hv_result_success(status)) {
> -				pr_err("%s: vcpu %u, lp %u, %lld\n", __func__,
> -				       vp_index, flags, status);
> +				pr_err("%s: vcpu %u, lp %u, %s\n", __func__,
> +				       vp_index, flags, hv_status_to_string(status));
>  				ret = hv_status_to_errno(status);
>  			}
>  			break;
> diff --git a/include/asm-generic/hyperv-tlfs.h b/include/asm-generic/hyperv-tlfs.h
> index fe6d41d0b114..40ff7cdd4a2b 100644
> --- a/include/asm-generic/hyperv-tlfs.h
> +++ b/include/asm-generic/hyperv-tlfs.h
> @@ -189,28 +189,36 @@ enum HV_GENERIC_SET_FORMAT {
>  #define HV_HYPERCALL_REP_START_MASK	GENMASK_ULL(59, 48)
> 
>  /* hypercall status code */
> -#define HV_STATUS_SUCCESS			0x0
> -#define HV_STATUS_INVALID_HYPERCALL_CODE	0x2
> -#define HV_STATUS_INVALID_HYPERCALL_INPUT	0x3
> -#define HV_STATUS_INVALID_ALIGNMENT		0x4
> -#define HV_STATUS_INVALID_PARAMETER		0x5
> -#define HV_STATUS_ACCESS_DENIED			0x6
> -#define HV_STATUS_INVALID_PARTITION_STATE	0x7
> -#define HV_STATUS_OPERATION_DENIED		0x8
> -#define HV_STATUS_UNKNOWN_PROPERTY		0x9
> -#define HV_STATUS_PROPERTY_VALUE_OUT_OF_RANGE	0xA
> -#define HV_STATUS_INSUFFICIENT_MEMORY		0xB
> -#define HV_STATUS_INVALID_PARTITION_ID		0xD
> -#define HV_STATUS_INVALID_VP_INDEX		0xE
> -#define HV_STATUS_NOT_FOUND			0x10
> -#define HV_STATUS_INVALID_PORT_ID		0x11
> -#define HV_STATUS_INVALID_CONNECTION_ID		0x12
> -#define HV_STATUS_INSUFFICIENT_BUFFERS		0x13
> -#define HV_STATUS_NOT_ACKNOWLEDGED		0x14
> -#define HV_STATUS_INVALID_VP_STATE		0x15
> -#define HV_STATUS_NO_RESOURCES			0x1D
> -#define HV_STATUS_INVALID_LP_INDEX		0x41
> -#define HV_STATUS_INVALID_REGISTER_VALUE	0x50
> +#define __HV_STATUS_DEF(OP) \
> +	OP(HV_STATUS_SUCCESS,				0x0) \
> +	OP(HV_STATUS_INVALID_HYPERCALL_CODE,		0x2) \
> +	OP(HV_STATUS_INVALID_HYPERCALL_INPUT,		0x3) \
> +	OP(HV_STATUS_INVALID_ALIGNMENT,			0x4) \
> +	OP(HV_STATUS_INVALID_PARAMETER,			0x5) \
> +	OP(HV_STATUS_ACCESS_DENIED,			0x6) \
> +	OP(HV_STATUS_INVALID_PARTITION_STATE,		0x7) \
> +	OP(HV_STATUS_OPERATION_DENIED,			0x8) \
> +	OP(HV_STATUS_UNKNOWN_PROPERTY,			0x9) \
> +	OP(HV_STATUS_PROPERTY_VALUE_OUT_OF_RANGE,	0xA) \
> +	OP(HV_STATUS_INSUFFICIENT_MEMORY,		0xB) \
> +	OP(HV_STATUS_INVALID_PARTITION_ID,		0xD) \
> +	OP(HV_STATUS_INVALID_VP_INDEX,			0xE) \
> +	OP(HV_STATUS_NOT_FOUND,				0x10) \
> +	OP(HV_STATUS_INVALID_PORT_ID,			0x11) \
> +	OP(HV_STATUS_INVALID_CONNECTION_ID,		0x12) \
> +	OP(HV_STATUS_INSUFFICIENT_BUFFERS,		0x13) \
> +	OP(HV_STATUS_NOT_ACKNOWLEDGED,			0x14) \
> +	OP(HV_STATUS_INVALID_VP_STATE,			0x15) \
> +	OP(HV_STATUS_NO_RESOURCES,			0x1D) \
> +	OP(HV_STATUS_INVALID_LP_INDEX,			0x41) \
> +	OP(HV_STATUS_INVALID_REGISTER_VALUE,		0x50)
> +
> +#define __HV_MAKE_HV_STATUS_ENUM(NAME, VAL) NAME = (VAL),
> +#define __HV_MAKE_HV_STATUS_CASE(NAME, VAL) case (NAME): return (#NAME);
> +
> +enum hv_status {
> +	__HV_STATUS_DEF(__HV_MAKE_HV_STATUS_ENUM)
> +};
> 
>  /*
>   * The Hyper-V TimeRefCount register and the TSC
> diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h
> index 9a000ba2bb75..21fb71ca1ba9 100644
> --- a/include/asm-generic/mshyperv.h
> +++ b/include/asm-generic/mshyperv.h
> @@ -59,6 +59,14 @@ static inline unsigned int hv_repcomp(u64 status)
>  			 HV_HYPERCALL_REP_COMP_OFFSET;
>  }
> 
> +static inline const char *hv_status_to_string(u64 hv_status)
> +{
> +	switch (hv_result(hv_status)) {
> +	__HV_STATUS_DEF(__HV_MAKE_HV_STATUS_CASE)
> +	default : return "Unknown";
> +	}
> +}
Wouldn't this be a big switch statement that will get duplicated all over the place
in the code because of the inline (and also the strings within)?

- Sunil
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

  reply	other threads:[~2021-06-10 18:42 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-28 22:43 [PATCH 00/19] Microsoft Hypervisor root partition ioctl interface Nuno Das Neves
2021-05-28 22:43 ` [PATCH 01/19] x86/hyperv: convert hyperv statuses to linux error codes Nuno Das Neves
2021-06-10 18:22   ` Sunil Muthuswamy
2021-06-10 18:22     ` Sunil Muthuswamy via Virtualization
2021-05-28 22:43 ` [PATCH 02/19] asm-generic/hyperv: convert hyperv statuses to strings Nuno Das Neves
2021-06-10 18:42   ` Sunil Muthuswamy [this message]
2021-06-10 18:42     ` Sunil Muthuswamy via Virtualization
2021-06-23 22:15     ` Nuno Das Neves
2021-05-28 22:43 ` [PATCH 03/19] drivers/hv: minimal mshv module (/dev/mshv/) Nuno Das Neves
2021-05-29  0:01   ` Randy Dunlap
2021-05-29  0:01     ` Randy Dunlap
2021-06-01 19:45     ` Nuno Das Neves
2021-06-03  1:28   ` Sunil Muthuswamy
2021-06-03  1:28     ` Sunil Muthuswamy via Virtualization
2021-06-23 22:05     ` Nuno Das Neves
2021-06-27 12:00   ` Wei Liu
2021-07-06 15:41     ` Nuno Das Neves
2021-05-28 22:43 ` [PATCH 04/19] drivers/hv: check extension ioctl Nuno Das Neves
2021-05-28 22:43 ` [PATCH 05/19] drivers/hv: create partition ioctl Nuno Das Neves
2021-05-28 22:43 ` [PATCH 06/19] drivers/hv: create, initialize, finalize, delete partition hypercalls Nuno Das Neves
2021-06-01  7:59   ` Wei Liu
2021-06-01 19:52     ` Nuno Das Neves
2021-05-28 22:43 ` [PATCH 07/19] drivers/hv: withdraw memory hypercall Nuno Das Neves
2021-05-28 22:43 ` [PATCH 08/19] drivers/hv: map and unmap guest memory Nuno Das Neves
2021-05-28 22:43 ` [PATCH 09/19] drivers/hv: create vcpu ioctl Nuno Das Neves
2021-05-28 22:43 ` [PATCH 10/19] drivers/hv: get and set vcpu registers ioctls Nuno Das Neves
2021-05-29  4:28   ` kernel test robot
2021-05-29  4:28     ` kernel test robot
2021-05-29  4:28     ` kernel test robot
2021-05-28 22:43 ` [PATCH 11/19] drivers/hv: set up synic pages for intercept messages Nuno Das Neves
2021-05-29  5:44   ` kernel test robot
2021-05-29  5:44     ` kernel test robot
2021-05-29  5:44     ` kernel test robot
2021-05-28 22:43 ` [PATCH 12/19] drivers/hv: run vp ioctl and isr Nuno Das Neves
2021-05-29 21:55   ` Wei Liu
2021-06-01 19:49     ` Nuno Das Neves
2021-05-28 22:43 ` [PATCH 13/19] drivers/hv: install intercept ioctl Nuno Das Neves
2021-05-28 22:43 ` [PATCH 14/19] drivers/hv: assert interrupt ioctl Nuno Das Neves
2021-05-28 22:43 ` [PATCH 15/19] drivers/hv: get and set vp state ioctls Nuno Das Neves
2021-05-28 22:43 ` [PATCH 16/19] drivers/hv: mmap vp register page Nuno Das Neves
2021-05-28 22:43 ` [PATCH 17/19] drivers/hv: get and set partition property ioctls Nuno Das Neves
2021-05-28 22:43 ` [PATCH 18/19] drivers/hv: Add enlightenment bits to create partition ioctl Nuno Das Neves
2021-05-28 22:43 ` [PATCH 19/19] drivers/hv: Translate GVA to GPA Nuno Das Neves
2021-06-10  9:22 ` [PATCH 00/19] Microsoft Hypervisor root partition ioctl interface Vitaly Kuznetsov
2021-06-10  9:22   ` Vitaly Kuznetsov
2021-06-23 22:18   ` Nuno Das Neves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=MW4PR21MB200490109062F93EDCBB3DE7C0359@MW4PR21MB2004.namprd21.prod.outlook.com \
    --to=sunilmut@microsoft.com \
    --cc=Lillian.GrassinDrake@microsoft.com \
    --cc=kys@microsoft.com \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mikelley@microsoft.com \
    --cc=nunodasneves@linux.microsoft.com \
    --cc=viremana@linux.microsoft.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=vkuznets@redhat.com \
    --cc=wei.liu@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.