Re: [PATCH] PCI: vmd: Flush initiator posted writes before demuxing interrupts on Meteor Lake
From: Bjorn Helgaas
Date: Mon Oct 12 2026 - 16:20:09 EST
On Mon, Oct 12, 2026 at 02:40:11PM -0500, Varsh Satti wrote:
> On Mon, Aug 24, 2026 at 09:32:20PM -0700, Rickey Bartlett wrote:
> > Meteor Lake VMD (8086:7d0b) is affected by erratum MTL016: the VMD can
> > signal its MSI before the posted writes carrying a child device's DMA
> > data have landed in memory.
>
> Arrow Lake-H is affected too. It uses the same VMD device ID
> (8086:7d0b), so the existing match already covers it.
>
> Hardware: ASUS ROG Zephyrus G16 GU605CP (BIOS GU605CP.307), Core Ultra 9
> 285H, with a WD PC SN5000S (firmware 34230100) as the only device behind
> the VMD.
>
> Without the patch, on 7.2.9, I got 13 "timeout, completion polled"
> events in about an hour of desktop use. Each one froze the desktop for
> up to 30 seconds. Disabling APST and ASPM
> (nvme_core.default_ps_max_latency_us=0 pcie_aspm=off) did not help: I
> still got 7 in a 10 minute boot.
>
> With the patch backported to 7.2.9, there were no timeouts in 13+ hours
> of normal use (~340k reads). Average read latency went from 77 ms to
> 0.49 ms. Apart from context, the only change the backport needed was
> adding struct vmd_dev::features, which 7.2 doesn't have.
>
> Since this fixes 30 second stalls on laptops that are already shipping,
> would it be suitable for stable?
Yes, I think so. I added stable tags to both:
6fc5bcb43436 ("PCI: vmd: Flush DMA writes before handling MSI on Meteor Lake")
78b25e75d082 ("PCI: vmd: Flush DMA writes before handling MSI on Arrow Lake")
The 8086:7d0b Arrow Lake-H ID is actually covered by the Meteor Lake
patch.
> Tested-by: Varsh Satti <varsh@xxxxxxxxx>