Support ARM GIC ITS in ACPI mode

Bug #1626631 reported by dann frazier
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
High
dann frazier

Bug Description

[Impact]
ARM systems that use a GICv3 controller require ITS support to route Message Signal Interrupts (MSI) to CPUs. This currently does not work on systems in ACPI mode. Most (all?) upcoming server SoCs will be using ACPI-enabled firmware as dictated by the ARM Server Base System Architecture specification.

[Test Case]
Boot such a system and look for ITS boot messages and ITS-MSI entries in /proc/interrupts.

[Regression Risk]
The required patches are currently in linux-next, so we should have upstream support for issues. There are a couple 1-liner changes to arch-generic code (drivers/acpi/bus.c, drivers/pci/msi.c) to enable this probing, but it is - IMO - straightforward and obviously correct.

The bulk of the changes are to ARM-specific code (irq-gic-v3* drivers). I have regression tested on X-Gene (no GICv3 ITS) and Cavium Thunder-X (w/ GICv3 ITS) in the currently certified DTB modes.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 4.8.0-16.17

---------------
linux (4.8.0-16.17) yakkety; urgency=low

  [ Tim Gardner ]

  * Release Tracking Bug
    - LP: #1626768

  * Support ARM GIC ITS in ACPI mode (LP: #1626631)
    - [Config] CONFIG_ACPI_IORT=y
    - SAUCE: ACPI: I/O Remapping Table (IORT) initial support
    - SAUCE: ACPI: Add new IORT functions to support MSI domain handling
    - SAUCE: irqchip/gicv3-its: Cleanup for ITS domain initialization
    - SAUCE: irqchip/gicv3-its: Refactor ITS DT init code to prepare for ACPI
    - SAUCE: irqchip/gicv3-its: Probe ITS in the ACPI way
    - SAUCE: irqchip/gicv3-its: Factor out PCI-MSI part that might be reused for ACPI
    - SAUCE: irqchip/gicv3-its: Use MADT ITS subtable to do PCI/MSI domain initialization
    - SAUCE: PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table

  * 4.8 dropped CONFIG_ATA=y (breaks systemd's TEST-08-ISSUE-2730 upstream test)
    (LP: #1626394)
    - [Config] CONFIG_ATA=y

  * Yakkety: Enable drivers with respect to Xenial (LP: #1626543)
    - [Config] CONFIG_VMD=m
    - [Config] CONFIG_MAC80211_RC_MINSTREL_VHT=y for all arches
    - [Config] CONFIG_OF=y for all arches
    - [Config] CONFIG_BLK_DEV_NVME_SCSI=y
    - [Config] Xenial device settings sync with amd64
    - [Config] Xenial device settings sync with i386
    - [Config] CONFIG_MTD_UBI_GLUEBI=m
    - [Config] Xenial device settings sync with armhf
    - [Config] Xenial device settings sync with arm64

  * yakkety 4.8, missing config CONFIG_USERFAULTFD=y (LP: #1626149)
    - [Config] CONFIG_USERFAULTFD=y

  * 4.8 regression: SLAB is being used instead of SLUB (LP: #1626564)
    - [Config] CONFIG_SLUB=y

  * image won't boot after upgrading to yakkety's 4.8 kernel because efi
    (LP: #1626158)
    - add nls_cp437 to the generic.inclusion-list

 -- Tim Gardner <email address hidden> Thu, 22 Sep 2016 06:51:45 -0600

Changed in linux (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.