[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20220329121528.lrk4fjfgpw3yg3bg@liuwe-devbox-debian-v2>
Date: Tue, 29 Mar 2022 12:15:28 +0000
From: Wei Liu <wei.liu@...nel.org>
To: Michael Kelley <mikelley@...rosoft.com>
Cc: sthemmin@...rosoft.com, kys@...rosoft.com, haiyangz@...rosoft.com,
wei.liu@...nel.org, decui@...rosoft.com, rafael@...nel.org,
lenb@...nel.org, lorenzo.pieralisi@....com, robh@...nel.org,
kw@...ux.com, bhelgaas@...gle.com, hch@....de,
m.szyprowski@...sung.com, robin.murphy@....com,
linux-acpi@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-hyperv@...r.kernel.org, linux-pci@...r.kernel.org,
iommu@...ts.linux-foundation.org
Subject: Re: [PATCH v3 0/2] Fix coherence for VMbus and PCI pass-thru devices
in Hyper-V VM
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.
Powered by blists - more mailing lists