mbox series

[SRU,bionic/azure-4.15,0/5] add x2apic support

Message ID 20211210174045.23800-1-bartlomiej.zolnierkiewicz@canonical.com
Headers show
Series add x2apic support | expand

Message

Bartlomiej Zolnierkiewicz Dec. 10, 2021, 5:40 p.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1951924

[SRU Justification]

[Impact]

Current linux-azure-4.15 kernel in bionic fails to boot Standard_M416s_v2 VM because of x2apic being disabled:

[ 0.000000] x2apic: IRQ remapping doesn't support X2APIC mode
[ 0.000000] unchecked MSR access error: WRMSR to 0x1b (tried to write 0x00000000fee00100) at rIP: 0xffffffff9325d1f8 (native_write_msr+0x8/0x30)
[ 0.000000] Call Trace:
[ 0.000000] __x2apic_disable.part.5+0x49/0x80
[ 0.000000] enable_IR_x2apic+0x123/0x18c
[ 0.000000] default_setup_apic_routing+0x16/0x73
[ 0.000000] apic_intr_mode_init+0x84/0x91
[ 0.000000] x86_late_time_init+0x24/0x2b
[ 0.000000] start_kernel+0x444/0x505
[ 0.000000] x86_64_start_reservations+0x24/0x26
[ 0.000000] x86_64_start_kernel+0x74/0x77
[ 0.000000] secondary_startup_64+0xa5/0xb0
[ 0.000000] x2apic disabled
[ 0.000000] Switched APIC routing to physical flat.

[Test Plan]

Run updated kernel (with x2apic support backported from linux-azure-5.4 kernel).

It should boot fine and display:

[ 0.000000] Setting APIC routing to physical x2apic.

[Where problems could occur]

Potentially x2apic may now be used on other VM instances.

[Other Info]

None.


Lan Tianyu (2):
  x86/Hyper-V: Set x2apic destination mode to physical when x2apic is
    available
  iommu/hyper-v: Add Hyper-V stub IOMMU driver

Marcelo Henrique Cerri (1):
  UBUNTU: [Config] linux-azure: CONFIG_HYPERV_IOMMU=y

Maya Nakamura (2):
  PCI: hv: Replace hv_vp_set with hv_vpset
  PCI: hv: Refactor hv_irq_unmask() to use cpumask_to_vpset()

 arch/x86/hyperv/hv_init.c                     |   1 +
 arch/x86/kernel/cpu/mshyperv.c                |  12 ++
 debian.azure-4.15/config/annotations          |   3 +
 debian.azure-4.15/config/config.common.ubuntu |   1 +
 drivers/iommu/Kconfig                         |   9 +
 drivers/iommu/Makefile                        |   1 +
 drivers/iommu/hyperv-iommu.c                  | 196 ++++++++++++++++++
 drivers/iommu/irq_remapping.c                 |   3 +
 drivers/iommu/irq_remapping.h                 |   1 +
 drivers/pci/host/pci-hyperv.c                 |  59 +++---
 10 files changed, 254 insertions(+), 32 deletions(-)
 create mode 100644 drivers/iommu/hyperv-iommu.c

Comments

Tim Gardner Dec. 13, 2021, 3:07 p.m. UTC | #1
Acked-by: Tim Gardner <tim.gardner@canonical.com>

Backported patches generally require a little explanation, even if its 
as simple (as in these 2 cases) as nothing more then a context 
adjustment. Anything more complicated certainly deserves a thorough 
explanation of the changes.

The last patch doesn't really need to be a backport. Config and 
packaging changes generally stand on their own. It helps if you make the 
commit subject pertain to the specific kernel. In this case it would be 
"UBUNTU: [Config] linux-azure-4.15: CONFIG_HYPERV_IOMMU=y"

rtg

On 12/10/21 10:40 AM, Bartlomiej Zolnierkiewicz wrote:
> BugLink: https://bugs.launchpad.net/bugs/1951924
> 
> [SRU Justification]
> 
> [Impact]
> 
> Current linux-azure-4.15 kernel in bionic fails to boot Standard_M416s_v2 VM because of x2apic being disabled:
> 
> [ 0.000000] x2apic: IRQ remapping doesn't support X2APIC mode
> [ 0.000000] unchecked MSR access error: WRMSR to 0x1b (tried to write 0x00000000fee00100) at rIP: 0xffffffff9325d1f8 (native_write_msr+0x8/0x30)
> [ 0.000000] Call Trace:
> [ 0.000000] __x2apic_disable.part.5+0x49/0x80
> [ 0.000000] enable_IR_x2apic+0x123/0x18c
> [ 0.000000] default_setup_apic_routing+0x16/0x73
> [ 0.000000] apic_intr_mode_init+0x84/0x91
> [ 0.000000] x86_late_time_init+0x24/0x2b
> [ 0.000000] start_kernel+0x444/0x505
> [ 0.000000] x86_64_start_reservations+0x24/0x26
> [ 0.000000] x86_64_start_kernel+0x74/0x77
> [ 0.000000] secondary_startup_64+0xa5/0xb0
> [ 0.000000] x2apic disabled
> [ 0.000000] Switched APIC routing to physical flat.
> 
> [Test Plan]
> 
> Run updated kernel (with x2apic support backported from linux-azure-5.4 kernel).
> 
> It should boot fine and display:
> 
> [ 0.000000] Setting APIC routing to physical x2apic.
> 
> [Where problems could occur]
> 
> Potentially x2apic may now be used on other VM instances.
> 
> [Other Info]
> 
> None.
> 
> 
> Lan Tianyu (2):
>    x86/Hyper-V: Set x2apic destination mode to physical when x2apic is
>      available
>    iommu/hyper-v: Add Hyper-V stub IOMMU driver
> 
> Marcelo Henrique Cerri (1):
>    UBUNTU: [Config] linux-azure: CONFIG_HYPERV_IOMMU=y
> 
> Maya Nakamura (2):
>    PCI: hv: Replace hv_vp_set with hv_vpset
>    PCI: hv: Refactor hv_irq_unmask() to use cpumask_to_vpset()
> 
>   arch/x86/hyperv/hv_init.c                     |   1 +
>   arch/x86/kernel/cpu/mshyperv.c                |  12 ++
>   debian.azure-4.15/config/annotations          |   3 +
>   debian.azure-4.15/config/config.common.ubuntu |   1 +
>   drivers/iommu/Kconfig                         |   9 +
>   drivers/iommu/Makefile                        |   1 +
>   drivers/iommu/hyperv-iommu.c                  | 196 ++++++++++++++++++
>   drivers/iommu/irq_remapping.c                 |   3 +
>   drivers/iommu/irq_remapping.h                 |   1 +
>   drivers/pci/host/pci-hyperv.c                 |  59 +++---
>   10 files changed, 254 insertions(+), 32 deletions(-)
>   create mode 100644 drivers/iommu/hyperv-iommu.c
>
Stefan Bader Dec. 16, 2021, 8:11 a.m. UTC | #2
On 10.12.21 18:40, Bartlomiej Zolnierkiewicz wrote:
> BugLink: https://bugs.launchpad.net/bugs/1951924
> 
> [SRU Justification]
> 
> [Impact]
> 
> Current linux-azure-4.15 kernel in bionic fails to boot Standard_M416s_v2 VM because of x2apic being disabled:
> 
> [ 0.000000] x2apic: IRQ remapping doesn't support X2APIC mode
> [ 0.000000] unchecked MSR access error: WRMSR to 0x1b (tried to write 0x00000000fee00100) at rIP: 0xffffffff9325d1f8 (native_write_msr+0x8/0x30)
> [ 0.000000] Call Trace:
> [ 0.000000] __x2apic_disable.part.5+0x49/0x80
> [ 0.000000] enable_IR_x2apic+0x123/0x18c
> [ 0.000000] default_setup_apic_routing+0x16/0x73
> [ 0.000000] apic_intr_mode_init+0x84/0x91
> [ 0.000000] x86_late_time_init+0x24/0x2b
> [ 0.000000] start_kernel+0x444/0x505
> [ 0.000000] x86_64_start_reservations+0x24/0x26
> [ 0.000000] x86_64_start_kernel+0x74/0x77
> [ 0.000000] secondary_startup_64+0xa5/0xb0
> [ 0.000000] x2apic disabled
> [ 0.000000] Switched APIC routing to physical flat.
> 
> [Test Plan]
> 
> Run updated kernel (with x2apic support backported from linux-azure-5.4 kernel).
> 
> It should boot fine and display:
> 
> [ 0.000000] Setting APIC routing to physical x2apic.
> 
> [Where problems could occur]
> 
> Potentially x2apic may now be used on other VM instances.
> 
> [Other Info]
> 
> None.
> 
> 
> Lan Tianyu (2):
>    x86/Hyper-V: Set x2apic destination mode to physical when x2apic is
>      available
>    iommu/hyper-v: Add Hyper-V stub IOMMU driver
> 
> Marcelo Henrique Cerri (1):
>    UBUNTU: [Config] linux-azure: CONFIG_HYPERV_IOMMU=y
> 
> Maya Nakamura (2):
>    PCI: hv: Replace hv_vp_set with hv_vpset
>    PCI: hv: Refactor hv_irq_unmask() to use cpumask_to_vpset()
> 
>   arch/x86/hyperv/hv_init.c                     |   1 +
>   arch/x86/kernel/cpu/mshyperv.c                |  12 ++
>   debian.azure-4.15/config/annotations          |   3 +
>   debian.azure-4.15/config/config.common.ubuntu |   1 +
>   drivers/iommu/Kconfig                         |   9 +
>   drivers/iommu/Makefile                        |   1 +
>   drivers/iommu/hyperv-iommu.c                  | 196 ++++++++++++++++++
>   drivers/iommu/irq_remapping.c                 |   3 +
>   drivers/iommu/irq_remapping.h                 |   1 +
>   drivers/pci/host/pci-hyperv.c                 |  59 +++---
>   10 files changed, 254 insertions(+), 32 deletions(-)
>   create mode 100644 drivers/iommu/hyperv-iommu.c
> 
I am not sure but Kleber's reply could count half as an ack. For whomever 
applies this I would suggest to drop at least the additional bug reference and I 
would also not make the config change a backport. But from all I could see all 
can be done when applying.

Acked-by: Stefan Bader <stefan.bader@canonical.com>
Krzysztof Kozlowski Dec. 18, 2021, 10:20 a.m. UTC | #3
On 10/12/2021 18:40, Bartlomiej Zolnierkiewicz wrote:
> BugLink: https://bugs.launchpad.net/bugs/1951924
> 
> [SRU Justification]
> 
> [Impact]
> 
> Current linux-azure-4.15 kernel in bionic fails to boot Standard_M416s_v2 VM because of x2apic being disabled:
> 
> [ 0.000000] x2apic: IRQ remapping doesn't support X2APIC mode
> [ 0.000000] unchecked MSR access error: WRMSR to 0x1b (tried to write 0x00000000fee00100) at rIP: 0xffffffff9325d1f8 (native_write_msr+0x8/0x30)
> [ 0.000000] Call Trace:
> [ 0.000000] __x2apic_disable.part.5+0x49/0x80
> [ 0.000000] enable_IR_x2apic+0x123/0x18c
> [ 0.000000] default_setup_apic_routing+0x16/0x73
> [ 0.000000] apic_intr_mode_init+0x84/0x91
> [ 0.000000] x86_late_time_init+0x24/0x2b
> [ 0.000000] start_kernel+0x444/0x505
> [ 0.000000] x86_64_start_reservations+0x24/0x26
> [ 0.000000] x86_64_start_kernel+0x74/0x77
> [ 0.000000] secondary_startup_64+0xa5/0xb0
> [ 0.000000] x2apic disabled
> [ 0.000000] Switched APIC routing to physical flat.
> 
> [Test Plan]
> 
> Run updated kernel (with x2apic support backported from linux-azure-5.4 kernel).
> 
> It should boot fine and display:
> 
> [ 0.000000] Setting APIC routing to physical x2apic.
> 
> [Where problems could occur]
> 
> Potentially x2apic may now be used on other VM instances.
> 
> [Other Info]
> 
> None.


Applied with fixes:
1. Add "commit" to "backported from xxxx".
2. The same for cherry-picked. Please use `git cherry-pick -s -x` command.
3. Removal of second buglink and "cherry picked" from patch 5/5.


Best regards,
Krzysztof