Subject: Re: [PATCH 2/2] powerpc/pseries: Check if EEH is enabled on DDW mechanism code

From: "Guilherme G. Piccoli" <[email-masked]>
Date: Wed, 3 Feb 2016 10:26:36 -0200

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?

Cheers,

Guilherme