LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Paul Klapperich <paul.klapperich@gmail.com>,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [Regression] PowerNV: JMicron JMB58x AHCI 32-bit DMA fallback triggers EEH freeze on 7.x kernels
Date: Sat, 01 Aug 2026 18:35:26 +0530	[thread overview]
Message-ID: <4ihem1nt.ritesh.list@gmail.com> (raw)
In-Reply-To: <CADyY0-5M0+N1u45RVZN3Tf52iKaXcvKeUaqgdw-wP1B_4zuA0w@mail.gmail.com>


Hi Paul,

Paul Klapperich <paul.klapperich@gmail.com> writes:

> Hi everyone,
>
> I am encountering a reproducible PCIe/EEH regression on a PowerNV
> platform (Talos II, POWER9) when moving from kernel 6.18.x to the
> 7.1.x series.
>
> Hardware Context:
>
> Platform: Raptor Computing Systems Talos II (PowerNV, POWER9)
>
> Storage Controller: 0001:01:00.0 SATA controller: JMicron Technology
> Corp. JMB58x AHCI SATA controller (direct root port, no PLX bridge)
>
> The Issue: On mainline/Arch POWER kernel 7.1.4, the kernel's
> enforcement of a 32-bit DMA mask (AHCI_HFLAG_32BIT_ONLY) on the JMB58x
> controller appears to be causing a low-memory translation failure
> during early initialization. This immediately trips the PowerNV Host
> Bridge (PHB) into an Enhanced Error Handling (EEH) frozen state and
> locks up the bus.
>
> Conversely, booting the exact same hardware setup with a 6.18.7 kernel
> succeeds completely, as it negotiates the 64-bit DMA window without
> triggering the platform translation fault.
>
> Boot Log Contrast:
>
> Under working 6.18.7 kernel:
>
> # dmesg | grep -iE "ahci|eeh"

1. Could you please attach and share the full dmesg (with no grep
   filtering) for both 6.18.7 (working kernel) and 7.1.4 (non-working
   kernel) along with their respective .config files. That should
   clarify few other things.

2. cat /sys/firmware/opal/msglog
   From both the kernels (after bootup and possibly after an EEH error
   has occurred at-least once on the non-working kernel)

-ritesh


> [    0.211910] EEH: PowerNV platform initialized
> [    0.391733] EEH: Capable adapter found: recovery enabled.
> [    2.192909] ahci 0001:01:00.0: enabling device (0540 -> 0542)
> [    2.193223] ahci 0001:01:00.0: SSS flag set, parallel bus scan disabled
> [    2.193264] ahci 0001:01:00.0: AHCI vers 0001.0301, 32 command
> slots, 6 Gbps, SATA mode
> [    2.193270] ahci 0001:01:00.0: 5/5 ports implemented (port mask 0x1f)
> [    2.193275] ahci 0001:01:00.0: flags: 64bit ncq sntf stag pm led
> clo pmp fbs pio slum part ccc apst boh
> [    2.196895] scsi host0: ahci
> [    2.197276] scsi host1: ahci
> [    2.198768] scsi host2: ahci
> [    2.199068] scsi host3: ahci
> [    2.199995] scsi host4: ahci
>
> Under broken 7.1.4 kernel:
>
>  # dmesg | grep -iE "ahci|eeh"
>  [    3.298353] EEH: PowerNV platform initialized
>  [    3.460692] EEH: Capable adapter found: recovery enabled.
>  [    4.510396] ahci 0001:01:00.0: enabling device (0540 -> 0542)
>  [    4.510428] ahci 0001:01:00.0: controller can't do 64bit DMA, forcing 32bit
>  [    4.510691] ahci 0001:01:00.0: SSS flag set, parallel bus scan disabled
>  [    4.510735] ahci 0001:01:00.0: AHCI vers 0001.0301, 32 command
> slots, 6 Gbps, SATA mode
>  [    4.510742] ahci 0001:01:00.0: 5/5 ports implemented (port mask 0x1f)
>  [    4.510747] ahci 0001:01:00.0: flags: ncq sntf stag pm led clo pmp
> fbs pio slum part ccc apst boh
>  [    4.512167] scsi host0: ahci
>  [    4.512556] scsi host1: ahci
>  [    4.512831] scsi host2: ahci
>  [    4.513076] scsi host3: ahci
>  [    4.513466] scsi host4: ahci
>  [    4.824011] EEH: Recovering PHB#1-PE#fd
>  [    4.824019] EEH: PE location: UOPWR.A100019-Node0-CPU1 Slot1 (8x),
> PHB location: N/A
>  [    4.824023] EEH: Frozen PHB#1-PE#fd detected
>  [    4.824025] EEH: Call Trace:
>  [    4.824027] EEH: [000000007ad80bda] __eeh_send_failure_event+0x68/0x140
>  [    4.824038] EEH: [0000000042fa5ce7] eeh_dev_check_failure.part.0+0x280/0x6d0
>  [    4.824044] EEH: [00000000ca5dc769] ioread32+0xd0/0x190
>  [    4.824051] EEH: [000000000ad730be] ata_wait_register+0xa4/0x108 [libata]
>  [    4.824064] EEH: [000000007fb91492]
> ahci_exec_polled_cmd.constprop.0+0x104/0x210 [libahci]
>  [    4.824070] EEH: [0000000063044e17] ahci_do_softreset+0x140/0x380 [libahci]
>  [    4.824074] EEH: [00000000d97bc211]
> ata_do_reset.constprop.0+0xbc/0xf0 [libata]
>  [    4.824084] EEH: [0000000093546eba] ata_eh_reset+0xb14/0x12d0 [libata]
>  [    4.824094] EEH: [00000000b2341f96] ata_eh_recover+0x3f0/0x1580 [libata]
>  [    4.824102] EEH: [00000000bbcd8f21]
> sata_pmp_error_handler+0x388/0xb90 [libata]
>  [    4.824109] EEH: [00000000b87225ad] ahci_error_handler+0x6c/0x100 [libahci]
>  [    4.824114] EEH: [00000000eda810ea]
> ata_scsi_port_error_handler+0x4a8/0x9a0 [libata]
>  [    4.824123] EEH: [0000000006f6b52d] ata_scsi_error+0xc0/0x130 [libata]
>  [    4.824131] EEH: [000000002528ea40] scsi_error_handler+0x11c/0x760
> [scsi_mod]
>  [    4.824142] EEH: [000000005ba0d15d] kthread+0x17c/0x190
>  [    4.824148] EEH: [0000000067c7c775] start_kernel_thread+0x14/0x18
>  [    4.824153] EEH: This PCI device has failed 1 times in the last
> hour and will be permanently disabled after 5 failures.
>  [    4.824156] EEH: Notify device drivers to shutdown
>  [    4.824159] EEH: Beginning: 'error_detected(IO frozen)'
>  [    4.824162] PCI 0001:01:00.0#00fd: EEH: driver not EEH aware
>  [    4.824165] EEH: Finished:'error_detected(IO frozen)' with
> aggregate recovery state:'none'
>  [    4.824170] EEH: Collect temporary log
>  [    4.824198] EEH: of node=0001:01:00.0
>  [    4.824203] EEH: PCI device/vendor: 0585197b
>  [    4.824207] EEH: PCI cmd/status register: 00100546
>  [    4.824209] EEH: PCI-E capabilities and status follow:
>  [    4.824220] EEH: PCI-E 00: 00120010 10008102 0000285e 0041a023
>  [    4.824230] EEH: PCI-E 10: 00230008 00000000 00000000 00000000
>  [    4.824232] EEH: PCI-E 20: 00000000
>  [    4.824234] EEH: PCI-E AER capability register set follows:
>  [    4.824245] EEH: PCI-E AER 00: 15020001 00000000 00400000 00462030
>  [    4.824254] EEH: PCI-E AER 10: 00000000 0000e000 000001e0 00000000
>  [    4.824275] EEH: PCI-E AER 20: 00000000 00000000 00000000 00000000
>  [    4.824279] EEH: PCI-E AER 30: 00000000 00000000
>  [    4.824313] EEH: Reset with hotplug activity
>  [   14.513778] ahci 0001:01:00.0: AHCI controller unavailable!
>  [   14.513794] ahci 0001:01:00.0: AHCI controller unavailable!
>  [   15.561995] ahci 0001:01:00.0: AHCI controller unavailable!
>  [   15.591811] ahci 0001:01:00.0: AHCI controller unavailable!
>  [   15.591821] ahci 0001:01:00.0: AHCI controller unavailable!
>  [   15.591828] ahci 0001:01:00.0: AHCI controller unavailable!
>  [   15.591834] ahci 0001:01:00.0: AHCI controller unavailable!
>  [   15.591840] ahci 0001:01:00.0: AHCI controller unavailable!
>  [   20.592398] EEH: Sleep 5s ahead of complete hotplug
>  [   26.110843] ahci 0001:01:00.0: enabling device (0140 -> 0142)
>  [   26.110876] ahci 0001:01:00.0: controller can't do 64bit DMA, forcing 32bit
>  [   26.111136] ahci 0001:01:00.0: SSS flag set, parallel bus scan disabled
>
> this repeats until the device is disabled after 5 resets.
>
> Confirmation:
> I built 7.1.4 after reverting commit 105c4256 "ata: ahci: force 32-bit
> DMA for JMicron JMB582/JMB585" and boot completed successfully with an
> apparently working JMB585 sata controller.
>
> Conclusion:
> It appears that the recent JMicron 32-bit DMA workaround interacts
> poorly with PowerNV. Is there anything a user might do to work around
> this issue without reverting 105c4256?
>
> Let me know what additional information would be helpful.
>
> Thanks,
> Paul


      reply	other threads:[~2026-08-01 13:32 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-01  3:14 [Regression] PowerNV: JMicron JMB58x AHCI 32-bit DMA fallback triggers EEH freeze on 7.x kernels Paul Klapperich
2026-08-01 13:05 ` Ritesh Harjani [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4ihem1nt.ritesh.list@gmail.com \
    --to=ritesh.list@gmail.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=paul.klapperich@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox