From: Roman Kisel <romank@linux.microsoft.com>
To: Michael Kelley <mhklinux@outlook.com>,
"arnd@arndb.de" <arnd@arndb.de>,
"bhelgaas@google.com" <bhelgaas@google.com>,
"bp@alien8.de" <bp@alien8.de>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
"decui@microsoft.com" <decui@microsoft.com>,
"haiyangz@microsoft.com" <haiyangz@microsoft.com>,
"hpa@zytor.com" <hpa@zytor.com>, "kw@linux.com" <kw@linux.com>,
"kys@microsoft.com" <kys@microsoft.com>,
"lenb@kernel.org" <lenb@kernel.org>,
"lpieralisi@kernel.org" <lpieralisi@kernel.org>,
"mingo@redhat.com" <mingo@redhat.com>,
"rafael@kernel.org" <rafael@kernel.org>,
"robh@kernel.org" <robh@kernel.org>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"wei.liu@kernel.org" <wei.liu@kernel.org>,
"will@kernel.org" <will@kernel.org>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"x86@kernel.org" <x86@kernel.org>
Cc: "apais@microsoft.com" <apais@microsoft.com>,
"benhill@microsoft.com" <benhill@microsoft.com>,
"ssengar@microsoft.com" <ssengar@microsoft.com>,
"sunilmut@microsoft.com" <sunilmut@microsoft.com>,
"vdso@hexbites.dev" <vdso@hexbites.dev>
Subject: Re: [PATCH v3 1/7] arm64: hyperv: Use SMC to detect hypervisor presence
Date: Mon, 5 Aug 2024 14:44:17 -0700 [thread overview]
Message-ID: <2ad7731a-b56b-415d-acb1-907fa7224671@linux.microsoft.com> (raw)
In-Reply-To: <SN6PR02MB41571669ED254773D05E2721D4BE2@SN6PR02MB4157.namprd02.prod.outlook.com>
On 8/5/2024 1:30 PM, Michael Kelley wrote:
> From: Roman Kisel <romank@linux.microsoft.com> Sent: Monday, August 5, 2024 9:51 AM
>
> [snip]
>
>>>> diff --git a/arch/arm64/include/asm/mshyperv.h
>>>> b/arch/arm64/include/asm/mshyperv.h
>>>> index a975e1a689dd..a7a3586f7cb1 100644
>>>> --- a/arch/arm64/include/asm/mshyperv.h
>>>> +++ b/arch/arm64/include/asm/mshyperv.h
>>>> @@ -51,4 +51,9 @@ static inline u64 hv_get_msr(unsigned int reg)
>>>>
>>>> #include <asm-generic/mshyperv.h>
>>>>
>>>> +#define ARM_SMCCC_VENDOR_HYP_UID_HYPERV_REG_0 0x7948734d
>>>> +#define ARM_SMCCC_VENDOR_HYP_UID_HYPERV_REG_1 0x56726570
>>>> +#define ARM_SMCCC_VENDOR_HYP_UID_HYPERV_REG_2 0
>>>> +#define ARM_SMCCC_VENDOR_HYP_UID_HYPERV_REG_3 0
>>>> +
>>>
>>> Section 6.2 of the SMCCC specification says that the "Call UID Query"
>>> returns a UUID. The above #defines look like an ASCII string is being
>>> returned. Arguably the ASCII string can be treated as a set of 128 bits
>>> just like a UUID, but it doesn't meet the spirit of the spec. Can Hyper-V
>>> be changed to return a real UUID? While the distinction probably
>>> won't make a material difference here, we've had problems in the past
>>> with Hyper-V doing slightly weird things that later caused unexpected
>>> trouble. Please just get it right. :-)
>>>
>> The above values don't violate anything in the spec, and I think it
>> would be hard to give an example of what can be broken in the world by
>> using the above values.
>
> Agreed. However, note that UUIDs *do* have some internal structure.
> See https://www.uuidtools.com/decode, for example. The UUID above
> is:
>
> 4d734879-7065-7256-0000-000000000000
>
> It has a version digit of "7", which is "unknown". I'm no expert on UUIDs,
> but apparently the "7" isn't necessarily invalid, though perhaps a bit unexpected.
>
Understood! I made an assumption that's just an array of random bytes.
Thank you very much for explaining that to me :)
>> I do understand what you're saying when you
>> mention the UIDs & the spirit of the spec. Put on the quantitative
>> footing, the Shannon entropy of these values is much lower than that of
>> an UID. A cursory search in the kernel tree does turn up other UIDs that
>> don't look too random.
>>
>> As that is implemented only in the non-release versions, hardly someone
>> has taken a dependency on the specific values in their production code.
>> I guess that can be changed without causing any disturbance to the
>> customers, will report of any concerns though.
>
> My last thought is that when dealing with the open source world, and
> with published standards, it's usually best to do what's normal and
> expected, rather than trying to make the case that something unexpected
> is allowed by the spec. Doing the latter can come back to bite you in
> completely unexpected ways. :-)
>
Agreed, thanks for the discussion! I've discussed changing the values,
and a pull request to the hypervisor has been put up for that. So far,
going well.
> With that, I won't make any further comments on the topic. You do
> whatever you can do in working with Hyper-V. Either way, it won't be
> a blocker to my giving "Reviewed-by" on the next version of the
> patch.
>
Will be a badge of honor to me! Again, appreciate your words of advise
and caution, and helping in bringing these patches into the best shape
possible!
> Michael
--
Thank you,
Roman
next prev parent reply other threads:[~2024-08-05 21:44 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-26 22:59 [PATCH v3 0/7] arm64: hyperv: Support Virtual Trust Level Boot Roman Kisel
2024-07-26 22:59 ` [PATCH v3 1/7] arm64: hyperv: Use SMC to detect hypervisor presence Roman Kisel
2024-08-03 1:21 ` Wei Liu
2024-08-05 14:53 ` Roman Kisel
2024-08-05 3:01 ` Michael Kelley
2024-08-05 16:50 ` Roman Kisel
2024-08-05 20:30 ` Michael Kelley
2024-08-05 21:44 ` Roman Kisel [this message]
2024-08-05 3:53 ` Saurabh Singh Sengar
2024-08-05 15:17 ` Roman Kisel
2024-08-05 15:46 ` Saurabh Singh Sengar
2024-08-05 15:56 ` Roman Kisel
2024-07-26 22:59 ` [PATCH v3 2/7] Drivers: hv: Enable VTL mode for arm64 Roman Kisel
2024-08-03 1:21 ` Wei Liu
2024-08-05 3:01 ` Michael Kelley
2024-08-05 4:05 ` Saurabh Singh Sengar
2024-08-05 15:24 ` Roman Kisel
2024-08-05 19:51 ` Michael Kelley
2024-08-05 22:15 ` Roman Kisel
2024-07-26 22:59 ` [PATCH v3 3/7] Drivers: hv: Provide arch-neutral implementation of get_vtl() Roman Kisel
2024-08-03 1:21 ` Wei Liu
2024-08-05 5:45 ` Saurabh Singh Sengar
2024-08-05 3:02 ` Michael Kelley
2024-08-05 16:19 ` Roman Kisel
2024-08-05 20:13 ` Michael Kelley
2024-08-05 21:55 ` Roman Kisel
2024-07-26 22:59 ` [PATCH v3 4/7] arm64: hyperv: Boot in a Virtual Trust Level Roman Kisel
2024-08-03 1:22 ` Wei Liu
2024-08-05 14:55 ` Roman Kisel
2024-08-05 3:02 ` Michael Kelley
2024-08-05 16:20 ` Roman Kisel
2024-08-05 6:28 ` Saurabh Singh Sengar
2024-08-05 15:48 ` Roman Kisel
2024-07-26 22:59 ` [PATCH v3 5/7] dt-bindings: bus: Add Hyper-V VMBus cache coherency and IRQs Roman Kisel
2024-07-27 8:53 ` Krzysztof Kozlowski
2024-07-29 16:33 ` Roman Kisel
2024-07-26 22:59 ` [PATCH v3 6/7] Drivers: hv: vmbus: Get the IRQ number from DT Roman Kisel
2024-07-27 8:56 ` Krzysztof Kozlowski
2024-07-27 9:17 ` Arnd Bergmann
2024-07-27 9:20 ` Krzysztof Kozlowski
2024-07-29 16:51 ` Roman Kisel
2024-08-05 3:03 ` Michael Kelley
2024-08-05 16:26 ` Roman Kisel
2024-07-29 16:36 ` Roman Kisel
2024-08-05 8:30 ` Saurabh Singh Sengar
2024-08-05 14:12 ` Michael Kelley
2024-08-05 15:49 ` Roman Kisel
2024-07-26 22:59 ` [PATCH v3 7/7] PCI: hv: Get vPCI MSI IRQ domain " Roman Kisel
2024-08-03 1:20 ` Wei Liu
2024-08-05 14:51 ` Roman Kisel
2024-08-05 15:59 ` Roman Kisel
2024-08-05 3:03 ` Michael Kelley
2024-08-05 16:30 ` Roman Kisel
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=2ad7731a-b56b-415d-acb1-907fa7224671@linux.microsoft.com \
--to=romank@linux.microsoft.com \
--cc=apais@microsoft.com \
--cc=arnd@arndb.de \
--cc=benhill@microsoft.com \
--cc=bhelgaas@google.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=kw@linux.com \
--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=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mhklinux@outlook.com \
--cc=mingo@redhat.com \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=ssengar@microsoft.com \
--cc=sunilmut@microsoft.com \
--cc=tglx@linutronix.de \
--cc=vdso@hexbites.dev \
--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.