All of lore.kernel.org
 help / color / mirror / Atom feed
* [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
@ 2021-10-06  8:50 Rui Salvaterra
  2021-10-06 11:00 ` Marc Zyngier
                   ` (3 more replies)
  0 siblings, 4 replies; 26+ messages in thread
From: Rui Salvaterra @ 2021-10-06  8:50 UTC (permalink / raw)
  To: tglx; +Cc: maz, linux-pci, linux-kernel

Hi, Thomas,

I'm sorry for reporting this so late in the cycle, I wasn't expecting
being the only one affected. :)
"PCI/MSI: Use new mask/unmask functions" broke boot for my ION/Atom
330 system. Dmesg shows

failed to IDENTIFY (I/O error, err_mask=0x4)

and the system drops to an initramfs shell. Let me know if you need
any additional info (DMI dump and/or .config, for example).

Git bisect log follows:

git bisect start
# good: [7d2a07b769330c34b4deabeed939325c77a7ec2f] Linux 5.14
git bisect good 7d2a07b769330c34b4deabeed939325c77a7ec2f
# bad: [6880fa6c56601bb8ed59df6c30fd390cc5f6dd8f] Linux 5.15-rc1
git bisect bad 6880fa6c56601bb8ed59df6c30fd390cc5f6dd8f
# bad: [1b4f3dfb4792f03b139edf10124fcbeb44e608e6] Merge tag
'usb-serial-5.15-rc1' of
https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into
usb-next
git bisect bad 1b4f3dfb4792f03b139edf10124fcbeb44e608e6
# good: [29ce8f9701072fc221d9c38ad952de1a9578f95c] Merge
git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
git bisect good 29ce8f9701072fc221d9c38ad952de1a9578f95c
# bad: [e7c1bbcf0c315c56cd970642214aa1df3d8cf61d] Merge tag
'hwmon-for-v5.15' of
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
git bisect bad e7c1bbcf0c315c56cd970642214aa1df3d8cf61d
# bad: [679369114e55f422dc593d0628cfde1d04ae59b3] Merge tag
'for-5.15/block-2021-08-30' of git://git.kernel.dk/linux-block
git bisect bad 679369114e55f422dc593d0628cfde1d04ae59b3
# good: [c7a5238ef68b98130fe36716bb3fa44502f56001] Merge tag
's390-5.15-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
git bisect good c7a5238ef68b98130fe36716bb3fa44502f56001
# good: [e5e726f7bb9f711102edea7e5bd511835640e3b4] Merge tag
'locking-core-2021-08-30' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
git bisect good e5e726f7bb9f711102edea7e5bd511835640e3b4
# good: [158ee7b65653d9f841823c249014c2d0dfdeeb8f] block: mark
blkdev_fsync static
git bisect good 158ee7b65653d9f841823c249014c2d0dfdeeb8f
# bad: [47fb0cfdb7a71a8a0ff8fe1d117363dc81f6ca77] Merge tag
'irqchip-5.15' of
git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into
irq/core
git bisect bad 47fb0cfdb7a71a8a0ff8fe1d117363dc81f6ca77
# good: [4513fb87e1402ad815912ec7f027eb17149f44ee] Merge branch
irq/misc-5.15 into irq/irqchip-next
git bisect good 4513fb87e1402ad815912ec7f027eb17149f44ee
# bad: [88ffe2d0a55a165e55cedad1693f239d47e3e17e] genirq/cpuhotplug:
Demote debug printk to KERN_DEBUG
git bisect bad 88ffe2d0a55a165e55cedad1693f239d47e3e17e
# good: [fcacdfbef5a1633211ebfac1b669a7739f5b553e] PCI/MSI: Provide a
new set of mask and unmask functions
git bisect good fcacdfbef5a1633211ebfac1b669a7739f5b553e
# bad: [91cc470e797828d779cd4c1efbe8519bcb358bae] genirq: Change
force_irqthreads to a static key
git bisect bad 91cc470e797828d779cd4c1efbe8519bcb358bae
# bad: [428e211641ed808b55cdc7d880a0ee349eff354b] genirq/affinity:
Replace deprecated CPU-hotplug functions.
git bisect bad 428e211641ed808b55cdc7d880a0ee349eff354b
# bad: [446a98b19fd6da97a1fb148abb1766ad89c9b767] PCI/MSI: Use new
mask/unmask functions
git bisect bad 446a98b19fd6da97a1fb148abb1766ad89c9b767
# first bad commit: [446a98b19fd6da97a1fb148abb1766ad89c9b767]
PCI/MSI: Use new mask/unmask functions

Thanks in advance,
Rui

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-06  8:50 [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79) Rui Salvaterra
@ 2021-10-06 11:00 ` Marc Zyngier
  2021-10-06 11:06   ` Rui Salvaterra
  2021-10-06 11:44 ` Rui Salvaterra
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 26+ messages in thread
From: Marc Zyngier @ 2021-10-06 11:00 UTC (permalink / raw)
  To: Rui Salvaterra; +Cc: tglx, linux-pci, linux-kernel

Hi Rui,

On Wed, 06 Oct 2021 09:50:48 +0100,
Rui Salvaterra <rsalvaterra@gmail.com> wrote:
> 
> Hi, Thomas,
> 
> I'm sorry for reporting this so late in the cycle, I wasn't expecting
> being the only one affected. :)
> "PCI/MSI: Use new mask/unmask functions" broke boot for my ION/Atom
> 330 system. Dmesg shows
> 
> failed to IDENTIFY (I/O error, err_mask=0x4)
> 
> and the system drops to an initramfs shell. Let me know if you need
> any additional info (DMI dump and/or .config, for example).

Could you please give more context for this error? I assume that this
is some ATA device probing, but this is unclear at best. A full dmesg
definitely help.

'lspci -vvnn' would also be useful to understand what the device wants
in terms of PCI configuration.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-06 11:00 ` Marc Zyngier
@ 2021-10-06 11:06   ` Rui Salvaterra
  2021-10-07  8:52     ` Marc Zyngier
  0 siblings, 1 reply; 26+ messages in thread
From: Rui Salvaterra @ 2021-10-06 11:06 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: tglx, linux-pci, linux-kernel

Hi, Marc,

On Wed, 6 Oct 2021 at 12:00, Marc Zyngier <maz@kernel.org> wrote:
>
> Could you please give more context for this error? I assume that this
> is some ATA device probing, but this is unclear at best. A full dmesg
> definitely help.

I'd love to have it, but I don't have a serial console to get it from.
I can take a photo, of course, but there's no stack dump.

> 'lspci -vvnn' would also be useful to understand what the device wants
> in terms of PCI configuration.

Sure thing, here it goes (complete dump):

00:00.0 Host bridge [0600]: NVIDIA Corporation MCP79 Host Bridge
[10de:0a82] (rev b1)
    Subsystem: NVIDIA Corporation MCP79 Host Bridge [10de:cb79]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0

00:00.1 RAM memory [0500]: NVIDIA Corporation MCP79 Memory Controller
[10de:0a88] (rev b1)
    Subsystem: NVIDIA Corporation MCP79 Memory Controller [10de:cb79]
    Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0

00:03.0 ISA bridge [0601]: NVIDIA Corporation MCP79 LPC Bridge
[10de:0aad] (rev b2)
    Subsystem: ZOTAC International (MCO) Ltd. MCP79 LPC Bridge [19da:a108]
    Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0
    Region 0: I/O ports at 4f00 [size=256]

00:03.1 RAM memory [0500]: NVIDIA Corporation MCP79 Memory Controller
[10de:0aa4] (rev b1)
    Subsystem: ZOTAC International (MCO) Ltd. MCP79 Memory Controller
[19da:a108]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-

00:03.2 SMBus [0c05]: NVIDIA Corporation MCP79 SMBus [10de:0aa2] (rev b1)
    Subsystem: ZOTAC International (MCO) Ltd. MCP79 SMBus [19da:a108]
    Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 10
    Region 0: I/O ports at 4900 [size=64]
    Region 4: I/O ports at 4d00 [size=64]
    Region 5: I/O ports at 4e00 [size=64]
    Capabilities: [44] Power Management version 2
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-

00:03.3 RAM memory [0500]: NVIDIA Corporation MCP79 Memory Controller
[10de:0a89] (rev b1)
    Subsystem: NVIDIA Corporation MCP79 Memory Controller [10de:cb79]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-

00:03.5 Co-processor [0b40]: NVIDIA Corporation MCP79 Co-processor
[10de:0aa3] (rev b1)
    Subsystem: ZOTAC International (MCO) Ltd. MCP79 Co-processor [19da:a108]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0 (750ns min, 250ns max)
    Interrupt: pin B routed to IRQ 11
    Region 0: Memory at fae80000 (32-bit, non-prefetchable) [size=512K]

00:04.0 USB controller [0c03]: NVIDIA Corporation MCP79 OHCI USB 1.1
Controller [10de:0aa5] (rev b1) (prog-if 10 [OHCI])
    Subsystem: ZOTAC International (MCO) Ltd. MCP79 OHCI USB 1.1
Controller [19da:a108]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0 (750ns min, 250ns max)
    Interrupt: pin A routed to IRQ 23
    Region 0: Memory at fae7f000 (32-bit, non-prefetchable) [size=4K]
    Capabilities: [44] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Kernel driver in use: ohci-pci

00:04.1 USB controller [0c03]: NVIDIA Corporation MCP79 EHCI USB 2.0
Controller [10de:0aa6] (rev b1) (prog-if 20 [EHCI])
    Subsystem: ZOTAC International (MCO) Ltd. MCP79 EHCI USB 2.0
Controller [19da:a108]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0 (750ns min, 250ns max)
    Interrupt: pin B routed to IRQ 22
    Region 0: Memory at fae7ec00 (32-bit, non-prefetchable) [size=256]
    Capabilities: [44] Debug port: BAR=1 offset=00a0
    Capabilities: [80] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Kernel driver in use: ehci-pci

00:06.0 USB controller [0c03]: NVIDIA Corporation MCP79 OHCI USB 1.1
Controller [10de:0aa7] (rev b1) (prog-if 10 [OHCI])
    Subsystem: ZOTAC International (MCO) Ltd. MCP79 OHCI USB 1.1
Controller [19da:a108]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0 (750ns min, 250ns max)
    Interrupt: pin A routed to IRQ 21
    Region 0: Memory at fae7d000 (32-bit, non-prefetchable) [size=4K]
    Capabilities: [44] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Kernel driver in use: ohci-pci

00:06.1 USB controller [0c03]: NVIDIA Corporation MCP79 EHCI USB 2.0
Controller [10de:0aa9] (rev b1) (prog-if 20 [EHCI])
    Subsystem: ZOTAC International (MCO) Ltd. MCP79 EHCI USB 2.0
Controller [19da:a108]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0 (750ns min, 250ns max)
    Interrupt: pin B routed to IRQ 20
    Region 0: Memory at fae7e800 (32-bit, non-prefetchable) [size=256]
    Capabilities: [44] Debug port: BAR=1 offset=00a0
    Capabilities: [80] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Kernel driver in use: ehci-pci

00:08.0 Audio device [0403]: NVIDIA Corporation MCP79 High Definition
Audio [10de:0ac0] (rev b1)
    Subsystem: PC Partner Limited / Sapphire Technology MCP79 High
Definition Audio [174b:437b]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0 (500ns min, 1250ns max)
    Interrupt: pin A routed to IRQ 23
    Region 0: Memory at fae78000 (32-bit, non-prefetchable) [size=16K]
    Capabilities: [44] Power Management version 2
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Kernel driver in use: snd_hda_intel

00:09.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Bridge
[10de:0aab] (rev b1) (prog-if 01 [Subtractive decode])
    Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0
    Bus: primary=00, secondary=01, subordinate=01, sec-latency=248
    I/O behind bridge: [disabled]
    Memory behind bridge: [disabled]
    Prefetchable memory behind bridge: [disabled]
    Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr+ DiscTmrStat- DiscTmrSERREn-
    Capabilities: [b8] Subsystem: ZOTAC International (MCO) Ltd. MCP79
PCI Bridge [19da:a108]

00:0a.0 Ethernet controller [0200]: NVIDIA Corporation MCP79 Ethernet
[10de:0ab0] (rev b1)
    Subsystem: ZOTAC International (MCO) Ltd. MCP79 Ethernet [19da:a108]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0 (250ns min, 5000ns max)
    Interrupt: pin A routed to IRQ 20
    Region 0: Memory at fae7c000 (32-bit, non-prefetchable) [size=4K]
    Region 1: I/O ports at d080 [size=8]
    Region 2: Memory at fae7e400 (32-bit, non-prefetchable) [size=256]
    Region 3: Memory at fae7e000 (32-bit, non-prefetchable) [size=16]
    Capabilities: [44] Power Management version 2
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable+ DSel=0 DScale=0 PME-
    Kernel driver in use: forcedeth

00:0b.0 SATA controller [0106]: NVIDIA Corporation MCP79 AHCI
Controller [10de:0ab8] (rev b1) (prog-if 01 [AHCI 1.0])
    Subsystem: ZOTAC International (MCO) Ltd. MCP79 AHCI Controller [19da:a108]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0 (750ns min, 250ns max)
    Interrupt: pin A routed to IRQ 30
    Region 0: I/O ports at d000 [size=8]
    Region 1: I/O ports at cc00 [size=4]
    Region 2: I/O ports at c880 [size=8]
    Region 3: I/O ports at c800 [size=4]
    Region 4: I/O ports at c480 [size=16]
    Region 5: Memory at fae76000 (32-bit, non-prefetchable) [size=8K]
    Capabilities: [44] Power Management version 2
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [8c] SATA HBA v1.0 InCfgSpace
    Capabilities: [b0] MSI: Enable+ Count=1/8 Maskable- 64bit+
        Address: 00000000fee02004  Data: 0026
    Kernel driver in use: ahci

00:0c.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge
[10de:0ac4] (rev b1) (prog-if 00 [Normal decode])
    Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 24
    Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
    I/O behind bridge: [disabled]
    Memory behind bridge: [disabled]
    Prefetchable memory behind bridge: [disabled]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: [40] Subsystem: ZOTAC International (MCO) Ltd. MCP79
PCI Express Bridge [19da:a108]
    Capabilities: [48] Power Management version 3
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
        Address: 00000000fee04004  Data: 0021
    Capabilities: [80] Express (v2) Root Port (Slot+), MSI 00
        DevCap:    MaxPayload 256 bytes, PhantFunc 0
            ExtTag+ RBE+
        DevCtl:    CorrErr- NonFatalErr- FatalErr- UnsupReq-
            RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop-
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta:    CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
        LnkCap:    Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1,
Exit Latency L0s <512ns, L1 <4us
            ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp-
        LnkCtl:    ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 2.5GT/s (ok), Width x16 (ok)
            TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        SltCap:    AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
            Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
        SltCtl:    Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
HPIrq+ LinkChg+
            Control: AttnInd Off, PwrInd On, Power- Interlock-
        SltSta:    Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
            Changed: MRL- PresDet- LinkState-
        RootCap: CRSVisible-
        RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
        RootSta: PME ReqID 0000, PMEStatus- PMEPending-
        DevCap2: Completion Timeout: Range AB, TimeoutDis+ NROPrPrP- LTR-
             10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
             EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
             FRS- LN System CLS Not Supported, TPHComp- ExtTPHComp- ARIFwd-
             AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS-
        DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis- LTR-
OBFF Disabled, ARIFwd-
             AtomicOpsCtl: ReqEn- EgressBlck-
        LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -3.5dB,
EqualizationComplete- EqualizationPhase1-
             EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
             Retimer- 2Retimers- CrosslinkRes: unsupported
    Kernel driver in use: pcieport

00:10.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge
[10de:0aa0] (rev b1) (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
    I/O behind bridge: 0000e000-0000efff [size=4K]
    Memory behind bridge: faf00000-fbffffff [size=17M]
    Prefetchable memory behind bridge:
00000000e0000000-00000000f9ffffff [size=416M]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort+ <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA+ VGA16+ MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: [40] Subsystem: ZOTAC International (MCO) Ltd. MCP79
PCI Express Bridge [19da:a108]
    Capabilities: [48] Power Management version 2
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable- Count=1/2 Maskable- 64bit+
        Address: 0000000000000000  Data: 0000

00:15.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge
[10de:0ac6] (rev b1) (prog-if 00 [Normal decode])
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 25
    Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
    I/O behind bridge: [disabled]
    Memory behind bridge: feb00000-febfffff [size=1M]
    Prefetchable memory behind bridge: [disabled]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort+ <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: [40] Subsystem: ZOTAC International (MCO) Ltd. MCP79
PCI Express Bridge [19da:a108]
    Capabilities: [48] Power Management version 3
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
        Address: 00000000fee08004  Data: 0021
    Capabilities: [80] Express (v2) Root Port (Slot+), MSI 00
        DevCap:    MaxPayload 256 bytes, PhantFunc 0
            ExtTag+ RBE+
        DevCtl:    CorrErr- NonFatalErr- FatalErr- UnsupReq-
            RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop-
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta:    CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
        LnkCap:    Port #3, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit
Latency L0s <512ns, L1 <4us
            ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp-
        LnkCtl:    ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 2.5GT/s (ok), Width x1 (ok)
            TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
        SltCap:    AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
            Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
        SltCtl:    Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
HPIrq+ LinkChg+
            Control: AttnInd Off, PwrInd On, Power- Interlock-
        SltSta:    Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
            Changed: MRL- PresDet- LinkState+
        RootCap: CRSVisible-
        RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
        RootSta: PME ReqID 0000, PMEStatus- PMEPending-
        DevCap2: Completion Timeout: Range AB, TimeoutDis+ NROPrPrP- LTR-
             10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
             EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
             FRS- LN System CLS Not Supported, TPHComp- ExtTPHComp- ARIFwd-
             AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS-
        DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis- LTR-
OBFF Disabled, ARIFwd-
             AtomicOpsCtl: ReqEn- EgressBlck-
        LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -3.5dB,
EqualizationComplete- EqualizationPhase1-
             EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
             Retimer- 2Retimers- CrosslinkRes: unsupported
    Kernel driver in use: pcieport

00:16.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge
[10de:0ac7] (rev b1) (prog-if 00 [Normal decode])
    Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 26
    Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
    I/O behind bridge: [disabled]
    Memory behind bridge: [disabled]
    Prefetchable memory behind bridge: [disabled]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: [40] Subsystem: ZOTAC International (MCO) Ltd. MCP79
PCI Express Bridge [19da:a108]
    Capabilities: [48] Power Management version 3
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
        Address: 00000000fee01004  Data: 0021
    Capabilities: [80] Express (v2) Root Port (Slot+), MSI 00
        DevCap:    MaxPayload 256 bytes, PhantFunc 0
            ExtTag+ RBE+
        DevCtl:    CorrErr- NonFatalErr- FatalErr- UnsupReq-
            RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop-
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta:    CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
        LnkCap:    Port #4, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit
Latency L0s <512ns, L1 <4us
            ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp-
        LnkCtl:    ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 2.5GT/s (ok), Width x1 (ok)
            TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        SltCap:    AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
            Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
        SltCtl:    Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
HPIrq+ LinkChg+
            Control: AttnInd Off, PwrInd On, Power- Interlock-
        SltSta:    Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
            Changed: MRL- PresDet- LinkState-
        RootCap: CRSVisible-
        RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
        RootSta: PME ReqID 0000, PMEStatus- PMEPending-
        DevCap2: Completion Timeout: Range AB, TimeoutDis+ NROPrPrP- LTR-
             10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
             EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
             FRS- LN System CLS Not Supported, TPHComp- ExtTPHComp- ARIFwd-
             AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS-
        DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis- LTR-
OBFF Disabled, ARIFwd-
             AtomicOpsCtl: ReqEn- EgressBlck-
        LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -3.5dB,
EqualizationComplete- EqualizationPhase1-
             EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
             Retimer- 2Retimers- CrosslinkRes: unsupported
    Kernel driver in use: pcieport

00:17.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge
[10de:0ac7] (rev b1) (prog-if 00 [Normal decode])
    Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 27
    Bus: primary=00, secondary=06, subordinate=06, sec-latency=0
    I/O behind bridge: [disabled]
    Memory behind bridge: [disabled]
    Prefetchable memory behind bridge: [disabled]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: [40] Subsystem: ZOTAC International (MCO) Ltd. MCP79
PCI Express Bridge [19da:a108]
    Capabilities: [48] Power Management version 3
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
        Address: 00000000fee02004  Data: 0022
    Capabilities: [80] Express (v2) Root Port (Slot+), MSI 00
        DevCap:    MaxPayload 256 bytes, PhantFunc 0
            ExtTag+ RBE+
        DevCtl:    CorrErr- NonFatalErr- FatalErr- UnsupReq-
            RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop-
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta:    CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
        LnkCap:    Port #5, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit
Latency L0s <512ns, L1 <4us
            ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp-
        LnkCtl:    ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 2.5GT/s (ok), Width x1 (ok)
            TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        SltCap:    AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
            Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
        SltCtl:    Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
HPIrq+ LinkChg+
            Control: AttnInd Off, PwrInd On, Power- Interlock-
        SltSta:    Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
            Changed: MRL- PresDet- LinkState-
        RootCap: CRSVisible-
        RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
        RootSta: PME ReqID 0000, PMEStatus- PMEPending-
        DevCap2: Completion Timeout: Range AB, TimeoutDis+ NROPrPrP- LTR-
             10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
             EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
             FRS- LN System CLS Not Supported, TPHComp- ExtTPHComp- ARIFwd-
             AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS-
        DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis- LTR-
OBFF Disabled, ARIFwd-
             AtomicOpsCtl: ReqEn- EgressBlck-
        LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -3.5dB,
EqualizationComplete- EqualizationPhase1-
             EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
             Retimer- 2Retimers- CrosslinkRes: unsupported
    Kernel driver in use: pcieport

00:18.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge
[10de:0ac7] (rev b1) (prog-if 00 [Normal decode])
    Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 28
    Bus: primary=00, secondary=07, subordinate=07, sec-latency=0
    I/O behind bridge: [disabled]
    Memory behind bridge: [disabled]
    Prefetchable memory behind bridge: [disabled]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: [40] Subsystem: ZOTAC International (MCO) Ltd. MCP79
PCI Express Bridge [19da:a108]
    Capabilities: [48] Power Management version 3
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
        Address: 00000000fee04004  Data: 0022
    Capabilities: [80] Express (v2) Root Port (Slot+), MSI 00
        DevCap:    MaxPayload 256 bytes, PhantFunc 0
            ExtTag+ RBE+
        DevCtl:    CorrErr- NonFatalErr- FatalErr- UnsupReq-
            RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop-
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta:    CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
        LnkCap:    Port #6, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit
Latency L0s <512ns, L1 <4us
            ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp-
        LnkCtl:    ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 2.5GT/s (ok), Width x1 (ok)
            TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        SltCap:    AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
            Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
        SltCtl:    Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
HPIrq+ LinkChg+
            Control: AttnInd Off, PwrInd On, Power- Interlock-
        SltSta:    Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
            Changed: MRL- PresDet- LinkState-
        RootCap: CRSVisible-
        RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
        RootSta: PME ReqID 0000, PMEStatus- PMEPending-
        DevCap2: Completion Timeout: Range AB, TimeoutDis+ NROPrPrP- LTR-
             10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
             EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
             FRS- LN System CLS Not Supported, TPHComp- ExtTPHComp- ARIFwd-
             AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS-
        DevCtl2: Completion Timeout: 65ms to 210ms, TimeoutDis- LTR-
OBFF Disabled, ARIFwd-
             AtomicOpsCtl: ReqEn- EgressBlck-
        LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -3.5dB,
EqualizationComplete- EqualizationPhase1-
             EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
             Retimer- 2Retimers- CrosslinkRes: unsupported
    Kernel driver in use: pcieport

03:00.0 VGA compatible controller [0300]: NVIDIA Corporation C79 [ION]
[10de:087d] (rev b1) (prog-if 00 [VGA controller])
    Subsystem: ZOTAC International (MCO) Ltd. C79 [ION] [19da:a108]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 29
    Region 0: Memory at fb000000 (32-bit, non-prefetchable) [size=16M]
    Region 1: Memory at e0000000 (64-bit, prefetchable) [size=256M]
    Region 3: Memory at f8000000 (64-bit, prefetchable) [size=32M]
    Region 5: I/O ports at ec00 [size=128]
    Expansion ROM at 000c0000 [disabled] [size=128K]
    Capabilities: [60] Power Management version 2
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Address: 00000000fee04004  Data: 0023
    Kernel driver in use: nouveau

04:00.0 Network controller [0280]: Ralink corp. RT2790 Wireless
802.11n 1T/2R PCIe [1814:0781]
    Subsystem: Ralink corp. RT2790 Wireless 802.11n 1T/2R PCIe [1814:2790]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 19
    Region 0: Memory at febf0000 (32-bit, non-prefetchable) [size=64K]
    Capabilities: [40] Power Management version 3
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
PME(D0+,D1-,D2-,D3hot+,D3cold-)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] MSI: Enable- Count=1/32 Maskable- 64bit+
        Address: 0000000000000000  Data: 0000
    Capabilities: [70] Express (v1) Endpoint, MSI 00
        DevCap:    MaxPayload 128 bytes, PhantFunc 0, Latency L0s
<128ns, L1 <2us
            ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
SlotPowerLimit 0.000W
        DevCtl:    CorrErr- NonFatalErr- FatalErr- UnsupReq-
            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta:    CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr- TransPend-
        LnkCap:    Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit
Latency L0s <512ns, L1 <64us
            ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-
        LnkCtl:    ASPM Disabled; RCB 128 bytes, Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 2.5GT/s (ok), Width x1 (ok)
            TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
    Kernel driver in use: rt2800pci

Let me know if you need anything else.

Thanks,
Rui

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-06  8:50 [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79) Rui Salvaterra
  2021-10-06 11:00 ` Marc Zyngier
@ 2021-10-06 11:44 ` Rui Salvaterra
  2021-10-06 11:48   ` Rui Salvaterra
  2021-10-11 18:47 ` Josef Johansson
  2021-11-11  8:57 ` [tip: irq/urgent] PCI: Add MSI masking quirk for Nvidia ION AHCI tip-bot2 for Marc Zyngier
  3 siblings, 1 reply; 26+ messages in thread
From: Rui Salvaterra @ 2021-10-06 11:44 UTC (permalink / raw)
  To: tglx; +Cc: maz, linux-pci, linux-kernel

Hi, again,

On Wed, 6 Oct 2021 at 09:50, Rui Salvaterra <rsalvaterra@gmail.com> wrote:
>
> "PCI/MSI: Use new mask/unmask functions" broke boot for my ION/Atom
> 330 system

Just for the record (and probably stating the obvious), reverting the
aforementioned commit fixes this system. Running Linux 5.15-rc4, at
the moment.

Thanks,
Rui

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-06 11:44 ` Rui Salvaterra
@ 2021-10-06 11:48   ` Rui Salvaterra
  0 siblings, 0 replies; 26+ messages in thread
From: Rui Salvaterra @ 2021-10-06 11:48 UTC (permalink / raw)
  To: tglx; +Cc: maz, linux-pci, linux-kernel

On Wed, 6 Oct 2021 at 12:44, Rui Salvaterra <rsalvaterra@gmail.com> wrote:
>
> Just for the record (and probably stating the obvious), reverting the
> aforementioned commit fixes this system. Running Linux 5.15-rc4, at
> the moment.

However, reverting the commit, while yielding a working system, causes
these errors in the dmesg…

rui@vedder:~$ dmesg | grep ata1
[    0.670087] ata1: SATA max UDMA/133 abar m8192@0xfae76000 port
0xfae76100 irq 30
[    1.009734] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.010578] ata1.00: ATA-8: Hitachi HDS721010CLA332, JP4OA3EA, max UDMA/133
[    1.010699] ata1.00: Read log page 0x08 failed, Emask 0x1
[    1.010707] ata1.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 32)
[    1.011777] ata1.00: Read log page 0x08 failed, Emask 0x1
[    1.011791] ata1.00: configured for UDMA/133
rui@vedder:~$

I don't remember seeing those "Read log page 0x08 failed, Emask 0x1"
errors before.

Thanks,
Rui

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-06 11:06   ` Rui Salvaterra
@ 2021-10-07  8:52     ` Marc Zyngier
  2021-10-07 12:03       ` Rui Salvaterra
  0 siblings, 1 reply; 26+ messages in thread
From: Marc Zyngier @ 2021-10-07  8:52 UTC (permalink / raw)
  To: Rui Salvaterra; +Cc: tglx, linux-pci, linux-kernel

On Wed, 06 Oct 2021 12:06:55 +0100,
Rui Salvaterra <rsalvaterra@gmail.com> wrote:
> 
> Hi, Marc,
> 
> On Wed, 6 Oct 2021 at 12:00, Marc Zyngier <maz@kernel.org> wrote:
> >
> > Could you please give more context for this error? I assume that this
> > is some ATA device probing, but this is unclear at best. A full dmesg
> > definitely help.
> 
> I'd love to have it, but I don't have a serial console to get it from.
> I can take a photo, of course, but there's no stack dump.

That wouldn't be very helpful, unfortunately.

> 
> > 'lspci -vvnn' would also be useful to understand what the device wants
> > in terms of PCI configuration.
> 
> Sure thing, here it goes (complete dump):
> 
> 00:0b.0 SATA controller [0106]: NVIDIA Corporation MCP79 AHCI
> Controller [10de:0ab8] (rev b1) (prog-if 01 [AHCI 1.0])
>     Subsystem: ZOTAC International (MCO) Ltd. MCP79 AHCI Controller [19da:a108]
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
> ParErr- Stepping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
>     Latency: 0 (750ns min, 250ns max)
>     Interrupt: pin A routed to IRQ 30
>     Region 0: I/O ports at d000 [size=8]
>     Region 1: I/O ports at cc00 [size=4]
>     Region 2: I/O ports at c880 [size=8]
>     Region 3: I/O ports at c800 [size=4]
>     Region 4: I/O ports at c480 [size=16]
>     Region 5: Memory at fae76000 (32-bit, non-prefetchable) [size=8K]
>     Capabilities: [44] Power Management version 2
>         Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
> PME(D0-,D1-,D2-,D3hot-,D3cold-)
>         Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>     Capabilities: [8c] SATA HBA v1.0 InCfgSpace
>     Capabilities: [b0] MSI: Enable+ Count=1/8 Maskable- 64bit+
>         Address: 00000000fee02004  Data: 0026
>     Kernel driver in use: ahci

I guess this is the relevant device? It is interesting that it
advertises not supporting interrupt masking... Can you, you, out of
curiosity, give the following hack a go? I would expect things to
behave badly too (and maybe be even worse). But one way or another, it
may give us a hint.

Thanks,

	M.

diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 0099a00af361..b3c0b9d07f17 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -205,7 +205,7 @@ static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
 
 	if (desc->msi_attrib.is_msix)
 		pci_msix_mask(desc);
-	else if (desc->msi_attrib.maskbit)
+	else //if (desc->msi_attrib.maskbit)
 		pci_msi_mask(desc, mask);
 }
 
@@ -216,7 +216,7 @@ static void __pci_msi_unmask_desc(struct msi_desc *desc, u32 mask)
 
 	if (desc->msi_attrib.is_msix)
 		pci_msix_unmask(desc);
-	else if (desc->msi_attrib.maskbit)
+	else //if (desc->msi_attrib.maskbit)
 		pci_msi_unmask(desc, mask);
 }
 

-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-07  8:52     ` Marc Zyngier
@ 2021-10-07 12:03       ` Rui Salvaterra
  2021-10-07 12:15         ` Marc Zyngier
  0 siblings, 1 reply; 26+ messages in thread
From: Rui Salvaterra @ 2021-10-07 12:03 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: tglx, linux-pci, linux-kernel

Hi again, Marc,

On Thu, 7 Oct 2021 at 09:52, Marc Zyngier <maz@kernel.org> wrote:
>
[snipped]
>
> I guess this is the relevant device?

Pretty much, yes.

> It is interesting that it
> advertises not supporting interrupt masking... Can you, you, out of
> curiosity, give the following hack a go? I would expect things to
> behave badly too (and maybe be even worse). But one way or another, it
> may give us a hint.
>
> Thanks,
>
>         M.
>
> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> index 0099a00af361..b3c0b9d07f17 100644
> --- a/drivers/pci/msi.c
> +++ b/drivers/pci/msi.c
> @@ -205,7 +205,7 @@ static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
>
>         if (desc->msi_attrib.is_msix)
>                 pci_msix_mask(desc);
> -       else if (desc->msi_attrib.maskbit)
> +       else //if (desc->msi_attrib.maskbit)
>                 pci_msi_mask(desc, mask);
>  }
>
> @@ -216,7 +216,7 @@ static void __pci_msi_unmask_desc(struct msi_desc *desc, u32 mask)
>
>         if (desc->msi_attrib.is_msix)
>                 pci_msix_unmask(desc);
> -       else if (desc->msi_attrib.maskbit)
> +       else //if (desc->msi_attrib.maskbit)
>                 pci_msi_unmask(desc, mask);
>  }

Hm. You belive the controller is lying? :) Sure thing, I'll give it a
spin and let you know the result.

Thanks,
Rui

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-07 12:03       ` Rui Salvaterra
@ 2021-10-07 12:15         ` Marc Zyngier
  2021-10-07 13:11           ` Rui Salvaterra
  0 siblings, 1 reply; 26+ messages in thread
From: Marc Zyngier @ 2021-10-07 12:15 UTC (permalink / raw)
  To: Rui Salvaterra; +Cc: tglx, linux-pci, linux-kernel

On Thu, 07 Oct 2021 13:03:28 +0100,
Rui Salvaterra <rsalvaterra@gmail.com> wrote:
> 
> Hi again, Marc,
> 
> On Thu, 7 Oct 2021 at 09:52, Marc Zyngier <maz@kernel.org> wrote:
> >
> [snipped]
> >
> > I guess this is the relevant device?
> 
> Pretty much, yes.
> 
> > It is interesting that it
> > advertises not supporting interrupt masking... Can you, you, out of
> > curiosity, give the following hack a go? I would expect things to
> > behave badly too (and maybe be even worse). But one way or another, it
> > may give us a hint.
> >
> > Thanks,
> >
> >         M.
> >
> > diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> > index 0099a00af361..b3c0b9d07f17 100644
> > --- a/drivers/pci/msi.c
> > +++ b/drivers/pci/msi.c
> > @@ -205,7 +205,7 @@ static void __pci_msi_mask_desc(struct msi_desc *desc, u32 mask)
> >
> >         if (desc->msi_attrib.is_msix)
> >                 pci_msix_mask(desc);
> > -       else if (desc->msi_attrib.maskbit)
> > +       else //if (desc->msi_attrib.maskbit)
> >                 pci_msi_mask(desc, mask);
> >  }
> >
> > @@ -216,7 +216,7 @@ static void __pci_msi_unmask_desc(struct msi_desc *desc, u32 mask)
> >
> >         if (desc->msi_attrib.is_msix)
> >                 pci_msix_unmask(desc);
> > -       else if (desc->msi_attrib.maskbit)
> > +       else //if (desc->msi_attrib.maskbit)
> >                 pci_msi_unmask(desc, mask);
> >  }
> 
> Hm. You belive the controller is lying? :)

'Believe' is not a word I'd use. I know for a fact that all HW,
whether it is present, past or future is only a pile of hacks.

Given that your report tends to indicate that we fail to enable the
interrupt for this device, this would be a possibility.

> Sure thing, I'll give it a spin and let you know the result.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-07 12:15         ` Marc Zyngier
@ 2021-10-07 13:11           ` Rui Salvaterra
  2021-10-07 14:42             ` Marc Zyngier
  0 siblings, 1 reply; 26+ messages in thread
From: Rui Salvaterra @ 2021-10-07 13:11 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: tglx, linux-pci, linux-kernel

Hi again, Marc,

On Thu, 7 Oct 2021 at 13:15, Marc Zyngier <maz@kernel.org> wrote:
>
> 'Believe' is not a word I'd use. I know for a fact that all HW,
> whether it is present, past or future is only a pile of hacks.
>
> Given that your report tends to indicate that we fail to enable the
> interrupt for this device, this would be a possibility.

Heh. Guess what? The AHCI controller is lying throught its teeth. Your
hack fixes boot for me. Everything seems to be working, even with such
a big hammer.

Thanks,
Rui

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-07 13:11           ` Rui Salvaterra
@ 2021-10-07 14:42             ` Marc Zyngier
  2021-10-07 14:50               ` Rui Salvaterra
  0 siblings, 1 reply; 26+ messages in thread
From: Marc Zyngier @ 2021-10-07 14:42 UTC (permalink / raw)
  To: Rui Salvaterra; +Cc: tglx, linux-pci, linux-kernel

On Thu, 07 Oct 2021 14:11:51 +0100,
Rui Salvaterra <rsalvaterra@gmail.com> wrote:
> 
> Hi again, Marc,
> 
> On Thu, 7 Oct 2021 at 13:15, Marc Zyngier <maz@kernel.org> wrote:
> >
> > 'Believe' is not a word I'd use. I know for a fact that all HW,
> > whether it is present, past or future is only a pile of hacks.
> >
> > Given that your report tends to indicate that we fail to enable the
> > interrupt for this device, this would be a possibility.
> 
> Heh. Guess what? The AHCI controller is lying throught its teeth. Your
> hack fixes boot for me. Everything seems to be working, even with such
> a big hammer.

Right. Let's see if we can be less brutal and only quirk the AHCI
device (patch below, completely untested). I'm a bit concerned that
all the devices in this system seem to report 'Maskable-'...

	M.

diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 0099a00af361..2f9ec7210991 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -479,6 +479,9 @@ msi_setup_entry(struct pci_dev *dev, int nvec, struct irq_affinity *affd)
 		goto out;
 
 	pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
+	/* Lies, damned lies, and MSIs */
+	if (dev->dev_flags & PCI_DEV_FLAGS_HAS_MSI_MASKING)
+		control |= PCI_MSI_FLAGS_MASKBIT;
 
 	entry->msi_attrib.is_msix	= 0;
 	entry->msi_attrib.is_64		= !!(control & PCI_MSI_FLAGS_64BIT);
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 4537d1ea14fd..dc7741431bf3 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -5795,3 +5795,9 @@ static void apex_pci_fixup_class(struct pci_dev *pdev)
 }
 DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
 			       PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
+
+static void nvidia_ion_ahci_fixup(struct pci_dev *pdev)
+{
+	pdev->dev_flags |= PCI_MSI_FLAGS_MASKBIT;
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index cd8aa6fce204..152a4d74f87f 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -233,6 +233,8 @@ enum pci_dev_flags {
 	PCI_DEV_FLAGS_NO_FLR_RESET = (__force pci_dev_flags_t) (1 << 10),
 	/* Don't use Relaxed Ordering for TLPs directed at this device */
 	PCI_DEV_FLAGS_NO_RELAXED_ORDERING = (__force pci_dev_flags_t) (1 << 11),
+	/* Device does honor MSI masking despite saying otherwise */
+	PCI_DEV_FLAGS_HAS_MSI_MASKING = (__force pci_dev_flags_t) (1 << 12),
 };
 
 enum pci_irq_reroute_variant {


-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-07 14:42             ` Marc Zyngier
@ 2021-10-07 14:50               ` Rui Salvaterra
  2021-10-07 15:03                 ` Marc Zyngier
  0 siblings, 1 reply; 26+ messages in thread
From: Rui Salvaterra @ 2021-10-07 14:50 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: tglx, linux-pci, linux-kernel

Hi again, Marc,

On Thu, 7 Oct 2021 at 15:42, Marc Zyngier <maz@kernel.org> wrote:
>
> Right. Let's see if we can be less brutal and only quirk the AHCI
> device (patch below, completely untested). I'm a bit concerned that
> all the devices in this system seem to report 'Maskable-'...

True. However…

rui@vedder:~$ cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3
  0:        124          0          0          0   IO-APIC   2-edge      timer
  1:          0          0          0          0   IO-APIC   1-edge      i8042
  8:          0          0          0          1   IO-APIC   8-edge      rtc0
  9:          0          0          0          0   IO-APIC   9-fasteoi   acpi
 12:          0          1          0          0   IO-APIC  12-edge      i8042
 20:          0          0      12734     852750   IO-APIC  20-fasteoi
  ehci_hcd:usb2, enp0s10
 21:         25          0          0          0   IO-APIC  21-fasteoi
  ohci_hcd:usb4
 22:      25672        288          0          0   IO-APIC  22-fasteoi
  ehci_hcd:usb1
 23:          0          0          0        709   IO-APIC  23-fasteoi
  ohci_hcd:usb3, snd_hda_intel:card0
 29:          0          0      83164       1779   PCI-MSI
1572864-edge      nvkm
 30:       3595       5645          0          0   PCI-MSI 180224-edge
     ahci[0000:00:0b.0]
NMI:          0          0          0          0   Non-maskable interrupts
LOC:     202323     194669     107282     197322   Local timer interrupts
SPU:          0          0          0          0   Spurious interrupts
PMI:          0          0          0          0   Performance
monitoring interrupts
IWI:          0          0          0          0   IRQ work interrupts
RTR:          0          0          0          0   APIC ICR read retries
RES:        179        995        208        273   Rescheduling interrupts
CAL:       1149       1495        949       1211   Function call interrupts
TLB:        110         76         79         79   TLB shootdowns
TRM:          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0   Machine check exceptions
MCP:         20         20         20         20   Machine check polls
ERR:          1
MIS:          0
PIN:          0          0          0          0   Posted-interrupt
notification event
NPI:          0          0          0          0   Nested posted-interrupt event
PIW:          0          0          0          0   Posted-interrupt wakeup event
rui@vedder:~$

… the only devices using MSIs are the AHCI controller and the GPU, so
I think any damage would be more contained (and obvious), in this
case.

>
>         M.
>
> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> index 0099a00af361..2f9ec7210991 100644
> --- a/drivers/pci/msi.c
> +++ b/drivers/pci/msi.c
> @@ -479,6 +479,9 @@ msi_setup_entry(struct pci_dev *dev, int nvec, struct irq_affinity *affd)
>                 goto out;
>
>         pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
> +       /* Lies, damned lies, and MSIs */

Best comment ever. :)

> +       if (dev->dev_flags & PCI_DEV_FLAGS_HAS_MSI_MASKING)
> +               control |= PCI_MSI_FLAGS_MASKBIT;
>
>         entry->msi_attrib.is_msix       = 0;
>         entry->msi_attrib.is_64         = !!(control & PCI_MSI_FLAGS_64BIT);
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index 4537d1ea14fd..dc7741431bf3 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -5795,3 +5795,9 @@ static void apex_pci_fixup_class(struct pci_dev *pdev)
>  }
>  DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
>                                PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
> +
> +static void nvidia_ion_ahci_fixup(struct pci_dev *pdev)
> +{
> +       pdev->dev_flags |= PCI_MSI_FLAGS_MASKBIT;
> +}
> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index cd8aa6fce204..152a4d74f87f 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -233,6 +233,8 @@ enum pci_dev_flags {
>         PCI_DEV_FLAGS_NO_FLR_RESET = (__force pci_dev_flags_t) (1 << 10),
>         /* Don't use Relaxed Ordering for TLPs directed at this device */
>         PCI_DEV_FLAGS_NO_RELAXED_ORDERING = (__force pci_dev_flags_t) (1 << 11),
> +       /* Device does honor MSI masking despite saying otherwise */
> +       PCI_DEV_FLAGS_HAS_MSI_MASKING = (__force pci_dev_flags_t) (1 << 12),
>  };
>
>  enum pci_irq_reroute_variant {
>
>
> --

I'm taking this one for a ride too and report back.

Thanks,
Rui

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-07 14:50               ` Rui Salvaterra
@ 2021-10-07 15:03                 ` Marc Zyngier
  2021-10-07 16:13                   ` Rui Salvaterra
  0 siblings, 1 reply; 26+ messages in thread
From: Marc Zyngier @ 2021-10-07 15:03 UTC (permalink / raw)
  To: Rui Salvaterra; +Cc: tglx, linux-pci, linux-kernel

> > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> > index 4537d1ea14fd..dc7741431bf3 100644
> > --- a/drivers/pci/quirks.c
> > +++ b/drivers/pci/quirks.c
> > @@ -5795,3 +5795,9 @@ static void apex_pci_fixup_class(struct pci_dev *pdev)
> >  }
> >  DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
> >                                PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
> > +
> > +static void nvidia_ion_ahci_fixup(struct pci_dev *pdev)
> > +{
> > +       pdev->dev_flags |= PCI_MSI_FLAGS_MASKBIT;

Duh. Make that:

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index dc7741431bf3..89c7c99cd1bb 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -5798,6 +5798,6 @@ DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
 
 static void nvidia_ion_ahci_fixup(struct pci_dev *pdev)
 {
-	pdev->dev_flags |= PCI_MSI_FLAGS_MASKBIT;
+	pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;
 }
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);

	M.

-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-07 15:03                 ` Marc Zyngier
@ 2021-10-07 16:13                   ` Rui Salvaterra
  0 siblings, 0 replies; 26+ messages in thread
From: Rui Salvaterra @ 2021-10-07 16:13 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: tglx, linux-pci, linux-kernel

Hi, Marc,

On Thu, 7 Oct 2021 at 16:03, Marc Zyngier <maz@kernel.org> wrote:
>
> Duh. Make that:
>
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index dc7741431bf3..89c7c99cd1bb 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -5798,6 +5798,6 @@ DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
>
>  static void nvidia_ion_ahci_fixup(struct pci_dev *pdev)
>  {
> -       pdev->dev_flags |= PCI_MSI_FLAGS_MASKBIT;
> +       pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;
>  }
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);
>
>         M.
>
> --

The previous patch with this fixup on top also fixes the problem for
me. No issues on the GPU side (other than the existing ones, due to
NVIDIA uncooperativeness, regarding nouveau). Feel free to add my

Tested-by: Rui Salvaterra <rsalvaterra@gmail.com>

Thanks,
Rui

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-06  8:50 [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79) Rui Salvaterra
  2021-10-06 11:00 ` Marc Zyngier
  2021-10-06 11:44 ` Rui Salvaterra
@ 2021-10-11 18:47 ` Josef Johansson
  2021-10-11 19:34   ` Josef Johansson
  2021-10-12 11:34   ` Marc Zyngier
  2021-11-11  8:57 ` [tip: irq/urgent] PCI: Add MSI masking quirk for Nvidia ION AHCI tip-bot2 for Marc Zyngier
  3 siblings, 2 replies; 26+ messages in thread
From: Josef Johansson @ 2021-10-11 18:47 UTC (permalink / raw)
  To: tglx; +Cc: maz, linux-pci, linux-kernel, Rui Salvaterra

On 10/6/21 10:50, Rui Salvaterra wrote:
> Hi, Thomas,
>
> I'm sorry for reporting this so late in the cycle, I wasn't expecting
> being the only one affected. :)
> "PCI/MSI: Use new mask/unmask functions" broke boot for my ION/Atom
> 330 system. Dmesg shows
>
> failed to IDENTIFY (I/O error, err_mask=0x4)
>
> and the system drops to an initramfs shell. Let me know if you need
> any additional info (DMI dump and/or .config, for example).
>
> Git bisect log follows:
>
> git bisect start
> # good: [7d2a07b769330c34b4deabeed939325c77a7ec2f] Linux 5.14
> git bisect good 7d2a07b769330c34b4deabeed939325c77a7ec2f
> # bad: [6880fa6c56601bb8ed59df6c30fd390cc5f6dd8f] Linux 5.15-rc1
> git bisect bad 6880fa6c56601bb8ed59df6c30fd390cc5f6dd8f
> # bad: [1b4f3dfb4792f03b139edf10124fcbeb44e608e6] Merge tag
> 'usb-serial-5.15-rc1' of
> https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into
> usb-next
> git bisect bad 1b4f3dfb4792f03b139edf10124fcbeb44e608e6
> # good: [29ce8f9701072fc221d9c38ad952de1a9578f95c] Merge
> git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
> git bisect good 29ce8f9701072fc221d9c38ad952de1a9578f95c
> # bad: [e7c1bbcf0c315c56cd970642214aa1df3d8cf61d] Merge tag
> 'hwmon-for-v5.15' of
> git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
> git bisect bad e7c1bbcf0c315c56cd970642214aa1df3d8cf61d
> # bad: [679369114e55f422dc593d0628cfde1d04ae59b3] Merge tag
> 'for-5.15/block-2021-08-30' of git://git.kernel.dk/linux-block
> git bisect bad 679369114e55f422dc593d0628cfde1d04ae59b3
> # good: [c7a5238ef68b98130fe36716bb3fa44502f56001] Merge tag
> 's390-5.15-1' of
> git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
> git bisect good c7a5238ef68b98130fe36716bb3fa44502f56001
> # good: [e5e726f7bb9f711102edea7e5bd511835640e3b4] Merge tag
> 'locking-core-2021-08-30' of
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
> git bisect good e5e726f7bb9f711102edea7e5bd511835640e3b4
> # good: [158ee7b65653d9f841823c249014c2d0dfdeeb8f] block: mark
> blkdev_fsync static
> git bisect good 158ee7b65653d9f841823c249014c2d0dfdeeb8f
> # bad: [47fb0cfdb7a71a8a0ff8fe1d117363dc81f6ca77] Merge tag
> 'irqchip-5.15' of
> git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into
> irq/core
> git bisect bad 47fb0cfdb7a71a8a0ff8fe1d117363dc81f6ca77
> # good: [4513fb87e1402ad815912ec7f027eb17149f44ee] Merge branch
> irq/misc-5.15 into irq/irqchip-next
> git bisect good 4513fb87e1402ad815912ec7f027eb17149f44ee
> # bad: [88ffe2d0a55a165e55cedad1693f239d47e3e17e] genirq/cpuhotplug:
> Demote debug printk to KERN_DEBUG
> git bisect bad 88ffe2d0a55a165e55cedad1693f239d47e3e17e
> # good: [fcacdfbef5a1633211ebfac1b669a7739f5b553e] PCI/MSI: Provide a
> new set of mask and unmask functions
> git bisect good fcacdfbef5a1633211ebfac1b669a7739f5b553e
> # bad: [91cc470e797828d779cd4c1efbe8519bcb358bae] genirq: Change
> force_irqthreads to a static key
> git bisect bad 91cc470e797828d779cd4c1efbe8519bcb358bae
> # bad: [428e211641ed808b55cdc7d880a0ee349eff354b] genirq/affinity:
> Replace deprecated CPU-hotplug functions.
> git bisect bad 428e211641ed808b55cdc7d880a0ee349eff354b
> # bad: [446a98b19fd6da97a1fb148abb1766ad89c9b767] PCI/MSI: Use new
> mask/unmask functions
> git bisect bad 446a98b19fd6da97a1fb148abb1766ad89c9b767
> # first bad commit: [446a98b19fd6da97a1fb148abb1766ad89c9b767]
> PCI/MSI: Use new mask/unmask functions
>
> Thanks in advance,
> Rui

Hi,

I've got a late regression to this commit as well, but in the GPU area.
The problem arises when booting it as XEN dom0.
My hardware is Lenovo P14s Gen1 AMD Ryzen 7 Pro 4750U.

I'm a bit lost myself, and could use some hints how to fix it.
I should note that this mainly happens when a modeset is done (i think).
If I wait for 5 minutes the lock eventually releases, but I switch in an
out between X
and console it locks again.

kernel: ------------[ cut here ]------------
kernel: WARNING: CPU: 6 PID: 3754 at
drivers/gpu/drm/amd/amdgpu/../display/amdgp
u_dm/amdgpu_dm.c:8630 amdgpu_dm_commit_planes+0x9b4/0x9c0 [amdgpu]
kernel: Modules linked in: nf_tables nfnetlink vfat fat intel_rapl_msr
wmi_bmof
intel_rapl_common pcspkr joydev uvcvideo k10temp sp5100_tco
videobuf2_vmalloc vi
deobuf2_memops i2c_piix4 videobuf2_v4l2 videobuf2_common videodev mc
iwlwifi thi
nkpad_acpi platform_profile ipmi_devintf ledtrig_audio ucsi_acpi
cfg80211 ipmi_m
sghandler r8169 snd typec_ucsi soundcore typec rfkill wmi video amd_pmc
i2c_scmi
 fuse xenfs ip_tables dm_thin_pool dm_persistent_data dm_bio_prison
dm_crypt tru
sted asn1_encoder hid_multitouch amdgpu crct10dif_pclmul iommu_v2
crc32_pclmul c
rc32c_intel gpu_sched i2c_algo_bit drm_ttm_helper ttm drm_kms_helper ccp
cec gha
sh_clmulni_intel sdhci_pci xhci_pci xhci_pci_renesas serio_raw cqhci drm
sdhci x
hci_hcd mmc_core nvme ehci_pci ehci_hcd nvme_core xen_acpi_processor
xen_privcmd
 xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn uinput
kernel: CPU: 6 PID: 3754 Comm: Xorg Tainted: G        W        
5.15.0-1.fc32.qu
bes.x86_64 #1
kernel: Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET61W(1.30
) 12/21/
2020
kernel: RIP: e030:amdgpu_dm_commit_planes+0x9b4/0x9c0 [amdgpu]
kernel: Code: 8b 45 b0 48 c7 c7 4b fc 90 c0 4c 89 55 88 8b b0 f0 03 00
00 e8 6d
cb ca ff 4c 8b 55 88 0f b6 55 ab 49 8b 72 08 e9 2b fa ff ff <0f> 0b e9
fa fe ff
ff e8 40 2f 6e c1 0f 1f 44 00 00 55 b9 27 00 00
kernel: RSP: e02b:ffffc90042d93638 EFLAGS: 00010002
kernel: RAX: ffff888110840210 RBX: 00000000000083c1 RCX: 0000000000000466
kernel: RDX: 0000000000000001 RSI: 0000000000000204 RDI: ffff888110840170
kernel: RBP: ffffc90042d936f8 R08: 0000000000000002 R09: 0000000000000001
kernel: R10: 0000000000000000 R11: ffff88810cb2e118 R12: ffff888110840210
kernel: R13: ffff88810cb2e000 R14: ffff888103d50400 R15: ffff888103bb2c00
kernel: FS:  0000718c6de4da40(0000) GS:ffff888140780000(0000)
knlGS:000000000000
0000
kernel: CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080050033
kernel: CR2: 0000726ada294000 CR3: 0000000103f0e000 CR4: 0000000000050660
kernel: Call Trace:
kernel:  amdgpu_dm_atomic_commit_tail+0xc3e/0x1360 [amdgpu]
kernel:  commit_tail+0x94/0x130 [drm_kms_helper]
kernel:  drm_atomic_helper_commit+0x113/0x140 [drm_kms_helper]
kernel:  drm_client_modeset_commit_atomic+0x1fc/0x240 [drm]
kernel:  drm_client_modeset_commit_locked+0x53/0x80 [drm]
kernel:  drm_fb_helper_pan_display+0xdc/0x210 [drm_kms_helper]
kernel:  fb_pan_display+0x83/0x100
kernel:  fb_set_var+0x200/0x3b0
kernel:  fbcon_blank+0x186/0x280
kernel:  do_unblank_screen+0xaa/0x150
kernel:  complete_change_console+0x54/0x120
kernel:  vt_ioctl+0x31d/0x5f0
kernel:  tty_ioctl+0x312/0x780
kernel:  __x64_sys_ioctl+0x83/0xb0
kernel:  do_syscall_64+0x3b/0x90
kernel:  entry_SYSCALL_64_after_hwframe+0x44/0xae
kernel: RIP: 0033:0x718c6e33217b
kernel: Code: 0f 1e fa 48 8b 05 1d ad 0c 00 64 c7 00 26 00 00 00 48 c7
c0 ff ff
ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01
f0 ff ff
73 01 c3 48 8b 0d ed ac 0c 00 f7 d8 64 89 01 48
kernel: RSP: 002b:00007ffd5c6157c8 EFLAGS: 00000246 ORIG_RAX:
0000000000000010
kernel: RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 0000718c6e33217b
kernel: RDX: 0000000000000001 RSI: 0000000000005605 RDI: 0000000000000014
kernel: RBP: 000057b9b2aa93f4 R08: 0000000000000000 R09: 0000000000000001
kernel: R10: fffffffffffff9ce R11: 0000000000000246 R12: 000057b9b2aa94b0
kernel: R13: 000057b9b2aa94a0 R14: 000057b9b2aa93f0 R15: 00007ffd5c615844
kernel: ---[ end trace 2c3e3998803422cb ]---
kernel: ------------[ cut here ]------------
kernel: WARNING: CPU: 6 PID: 3754 at
drivers/gpu/drm/amd/amdgpu/../display/amdgp
u_dm/amdgpu_dm.c:8217 prepare_flip_isr+0x64/0x70 [amdgpu]
kernel: Modules linked in: nf_tables nfnetlink vfat fat intel_rapl_msr
wmi_bmof
intel_rapl_common pcspkr joydev uvcvideo k10temp sp5100_tco
videobuf2_vmalloc vi
deobuf2_memops i2c_piix4 videobuf2_v4l2 videobuf2_common videodev mc
iwlwifi thi
nkpad_acpi platform_profile ipmi_devintf ledtrig_audio ucsi_acpi
cfg80211 ipmi_m
sghandler r8169 snd typec_ucsi soundcore typec rfkill wmi video amd_pmc
i2c_scmi
 fuse xenfs ip_tables dm_thin_pool dm_persistent_data dm_bio_prison
dm_crypt tru
sted asn1_encoder hid_multitouch amdgpu crct10dif_pclmul iommu_v2
crc32_pclmul c
rc32c_intel gpu_sched i2c_algo_bit drm_ttm_helper ttm drm_kms_helper ccp
cec gha
sh_clmulni_intel sdhci_pci xhci_pci xhci_pci_renesas serio_raw cqhci drm
sdhci x
hci_hcd mmc_core nvme ehci_pci ehci_hcd nvme_core xen_acpi_processor
xen_privcmd
 xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn uinput
kernel: CPU: 6 PID: 3754 Comm: Xorg Tainted: G        W        
5.15.0-1.fc32.qu
bes.x86_64 #1
kernel: Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET61W(1.30
) 12/21/
2020
kernel: RIP: e030:prepare_flip_isr+0x64/0x70 [amdgpu]
kernel: Code: 00 48 c7 80 38 01 00 00 00 00 00 00 66 90 c3 8b 97 f0 03
00 00 48
c7 c6 18 72 8d c0 48 c7 c7 90 5b a7 c0 e9 7e 6e 13 c1 0f 0b <0f> 0b eb
b4 0f 1f
84 00 00 00 00 00 0f 1f 44 00 00 41 57 41 56 41
kernel: RSP: e02b:ffffc90042d93630 EFLAGS: 00010086
kernel: RAX: 0000000000000001 RBX: 00000000000083c1 RCX: 0000000000000466
kernel: RDX: 0000000000000001 RSI: 0000000000000204 RDI: ffff88810cb2e000
kernel: RBP: ffffc90042d936f8 R08: 0000000000000002 R09: 0000000000000001
kernel: R10: 0000000000000000 R11: ffff88810cb2e118 R12: ffff888110840210
kernel: R13: ffff88810cb2e000 R14: ffff888103d50400 R15: ffff888103bb2c00
kernel: FS:  0000718c6de4da40(0000) GS:ffff888140780000(0000)
knlGS:000000000000
0000
kernel: CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080050033
kernel: CR2: 0000726ada294000 CR3: 0000000103f0e000 CR4: 0000000000050660
kernel: Call Trace:
kernel:  amdgpu_dm_commit_planes+0x8bd/0x9c0 [amdgpu]
kernel:  amdgpu_dm_atomic_commit_tail+0xc3e/0x1360 [amdgpu]
kernel:  commit_tail+0x94/0x130 [drm_kms_helper]
kernel:  drm_atomic_helper_commit+0x113/0x140 [drm_kms_helper]
kernel:  drm_client_modeset_commit_atomic+0x1fc/0x240 [drm]
kernel:  drm_client_modeset_commit_locked+0x53/0x80 [drm]
kernel:  drm_fb_helper_pan_display+0xdc/0x210 [drm_kms_helper]
kernel:  fb_pan_display+0x83/0x100
kernel:  fb_set_var+0x200/0x3b0
kernel:  fbcon_blank+0x186/0x280
kernel:  do_unblank_screen+0xaa/0x150
kernel:  complete_change_console+0x54/0x120
kernel:  vt_ioctl+0x31d/0x5f0
kernel:  tty_ioctl+0x312/0x780
kernel:  __x64_sys_ioctl+0x83/0xb0
kernel:  do_syscall_64+0x3b/0x90
kernel:  entry_SYSCALL_64_after_hwframe+0x44/0xae
kernel: RIP: 0033:0x718c6e33217b
kernel: Code: 0f 1e fa 48 8b 05 1d ad 0c 00 64 c7 00 26 00 00 00 48 c7
c0 ff ff
ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01
f0 ff ff
73 01 c3 48 8b 0d ed ac 0c 00 f7 d8 64 89 01 48
kernel: RSP: 002b:00007ffd5c6157c8 EFLAGS: 00000246 ORIG_RAX:
0000000000000010
kernel: RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 0000718c6e33217b
kernel: RDX: 0000000000000001 RSI: 0000000000005605 RDI: 0000000000000014
kernel: RBP: 000057b9b2aa93f4 R08: 0000000000000000 R09: 0000000000000001
kernel: R10: fffffffffffff9ce R11: 0000000000000246 R12: 000057b9b2aa94b0
kernel: R13: 000057b9b2aa94a0 R14: 000057b9b2aa93f0 R15: 00007ffd5c615844
kernel: ---[ end trace 2c3e3998803422cc ]---

Tested with latest tip, reverting this commit makes it all go away, or
booting with pci=nomsi.

Managed to instruct sysrq to dump locks

kernel: sysrq: Show Locks Held
kernel: Showing all locks held in the system:
kernel: 2 locks held by Xorg/2929:
kernel:  #0: ffffc90042ea7d10 (crtc_ww_class_acquire){+.+.}-{0:0}, at:
drm_mode_setcrtc+0x158/0x780 [drm]
kernel:  #1: ffff888111c00490 (crtc_ww_class_mutex){+.+.}-{3:3}, at:
modeset_lock+0x62/0x1c0 [drm]
kernel: =============================================

More can be read over at freedesktop:
https://gitlab.freedesktop.org/drm/amd/-/issues/1715


Med vänliga hälsningar
Josef Johansson


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-11 18:47 ` Josef Johansson
@ 2021-10-11 19:34   ` Josef Johansson
  2021-10-12  5:37     ` Josef Johansson
  2021-10-12 11:34   ` Marc Zyngier
  1 sibling, 1 reply; 26+ messages in thread
From: Josef Johansson @ 2021-10-11 19:34 UTC (permalink / raw)
  To: tglx; +Cc: maz, linux-pci, linux-kernel

On 10/11/21 20:47, Josef Johansson wrote:
> Hi,
>
> I've got a late regression to this commit as well, but in the GPU area.
> The problem arises when booting it as XEN dom0.
> My hardware is Lenovo P14s Gen1 AMD Ryzen 7 Pro 4750U.
>
> I'm a bit lost myself, and could use some hints how to fix it.
> I should note that this mainly happens when a modeset is done (i think).
> If I wait for 5 minutes the lock eventually releases, but I switch in an
> out between X
> and console it locks again.
>
> [snip]
>
> More can be read over at freedesktop:
> https://gitlab.freedesktop.org/drm/amd/-/issues/1715
>
>
>
> Josef Johansson
>
>
>
Here is a lspci -vvnn for verbosity, I am trying out Marc's first patch
now and
will let you know the result.

00:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
Root Compl
ex [1022:1630]
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-

00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Renoir IOMMU
[1022:1631
]
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 255
    Capabilities: <access denied>

00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
PCIe Dummy
 Host Bridge [1022:1632]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-

00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
PCIe Dummy
 Host Bridge [1022:1632]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-

00:02.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
PCIe GPP Br
idge [1022:1634] (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin ? routed to IRQ 106
    Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
    I/O behind bridge: [disabled]
    Memory behind bridge: fd900000-fd9fffff [size=1M]
    Prefetchable memory behind bridge: [disabled]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort+ <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:02.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
PCIe GPP Br
idge [1022:1634] (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin ? routed to IRQ 107
    Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
    I/O behind bridge: 00003000-00003fff [size=4K]
    Memory behind bridge: fd800000-fd8fffff [size=1M]
    Prefetchable memory behind bridge: [disabled]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort+ <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:02.3 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
PCIe GPP Br
idge [1022:1634] (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin ? routed to IRQ 108
    Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
    I/O behind bridge: 00004000-00004fff [size=4K]
    Memory behind bridge: fd700000-fd7fffff [size=1M]
    Prefetchable memory behind bridge: 0000000c30000000-0000000c301fffff [si
ze=2M]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort+ <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:02.4 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
PCIe GPP Br
idge [1022:1634] (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin ? routed to IRQ 109
    Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
    I/O behind bridge: [disabled]
    Memory behind bridge: fd600000-fd6fffff [size=1M]
    Prefetchable memory behind bridge: [disabled]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort+ <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:02.6 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
PCIe GPP Br
idge [1022:1634] (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin ? routed to IRQ 110
    Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
    I/O behind bridge: 00002000-00002fff [size=4K]
    Memory behind bridge: fd500000-fd5fffff [size=1M]
    Prefetchable memory behind bridge: [disabled]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort+ <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:02.7 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
PCIe GPP Br
idge [1022:1634] (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin ? routed to IRQ 111
    Bus: primary=00, secondary=06, subordinate=06, sec-latency=0
    I/O behind bridge: [disabled]
    Memory behind bridge: fd400000-fd4fffff [size=1M]
    Prefetchable memory behind bridge: [disabled]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort+ <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
PCIe Dummy
 Host Bridge [1022:1632]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-

00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
Internal PC
Ie GPP Bridge to Bus [1022:1635] (prog-if 00 [Normal decode])
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin A routed to IRQ 112
    Bus: primary=00, secondary=07, subordinate=07, sec-latency=0
    I/O behind bridge: 00001000-00001fff [size=4K]
    Memory behind bridge: fd000000-fd3fffff [size=4M]
    Prefetchable memory behind bridge: 0000000c60000000-0000000c701fffff [si
ze=258M]
    Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- <SERR- <PERR-
    BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
        PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus
Controller [1
022:790b] (rev 51)
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort
- <MAbort- >SERR- <PERR- INTx-
    Kernel driver in use: piix4_smbus
    Kernel modules: i2c_piix4, sp5100_tco

00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC
Bridge [10
22:790e] (rev 51)
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort
- <MAbort- >SERR- <PERR- INTx-
    Latency: 0

00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
Device 24:
 Function 0 [1022:1448]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-

00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
Device 24:
 Function 1 [1022:1449]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-

00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
Device 24:
 Function 2 [1022:144a]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-

00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
Device 24:
 Function 3 [1022:144b]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Kernel driver in use: k10temp
    Kernel modules: k10temp

00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
Device 24:
 Function 4 [1022:144c]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-

00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
Device 24:
 Function 5 [1022:144d]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-

00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
Device 24:
 Function 6 [1022:144e]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-

00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
Device 24:
 Function 7 [1022:144f]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-

01:00.0 Non-Volatile memory controller [0108]: SK hynix Device
[1c5c:1639] (prog
-if 02 [NVM Express])
    Subsystem: SK hynix Device [1c5c:1639]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin A routed to IRQ 36
    NUMA node: 0
    Region 0: Memory at fd900000 (64-bit, non-prefetchable) [size=16K]
    Region 2: Memory at fd905000 (32-bit, non-prefetchable) [size=4K]
    Region 3: Memory at fd904000 (32-bit, non-prefetchable) [size=4K]
    Capabilities: <access denied>
    Kernel driver in use: nvme
    Kernel modules: nvme

02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
RTL8111/8168
/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 0e)
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 40
    Region 0: I/O ports at 3400 [size=256]
    Region 2: Memory at fd814000 (64-bit, non-prefetchable) [size=4K]
    Region 4: Memory at fd800000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: pciback
    Kernel modules: r8169

02:00.1 Serial controller [0700]: Realtek Semiconductor Co., Ltd.
RTL8111xP UART
 #1 [10ec:816a] (rev 0e) (prog-if 02 [16550])
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Interrupt: pin B routed to IRQ 41
    Region 0: I/O ports at 3200 [size=256]
    Region 2: Memory at fd815000 (64-bit, non-prefetchable) [size=4K]
    Region 4: Memory at fd804000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: serial

02:00.2 Serial controller [0700]: Realtek Semiconductor Co., Ltd.
RTL8111xP UART
 #2 [10ec:816b] (rev 0e) (prog-if 02 [16550])
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Interrupt: pin C routed to IRQ 42
    Region 0: I/O ports at 3100 [size=256]
    Region 2: Memory at fd816000 (64-bit, non-prefetchable) [size=4K]
    Region 4: Memory at fd808000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: serial

02:00.3 IPMI Interface [0c07]: Realtek Semiconductor Co., Ltd. RTL8111xP
IPMI in
terface [10ec:816c] (rev 0e) (prog-if 01 [KCS])
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Interrupt: pin D routed to IRQ 255
    Region 0: I/O ports at 3000 [disabled] [size=256]
    Region 2: Memory at fd817000 (64-bit, non-prefetchable) [disabled] [size
=4K]
    Region 4: Memory at fd80c000 (64-bit, non-prefetchable) [disabled] [size
=16K]
    Capabilities: <access denied>
    Kernel modules: ipmi_si

02:00.4 USB controller [0c03]: Realtek Semiconductor Co., Ltd. RTL811x
EHCI host
 controller [10ec:816d] (rev 0e) (prog-if 20 [EHCI])
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin D routed to IRQ 114
    Region 0: Memory at fd818000 (32-bit, non-prefetchable) [size=4K]
    Region 2: Memory at fd810000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: ehci-pci
    Kernel modules: ehci_pci

03:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200
[8086:2723] (
rev 1a)
    Subsystem: Intel Corporation Device [8086:0080]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin A routed to IRQ 44
    Region 0: Memory at fd700000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: pciback
    Kernel modules: iwlwifi

04:00.0 SD Host controller [0805]: Genesys Logic, Inc GL9750 SD Host
Controller
[17a0:9750] (rev 01) (prog-if 01)
    Subsystem: Lenovo Device [17aa:5082]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin A routed to IRQ 118
    Region 0: Memory at fd600000 (32-bit, non-prefetchable) [size=4K]
    Capabilities: <access denied>
    Kernel driver in use: sdhci-pci
    Kernel modules: sdhci_pci

05:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
RTL8111/8168
/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin A routed to IRQ 46
    Region 0: I/O ports at 2000 [size=256]
    Region 2: Memory at fd504000 (64-bit, non-prefetchable) [size=4K]
    Region 4: Memory at fd500000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: pciback
    Kernel modules: r8169

06:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720202 USB
3.0 Host C
ontroller [1912:0015] (rev 02) (prog-if 30 [XHCI])
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin A routed to IRQ 42
    Region 0: Memory at fd400000 (64-bit, non-prefetchable) [size=8K]
    Capabilities: <access denied>
    Kernel driver in use: xhci_hcd
    Kernel modules: xhci_pci

07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc.
[AMD/ATI]
 Renoir [1002:1636] (rev d1) (prog-if 00 [VGA controller])
    Subsystem: Lenovo Device [17aa:5099]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin A routed to IRQ 38
    Region 0: Memory at c60000000 (64-bit, prefetchable) [size=256M]
    Region 2: Memory at c70000000 (64-bit, prefetchable) [size=2M]
    Region 4: I/O ports at 1000 [size=256]
    Region 5: Memory at fd300000 (32-bit, non-prefetchable) [size=512K]
    Capabilities: <access denied>
    Kernel driver in use: amdgpu
    Kernel modules: amdgpu

07:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD]
Family
17h (Models 10h-1fh) Platform Security Processor [1022:15df]
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin C routed to IRQ 36
    Region 2: Memory at fd200000 (32-bit, non-prefetchable) [size=1M]
    Region 5: Memory at fd380000 (32-bit, non-prefetchable) [size=8K]
    Capabilities: <access denied>
    Kernel driver in use: ccp
    Kernel modules: ccp

07:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir
USB 3.1
 [1022:1639] (prog-if 30 [XHCI])
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin D routed to IRQ 37
    Region 0: Memory at fd000000 (64-bit, non-prefetchable) [size=1M]
    Capabilities: <access denied>
    Kernel driver in use: pciback
    Kernel modules: xhci_pci

07:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir
USB 3.1
 [1022:1639] (prog-if 30 [XHCI])
    Subsystem: Lenovo Device [17aa:5081]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
ping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 32 bytes
    Interrupt: pin A routed to IRQ 38
    Region 0: Memory at fd100000 (64-bit, non-prefetchable) [size=1M]
    Capabilities: <access denied>
    Kernel driver in use: pciback
    Kernel modules: xhci_pci

Regards
- Josef


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-11 19:34   ` Josef Johansson
@ 2021-10-12  5:37     ` Josef Johansson
  2021-10-12 13:07       ` Jason Andryuk
  0 siblings, 1 reply; 26+ messages in thread
From: Josef Johansson @ 2021-10-12  5:37 UTC (permalink / raw)
  To: tglx; +Cc: maz, linux-pci, linux-kernel, xen-devel

On 10/11/21 21:34, Josef Johansson wrote:
> On 10/11/21 20:47, Josef Johansson wrote:
>> Hi,
>>
>> I've got a late regression to this commit as well, but in the GPU area.
>> The problem arises when booting it as XEN dom0.
>> My hardware is Lenovo P14s Gen1 AMD Ryzen 7 Pro 4750U.
>>
>> I'm a bit lost myself, and could use some hints how to fix it.
>> I should note that this mainly happens when a modeset is done (i think).
>> If I wait for 5 minutes the lock eventually releases, but I switch in an
>> out between X
>> and console it locks again.
>>
>> kernel: ------------[ cut here ]------------
>> kernel: WARNING: CPU: 6 PID: 3754 at
>> drivers/gpu/drm/amd/amdgpu/../display/amdgp
>> u_dm/amdgpu_dm.c:8630 amdgpu_dm_commit_planes+0x9b4/0x9c0 [amdgpu]
>> kernel: Modules linked in: nf_tables nfnetlink vfat fat intel_rapl_msr
>> wmi_bmof
>> intel_rapl_common pcspkr joydev uvcvideo k10temp sp5100_tco
>> videobuf2_vmalloc vi
>> deobuf2_memops i2c_piix4 videobuf2_v4l2 videobuf2_common videodev mc
>> iwlwifi thi
>> nkpad_acpi platform_profile ipmi_devintf ledtrig_audio ucsi_acpi
>> cfg80211 ipmi_m
>> sghandler r8169 snd typec_ucsi soundcore typec rfkill wmi video amd_pmc
>> i2c_scmi
>>  fuse xenfs ip_tables dm_thin_pool dm_persistent_data dm_bio_prison
>> dm_crypt tru
>> sted asn1_encoder hid_multitouch amdgpu crct10dif_pclmul iommu_v2
>> crc32_pclmul c
>> rc32c_intel gpu_sched i2c_algo_bit drm_ttm_helper ttm drm_kms_helper ccp
>> cec gha
>> sh_clmulni_intel sdhci_pci xhci_pci xhci_pci_renesas serio_raw cqhci drm
>> sdhci x
>> hci_hcd mmc_core nvme ehci_pci ehci_hcd nvme_core xen_acpi_processor
>> xen_privcmd
>>  xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn uinput
>> kernel: CPU: 6 PID: 3754 Comm: Xorg Tainted: G        W        
>> 5.15.0-1.fc32.qu
>> bes.x86_64 #1
>> kernel: Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET61W(1.30
>> ) 12/21/
>> 2020
>> kernel: RIP: e030:amdgpu_dm_commit_planes+0x9b4/0x9c0 [amdgpu]
>> kernel: Code: 8b 45 b0 48 c7 c7 4b fc 90 c0 4c 89 55 88 8b b0 f0 03 00
>> 00 e8 6d
>> cb ca ff 4c 8b 55 88 0f b6 55 ab 49 8b 72 08 e9 2b fa ff ff <0f> 0b e9
>> fa fe ff
>> ff e8 40 2f 6e c1 0f 1f 44 00 00 55 b9 27 00 00
>> kernel: RSP: e02b:ffffc90042d93638 EFLAGS: 00010002
>> kernel: RAX: ffff888110840210 RBX: 00000000000083c1 RCX: 0000000000000466
>> kernel: RDX: 0000000000000001 RSI: 0000000000000204 RDI: ffff888110840170
>> kernel: RBP: ffffc90042d936f8 R08: 0000000000000002 R09: 0000000000000001
>> kernel: R10: 0000000000000000 R11: ffff88810cb2e118 R12: ffff888110840210
>> kernel: R13: ffff88810cb2e000 R14: ffff888103d50400 R15: ffff888103bb2c00
>> kernel: FS:  0000718c6de4da40(0000) GS:ffff888140780000(0000)
>> knlGS:000000000000
>> 0000
>> kernel: CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080050033
>> kernel: CR2: 0000726ada294000 CR3: 0000000103f0e000 CR4: 0000000000050660
>> kernel: Call Trace:
>> kernel:  amdgpu_dm_atomic_commit_tail+0xc3e/0x1360 [amdgpu]
>> kernel:  commit_tail+0x94/0x130 [drm_kms_helper]
>> kernel:  drm_atomic_helper_commit+0x113/0x140 [drm_kms_helper]
>> kernel:  drm_client_modeset_commit_atomic+0x1fc/0x240 [drm]
>> kernel:  drm_client_modeset_commit_locked+0x53/0x80 [drm]
>> kernel:  drm_fb_helper_pan_display+0xdc/0x210 [drm_kms_helper]
>> kernel:  fb_pan_display+0x83/0x100
>> kernel:  fb_set_var+0x200/0x3b0
>> kernel:  fbcon_blank+0x186/0x280
>> kernel:  do_unblank_screen+0xaa/0x150
>> kernel:  complete_change_console+0x54/0x120
>> kernel:  vt_ioctl+0x31d/0x5f0
>> kernel:  tty_ioctl+0x312/0x780
>> kernel:  __x64_sys_ioctl+0x83/0xb0
>> kernel:  do_syscall_64+0x3b/0x90
>> kernel:  entry_SYSCALL_64_after_hwframe+0x44/0xae
>> kernel: RIP: 0033:0x718c6e33217b
>> kernel: Code: 0f 1e fa 48 8b 05 1d ad 0c 00 64 c7 00 26 00 00 00 48 c7
>> c0 ff ff
>> ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01
>> f0 ff ff
>> 73 01 c3 48 8b 0d ed ac 0c 00 f7 d8 64 89 01 48
>> kernel: RSP: 002b:00007ffd5c6157c8 EFLAGS: 00000246 ORIG_RAX:
>> 0000000000000010
>> kernel: RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 0000718c6e33217b
>> kernel: RDX: 0000000000000001 RSI: 0000000000005605 RDI: 0000000000000014
>> kernel: RBP: 000057b9b2aa93f4 R08: 0000000000000000 R09: 0000000000000001
>> kernel: R10: fffffffffffff9ce R11: 0000000000000246 R12: 000057b9b2aa94b0
>> kernel: R13: 000057b9b2aa94a0 R14: 000057b9b2aa93f0 R15: 00007ffd5c615844
>> kernel: ---[ end trace 2c3e3998803422cb ]---
>> kernel: ------------[ cut here ]------------
>> kernel: WARNING: CPU: 6 PID: 3754 at
>> drivers/gpu/drm/amd/amdgpu/../display/amdgp
>> u_dm/amdgpu_dm.c:8217 prepare_flip_isr+0x64/0x70 [amdgpu]
>> kernel: Modules linked in: nf_tables nfnetlink vfat fat intel_rapl_msr
>> wmi_bmof
>> intel_rapl_common pcspkr joydev uvcvideo k10temp sp5100_tco
>> videobuf2_vmalloc vi
>> deobuf2_memops i2c_piix4 videobuf2_v4l2 videobuf2_common videodev mc
>> iwlwifi thi
>> nkpad_acpi platform_profile ipmi_devintf ledtrig_audio ucsi_acpi
>> cfg80211 ipmi_m
>> sghandler r8169 snd typec_ucsi soundcore typec rfkill wmi video amd_pmc
>> i2c_scmi
>>  fuse xenfs ip_tables dm_thin_pool dm_persistent_data dm_bio_prison
>> dm_crypt tru
>> sted asn1_encoder hid_multitouch amdgpu crct10dif_pclmul iommu_v2
>> crc32_pclmul c
>> rc32c_intel gpu_sched i2c_algo_bit drm_ttm_helper ttm drm_kms_helper ccp
>> cec gha
>> sh_clmulni_intel sdhci_pci xhci_pci xhci_pci_renesas serio_raw cqhci drm
>> sdhci x
>> hci_hcd mmc_core nvme ehci_pci ehci_hcd nvme_core xen_acpi_processor
>> xen_privcmd
>>  xen_pciback xen_blkback xen_gntalloc xen_gntdev xen_evtchn uinput
>> kernel: CPU: 6 PID: 3754 Comm: Xorg Tainted: G        W        
>> 5.15.0-1.fc32.qu
>> bes.x86_64 #1
>> kernel: Hardware name: LENOVO 20Y1S02400/20Y1S02400, BIOS R1BET61W(1.30
>> ) 12/21/
>> 2020
>> kernel: RIP: e030:prepare_flip_isr+0x64/0x70 [amdgpu]
>> kernel: Code: 00 48 c7 80 38 01 00 00 00 00 00 00 66 90 c3 8b 97 f0 03
>> 00 00 48
>> c7 c6 18 72 8d c0 48 c7 c7 90 5b a7 c0 e9 7e 6e 13 c1 0f 0b <0f> 0b eb
>> b4 0f 1f
>> 84 00 00 00 00 00 0f 1f 44 00 00 41 57 41 56 41
>> kernel: RSP: e02b:ffffc90042d93630 EFLAGS: 00010086
>> kernel: RAX: 0000000000000001 RBX: 00000000000083c1 RCX: 0000000000000466
>> kernel: RDX: 0000000000000001 RSI: 0000000000000204 RDI: ffff88810cb2e000
>> kernel: RBP: ffffc90042d936f8 R08: 0000000000000002 R09: 0000000000000001
>> kernel: R10: 0000000000000000 R11: ffff88810cb2e118 R12: ffff888110840210
>> kernel: R13: ffff88810cb2e000 R14: ffff888103d50400 R15: ffff888103bb2c00
>> kernel: FS:  0000718c6de4da40(0000) GS:ffff888140780000(0000)
>> knlGS:000000000000
>> 0000
>> kernel: CS:  10000e030 DS: 0000 ES: 0000 CR0: 0000000080050033
>> kernel: CR2: 0000726ada294000 CR3: 0000000103f0e000 CR4: 0000000000050660
>> kernel: Call Trace:
>> kernel:  amdgpu_dm_commit_planes+0x8bd/0x9c0 [amdgpu]
>> kernel:  amdgpu_dm_atomic_commit_tail+0xc3e/0x1360 [amdgpu]
>> kernel:  commit_tail+0x94/0x130 [drm_kms_helper]
>> kernel:  drm_atomic_helper_commit+0x113/0x140 [drm_kms_helper]
>> kernel:  drm_client_modeset_commit_atomic+0x1fc/0x240 [drm]
>> kernel:  drm_client_modeset_commit_locked+0x53/0x80 [drm]
>> kernel:  drm_fb_helper_pan_display+0xdc/0x210 [drm_kms_helper]
>> kernel:  fb_pan_display+0x83/0x100
>> kernel:  fb_set_var+0x200/0x3b0
>> kernel:  fbcon_blank+0x186/0x280
>> kernel:  do_unblank_screen+0xaa/0x150
>> kernel:  complete_change_console+0x54/0x120
>> kernel:  vt_ioctl+0x31d/0x5f0
>> kernel:  tty_ioctl+0x312/0x780
>> kernel:  __x64_sys_ioctl+0x83/0xb0
>> kernel:  do_syscall_64+0x3b/0x90
>> kernel:  entry_SYSCALL_64_after_hwframe+0x44/0xae
>> kernel: RIP: 0033:0x718c6e33217b
>> kernel: Code: 0f 1e fa 48 8b 05 1d ad 0c 00 64 c7 00 26 00 00 00 48 c7
>> c0 ff ff
>> ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01
>> f0 ff ff
>> 73 01 c3 48 8b 0d ed ac 0c 00 f7 d8 64 89 01 48
>> kernel: RSP: 002b:00007ffd5c6157c8 EFLAGS: 00000246 ORIG_RAX:
>> 0000000000000010
>> kernel: RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 0000718c6e33217b
>> kernel: RDX: 0000000000000001 RSI: 0000000000005605 RDI: 0000000000000014
>> kernel: RBP: 000057b9b2aa93f4 R08: 0000000000000000 R09: 0000000000000001
>> kernel: R10: fffffffffffff9ce R11: 0000000000000246 R12: 000057b9b2aa94b0
>> kernel: R13: 000057b9b2aa94a0 R14: 000057b9b2aa93f0 R15: 00007ffd5c615844
>> kernel: ---[ end trace 2c3e3998803422cc ]---
>>
>> Tested with latest tip, reverting this commit makes it all go away, or
>> booting with pci=nomsi.
>>
>> Managed to instruct sysrq to dump locks
>>
>> kernel: sysrq: Show Locks Held
>> kernel: Showing all locks held in the system:
>> kernel: 2 locks held by Xorg/2929:
>> kernel:  #0: ffffc90042ea7d10 (crtc_ww_class_acquire){+.+.}-{0:0}, at:
>> drm_mode_setcrtc+0x158/0x780 [drm]
>> kernel:  #1: ffff888111c00490 (crtc_ww_class_mutex){+.+.}-{3:3}, at:
>> modeset_lock+0x62/0x1c0 [drm]
>> kernel: =============================================
>>
>> More can be read over at freedesktop:
>> https://gitlab.freedesktop.org/drm/amd/-/issues/1715
>>
>>
>>
>> Josef Johansson
>>
>>
>>
> Here is a lspci -vvnn for verbosity, I am trying out Marc's first patch
> now and
> will let you know the result.
>
> 00:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> Root Compl
> ex [1022:1630]
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>
> 00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Renoir IOMMU
> [1022:1631
> ]
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Interrupt: pin A routed to IRQ 255
>     Capabilities: <access denied>
>
> 00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> PCIe Dummy
>  Host Bridge [1022:1632]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>
> 00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> PCIe Dummy
>  Host Bridge [1022:1632]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>
> 00:02.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
> PCIe GPP Br
> idge [1022:1634] (prog-if 00 [Normal decode])
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin ? routed to IRQ 106
>     Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
>     I/O behind bridge: [disabled]
>     Memory behind bridge: fd900000-fd9fffff [size=1M]
>     Prefetchable memory behind bridge: [disabled]
>     Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort+ <SERR- <PERR-
>     BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
>         PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>     Capabilities: <access denied>
>     Kernel driver in use: pcieport
>
> 00:02.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
> PCIe GPP Br
> idge [1022:1634] (prog-if 00 [Normal decode])
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin ? routed to IRQ 107
>     Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
>     I/O behind bridge: 00003000-00003fff [size=4K]
>     Memory behind bridge: fd800000-fd8fffff [size=1M]
>     Prefetchable memory behind bridge: [disabled]
>     Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort+ <SERR- <PERR-
>     BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
>         PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>     Capabilities: <access denied>
>     Kernel driver in use: pcieport
>
> 00:02.3 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
> PCIe GPP Br
> idge [1022:1634] (prog-if 00 [Normal decode])
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin ? routed to IRQ 108
>     Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
>     I/O behind bridge: 00004000-00004fff [size=4K]
>     Memory behind bridge: fd700000-fd7fffff [size=1M]
>     Prefetchable memory behind bridge: 0000000c30000000-0000000c301fffff [si
> ze=2M]
>     Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort+ <SERR- <PERR-
>     BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
>         PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>     Capabilities: <access denied>
>     Kernel driver in use: pcieport
>
> 00:02.4 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
> PCIe GPP Br
> idge [1022:1634] (prog-if 00 [Normal decode])
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin ? routed to IRQ 109
>     Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
>     I/O behind bridge: [disabled]
>     Memory behind bridge: fd600000-fd6fffff [size=1M]
>     Prefetchable memory behind bridge: [disabled]
>     Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort+ <SERR- <PERR-
>     BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
>         PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>     Capabilities: <access denied>
>     Kernel driver in use: pcieport
>
> 00:02.6 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
> PCIe GPP Br
> idge [1022:1634] (prog-if 00 [Normal decode])
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin ? routed to IRQ 110
>     Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
>     I/O behind bridge: 00002000-00002fff [size=4K]
>     Memory behind bridge: fd500000-fd5fffff [size=1M]
>     Prefetchable memory behind bridge: [disabled]
>     Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort+ <SERR- <PERR-
>     BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
>         PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>     Capabilities: <access denied>
>     Kernel driver in use: pcieport
>
> 00:02.7 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
> PCIe GPP Br
> idge [1022:1634] (prog-if 00 [Normal decode])
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin ? routed to IRQ 111
>     Bus: primary=00, secondary=06, subordinate=06, sec-latency=0
>     I/O behind bridge: [disabled]
>     Memory behind bridge: fd400000-fd4fffff [size=1M]
>     Prefetchable memory behind bridge: [disabled]
>     Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort+ <SERR- <PERR-
>     BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
>         PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>     Capabilities: <access denied>
>     Kernel driver in use: pcieport
>
> 00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> PCIe Dummy
>  Host Bridge [1022:1632]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>
> 00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Renoir
> Internal PC
> Ie GPP Bridge to Bus [1022:1635] (prog-if 00 [Normal decode])
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin A routed to IRQ 112
>     Bus: primary=00, secondary=07, subordinate=07, sec-latency=0
>     I/O behind bridge: 00001000-00001fff [size=4K]
>     Memory behind bridge: fd000000-fd3fffff [size=4M]
>     Prefetchable memory behind bridge: 0000000c60000000-0000000c701fffff [si
> ze=258M]
>     Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- <SERR- <PERR-
>     BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
>         PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
>     Capabilities: <access denied>
>     Kernel driver in use: pcieport
>
> 00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus
> Controller [1
> 022:790b] (rev 51)
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort
> - <MAbort- >SERR- <PERR- INTx-
>     Kernel driver in use: piix4_smbus
>     Kernel modules: i2c_piix4, sp5100_tco
>
> 00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC
> Bridge [10
> 22:790e] (rev 51)
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort
> - <MAbort- >SERR- <PERR- INTx-
>     Latency: 0
>
> 00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> Device 24:
>  Function 0 [1022:1448]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>
> 00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> Device 24:
>  Function 1 [1022:1449]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>
> 00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> Device 24:
>  Function 2 [1022:144a]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>
> 00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> Device 24:
>  Function 3 [1022:144b]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Kernel driver in use: k10temp
>     Kernel modules: k10temp
>
> 00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> Device 24:
>  Function 4 [1022:144c]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>
> 00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> Device 24:
>  Function 5 [1022:144d]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>
> 00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> Device 24:
>  Function 6 [1022:144e]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>
> 00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Renoir
> Device 24:
>  Function 7 [1022:144f]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>
> 01:00.0 Non-Volatile memory controller [0108]: SK hynix Device
> [1c5c:1639] (prog
> -if 02 [NVM Express])
>     Subsystem: SK hynix Device [1c5c:1639]
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin A routed to IRQ 36
>     NUMA node: 0
>     Region 0: Memory at fd900000 (64-bit, non-prefetchable) [size=16K]
>     Region 2: Memory at fd905000 (32-bit, non-prefetchable) [size=4K]
>     Region 3: Memory at fd904000 (32-bit, non-prefetchable) [size=4K]
>     Capabilities: <access denied>
>     Kernel driver in use: nvme
>     Kernel modules: nvme
>
> 02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> RTL8111/8168
> /8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 0e)
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Interrupt: pin A routed to IRQ 40
>     Region 0: I/O ports at 3400 [size=256]
>     Region 2: Memory at fd814000 (64-bit, non-prefetchable) [size=4K]
>     Region 4: Memory at fd800000 (64-bit, non-prefetchable) [size=16K]
>     Capabilities: <access denied>
>     Kernel driver in use: pciback
>     Kernel modules: r8169
>
> 02:00.1 Serial controller [0700]: Realtek Semiconductor Co., Ltd.
> RTL8111xP UART
>  #1 [10ec:816a] (rev 0e) (prog-if 02 [16550])
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Interrupt: pin B routed to IRQ 41
>     Region 0: I/O ports at 3200 [size=256]
>     Region 2: Memory at fd815000 (64-bit, non-prefetchable) [size=4K]
>     Region 4: Memory at fd804000 (64-bit, non-prefetchable) [size=16K]
>     Capabilities: <access denied>
>     Kernel driver in use: serial
>
> 02:00.2 Serial controller [0700]: Realtek Semiconductor Co., Ltd.
> RTL8111xP UART
>  #2 [10ec:816b] (rev 0e) (prog-if 02 [16550])
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Interrupt: pin C routed to IRQ 42
>     Region 0: I/O ports at 3100 [size=256]
>     Region 2: Memory at fd816000 (64-bit, non-prefetchable) [size=4K]
>     Region 4: Memory at fd808000 (64-bit, non-prefetchable) [size=16K]
>     Capabilities: <access denied>
>     Kernel driver in use: serial
>
> 02:00.3 IPMI Interface [0c07]: Realtek Semiconductor Co., Ltd. RTL8111xP
> IPMI in
> terface [10ec:816c] (rev 0e) (prog-if 01 [KCS])
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx-
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Interrupt: pin D routed to IRQ 255
>     Region 0: I/O ports at 3000 [disabled] [size=256]
>     Region 2: Memory at fd817000 (64-bit, non-prefetchable) [disabled] [size
> =4K]
>     Region 4: Memory at fd80c000 (64-bit, non-prefetchable) [disabled] [size
> =16K]
>     Capabilities: <access denied>
>     Kernel modules: ipmi_si
>
> 02:00.4 USB controller [0c03]: Realtek Semiconductor Co., Ltd. RTL811x
> EHCI host
>  controller [10ec:816d] (rev 0e) (prog-if 20 [EHCI])
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin D routed to IRQ 114
>     Region 0: Memory at fd818000 (32-bit, non-prefetchable) [size=4K]
>     Region 2: Memory at fd810000 (64-bit, non-prefetchable) [size=16K]
>     Capabilities: <access denied>
>     Kernel driver in use: ehci-pci
>     Kernel modules: ehci_pci
>
> 03:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200
> [8086:2723] (
> rev 1a)
>     Subsystem: Intel Corporation Device [8086:0080]
>     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin A routed to IRQ 44
>     Region 0: Memory at fd700000 (64-bit, non-prefetchable) [size=16K]
>     Capabilities: <access denied>
>     Kernel driver in use: pciback
>     Kernel modules: iwlwifi
>
> 04:00.0 SD Host controller [0805]: Genesys Logic, Inc GL9750 SD Host
> Controller
> [17a0:9750] (rev 01) (prog-if 01)
>     Subsystem: Lenovo Device [17aa:5082]
>     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin A routed to IRQ 118
>     Region 0: Memory at fd600000 (32-bit, non-prefetchable) [size=4K]
>     Capabilities: <access denied>
>     Kernel driver in use: sdhci-pci
>     Kernel modules: sdhci_pci
>
> 05:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> RTL8111/8168
> /8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin A routed to IRQ 46
>     Region 0: I/O ports at 2000 [size=256]
>     Region 2: Memory at fd504000 (64-bit, non-prefetchable) [size=4K]
>     Region 4: Memory at fd500000 (64-bit, non-prefetchable) [size=16K]
>     Capabilities: <access denied>
>     Kernel driver in use: pciback
>     Kernel modules: r8169
>
> 06:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720202 USB
> 3.0 Host C
> ontroller [1912:0015] (rev 02) (prog-if 30 [XHCI])
>     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin A routed to IRQ 42
>     Region 0: Memory at fd400000 (64-bit, non-prefetchable) [size=8K]
>     Capabilities: <access denied>
>     Kernel driver in use: xhci_hcd
>     Kernel modules: xhci_pci
>
> 07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc.
> [AMD/ATI]
>  Renoir [1002:1636] (rev d1) (prog-if 00 [VGA controller])
>     Subsystem: Lenovo Device [17aa:5099]
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin A routed to IRQ 38
>     Region 0: Memory at c60000000 (64-bit, prefetchable) [size=256M]
>     Region 2: Memory at c70000000 (64-bit, prefetchable) [size=2M]
>     Region 4: I/O ports at 1000 [size=256]
>     Region 5: Memory at fd300000 (32-bit, non-prefetchable) [size=512K]
>     Capabilities: <access denied>
>     Kernel driver in use: amdgpu
>     Kernel modules: amdgpu
>
> 07:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD]
> Family
> 17h (Models 10h-1fh) Platform Security Processor [1022:15df]
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin C routed to IRQ 36
>     Region 2: Memory at fd200000 (32-bit, non-prefetchable) [size=1M]
>     Region 5: Memory at fd380000 (32-bit, non-prefetchable) [size=8K]
>     Capabilities: <access denied>
>     Kernel driver in use: ccp
>     Kernel modules: ccp
>
> 07:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir
> USB 3.1
>  [1022:1639] (prog-if 30 [XHCI])
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin D routed to IRQ 37
>     Region 0: Memory at fd000000 (64-bit, non-prefetchable) [size=1M]
>     Capabilities: <access denied>
>     Kernel driver in use: pciback
>     Kernel modules: xhci_pci
>
> 07:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir
> USB 3.1
>  [1022:1639] (prog-if 30 [XHCI])
>     Subsystem: Lenovo Device [17aa:5081]
>     Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Step
> ping- SERR- FastB2B- DisINTx+
>     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
>     Latency: 0, Cache Line Size: 32 bytes
>     Interrupt: pin A routed to IRQ 38
>     Region 0: Memory at fd100000 (64-bit, non-prefetchable) [size=1M]
>     Capabilities: <access denied>
>     Kernel driver in use: pciback
>     Kernel modules: xhci_pci
>
> Regards
> - Josef

No go sadly, still the same behavior. I guess that Maskable- is a bad
thing here?

CC xen-devel, you guys may have a clue here?


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-11 18:47 ` Josef Johansson
  2021-10-11 19:34   ` Josef Johansson
@ 2021-10-12 11:34   ` Marc Zyngier
  2021-10-12 12:33     ` Josef Johansson
  1 sibling, 1 reply; 26+ messages in thread
From: Marc Zyngier @ 2021-10-12 11:34 UTC (permalink / raw)
  To: Josef Johansson; +Cc: tglx, linux-pci, linux-kernel, Rui Salvaterra

On Mon, 11 Oct 2021 19:47:21 +0100,
Josef Johansson <josef@oderland.se> wrote:
>
> I've got a late regression to this commit as well, but in the GPU area.
> The problem arises when booting it as XEN dom0.

What is the behaviour without Xen? We have some special treatment for
Xen PV which may or may not have an influence on the behaviour...

	M.

-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-12 11:34   ` Marc Zyngier
@ 2021-10-12 12:33     ` Josef Johansson
  2021-10-31 22:51       ` Rui Salvaterra
  0 siblings, 1 reply; 26+ messages in thread
From: Josef Johansson @ 2021-10-12 12:33 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: tglx, linux-pci, linux-kernel, Rui Salvaterra

On 10/12/21 13:34, Marc Zyngier wrote:
> On Mon, 11 Oct 2021 19:47:21 +0100,
> Josef Johansson <josef@oderland.se> wrote:
>> I've got a late regression to this commit as well, but in the GPU area.
>> The problem arises when booting it as XEN dom0.
> What is the behaviour without Xen? We have some special treatment for
> Xen PV which may or may not have an influence on the behaviour...
>
> 	M.
>
It's working if I'm booting without Xen.

Thanks!

Regards

- Josef



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-12  5:37     ` Josef Johansson
@ 2021-10-12 13:07       ` Jason Andryuk
  2021-10-12 13:33         ` Josef Johansson
  0 siblings, 1 reply; 26+ messages in thread
From: Jason Andryuk @ 2021-10-12 13:07 UTC (permalink / raw)
  To: Josef Johansson; +Cc: Thomas Gleixner, maz, linux-pci, open list, xen-devel

On Tue, Oct 12, 2021 at 2:09 AM Josef Johansson <josef@oderland.se> wrote:
>
> On 10/11/21 21:34, Josef Johansson wrote:
> > On 10/11/21 20:47, Josef Johansson wrote:
> >> More can be read over at freedesktop:
> >> https://gitlab.freedesktop.org/drm/amd/-/issues/1715

Hi, Josef,

If you compare
commit fcacdfbef5a1633211ebfac1b669a7739f5b553e "PCI/MSI: Provide a
new set of mask and unmask functions"
and
commit 446a98b19fd6da97a1fb148abb1766ad89c9b767 "PCI/MSI: Use new
mask/unmask functions" some of the replacement functions in 446198b1
no longer exit early for the pci_msi_ignore_mask flag.

Josef, I'd recommend you try adding pci_msi_ignore_mask checks to the
new functions in fcacdfbef5a to see if that helps.

There was already a pci_msi_ignore_mask fixup in commit
1a519dc7a73c977547d8b5108d98c6e769c89f4b "PCI/MSI: Skip masking MSI-X
on Xen PV" though the kernel was crashing in that case.

Regards,
Jason

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-12 13:07       ` Jason Andryuk
@ 2021-10-12 13:33         ` Josef Johansson
  2021-10-12 15:17           ` Josef Johansson
  0 siblings, 1 reply; 26+ messages in thread
From: Josef Johansson @ 2021-10-12 13:33 UTC (permalink / raw)
  To: Jason Andryuk; +Cc: Thomas Gleixner, maz, linux-pci, open list, xen-devel

On 10/12/21 15:07, Jason Andryuk wrote:
> On Tue, Oct 12, 2021 at 2:09 AM Josef Johansson <josef@oderland.se> wrote:
>> On 10/11/21 21:34, Josef Johansson wrote:
>>> On 10/11/21 20:47, Josef Johansson wrote:
>>>> More can be read over at freedesktop:
>>>> https://gitlab.freedesktop.org/drm/amd/-/issues/1715
> Hi, Josef,
>
> If you compare
> commit fcacdfbef5a1633211ebfac1b669a7739f5b553e "PCI/MSI: Provide a
> new set of mask and unmask functions"
> and
> commit 446a98b19fd6da97a1fb148abb1766ad89c9b767 "PCI/MSI: Use new
> mask/unmask functions" some of the replacement functions in 446198b1
> no longer exit early for the pci_msi_ignore_mask flag.
>
> Josef, I'd recommend you try adding pci_msi_ignore_mask checks to the
> new functions in fcacdfbef5a to see if that helps.
>
> There was already a pci_msi_ignore_mask fixup in commit
> 1a519dc7a73c977547d8b5108d98c6e769c89f4b "PCI/MSI: Skip masking MSI-X
> on Xen PV" though the kernel was crashing in that case.
>
> Regards,
> Jason

Hi Jason,

Makes sense. I am compiling now, will try it as soon as it's done.

diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 0099a00af361..620928fd0065 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -148,6 +148,9 @@ static noinline void pci_msi_update_mask(struct
msi_desc *desc, u32 clear, u32 s
     raw_spinlock_t *lock = &desc->dev->msi_lock;
     unsigned long flags;
 
+    if (pci_msi_ignore_mask)
+        return;
+
     raw_spin_lock_irqsave(lock, flags);
     desc->msi_mask &= ~clear;
     desc->msi_mask |= set;
@@ -179,6 +182,9 @@ static inline void __iomem
*pci_msix_desc_addr(struct msi_desc *desc)
  */
 static void pci_msix_write_vector_ctrl(struct msi_desc *desc, u32 ctrl)
 {
+    if (pci_msi_ignore_mask)
+        return;
+
     void __iomem *desc_addr = pci_msix_desc_addr(desc);
 
     writel(ctrl, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
@@ -186,6 +192,9 @@ static void pci_msix_write_vector_ctrl(struct
msi_desc *desc, u32 ctrl)
 
 static inline void pci_msix_mask(struct msi_desc *desc)
 {
+    if (pci_msi_ignore_mask)
+        return;
+
     desc->msix_ctrl |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
     pci_msix_write_vector_ctrl(desc, desc->msix_ctrl);
     /* Flush write to device */
@@ -194,6 +203,9 @@ static inline void pci_msix_mask(struct msi_desc *desc)
 
 static inline void pci_msix_unmask(struct msi_desc *desc)
 {
+    if (pci_msi_ignore_mask)
+        return;
+
     desc->msix_ctrl &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
     pci_msix_write_vector_ctrl(desc, desc->msix_ctrl);
 }


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-12 13:33         ` Josef Johansson
@ 2021-10-12 15:17           ` Josef Johansson
  0 siblings, 0 replies; 26+ messages in thread
From: Josef Johansson @ 2021-10-12 15:17 UTC (permalink / raw)
  To: Jason Andryuk; +Cc: Thomas Gleixner, maz, linux-pci, open list, xen-devel

On 10/12/21 15:33, Josef Johansson wrote:
> On 10/12/21 15:07, Jason Andryuk wrote:
>> On Tue, Oct 12, 2021 at 2:09 AM Josef Johansson <josef@oderland.se> wrote:
>>> On 10/11/21 21:34, Josef Johansson wrote:
>>>> On 10/11/21 20:47, Josef Johansson wrote:
>>>>> More can be read over at freedesktop:
>>>>> https://gitlab.freedesktop.org/drm/amd/-/issues/1715
>> Hi, Josef,
>>
>> If you compare
>> commit fcacdfbef5a1633211ebfac1b669a7739f5b553e "PCI/MSI: Provide a
>> new set of mask and unmask functions"
>> and
>> commit 446a98b19fd6da97a1fb148abb1766ad89c9b767 "PCI/MSI: Use new
>> mask/unmask functions" some of the replacement functions in 446198b1
>> no longer exit early for the pci_msi_ignore_mask flag.
>>
>> Josef, I'd recommend you try adding pci_msi_ignore_mask checks to the
>> new functions in fcacdfbef5a to see if that helps.
>>
>> There was already a pci_msi_ignore_mask fixup in commit
>> 1a519dc7a73c977547d8b5108d98c6e769c89f4b "PCI/MSI: Skip masking MSI-X
>> on Xen PV" though the kernel was crashing in that case.
>>
>> Regards,
>> Jason
> Hi Jason,
>
> Makes sense. I am compiling now, will try it as soon as it's done.
>
> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> index 0099a00af361..620928fd0065 100644
> --- a/drivers/pci/msi.c
> +++ b/drivers/pci/msi.c
> @@ -148,6 +148,9 @@ static noinline void pci_msi_update_mask(struct
> msi_desc *desc, u32 clear, u32 s
>      raw_spinlock_t *lock = &desc->dev->msi_lock;
>      unsigned long flags;
>  
> +    if (pci_msi_ignore_mask)
> +        return;
> +
>      raw_spin_lock_irqsave(lock, flags);
>      desc->msi_mask &= ~clear;
>      desc->msi_mask |= set;
> @@ -179,6 +182,9 @@ static inline void __iomem
> *pci_msix_desc_addr(struct msi_desc *desc)
>   */
>  static void pci_msix_write_vector_ctrl(struct msi_desc *desc, u32 ctrl)
>  {
> +    if (pci_msi_ignore_mask)
> +        return;
> +
>      void __iomem *desc_addr = pci_msix_desc_addr(desc);
>  
>      writel(ctrl, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
> @@ -186,6 +192,9 @@ static void pci_msix_write_vector_ctrl(struct
> msi_desc *desc, u32 ctrl)
>  
>  static inline void pci_msix_mask(struct msi_desc *desc)
>  {
> +    if (pci_msi_ignore_mask)
> +        return;
> +
>      desc->msix_ctrl |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
>      pci_msix_write_vector_ctrl(desc, desc->msix_ctrl);
>      /* Flush write to device */
> @@ -194,6 +203,9 @@ static inline void pci_msix_mask(struct msi_desc *desc)
>  
>  static inline void pci_msix_unmask(struct msi_desc *desc)
>  {
> +    if (pci_msi_ignore_mask)
> +        return;
> +
>      desc->msix_ctrl &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
>      pci_msix_write_vector_ctrl(desc, desc->msix_ctrl);
>  }
>
I love open source. It just works. Was my patch correct btw?

Thanks Jason!

Regards

- Josef


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-12 12:33     ` Josef Johansson
@ 2021-10-31 22:51       ` Rui Salvaterra
  2021-11-01 11:21         ` Marc Zyngier
  0 siblings, 1 reply; 26+ messages in thread
From: Rui Salvaterra @ 2021-10-31 22:51 UTC (permalink / raw)
  To: Josef Johansson; +Cc: Marc Zyngier, tglx, linux-pci, linux-kernel

Hi, Marc,

Linux 5.15 has just been tagged, and this fix isn't included (I
personally don't mind, since I'm carrying it in my tree). Any specific
reason for it?

Thanks,
Rui

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-10-31 22:51       ` Rui Salvaterra
@ 2021-11-01 11:21         ` Marc Zyngier
  2021-11-01 11:36           ` Rui Salvaterra
  0 siblings, 1 reply; 26+ messages in thread
From: Marc Zyngier @ 2021-11-01 11:21 UTC (permalink / raw)
  To: Rui Salvaterra; +Cc: Josef Johansson, tglx, linux-pci, linux-kernel

On Sun, 31 Oct 2021 22:51:11 +0000,
Rui Salvaterra <rsalvaterra@gmail.com> wrote:
> 
> Hi, Marc,
> 
> Linux 5.15 has just been tagged, and this fix isn't included (I
> personally don't mind, since I'm carrying it in my tree). Any specific
> reason for it?

Just being preempted with slightly higher priority stuff. I'll try to
post the patches formally this week. I'm still a bit surprised that
nobody else has reported such issue though.

	M.

-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
  2021-11-01 11:21         ` Marc Zyngier
@ 2021-11-01 11:36           ` Rui Salvaterra
  0 siblings, 0 replies; 26+ messages in thread
From: Rui Salvaterra @ 2021-11-01 11:36 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: Josef Johansson, tglx, linux-pci, linux-kernel

Hi, Marc,

On Mon, 1 Nov 2021 at 11:21, Marc Zyngier <maz@kernel.org> wrote:
>
> Just being preempted with slightly higher priority stuff. I'll try to
> post the patches formally this week. I'm still a bit surprised that
> nobody else has reported such issue though.

No problem, I was just worried it could have fallen through the
cracks. As for nobody else reporting it, I'm inclined to believe the
combination of building/running bleeding edge kernels on Atom 330
systems from 2009 isn't exactly common.

Thanks,
Rui

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [tip: irq/urgent] PCI: Add MSI masking quirk for Nvidia ION AHCI
  2021-10-06  8:50 [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79) Rui Salvaterra
                   ` (2 preceding siblings ...)
  2021-10-11 18:47 ` Josef Johansson
@ 2021-11-11  8:57 ` tip-bot2 for Marc Zyngier
  3 siblings, 0 replies; 26+ messages in thread
From: tip-bot2 for Marc Zyngier @ 2021-11-11  8:57 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Rui Salvaterra, Marc Zyngier, Thomas Gleixner, Bjorn Helgaas,
	x86, linux-kernel

The following commit has been merged into the irq/urgent branch of tip:

Commit-ID:     f21082fb20dbfb3e42b769b59ef21c2a7f2c7c1f
Gitweb:        https://git.kernel.org/tip/f21082fb20dbfb3e42b769b59ef21c2a7f2c7c1f
Author:        Marc Zyngier <maz@kernel.org>
AuthorDate:    Thu, 04 Nov 2021 18:01:30 
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Thu, 11 Nov 2021 09:50:31 +01:00

PCI: Add MSI masking quirk for Nvidia ION AHCI

The ION AHCI device pretends that MSI masking isn't a thing, while it
actually implements it and needs MSIs to be unmasked to work. Add a quirk
to that effect.

Reported-by: Rui Salvaterra <rsalvaterra@gmail.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Rui Salvaterra <rsalvaterra@gmail.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Bjorn Helgaas <helgaas@kernel.org>
Link: https://lore.kernel.org/r/CALjTZvbzYfBuLB+H=fj2J+9=DxjQ2Uqcy0if_PvmJ-nU-qEgkg@mail.gmail.com
Link: https://lore.kernel.org/r/20211104180130.3825416-3-maz@kernel.org
---
 drivers/pci/quirks.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index aedb78c..003950c 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -5851,3 +5851,9 @@ DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_PERICOM, 0x2303,
 			 pci_fixup_pericom_acs_store_forward);
 DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_PERICOM, 0x2303,
 			 pci_fixup_pericom_acs_store_forward);
+
+static void nvidia_ion_ahci_fixup(struct pci_dev *pdev)
+{
+	pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79)
       [not found] <1374495046.4164334.1635737050153@localhost>
@ 2021-11-01 11:06 ` Rui Salvaterra
  0 siblings, 0 replies; 26+ messages in thread
From: Rui Salvaterra @ 2021-11-01 11:06 UTC (permalink / raw)
  To: Josef Per Johansson; +Cc: Marc Zyngier, tglx, linux-pci, linux-kernel

Hi, Josef,

On Mon, 1 Nov 2021 at 03:24, Josef Per Johansson <josef@oderland.se> wrote:
>
> To be clear, which patch are you carrying? The latest by thomas is https://lore.kernel.org/linux-pci/89d6c2f4-4d00-972f-e434-cb1839e78598@oderland.se/

Please keep the discussion public.

The patch I'm carrying is the one Marc authored, in order to fix the
MCP79 regression I've bisected.

Thanks,
Rui

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2021-11-11  8:57 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-06  8:50 [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79) Rui Salvaterra
2021-10-06 11:00 ` Marc Zyngier
2021-10-06 11:06   ` Rui Salvaterra
2021-10-07  8:52     ` Marc Zyngier
2021-10-07 12:03       ` Rui Salvaterra
2021-10-07 12:15         ` Marc Zyngier
2021-10-07 13:11           ` Rui Salvaterra
2021-10-07 14:42             ` Marc Zyngier
2021-10-07 14:50               ` Rui Salvaterra
2021-10-07 15:03                 ` Marc Zyngier
2021-10-07 16:13                   ` Rui Salvaterra
2021-10-06 11:44 ` Rui Salvaterra
2021-10-06 11:48   ` Rui Salvaterra
2021-10-11 18:47 ` Josef Johansson
2021-10-11 19:34   ` Josef Johansson
2021-10-12  5:37     ` Josef Johansson
2021-10-12 13:07       ` Jason Andryuk
2021-10-12 13:33         ` Josef Johansson
2021-10-12 15:17           ` Josef Johansson
2021-10-12 11:34   ` Marc Zyngier
2021-10-12 12:33     ` Josef Johansson
2021-10-31 22:51       ` Rui Salvaterra
2021-11-01 11:21         ` Marc Zyngier
2021-11-01 11:36           ` Rui Salvaterra
2021-11-11  8:57 ` [tip: irq/urgent] PCI: Add MSI masking quirk for Nvidia ION AHCI tip-bot2 for Marc Zyngier
     [not found] <1374495046.4164334.1635737050153@localhost>
2021-11-01 11:06 ` [REGRESSION][BISECTED] 5.15-rc1: Broken AHCI on NVIDIA ION (MCP79) Rui Salvaterra

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.