[PATCH 2/2] powerpc/pseries: Check if EEH is enabled on DDW mechanism code
Gavin Shan
gwshan at linux.vnet.ibm.com
Thu Feb 4 16:30:23 AEDT 2016
On Wed, Feb 03, 2016 at 10:26:36AM -0200, Guilherme G. Piccoli wrote:
>On 02/02/2016 09:48 PM, Gavin Shan wrote:
>>On Tue, Jan 19, 2016 at 06:18:20PM -0200, Guilherme G. Piccoli wrote:
>>>- /* only attempt to use a new window if 64-bit DMA is requested */
>>>- if (!disable_ddw && dma_mask == DMA_BIT_MASK(64)) {
>>>+ /* We should check if EEH is enabled here, since DDW mechanism has
>>>+ * an intrinsic dependency of EEH config addr information. Also, we
>>>+ * only attempt to use a new window if 64-bit DMA is requested */
>>>+ if (eeh_enabled() && !disable_ddw && dma_mask == DMA_BIT_MASK(64)) {
>>> dn = pci_device_to_OF_node(pdev);
>>> dev_dbg(dev, "node is %s\n", dn->full_name);
>>>
>>
>>There are two types of addresses: (1) PCI config address (2) PE config address.
>>(1) is used to indentify one PCI device which is included in the PE. (2) is the
>>PCI config address of PE's primary bus in pHyp. Both of them can be used to identify
>>the PE. It means the (1) PCI config address, which is retrieved from pci_dn, can be
>>passed to hypervisor. Then we don't have to disable DDW when EEH is disabled.
>>
>>Guilherme, did you hit the crash on pHyp or PowerKVM?
>
>Gavin, thanks very much for the clarification. So, we can interchange
>edev->config_addr with pdn->pci_ext_config_space ?
>This would solve the issue with DDW being enabled when EEH is not.
>
>I hit the issue on PowerVM (PHyp). I wasn't able to perform hotplug in qemu
>that time I was testing this - I can re-test on qemu. Can we use pci_dn
>config address in qemu guest too?
>
On PowerKVM, QEMU can't recognize (1). pHyp is expected to support both
of them. Please have a try with (1) when eeh_enabled() returns false.
The address (1) can be retrieved from pci_dn as below:
(pdn->busno << 8) | (pdn->devfn)
Thanks,
Gavin
More information about the Linuxppc-dev
mailing list