ACK/Cmnt: [Pull Request] [impish/linux-azure] Enable arm64 for Hyper-V guests
Tim Gardner
tim.gardner at canonical.com
Tue Feb 1 12:58:01 UTC 2022
On 1/31/22 4:08 PM, Joseph Salisbury wrote:
>
>
> On 1/31/22 08:54, Tim Gardner wrote:
>> BugLink: https://bugs.launchpad.net/bugs/1949770
>>
>> [Impact]
>>
>> Since linux-azure can also be used for local Hyper-V guests on
>> Windows 10 Pro running on arm64 platforms, enable arm64 build
>> for this kernel as well.
>>
>> [Test Case]
>>
>> Microsoft tested.
>> Boot an arm64 VM on a machine running Win10Pro with Hyper-V.
>>
>> [Where things could go wrong]
>>
>> Some of the patches touch common PCI code. Device detection could be
>> impacted.
>>
>> [Other info]
>>
>> SF: #00310705
>>
>> ============================================================================
>>
>>
>> The following changes since commit
>> 31e8bf881224f2c37047baecbeb6f2a0d160dac0:
>>
>> UBUNTU: Ubuntu-azure-5.13.0-1013.15 (2022-01-18 11:56:02 +0100)
>>
>> are available in the Git repository at:
>>
>> git://git.launchpad.net/~timg-tpi/ubuntu/+source/linux/+git/impish
>> 543a1af8a2e8609ced3fab77c03552fd13f6bb26
>>
>> for you to fetch changes up to 543a1af8a2e8609ced3fab77c03552fd13f6bb26:
>>
>> UBUNTU: [Config] azure: Update arm64 policy for CONFIG_PCI_HYPERV
>> (2022-01-31 06:47:15 -0700)
>>
>> ----------------------------------------------------------------
>> Andy Shevchenko (1):
>> kernel.h: split out panic and oops helpers
>>
>> Arnd Bergmann (1):
>> PCI: hv: Generify PCI probing
>>
>> Boqun Feng (7):
>> PCI: Introduce domain_nr in pci_host_bridge
>> PCI: Support populating MSI domains of root buses via bridges
>> arm64: PCI: Restructure pcibios_root_bridge_prepare()
>> arm64: PCI: Support root bridge preparation for Hyper-V
>> PCI: hv: Set ->domain_nr of pci_host_bridge at probing time
>> PCI: hv: Turn on the host bridge probing on ARM64
>> PCI: hv: Set up MSI domain at bridge probing time
>>
>> Michael Kelley (11):
>> Drivers: hv: Move Hyper-V extended capability check to arch
>> neutral code
>> asm-generic/hyperv: Add missing #include of nmi.h
>> Drivers: hv: Make portions of Hyper-V init code be arch neutral
>> Drivers: hv: Add arch independent default functions for some
>> Hyper-V handlers
>> Drivers: hv: Move Hyper-V misc functionality to arch-neutral code
>> drivers: hv: Decouple Hyper-V clock/timer code from VMbus drivers
>> arm64: hyperv: Add Hyper-V hypercall and register access utilities
>> arm64: hyperv: Add panic handler
>> arm64: hyperv: Initialize hypervisor on boot
>> arm64: efi: Export screen_info
>> Drivers: hv: Enable Hyper-V code to be built on ARM64
>>
>> Sudeep Holla (1):
>> arm64: smccc: Add support for SMCCCv1.2 extended input/output
>> registers
>>
>> Sunil Muthuswamy (3):
>> PCI: hv: Support for create interrupt v3
>> PCI: hv: Make the code arch neutral by adding arch specific
>> interfaces
>> PCI: hv: Add arm64 Hyper-V vPCI support
>>
>> Tim Gardner (4):
>> UBUNTU: [Packaging] linux-azure: Add basic packaging support for
>> arm64
>> UBUNTU: [Config] azure: CONFIG_CMA=n [arm64]
>> UBUNTU: [Config] azure: Ignore initial arm64 ABI
>> UBUNTU: [Config] azure: Update arm64 policy for CONFIG_PCI_HYPERV
>>
>> MAINTAINERS | 3 +
>> arch/alpha/kernel/setup.c | 2 +-
>> arch/arm64/Kbuild | 1 +
>> arch/arm64/hyperv/Makefile | 2 +
>> arch/arm64/hyperv/hv_core.c | 181 ++
>> arch/arm64/hyperv/mshyperv.c | 87 +
>> arch/arm64/include/asm/hyperv-tlfs.h | 78 +
>> arch/arm64/include/asm/mshyperv.h | 54 +
>> arch/arm64/kernel/asm-offsets.c | 9 +
>> arch/arm64/kernel/efi.c | 1 +
>> arch/arm64/kernel/pci.c | 29 +-
>> arch/arm64/kernel/setup.c | 1 +
>> arch/arm64/kernel/smccc-call.S | 57 +
>> arch/ia64/include/asm/pal.h | 1 +
>> arch/mips/kernel/relocate.c | 1 +
>> arch/mips/sgi-ip22/ip22-reset.c | 1 +
>> arch/mips/sgi-ip32/ip32-reset.c | 1 +
>> arch/parisc/kernel/pdc_chassis.c | 1 +
>> arch/powerpc/kernel/setup-common.c | 1 +
>> arch/s390/kernel/ipl.c | 1 +
>> arch/sparc/kernel/sstate.c | 1 +
>> arch/um/drivers/mconsole_kern.c | 1 +
>> arch/um/kernel/um_arch.c | 1 +
>> arch/x86/hyperv/hv_init.c | 148 +-
>> arch/x86/include/asm/desc.h | 1 +
>> arch/x86/include/asm/hyperv-tlfs.h | 33 +
>> arch/x86/include/asm/mshyperv.h | 11 -
>> arch/x86/kernel/cpu/mshyperv.c | 20 +-
>> arch/x86/kernel/setup.c | 1 +
>> arch/x86/purgatory/purgatory.c | 2 +
>> arch/x86/xen/enlighten.c | 1 +
>> arch/xtensa/platforms/iss/setup.c | 1 +
>> debian.azure/abi/arm64/ignore | 1 +
>> debian.azure/abi/arm64/ignore.modules | 1 +
>> debian.azure/abi/arm64/ignore.retpoline | 1 +
>> debian.azure/config/amd64/config.common.amd64 | 68 +
>> debian.azure/config/annotations | 192 +-
>> debian.azure/config/arm64/config.common.arm64 | 71 +
>> debian.azure/config/arm64/config.flavour.azure | 3 +
>> debian.azure/config/config.common.ubuntu | 2223
>> ++++++++++++++++++++-
>> debian.azure/control.d/vars.azure | 4 +-
>> debian.azure/control.stub.in | 7 +-
>> debian.azure/d-i/kernel-versions | 1 +
>> debian.azure/etc/getabis | 1 +
>> debian.azure/etc/kernelconfig | 2 +-
>> debian.azure/rules.d/arm64.mk | 28 +
>> drivers/Makefile | 2 +-
>> drivers/bus/brcmstb_gisb.c | 1 +
>> drivers/char/ipmi/ipmi_msghandler.c | 1 +
>> drivers/clk/analogbits/wrpll-cln28hpc.c | 4 +
>> drivers/clocksource/hyperv_timer.c | 3 -
>> drivers/edac/altera_edac.c | 1 +
>> drivers/firmware/google/gsmi.c | 1 +
>> drivers/hv/Kconfig | 7 +-
>> drivers/hv/Makefile | 3 +
>> drivers/hv/hv_common.c | 285 +++
>> drivers/hv/hv_util.c | 5 -
>> drivers/hv/vmbus_drv.c | 1 +
>> drivers/hwtracing/coresight/coresight-cpu-debug.c | 1 +
>> drivers/leds/trigger/ledtrig-activity.c | 1 +
>> drivers/leds/trigger/ledtrig-heartbeat.c | 1 +
>> drivers/leds/trigger/ledtrig-panic.c | 1 +
>> drivers/misc/bcm-vk/bcm_vk_dev.c | 1 +
>> drivers/misc/ibmasm/heartbeat.c | 1 +
>> drivers/misc/pvpanic/pvpanic.c | 1 +
>> drivers/net/ipa/ipa_smp2p.c | 1 +
>> drivers/parisc/power.c | 1 +
>> drivers/pci/Kconfig | 2 +-
>> drivers/pci/controller/Kconfig | 2 +-
>> drivers/pci/controller/pci-hyperv.c | 461 ++++-
>> drivers/pci/probe.c | 12 +-
>> drivers/power/reset/ltc2952-poweroff.c | 1 +
>> drivers/remoteproc/remoteproc_core.c | 1 +
>> drivers/s390/char/con3215.c | 1 +
>> drivers/s390/char/con3270.c | 1 +
>> drivers/s390/char/sclp.c | 1 +
>> drivers/s390/char/sclp_con.c | 1 +
>> drivers/s390/char/sclp_vt220.c | 1 +
>> drivers/s390/char/zcore.c | 1 +
>> drivers/soc/bcm/brcmstb/pm/pm-arm.c | 1 +
>> drivers/staging/olpc_dcon/olpc_dcon.c | 1 +
>> drivers/video/fbdev/hyperv_fb.c | 1 +
>> include/asm-generic/bug.h | 3 +-
>> include/asm-generic/hyperv-tlfs.h | 33 -
>> include/asm-generic/mshyperv.h | 13 +
>> include/clocksource/hyperv_timer.h | 11 +-
>> include/linux/arm-smccc.h | 55 +
>> include/linux/kernel.h | 84 +-
>> include/linux/panic.h | 98 +
>> include/linux/panic_notifier.h | 12 +
>> include/linux/pci.h | 11 +
>> include/linux/thread_info.h | 1 +
>> kernel/hung_task.c | 1 +
>> kernel/kexec_core.c | 1 +
>> kernel/panic.c | 1 +
>> kernel/rcu/tree.c | 2 +
>> kernel/sysctl.c | 1 +
>> kernel/trace/trace.c | 1 +
>> 98 files changed, 3936 insertions(+), 539 deletions(-)
>> create mode 100644 arch/arm64/hyperv/Makefile
>> create mode 100644 arch/arm64/hyperv/hv_core.c
>> create mode 100644 arch/arm64/hyperv/mshyperv.c
>> create mode 100644 arch/arm64/include/asm/hyperv-tlfs.h
>> create mode 100644 arch/arm64/include/asm/mshyperv.h
>> create mode 100644 debian.azure/abi/arm64/ignore
>> create mode 100644 debian.azure/abi/arm64/ignore.modules
>> create mode 100644 debian.azure/abi/arm64/ignore.retpoline
>> create mode 100644 debian.azure/config/arm64/config.common.arm64
>> create mode 100644 debian.azure/config/arm64/config.flavour.azure
>> create mode 100644 debian.azure/rules.d/arm64.mk
>> create mode 100644 drivers/hv/hv_common.c
>> create mode 100644 include/linux/panic.h
>> create mode 100644 include/linux/panic_notifier.h
>
> There are a lot of config changes performed by the first patch:
> 25696931fa618 ("UBUNTU: [Packaging] linux-azure: Add basic packaging
> support for arm64")
>
> Some may not be needed, for example:
> CONFIG_HID_PLAYSTATION=m
>
> Is this because of changes in the the base Impish kernel?
>
I might just have missed this config option. When enabling a new arch in
the packaging there is no easy way to sift through all of the config
options. Since this one is a module I'm not too worried, especially
since it is a USB device. Maybe Thadeu knows of some way USB devices can
be abused in a cloud VM.
rtg
> This first patch does not apply to the master branch in Impish, but does
> apply cleanly to the master-next branch so:
>
> Acked-by: Joseph Salisbury <joseph.salisbury at canonical.com>
>
--
-----------
Tim Gardner
Canonical, Inc
More information about the kernel-team
mailing list