[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