On Thu, Mar 24, 2022 at 09:14:50AM -0700, Michael Kelley wrote: > Hyper-V VMs have VMbus synthetic devices and PCI pass-thru devices that are > added > dynamically via the VMbus protocol and are not represented in the ACPI DSDT. > Only > the top level VMbus node exists in the DSDT. As such, on ARM64 these devices > don't > pick up coherence information and default to not hardware coherent. This > results > in extra software coherence management overhead since the synthetic devices > are > always hardware coherent. PCI pass-thru devices are also hardware coherent in > all > current usage scenarios. > > Fix this by propagating coherence information from the top level VMbus node in > the DSDT to all VMbus synthetic devices and PCI pass-thru devices. While > smaller > granularity of control would be better, basing on the VMbus node in the DSDT > gives as escape path if a future scenario arises with devices that are not > hardware coherent. > > Changes since v2: > * Move coherence propagation for VMbus synthetic devices to a separate > .dma_configure function instead of the .probe fucntion [Robin Murphy] > > Changes since v1: > * Use device_get_dma_attr() instead of acpi_get_dma_attr(), eliminating the > need to export acpi_get_dma_attr() [Robin Murphy] > * Use arch_setup_dma_ops() to set device coherence [Robin Murphy] > * Move handling of missing _CCA to vmbus_acpi_add() so it is only done once > * Rework handling of PCI devices so existing code in pci_dma_configure() > just works > > Michael Kelley (2): > Drivers: hv: vmbus: Propagate VMbus coherence to each VMbus device > PCI: hv: Propagate coherence from VMbus device to PCI device
Patch 2 will not be very useful without patch 1 so I've applied the whole series to hyperv-fixes. Thanks. _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu