[PULL][SRU Xenial] Support QEMU guests in ACPI mode

dann frazier dann.frazier at canonical.com
Tue Feb 27 21:12:01 UTC 2018


Thanks Kleber,
  Can you elaborate on your concern regarding this option on other
architectures?
I know that work is going on upstream to enable this code for x86:
  https://lkml.org/lkml/2018/1/18/440

If we grow those patches, wouldn't we want to parse the SPCR table on
platforms that provide it?

  -dann

On Mon, Feb 26, 2018 at 11:12 AM, Kleber Souza
<kleber.souza at canonical.com> wrote:
> Hi Dann,
>
> Regarding patch 9/11 there's a comment on the bug:
>
> "Patch 9 turns on CONFIG_ACPI_SPCR_TABLE - however, this driver will
> only be built for arm64. TBH, I'm not 100% sure how Kconfig knows not to
> build this for other archs - but I checked the logs, and there's no
> spcr.o built on other archs. (Not that that should be a problem - they
> would just grow a bit of unused code)."
>
> Indeed the CONFIG_ACPI_SPCR_TABLE is not set for arches other than
> arm64, that's because the config option is added as non-visible and it's
> only selected by arch/arm64/Kconfig. But I'm a bit concerned about the
> possibility of an accidental enablement of this config option for
> another arch in the future.
>
> To solve this problem, my suggestion would be to set the default of the
> config option to 'n' on drivers/acpi/Kconfig and set it to =y only on
> debian.master/config/arm64/config.common.arm64 (this would be done
> automatically by 'updateconfigs'). It's probably a good idea to add an
> entry on the annotations file as well.
>
>
> Thanks,
> Kleber
>
>
> On 02/02/18 00:00, dann frazier wrote:
>> BugLink: https://bugs.launchpad.net/bugs/1744754
>>
>> qemu-efi, the UEFI firmware used to boot arm64 KVM guests, has
>> switched from devicetree to ACPI by default. However, the GA xenial
>> kernel didn't have enough ACPI support to boot in this mode. That
>> means, for example, that your bionic-based OpenStack won't be able to
>> boot xenial cloud images. This series backports the minimum necessary
>> ACPI support back to 4.4: GICv3 and SPCR console detection.
>>
>> The testing/risk assessment is all there in the bug, as is a
>> discussion of other possible solutions. The GICv3 support comprises
>> all clean cherry-picks. Some backporting was required for the console
>> stuff - I've annotated each patch with the details in each patch above
>> my S-o-b.
>>
>> Test builds are available in ppa:dannf/test.
>>
>> The following changes since commit 355335ee775c4016a34b22e99e14cf5bc9534c1b:
>>
>>   UBUNTU: [Packaging] update urgency to medium by default (2018-01-29
>> 13:09:24 +0100)
>>
>> are available in the Git repository at:
>>
>>   git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux minacpi-x
>>
>> for you to fetch changes up to eb0e0630ae2860f70f017a1b11ee356d736edf9e:
>>
>>   serial: pl011: add console matching function (2018-01-31 16:12:16 -0700)
>>
>> ----------------------------------------------------------------
>> Aleksey Makarov (4):
>>       ACPICA: Headers: Add new constants for the DBG2 ACPI table
>>       ACPI: parse SPCR and enable matching console
>>       ARM64: ACPI: enable ACPI_SPCR_TABLE
>>       serial: pl011: add console matching function
>>
>> Hanjun Guo (1):
>>       irqchip/gic-v3: Remove gic_root_node variable from the ITS code
>>
>> Leif Lindholm (1):
>>       of/serial: move earlycon early_param handling to serial
>>
>> Tomasz Nowicki (4):
>>       irqchip/gic-v3: Refactor gic_of_init() for GICv3 driver
>>       irqchip/gic-v3: Add ACPI support for GICv3/4 initialization
>>       irqchip/gic-v3: ACPI: Add redistributor support via GICC structures
>>       irqchip/gic-v3-its: Mark its_init() and its children as __init
>>
>> dann frazier (1):
>>       UBUNTU: [Config] CONFIG_ACPI_SPCR_TABLE=y
>>
>>  arch/arm64/Kconfig                        |   1 +
>>  arch/arm64/kernel/acpi.c                  |  11 +-
>>  debian.master/config/config.common.ubuntu |   1 +
>>  drivers/acpi/Kconfig                      |   3 +
>>  drivers/acpi/Makefile                     |   1 +
>>  drivers/acpi/spcr.c                       | 111 ++++++++++
>>  drivers/irqchip/irq-gic-v3-its.c          |  10 +-
>>  drivers/irqchip/irq-gic-v3.c              | 347 +++++++++++++++++++++++++-----
>>  drivers/of/fdt.c                          |  11 +-
>>  drivers/tty/serial/amba-pl011.c           |  55 +++++
>>  drivers/tty/serial/earlycon.c             |  20 +-
>>  include/acpi/actbl2.h                     |   7 +-
>>  include/linux/acpi.h                      |   6 +
>>  include/linux/of_fdt.h                    |   3 +
>>  include/linux/serial_core.h               |   9 +-
>>  15 files changed, 527 insertions(+), 69 deletions(-)
>>  create mode 100644 drivers/acpi/spcr.c
>>




More information about the kernel-team mailing list