Re: [REGRESSION] Silent SATA read corruption with dma-iommu on AMD 600-series AHCI (6.19 good, 7.0+ bad)
Mikael Etienne <[email protected]>
| Newsgroups | gmane.linux.ide,gmane.linux.block |
|---|---|
| Message-ID | <[email protected]> |
On 8/28/2026 6:22 PM, Limonciello, Mario wrote: > BUT the issue internally does show the issue is specificially once the > 32-bit IOVA space is exhausted. > > Unfortunately; the solution is currently a BIOS change in how the type > bytes of the IOVA is handled. Hi Mario, Thanks -- the 32-bit IOVA exhaustion detail is the first thing that explains the timing I see. My failure takes 3h25m of sustained reads to appear, and a reboot clears it completely with the same kernel and the same on-disk data. "Low IOVA space works, high IOVA space does not, and a reboot starts from an empty low space again" fits that exactly. The ASM1166 write-up you linked is also a very close match: a controller that advertises CAP.S64A but cannot actually reach above 4 GB. My SATA controller is the AMD 600-series chipset one (1022:43f6), which is Promontory/ASMedia silicon, and it likewise advertises 64bit in its AHCI flags. Firmware, since you mention a BIOS fix: I am already on the latest available for this board. Gigabyte X870I AORUS PRO ICE BIOS FB1c, 2026-07-21, AMI, platform firmware revision 5.41 AGESA!V9 ComboAm5PI 1.3.0.1c CPU microcode 0x0a70520a So whatever BIOS-side change you have internally is either not in AGESA 1.3.0.1c, or not sufficient on this board. On the bisection: before committing to two weeks, I would like to try making the reproducer fast. If the trigger really is 32-bit IOVA exhaustion, then booting with iommu.forcedac=1 alone should hand out high IOVAs immediately and fail in minutes rather than after 3h25m. If that works, a v6.19..v7.0 bisection becomes an evening rather than a fortnight, and you would also have a reproducer that is practical to run in a lab. I will try that tonight, with all services stopped, then the amd_iommu=pgtbl_v2 iommu.forcedac=1 combination Vasant asked for. I will report bytes re-read, wall time and workload rather than a verdict. If you already know that forcedac alone will not behave that way, please tell me and I will not waste the evening on it. And to be straight about the rest: this is a production home server, so a two-week bisection is a real cost for me. The reproducer is three lines of fio. If you can run it on comparable hardware in your lab, that would very likely be faster than me doing it here -- and I am happy to run any specific kernel or debug patch you want in the meantime. Thanks, Mikael Etienne