Re: EEH error in doing DMA with PEX 8619

2017-04-12 Thread Benjamin Herrenschmidt
On Wed, 2017-04-12 at 01:42 -0700, IanJiang wrote: > > In my test, DMA buffers are allocated with  (bus 2, device 1, function  > 0) in module Plx8000_NT, but DMA is issued by (bus 1 device 0 function  > 1) in module Plx8000_DMA. And error of (bus 1 device 0 function 1) is  > reported by EEH.  Thi

Re: EEH error in doing DMA with PEX 8619

2017-04-12 Thread IanJiang
On Tue, Apr 11, 2017 at 5:37 PM, Benjamin Herrenschmidt [via linuxppc] wrote: > > Another possibility would be if the requests from the PLX have a > different initiator ID on the bus than the device you are setting up > the DMA for. > Here is the problem, I think. There are three PEX 8619 devices

Re: EEH error in doing DMA with PEX 8619

2017-04-11 Thread Benjamin Herrenschmidt
On Tue, 2017-04-11 at 18:39 -0700, IanJiang wrote: > On Tue, Apr 11, 2017 at 5:37 PM, Benjamin Herrenschmidt [via > linuxppc] > wrote: > > > Another possibility would be if the requests from the PLX have a  > > different initiator ID on the bus than the device you are setting > > up  > > the DMA

Re: EEH error in doing DMA with PEX 8619

2017-04-11 Thread IanJiang
On Tue, Apr 11, 2017 at 5:37 PM, Benjamin Herrenschmidt [via linuxppc] wrote: > Another possibility would be if the requests from the PLX have a > different initiator ID on the bus than the device you are setting up > the DMA for. Is there a way to check out the initiator ID in the driver? I'

Re: EEH error in doing DMA with PEX 8619

2017-04-11 Thread Benjamin Herrenschmidt
On Tue, 2017-04-11 at 02:26 -0700, IanJiang wrote: > I did another test: > - Call dma_set_mask_and_coherent(&pPciDev->dev, DMA_BIT_MASK(32)) in > probe; > - Use DMA address or BUS address in DMA > But EHH error remains. We need to dig out the details of the EEH error. It will tell us more precisel

Re: EEH error in doing DMA with PEX 8619

2017-04-11 Thread IanJiang
I did another test: - Call dma_set_mask_and_coherent(&pPciDev->dev, DMA_BIT_MASK(32)) in probe; - Use DMA address or BUS address in DMA But EHH error remains. All sources are based on PLX SDK 7.25. Note: Sample test is in user space. It allocates memory and starts DMA through PLX API. The original

Re: EEH error in doing DMA with PEX 8619

2017-04-10 Thread Gavin Shan
On Tue, Apr 11, 2017 at 12:15:10PM +1000, Benjamin Herrenschmidt wrote: >On Mon, 2017-04-10 at 19:04 -0700, IanJiang wrote: >> Thanks for your replay. >> >> I fixed my test according your suggestion. The CPU physical addresses (0x >> 1f9e40 and 0x 1f82c0) converted with virt_to_phys() are

Re: EEH error in doing DMA with PEX 8619

2017-04-10 Thread Benjamin Herrenschmidt
On Mon, 2017-04-10 at 19:04 -0700, IanJiang wrote: > Thanks for your replay. > > I fixed my test according your suggestion. The CPU physical addresses (0x > 1f9e40 and 0x 1f82c0) converted with virt_to_phys() are used , > instead of DMA addresses, or BUS physical addresses (0x 60a0 and

Re: EEH error in doing DMA with PEX 8619

2017-04-10 Thread IanJiang
Thanks for your replay. I fixed my test according your suggestion. The CPU physical addresses (0x 1f9e40 and 0x 1f82c0) converted with virt_to_phys() are used , instead of DMA addresses, or BUS physical addresses (0x 60a0 and 0x 60c0). However, EEH still reports error. Memory info

Re: EEH error in doing DMA with PEX 8619

2017-04-10 Thread Gavin Shan
On Mon, Apr 10, 2017 at 05:22:33AM -0700, IanJiang wrote: >Hi all! > >I am porting PLX driver for PEX 8619 to a power8 machine with CentOS-7.3. >The PEX 8619 is used as an NTB (Non-Transparent Bridge). > >First, two DMA buffer are allocated with dma_alloc_coherent() and the >physical address are: >