From: Nuno Das Neves <nunodasneves@linux.microsoft.com>
To: Saurabh Singh Sengar <ssengar@microsoft.com>,
"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"x86@kernel.org" <x86@kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>
Cc: "patches@lists.linux.dev" <patches@lists.linux.dev>,
"Michael Kelley (LINUX)" <mikelley@microsoft.com>,
KY Srinivasan <kys@microsoft.com>,
"wei.liu@kernel.org" <wei.liu@kernel.org>,
Haiyang Zhang <haiyangz@microsoft.com>,
Dexuan Cui <decui@microsoft.com>,
"apais@linux.microsoft.com" <apais@linux.microsoft.com>,
Tianyu Lan <Tianyu.Lan@microsoft.com>,
"ssengar@linux.microsoft.com" <ssengar@linux.microsoft.com>,
MUKESH RATHOR <mukeshrathor@microsoft.com>,
"stanislav.kinsburskiy@gmail.com"
<stanislav.kinsburskiy@gmail.com>,
"jinankjain@linux.microsoft.com" <jinankjain@linux.microsoft.com>,
vkuznets <vkuznets@redhat.com>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"mingo@redhat.com" <mingo@redhat.com>,
"bp@alien8.de" <bp@alien8.de>,
"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
"hpa@zytor.com" <hpa@zytor.com>,
"will@kernel.org" <will@kernel.org>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>
Subject: Re: [PATCH v2 15/15] Drivers: hv: Add modules to expose /dev/mshv to VMMs running on Hyper-V
Date: Tue, 22 Aug 2023 14:00:10 -0700 [thread overview]
Message-ID: <c53fa288-a16d-4f23-83de-84d6ff20823c@linux.microsoft.com> (raw)
In-Reply-To: <PUZP153MB063571CB1D30770996948726BE1EA@PUZP153MB0635.APCP153.PROD.OUTLOOK.COM>
On 8/21/2023 11:18 AM, Saurabh Singh Sengar wrote:
>
>
>> -----Original Message-----
>> From: Nuno Das Neves <nunodasneves@linux.microsoft.com>
>> Sent: Friday, August 18, 2023 3:32 AM
>> To: linux-hyperv@vger.kernel.org; linux-kernel@vger.kernel.org;
>> x86@kernel.org; linux-arm-kernel@lists.infradead.org; linux-
>> arch@vger.kernel.org
>> Cc: patches@lists.linux.dev; Michael Kelley (LINUX)
>> <mikelley@microsoft.com>; KY Srinivasan <kys@microsoft.com>;
>> wei.liu@kernel.org; Haiyang Zhang <haiyangz@microsoft.com>; Dexuan Cui
>> <decui@microsoft.com>; apais@linux.microsoft.com; Tianyu Lan
>> <Tianyu.Lan@microsoft.com>; ssengar@linux.microsoft.com; MUKESH
>> RATHOR <mukeshrathor@microsoft.com>; stanislav.kinsburskiy@gmail.com;
>> jinankjain@linux.microsoft.com; vkuznets <vkuznets@redhat.com>;
>> tglx@linutronix.de; mingo@redhat.com; bp@alien8.de;
>> dave.hansen@linux.intel.com; hpa@zytor.com; will@kernel.org;
>> catalin.marinas@arm.com
>> Subject: [PATCH v2 15/15] Drivers: hv: Add modules to expose /dev/mshv to
>> VMMs running on Hyper-V
>>
>> Add mshv, mshv_root, and mshv_vtl modules:
>>
>
> <snip>
>
>> + ret = mshv_set_vp_registers(vp->index, vp->partition->id,
>> + 1, &dispatch_suspend);
>> + if (ret)
>> + pr_err("%s: failed to suspend partition %llu vp %u\n",
>> + __func__, vp->partition->id, vp->index);
>> +
>> + return ret;
>> +}
>> +
>> +static int
>> +get_vp_signaled_count(struct mshv_vp *vp, u64 *count)
>> +{
>> + int ret;
>> + struct hv_register_assoc root_signal_count = {
>> + .name = HV_REGISTER_VP_ROOT_SIGNAL_COUNT,
>> + };
>> +
>> + ret = mshv_get_vp_registers(vp->index, vp->partition->id,
>> + 1, &root_signal_count);
>> +
>> + if (ret) {
>> + pr_err("%s: failed to get root signal count for partition %llu vp
>> %u",
>> + __func__, vp->partition->id, vp->index);
>> + *count = 0;
>
> Have we missed a return here ?
> Moreover, the return type of this function is never checked consider
> checking it or change it to void.
>
Thanks, we do need to return here.
This function is called on a cleanup path (deleting the guest VM), so if it fails
something is wrong. Instead of returning void, I think we should check the return
value with WARN_ON(), and abort the cleanup if it failed.
>> +
>> +/* Retrieve and stash the supported scheduler type */
>> +static int __init mshv_retrieve_scheduler_type(void)
>> +{
>> + struct hv_input_get_system_property *input;
>> + struct hv_output_get_system_property *output;
>> + unsigned long flags;
>> + u64 status;
>> +
>> + local_irq_save(flags);
>> + input = *this_cpu_ptr(hyperv_pcpu_input_arg);
>> + output = *this_cpu_ptr(hyperv_pcpu_output_arg);
>> +
>> + memset(input, 0, sizeof(*input));
>> + memset(output, 0, sizeof(*output));
>> + input->property_id = HV_SYSTEM_PROPERTY_SCHEDULER_TYPE;
>> +
>> + status = hv_do_hypercall(HVCALL_GET_SYSTEM_PROPERTY, input,
>> output);
>> + if (!hv_result_success(status)) {
>> + local_irq_restore(flags);
>> + pr_err("%s: %s\n", __func__, hv_status_to_string(status));
>> + return hv_status_to_errno(status);
>> + }
>> +
>> + hv_scheduler_type = output->scheduler_type;
>> + local_irq_restore(flags);
>> +
>> + pr_info("mshv: hypervisor using %s\n",
>> scheduler_type_to_string(hv_scheduler_type));
>
> Nit: In this file we are using two styles of prints, few are appended with
> "mshv:" and few with "__func__". It's better to have a single style
> for one module.
Thanks, I'll switch them all to __func__
WARNING: multiple messages have this Message-ID (diff)
From: Nuno Das Neves <nunodasneves@linux.microsoft.com>
To: Saurabh Singh Sengar <ssengar@microsoft.com>,
"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"x86@kernel.org" <x86@kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>
Cc: "patches@lists.linux.dev" <patches@lists.linux.dev>,
"Michael Kelley (LINUX)" <mikelley@microsoft.com>,
KY Srinivasan <kys@microsoft.com>,
"wei.liu@kernel.org" <wei.liu@kernel.org>,
Haiyang Zhang <haiyangz@microsoft.com>,
Dexuan Cui <decui@microsoft.com>,
"apais@linux.microsoft.com" <apais@linux.microsoft.com>,
Tianyu Lan <Tianyu.Lan@microsoft.com>,
"ssengar@linux.microsoft.com" <ssengar@linux.microsoft.com>,
MUKESH RATHOR <mukeshrathor@microsoft.com>,
"stanislav.kinsburskiy@gmail.com"
<stanislav.kinsburskiy@gmail.com>,
"jinankjain@linux.microsoft.com" <jinankjain@linux.microsoft.com>,
vkuznets <vkuznets@redhat.com>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"mingo@redhat.com" <mingo@redhat.com>,
"bp@alien8.de" <bp@alien8.de>,
"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
"hpa@zytor.com" <hpa@zytor.com>,
"will@kernel.org" <will@kernel.org>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>
Subject: Re: [PATCH v2 15/15] Drivers: hv: Add modules to expose /dev/mshv to VMMs running on Hyper-V
Date: Tue, 22 Aug 2023 14:00:10 -0700 [thread overview]
Message-ID: <c53fa288-a16d-4f23-83de-84d6ff20823c@linux.microsoft.com> (raw)
In-Reply-To: <PUZP153MB063571CB1D30770996948726BE1EA@PUZP153MB0635.APCP153.PROD.OUTLOOK.COM>
On 8/21/2023 11:18 AM, Saurabh Singh Sengar wrote:
>
>
>> -----Original Message-----
>> From: Nuno Das Neves <nunodasneves@linux.microsoft.com>
>> Sent: Friday, August 18, 2023 3:32 AM
>> To: linux-hyperv@vger.kernel.org; linux-kernel@vger.kernel.org;
>> x86@kernel.org; linux-arm-kernel@lists.infradead.org; linux-
>> arch@vger.kernel.org
>> Cc: patches@lists.linux.dev; Michael Kelley (LINUX)
>> <mikelley@microsoft.com>; KY Srinivasan <kys@microsoft.com>;
>> wei.liu@kernel.org; Haiyang Zhang <haiyangz@microsoft.com>; Dexuan Cui
>> <decui@microsoft.com>; apais@linux.microsoft.com; Tianyu Lan
>> <Tianyu.Lan@microsoft.com>; ssengar@linux.microsoft.com; MUKESH
>> RATHOR <mukeshrathor@microsoft.com>; stanislav.kinsburskiy@gmail.com;
>> jinankjain@linux.microsoft.com; vkuznets <vkuznets@redhat.com>;
>> tglx@linutronix.de; mingo@redhat.com; bp@alien8.de;
>> dave.hansen@linux.intel.com; hpa@zytor.com; will@kernel.org;
>> catalin.marinas@arm.com
>> Subject: [PATCH v2 15/15] Drivers: hv: Add modules to expose /dev/mshv to
>> VMMs running on Hyper-V
>>
>> Add mshv, mshv_root, and mshv_vtl modules:
>>
>
> <snip>
>
>> + ret = mshv_set_vp_registers(vp->index, vp->partition->id,
>> + 1, &dispatch_suspend);
>> + if (ret)
>> + pr_err("%s: failed to suspend partition %llu vp %u\n",
>> + __func__, vp->partition->id, vp->index);
>> +
>> + return ret;
>> +}
>> +
>> +static int
>> +get_vp_signaled_count(struct mshv_vp *vp, u64 *count)
>> +{
>> + int ret;
>> + struct hv_register_assoc root_signal_count = {
>> + .name = HV_REGISTER_VP_ROOT_SIGNAL_COUNT,
>> + };
>> +
>> + ret = mshv_get_vp_registers(vp->index, vp->partition->id,
>> + 1, &root_signal_count);
>> +
>> + if (ret) {
>> + pr_err("%s: failed to get root signal count for partition %llu vp
>> %u",
>> + __func__, vp->partition->id, vp->index);
>> + *count = 0;
>
> Have we missed a return here ?
> Moreover, the return type of this function is never checked consider
> checking it or change it to void.
>
Thanks, we do need to return here.
This function is called on a cleanup path (deleting the guest VM), so if it fails
something is wrong. Instead of returning void, I think we should check the return
value with WARN_ON(), and abort the cleanup if it failed.
>> +
>> +/* Retrieve and stash the supported scheduler type */
>> +static int __init mshv_retrieve_scheduler_type(void)
>> +{
>> + struct hv_input_get_system_property *input;
>> + struct hv_output_get_system_property *output;
>> + unsigned long flags;
>> + u64 status;
>> +
>> + local_irq_save(flags);
>> + input = *this_cpu_ptr(hyperv_pcpu_input_arg);
>> + output = *this_cpu_ptr(hyperv_pcpu_output_arg);
>> +
>> + memset(input, 0, sizeof(*input));
>> + memset(output, 0, sizeof(*output));
>> + input->property_id = HV_SYSTEM_PROPERTY_SCHEDULER_TYPE;
>> +
>> + status = hv_do_hypercall(HVCALL_GET_SYSTEM_PROPERTY, input,
>> output);
>> + if (!hv_result_success(status)) {
>> + local_irq_restore(flags);
>> + pr_err("%s: %s\n", __func__, hv_status_to_string(status));
>> + return hv_status_to_errno(status);
>> + }
>> +
>> + hv_scheduler_type = output->scheduler_type;
>> + local_irq_restore(flags);
>> +
>> + pr_info("mshv: hypervisor using %s\n",
>> scheduler_type_to_string(hv_scheduler_type));
>
> Nit: In this file we are using two styles of prints, few are appended with
> "mshv:" and few with "__func__". It's better to have a single style
> for one module.
Thanks, I'll switch them all to __func__
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-08-22 21:00 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-17 22:01 [PATCH v2 00/15] Introduce /dev/mshv drivers Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-17 22:01 ` [PATCH v2 01/15] hyperv-tlfs: Change shared HV_REGISTER_* defines to HV_MSR_* Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-18 18:45 ` Wei Liu
2023-08-18 18:45 ` Wei Liu
2023-08-17 22:01 ` [PATCH v2 02/15] mshyperv: Introduce hv_get_hypervisor_version function Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-17 23:14 ` Dave Hansen
2023-08-17 23:14 ` Dave Hansen
2023-08-17 23:43 ` Nuno Das Neves
2023-08-17 23:43 ` Nuno Das Neves
2023-08-17 22:01 ` [PATCH v2 03/15] mshyperv: Introduce numa_node_to_proximity_domain_info Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-17 23:22 ` Dave Hansen
2023-08-17 23:22 ` Dave Hansen
2023-08-18 0:17 ` Nuno Das Neves
2023-08-18 0:17 ` Nuno Das Neves
2023-08-18 0:26 ` Dave Hansen
2023-08-18 0:26 ` Dave Hansen
2023-08-17 22:01 ` [PATCH v2 04/15] asm-generic/mshyperv: Introduce hv_recommend_using_aeoi() Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-17 22:01 ` [PATCH v2 05/15] hyperv: Move hv_connection_id to hyperv-tlfs Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-18 23:22 ` Wei Liu
2023-08-18 23:22 ` Wei Liu
2023-08-17 22:01 ` [PATCH v2 06/15] hyperv-tlfs: Introduce hv_status_to_string and hv_status_to_errno Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-18 23:23 ` Wei Liu
2023-08-18 23:23 ` Wei Liu
2023-08-17 22:01 ` [PATCH v2 07/15] Drivers: hv: Move hv_call_deposit_pages and hv_call_create_vp to common code Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-17 22:01 ` [PATCH v2 08/15] Drivers: hv: Introduce per-cpu event ring tail Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-18 23:26 ` Wei Liu
2023-08-18 23:26 ` Wei Liu
2023-08-17 22:01 ` [PATCH v2 09/15] Drivers: hv: Introduce hv_output_arg_exists in hv_common.c Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-18 23:23 ` Wei Liu
2023-08-18 23:23 ` Wei Liu
2023-08-17 22:01 ` [PATCH v2 10/15] x86: hyperv: Add mshv_handler irq handler and setup function Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-29 7:47 ` Tianyu Lan
2023-08-29 7:47 ` Tianyu Lan
2023-08-17 22:01 ` [PATCH v2 11/15] Drivers: hv: export vmbus_isr, hv_context and hv_post_message Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-17 22:01 ` [PATCH v2 12/15] Documentation: Reserve ioctl number for mshv driver Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-18 23:24 ` Wei Liu
2023-08-18 23:24 ` Wei Liu
2023-08-17 22:01 ` [PATCH v2 13/15] uapi: hyperv: Add mshv driver headers hvhdk.h, hvhdk_mini.h, hvgdk.h, hvgdk_mini.h Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-17 23:01 ` Wei Liu
2023-08-17 23:01 ` Wei Liu
2023-08-19 10:26 ` Greg KH
2023-08-19 10:26 ` Greg KH
2023-08-25 18:24 ` Nuno Das Neves
2023-08-25 18:24 ` Nuno Das Neves
2023-10-10 22:49 ` Nuno Das Neves
2023-10-10 22:49 ` Nuno Das Neves
2023-10-11 6:42 ` Greg KH
2023-10-11 6:42 ` Greg KH
2023-10-12 1:56 ` Nuno Das Neves
2023-10-12 1:56 ` Nuno Das Neves
2023-08-17 22:01 ` [PATCH v2 14/15] asm-generic: hyperv: Use mshv headers conditionally. Add asm-generic/hyperv-defs.h Nuno Das Neves
2023-08-17 22:01 ` Nuno Das Neves
2023-08-18 23:30 ` Wei Liu
2023-08-18 23:30 ` Wei Liu
2023-08-17 22:01 ` [PATCH v2 15/15] Drivers: hv: Add modules to expose /dev/mshv to VMMs running on Hyper-V Nuno Das Neves
2023-08-18 13:08 ` Saurabh Singh Sengar
2023-08-18 13:08 ` Saurabh Singh Sengar
2023-08-18 18:59 ` Nuno Das Neves
2023-08-18 18:59 ` Nuno Das Neves
2023-08-20 5:19 ` Saurabh Singh Sengar
2023-08-20 5:19 ` Saurabh Singh Sengar
2023-08-22 20:18 ` Nuno Das Neves
2023-08-22 20:18 ` Nuno Das Neves
2023-08-23 7:40 ` Saurabh Singh Sengar
2023-08-23 7:40 ` Saurabh Singh Sengar
2023-08-25 18:26 ` Nuno Das Neves
2023-08-25 18:26 ` Nuno Das Neves
2023-08-21 18:18 ` Saurabh Singh Sengar
2023-08-21 18:18 ` Saurabh Singh Sengar
2023-08-22 21:00 ` Nuno Das Neves [this message]
2023-08-22 21:00 ` Nuno Das Neves
2023-08-24 18:31 ` Boqun Feng
2023-08-24 18:31 ` Boqun Feng
2023-08-25 18:41 ` Nuno Das Neves
2023-08-25 18:41 ` Nuno Das Neves
2023-08-25 20:15 ` Boqun Feng
2023-08-25 20:15 ` Boqun Feng
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=c53fa288-a16d-4f23-83de-84d6ff20823c@linux.microsoft.com \
--to=nunodasneves@linux.microsoft.com \
--cc=Tianyu.Lan@microsoft.com \
--cc=apais@linux.microsoft.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=dave.hansen@linux.intel.com \
--cc=decui@microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=jinankjain@linux.microsoft.com \
--cc=kys@microsoft.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mikelley@microsoft.com \
--cc=mingo@redhat.com \
--cc=mukeshrathor@microsoft.com \
--cc=patches@lists.linux.dev \
--cc=ssengar@linux.microsoft.com \
--cc=ssengar@microsoft.com \
--cc=stanislav.kinsburskiy@gmail.com \
--cc=tglx@linutronix.de \
--cc=vkuznets@redhat.com \
--cc=wei.liu@kernel.org \
--cc=will@kernel.org \
--cc=x86@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.