Azure: Add support for multi-MSI

Bug #1981577 reported by Tim Gardner
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux-azure (Ubuntu)
Fix Released
Undecided
Unassigned
Focal
Fix Released
Medium
Tim Gardner
Jammy
Fix Released
Medium
Tim Gardner

Bug Description

SRU Justification

[Impact]

The Hyper-V vPCI driver (pci-hyperv) doesn't work with a PCIe devcie that supports multiple MSI interrupts (Note: MSI-X has been working fine). Recently Jeffrey Hugo <email address hidden> made 4 patches to the vPCI driver so multiple-MSI can work now. Please consider picking up the 4 patches into the linux-azure kernels for Ubuntu LTS 18.04, 20.04 and 22.04:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=08e61e861a0e47e5e1a3fb78406afd6b0cea6b6d

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=455880dfe292a2bdd3b4ad6a107299fce610e64b

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b4b77778ecc5bfbd4e77de1b2fd5c1dd3c655f1f

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a2bad844a67b1c7740bda63e87453baf63c3a7f7

Microsoft is working to bring up a Qualcomm PCIe device to Linux VMs running on Azure. We need the 4 patches for the device to work on Azure/Hyper-V.

[Test Plan]

Microsoft tested

[Where things could go wrong]

MSI vectors could be mis-wired or ignored.

[Other Info]

SF: #00339521

Tim Gardner (timg-tpi)
affects: linux (Ubuntu) → linux-azure (Ubuntu)
Changed in linux-azure (Ubuntu):
status: New → Fix Released
Changed in linux-azure (Ubuntu Focal):
assignee: nobody → Tim Gardner (timg-tpi)
importance: Undecided → Medium
status: New → In Progress
Changed in linux-azure (Ubuntu Jammy):
assignee: nobody → Tim Gardner (timg-tpi)
importance: Undecided → Medium
status: New → In Progress
Revision history for this message
Tim Gardner (timg-tpi) wrote :
Tim Gardner (timg-tpi)
Changed in linux-azure (Ubuntu Focal):
status: In Progress → Fix Committed
Changed in linux-azure (Ubuntu Jammy):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-azure/5.4.0-1087.92 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-focal' to 'verification-done-focal'. If the problem still exists, change the tag 'verification-needed-focal' to 'verification-failed-focal'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-focal
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-azure/5.15.0-1015.18 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-jammy' to 'verification-done-jammy'. If the problem still exists, change the tag 'verification-needed-jammy' to 'verification-failed-jammy'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-jammy
Revision history for this message
Tim Gardner (timg-tpi) wrote :

VT: Microsoft tested

tags: added: verification-done-focal verification-done-jammy
removed: verification-needed-focal verification-needed-jammy
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (10.8 KiB)

This bug was fixed in the package linux-azure - 5.15.0-1017.20

---------------
linux-azure (5.15.0-1017.20) jammy; urgency=medium

  [ Ubuntu: 5.15.0-46.49 ]

  * CVE-2022-2585
    - SAUCE: posix-cpu-timers: Cleanup CPU timers before freeing them during exec
  * CVE-2022-2586
    - SAUCE: netfilter: nf_tables: do not allow SET_ID to refer to another table
    - SAUCE: netfilter: nf_tables: do not allow CHAIN_ID to refer to another table
    - SAUCE: netfilter: nf_tables: do not allow RULE_ID to refer to another chain
  * CVE-2022-2588
    - SAUCE: net_sched: cls_route: remove from list when handle is 0

linux-azure (5.15.0-1016.19) jammy; urgency=medium

  * jammy/linux-azure: 5.15.0-1016.19 -proposed tracker (LP: #1982619)

  * Azure: multi-MSI patches break fio tests on NVMe (LP: #1982613)
    - Revert "PCI: hv: Fix interrupt mapping for multi-MSI"
    - Revert "PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()"
    - Revert "PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI"
    - Revert "PCI: hv: Remove unused hv_set_msi_entry_from_desc()"
    - Revert "PCI: hv: Avoid the retarget interrupt hypercall in irq_unmask() on
      ARM64"
    - Revert "PCI: hv: Fix multi-MSI to allow more than one MSI vector"
    - Revert "genirq/msi, treewide: Use a named struct for PCI/MSI attributes"
    - Revert "PCI/MSI: Remove msi_desc_to_pci_sysdata()"
    - Revert "PCI/MSI: Make pci_msi_domain_write_msg() static"
    - Revert "genirq/msi: Fixup includes"
    - Revert "genirq/msi: Remove unused domain callbacks"
    - Revert "genirq/msi: Guard sysfs code"

linux-azure (5.15.0-1015.18) jammy; urgency=medium

  * jammy/linux-azure: 5.15.0-1015.18 -proposed tracker (LP: #1982272)

  * Azure: Add support for multi-MSI (LP: #1981577)
    - genirq/msi: Guard sysfs code
    - genirq/msi: Remove unused domain callbacks
    - genirq/msi: Fixup includes
    - PCI/MSI: Make pci_msi_domain_write_msg() static
    - PCI/MSI: Remove msi_desc_to_pci_sysdata()
    - genirq/msi, treewide: Use a named struct for PCI/MSI attributes
    - PCI: hv: Fix multi-MSI to allow more than one MSI vector
    - PCI: hv: Avoid the retarget interrupt hypercall in irq_unmask() on ARM64
    - PCI: hv: Remove unused hv_set_msi_entry_from_desc()
    - PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI
    - PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()
    - PCI: hv: Fix interrupt mapping for multi-MSI

  * AMD ACP 6.x DMIC Supports (LP: #1949245)
    - [Config] azure: Disable AMD ACP 6 DMIC Support

  * Ubuntu 22.04 and 20.04 DPC Fixes for Failure Cases of DownPort Containment
    events (LP: #1965241)
    - [Config] azure: Enable config option CONFIG_PCIE_EDR

  * CVE-2022-29900 // CVE-2022-29901
    - [Config]: azure: Enable speculation mitigations

  * Packaging resync (LP: #1786013)
    - debian/dkms-versions -- update from kernel-versions (main/2022.07.11)

  [ Ubuntu: 5.15.0-45.48 ]

  * CVE-2022-29900 // CVE-2022-29901
    - x86/lib/atomic64_386_32: Rename things
    - x86: Prepare asm files for straight-line-speculation
    - x86: Prepare inline-asm for straight-line-speculation
    - x86/alternative: Relax text_poke_bp() constraint
    - kbuild: move objtool_ar...

Changed in linux-azure (Ubuntu Jammy):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (9.8 KiB)

This bug was fixed in the package linux-azure - 5.4.0-1089.94

---------------
linux-azure (5.4.0-1089.94) focal; urgency=medium

  [ Ubuntu: 5.4.0-124.140 ]

  * CVE-2022-2586
    - SAUCE: netfilter: nf_tables: do not allow SET_ID to refer to another table
    - SAUCE: netfilter: nf_tables: do not allow RULE_ID to refer to another chain
  * CVE-2022-2588
    - SAUCE: net_sched: cls_route: remove from list when handle is 0
  * CVE-2022-34918
    - netfilter: nf_tables: stricter validation of element data

linux-azure (5.4.0-1088.93) focal; urgency=medium

  * focal/linux-azure: 5.4.0-1088.93 -proposed tracker (LP: #1982614)

  * Azure: multi-MSI patches break fio tests on NVMe (LP: #1982613)
    - Revert "PCI: hv: Fix interrupt mapping for multi-MSI"
    - Revert "PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()"
    - Revert "PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI"
    - Revert "PCI: hv: Fix multi-MSI to allow more than one MSI vector"

linux-azure (5.4.0-1087.92) focal; urgency=medium

  * focal/linux-azure: 5.4.0-1087.92 -proposed tracker (LP: #1981257)

  * Azure: Add support for multi-MSI (LP: #1981577)
    - PCI: hv: Fix multi-MSI to allow more than one MSI vector
    - PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI
    - PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()
    - PCI: hv: Fix interrupt mapping for multi-MSI

  [ Ubuntu: 5.4.0-123.139 ]

  * focal/linux: 5.4.0-123.139 -proposed tracker (LP: #1981284)
  * Packaging resync (LP: #1786013)
    - debian/dkms-versions -- update from kernel-versions (main/2022.07.11)
  * Hairpin traffic does not work with centralized NAT gw (LP: #1967856)
    - net: openvswitch: fix misuse of the cached connection on tuple changes
  * [UBUNTU 20.04] Include patches to avoid self-detected stall with Secure
    Execution (LP: #1979296)
    - KVM: s390: pv: add macros for UVC CC values
    - KVM: s390: pv: avoid stalls when making pages secure
    - KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm
  * Focal update: v5.4.195 upstream stable release (LP: #1980407)
    - batman-adv: Don't skb_split skbuffs with frag_list
    - hwmon: (tmp401) Add OF device ID table
    - mac80211: Reset MBSSID parameters upon connection
    - net: Fix features skip in for_each_netdev_feature()
    - ipv4: drop dst in multicast routing path
    - drm/nouveau: Fix a potential theorical leak in nouveau_get_backlight_name()
    - netlink: do not reset transport header in netlink_recvmsg()
    - mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection
    - dim: initialize all struct fields
    - hwmon: (ltq-cputemp) restrict it to SOC_XWAY
    - s390/ctcm: fix variable dereferenced before check
    - s390/ctcm: fix potential memory leak
    - s390/lcs: fix variable dereferenced before check
    - net/sched: act_pedit: really ensure the skb is writable
    - net/smc: non blocking recvmsg() return -EAGAIN when no data and
      signal_pending
    - net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe()
    - gfs2: Fix filesystem block deallocation for short writes
    - hwmon: (f71882fg) Fix negative temperature
    - ASoC: max98090: Reject invalid values in custom control put()
...

Changed in linux-azure (Ubuntu Focal):
status: Fix Committed → 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.