RE: [PATCH v5 2/8] arm64: hyperv: Add hypercall and register access functions

From: Marc Zyngier
Date: Thu Nov 07 2019 - 04:10:43 EST


On 2019-11-06 19:08, Michael Kelley wrote:
From: Marc Zyngier <maz@xxxxxxxxxx> Sent: Wednesday, November 6,
2019 2:20 AM

On 2019-10-03 20:12, Michael Kelley wrote:
> Add ARM64-specific code to make Hyper-V hypercalls and to
> access virtual processor synthetic registers via hypercalls.
> Hypercalls use a Hyper-V specific calling sequence with a non-zero
> immediate value per Section 2.9 of the SMC Calling Convention
> spec.

I find this "following the spec by actively sidestepping it" counter
productive. You (or rather the Hyper-V people) are reinventing the
wheel (of the slightly square variety) instead of using the standard
that the whole of the ARM ecosystem seems happy to take advantage
of.

I wonder what is the rational for this. If something doesn't quite
work for Hyper-V, I think we'd all like to know.


I'll go another round internally with the Hyper-V people on this
topic and impress upon them the desire of the Linux community to
have Hyper-V adopt the true spirit of the spec. But I know they are
fairly set in their approach at this point, regardless of the technical
merits or lack thereof. Hyper-V is shipping and in use as a commercial
product on ARM64 hardware, which makes it harder to change. I
hope we can find a way to avoid a complete impasse ....

Hyper-V shipping with their own calling convention is fine by me. Linux
having to implement multiple calling conventions because the Hyper-V
folks refuse (for undisclosed reason) to adopt the standard isn't fine at
all.

HV can perfectly retain its interface for Windows or other things, but
please *at least* implement the standard interface on which all existing
operating systems rely.

Thanks,

M.
--
Jazz is not dead. It just smells funny...