From: Nuno Das Neves <nunodasneves@linux.microsoft.com>
To: Roman Kisel <romank@linux.microsoft.com>,
linux-hyperv@vger.kernel.org, x86@kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
linux-acpi@vger.kernel.org
Cc: kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org,
mhklinux@outlook.com, decui@microsoft.com,
catalin.marinas@arm.com, will@kernel.org, tglx@linutronix.de,
mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
hpa@zytor.com, daniel.lezcano@linaro.org, joro@8bytes.org,
robin.murphy@arm.com, arnd@arndb.de,
jinankjain@linux.microsoft.com, muminulrussell@gmail.com,
skinsburskii@linux.microsoft.com, mrathor@linux.microsoft.com,
ssengar@linux.microsoft.com, apais@linux.microsoft.com,
Tianyu.Lan@microsoft.com, stanislav.kinsburskiy@gmail.com,
gregkh@linuxfoundation.org, vkuznets@redhat.com,
prapal@linux.microsoft.com, muislam@microsoft.com,
anrayabh@linux.microsoft.com, rafael@kernel.org, lenb@kernel.org,
corbet@lwn.net
Subject: Re: [PATCH v5 01/10] hyperv: Convert Hyper-V status codes to strings
Date: Thu, 27 Feb 2025 16:15:35 -0800 [thread overview]
Message-ID: <7ea741fb-9935-42f2-a4f0-99df8df563eb@linux.microsoft.com> (raw)
In-Reply-To: <74af19c4-639f-4bcc-b667-b5f102bbb312@linux.microsoft.com>
On 2/27/2025 9:02 AM, Roman Kisel wrote:
>
>
> On 2/26/2025 3:07 PM, Nuno Das Neves wrote:
>
> [...]
>
>> +
>> +const char *hv_result_to_string(u64 hv_status)
>> +{
>> + switch (hv_result(hv_status)) {
>
> [...]
>
>> + return "HV_STATUS_VTL_ALREADY_ENABLED";
>> + default:
>> + return "Unknown";
>> + };
>> + return "Unknown";
>> +}
>> +EXPORT_SYMBOL_GPL(hv_result_to_string);
>
> Should we remove this and output the hexadecimal error code in ~3 places
> this function is used?
>
I guess you're implying it's not worth adding such a function for only a
few places in the code? That is a good point, and a bit of an oversight
on my part while editing this series. Originally all the hypercall helper
functions in the driver code (10+ places) used this function as well, but
I removed those printks_()s as a temporary solution to limit the use of
printk in the driver code (as opposed to dev_printk() which is preferred).
I didn't think to remove *this* patch as a result of that change!
I do want to figure out a good way to add that logging back to the hypercall
helpers, so I do want to try and get some form of this patch in to aid
debugging hypercalls - it has been very very useful over time.
> The "Unknown" part would make debugging harder actually when something
> fails. I presume that the mainstream scenarios all work, and it is the
> edge cases that might fail, and these are likelier to produce "Unknown".
>
That is a very good point. Ideally, we could log "Unknown" along with
the hex code instead of replacing it.
What do you think about keeping this function, but instead of using it
directly, introduce a "standard" way for logging hypercall errors which
can hopefully be used everywhere in the kernel?
e.g. a simple macro:
#define hv_hvcall_err(control, status)
do {
u64 ___status = (status);
pr_err("Hypercall: %#x err: %#x : %s", (control) & 0xFFFF, hv_result(___status), hv_result_to_string(___status));
} while (0)
I feel like this is the best of both worlds, and actually makes it even
easier to do this logging everywhere it is wanted (for me, that includes
all the /dev/mshv-related hypercalls).
We could add strings for the HVCALL_ values too, and/or include __func__
in the macro to aid in finding the context it was used in.
> Folks who actually debug failed hypercalls rarely have issues with
> looking up the error code, and printing "Unknown" to the log is worse
> than a hexadecimal. Like even the people who wrote the code got nothing
> to say about what is going on.
>
Yep, totally agree having the hex code available can be valuable in
unexpected situations.
next prev parent reply other threads:[~2025-02-28 0:15 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-26 23:07 [PATCH v5 00/10] Introduce /dev/mshv root partition driver Nuno Das Neves
2025-02-26 23:07 ` [PATCH v5 01/10] hyperv: Convert Hyper-V status codes to strings Nuno Das Neves
2025-02-26 23:26 ` Stanislav Kinsburskii
2025-02-27 4:22 ` Easwar Hariharan
2025-02-27 23:48 ` Nuno Das Neves
2025-02-27 17:02 ` Roman Kisel
2025-02-27 22:54 ` Easwar Hariharan
2025-02-27 23:08 ` Roman Kisel
2025-02-27 23:25 ` Easwar Hariharan
2025-02-28 17:20 ` Roman Kisel
2025-02-28 20:22 ` Easwar Hariharan
2025-02-28 22:26 ` Roman Kisel
2025-02-27 23:21 ` Roman Kisel
2025-02-28 0:15 ` Nuno Das Neves [this message]
2025-02-28 16:40 ` Roman Kisel
2025-03-06 17:57 ` Michael Kelley
2025-03-06 18:09 ` Michael Kelley
2025-03-06 18:40 ` Nuno Das Neves
2025-03-06 18:57 ` Michael Kelley
2025-03-07 19:38 ` Nuno Das Neves
2025-02-26 23:07 ` [PATCH v5 02/10] x86/mshyperv: Add support for extended Hyper-V features Nuno Das Neves
2025-02-26 23:27 ` Stanislav Kinsburskii
2025-02-27 17:59 ` Roman Kisel
2025-02-28 0:17 ` Nuno Das Neves
2025-02-28 16:42 ` Roman Kisel
2025-02-27 18:17 ` Easwar Hariharan
2025-03-06 18:30 ` Michael Kelley
2025-03-12 18:04 ` Nuno Das Neves
2025-03-10 13:17 ` Tianyu Lan
2025-02-26 23:07 ` [PATCH v5 03/10] arm64/hyperv: Add some missing functions to arm64 Nuno Das Neves
2025-02-26 23:27 ` Stanislav Kinsburskii
2025-02-27 5:56 ` Easwar Hariharan
2025-02-28 0:21 ` Nuno Das Neves
2025-03-06 19:05 ` Michael Kelley
2025-03-07 21:36 ` Nuno Das Neves
2025-03-07 21:55 ` Easwar Hariharan
2025-02-27 18:09 ` Roman Kisel
2025-02-26 23:07 ` [PATCH v5 04/10] hyperv: Introduce hv_recommend_using_aeoi() Nuno Das Neves
2025-02-26 23:28 ` Stanislav Kinsburskii
2025-02-27 18:04 ` Roman Kisel
2025-02-28 0:21 ` Nuno Das Neves
2025-02-27 23:03 ` Easwar Hariharan
2025-02-28 0:33 ` Nuno Das Neves
2025-02-28 0:49 ` Easwar Hariharan
2025-03-06 19:12 ` Michael Kelley
2025-03-10 12:51 ` Tianyu Lan
2025-02-26 23:07 ` [PATCH v5 05/10] acpi: numa: Export node_to_pxm() Nuno Das Neves
2025-02-26 23:31 ` Stanislav Kinsburskii
2025-02-27 23:05 ` Easwar Hariharan
2025-03-06 19:16 ` Michael Kelley
2025-03-10 12:50 ` Tianyu Lan
2025-02-26 23:08 ` [PATCH v5 06/10] Drivers/hv: Export some functions for use by root partition module Nuno Das Neves
2025-02-26 23:32 ` Stanislav Kinsburskii
2025-02-27 18:11 ` Roman Kisel
2025-02-28 0:51 ` Easwar Hariharan
2025-03-06 19:23 ` Michael Kelley
2025-03-07 21:38 ` Nuno Das Neves
2025-02-26 23:08 ` [PATCH v5 07/10] Drivers: hv: Introduce per-cpu event ring tail Nuno Das Neves
2025-02-26 23:39 ` Stanislav Kinsburskii
2025-03-07 17:02 ` Michael Kelley
2025-03-07 22:06 ` Nuno Das Neves
2025-03-07 23:21 ` Michael Kelley
2025-03-07 23:31 ` Nuno Das Neves
2025-03-07 23:37 ` Michael Kelley
2025-03-10 13:01 ` Tianyu Lan
2025-03-12 19:44 ` Nuno Das Neves
2025-03-13 7:34 ` Tianyu Lan
2025-03-13 15:56 ` Nuno Das Neves
2025-03-13 16:00 ` Tianyu Lan
2025-02-26 23:08 ` [PATCH v5 08/10] x86: hyperv: Add mshv_handler irq handler and setup function Nuno Das Neves
2025-02-26 23:43 ` Stanislav Kinsburskii
2025-03-01 0:38 ` Nuno Das Neves
2025-03-07 17:38 ` Michael Kelley
2025-03-10 21:46 ` Nuno Das Neves
2025-03-10 22:23 ` Michael Kelley
2025-03-07 17:44 ` Michael Kelley
2025-03-07 23:29 ` Nuno Das Neves
2025-03-07 23:45 ` Michael Kelley
2025-02-26 23:08 ` [PATCH v5 09/10] hyperv: Add definitions for root partition driver to hv headers Nuno Das Neves
2025-02-26 23:51 ` Stanislav Kinsburskii
2025-03-01 0:46 ` Nuno Das Neves
2025-02-27 18:13 ` Roman Kisel
2025-02-28 1:27 ` Easwar Hariharan
2025-03-01 0:52 ` Nuno Das Neves
2025-03-07 17:26 ` Michael Kelley
2025-03-07 23:35 ` Nuno Das Neves
2025-03-10 12:40 ` Tianyu Lan
2025-03-12 20:17 ` Nuno Das Neves
2025-02-26 23:08 ` [PATCH v5 10/10] Drivers: hv: Introduce mshv_root module to expose /dev/mshv to VMMs Nuno Das Neves
2025-02-27 4:59 ` Easwar Hariharan
2025-03-01 1:29 ` Nuno Das Neves
2025-02-27 18:50 ` Roman Kisel
2025-03-01 1:38 ` Nuno Das Neves
2025-03-06 17:32 ` Wei Liu
2025-03-07 18:06 ` Roman Kisel
2025-03-11 18:01 ` Jeff Johnson
2025-03-14 19:25 ` Nuno Das Neves
2025-03-13 16:43 ` Michael Kelley
2025-03-14 2:15 ` Nuno Das Neves
2025-03-14 3:27 ` Michael Kelley
2025-03-17 23:51 ` Michael Kelley
2025-03-18 17:24 ` Wei Liu
2025-03-18 17:45 ` Michael Kelley
2025-03-18 20:07 ` Wei Liu
2025-03-19 0:34 ` Nuno Das Neves
2025-03-19 2:10 ` Michael Kelley
2025-03-19 15:26 ` Michael Kelley
2025-03-19 18:04 ` 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=7ea741fb-9935-42f2-a4f0-99df8df563eb@linux.microsoft.com \
--to=nunodasneves@linux.microsoft.com \
--cc=Tianyu.Lan@microsoft.com \
--cc=anrayabh@linux.microsoft.com \
--cc=apais@linux.microsoft.com \
--cc=arnd@arndb.de \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=daniel.lezcano@linaro.org \
--cc=dave.hansen@linux.intel.com \
--cc=decui@microsoft.com \
--cc=gregkh@linuxfoundation.org \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=jinankjain@linux.microsoft.com \
--cc=joro@8bytes.org \
--cc=kys@microsoft.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--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=mhklinux@outlook.com \
--cc=mingo@redhat.com \
--cc=mrathor@linux.microsoft.com \
--cc=muislam@microsoft.com \
--cc=muminulrussell@gmail.com \
--cc=prapal@linux.microsoft.com \
--cc=rafael@kernel.org \
--cc=robin.murphy@arm.com \
--cc=romank@linux.microsoft.com \
--cc=skinsburskii@linux.microsoft.com \
--cc=ssengar@linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).