[PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64

Michael Kelley mikelley at microsoft.com
Wed Aug 4 09:39:02 PDT 2021


From: Catalin Marinas <catalin.marinas at arm.com> Sent: Wednesday, August 4, 2021 9:26 AM
> 
> On Wed, Aug 04, 2021 at 08:52:34AM -0700, Michael Kelley wrote:
> > This series enables Linux guests running on Hyper-V on ARM64
> > hardware. New ARM64-specific code in arch/arm64/hyperv initializes
> > Hyper-V and its hypercall mechanism.  Existing architecture
> > independent drivers for Hyper-V's VMbus and synthetic devices just
> > work when built for ARM64. Hyper-V code is built and included in
> > the image and modules only if CONFIG_HYPERV is enabled.
> [...]
> > Hyper-V on ARM64 runs with a 4 Kbyte page size, but allows guests
> > with 4K/16K/64K page size. Linux guests with this patch series
> > work with all three supported ARM64 page sizes.
> >
> > The Hyper-V vPCI driver at drivers/pci/host/pci-hyperv.c has
> > x86/x64-specific code and is not being built for ARM64. Enabling
> > Hyper-V vPCI devices on ARM64 is in progress via a separate set
> > of patches.
> >
> > This patch set is based on the linux-next20210720 code tree.
> 
> Is it possible to rebase this on top of -rc3? Are there any
> dependencies or do you plan to upstream this via a different tree?
> 

There are dependencies on changes in the hyperv-next tree
(https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git/)
which is why you are getting the build errors.  The changes
common-ized some code between the x86 side and previous
versions of this patch set (and fixed the #include nmi.h problem). 
So the code would most naturally go upstream through that tree.

Michael


> It applies cleanly but it doesn't build for me:
> 
> In file included from arch/arm64/include/asm/mshyperv.h:52,
>                  from arch/arm64/hyperv/hv_core.c:19:
> include/asm-generic/mshyperv.h: In function 'hv_do_rep_hypercall':
> include/asm-generic/mshyperv.h:86:3: error: implicit declaration of function 'touch_nmi_watchdog' [-Werror=implicit-
> function-declaration]
>    86 |   touch_nmi_watchdog();
>       |   ^~~~~~~~~~~~~~~~~~
> 
> A quick fix for the above was to include nmi.h in mshyperv.h.
> 
> However, the below I can't fix since there's no trace of
> hv_common_init() on top of 5.14-rc3:
> 
> arch/arm64/hyperv/mshyperv.c: In function 'hyperv_init':
> arch/arm64/hyperv/mshyperv.c:66:8: error: implicit declaration of function 'hv_common_init' [-Werror=implicit-function-
> declaration]
>    66 |  ret = hv_common_init();
>       |        ^~~~~~~~~~~~~~
> arch/arm64/hyperv/mshyperv.c:71:5: error: 'hv_common_cpu_init' undeclared (first use in this function)
>    71 |     hv_common_cpu_init, hv_common_cpu_die);
>       |     ^~~~~~~~~~~~~~~~~~
> arch/arm64/hyperv/mshyperv.c:71:5: note: each undeclared identifier is reported only once for each function it appears in
> arch/arm64/hyperv/mshyperv.c:71:25: error: 'hv_common_cpu_die' undeclared (first use in this function)
>    71 |     hv_common_cpu_init, hv_common_cpu_die);
>       |                         ^~~~~~~~~~~~~~~~~
> arch/arm64/hyperv/mshyperv.c:73:3: error: implicit declaration of function 'hv_common_free' [-Werror=implicit-function-
> declaration]
>    73 |   hv_common_free();
>       |   ^~~~~~~~~~~~~~
> 
> --
> Catalin



More information about the linux-arm-kernel mailing list