From: Benjamin Herrenschmidt <benh@au1.ibm.com>
To: IanJiang <ianjiang.cn@gmail.com>, linuxppc-dev@ozlabs.org
Subject: Re: EEH error in doing DMA with PEX 8619
Date: Tue, 11 Apr 2017 12:15:10 +1000 [thread overview]
Message-ID: <1491876910.4166.219.camel@au1.ibm.com> (raw)
In-Reply-To: <1491876268752-121154.post@n7.nabble.com>
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
> 1f9e400000 and 0x 1f82c00000) converted with virt_to_phys() are used ,
> instead of DMA addresses, or BUS physical addresses (0x 60a00000 and 0x
> 60c00000). However, EEH still reports error.
That's incorrect. The system has an IOMMU, only addressed properly
mapped/translated by the IOMMU can be used for DMA. That is addresses
returned by things like dma_map_single/sg, dma_alloc_coherent, etc...
You also need to ensure you configure a proper dma mask.
Using virt_to_phys() is NEVER correct on *any* architecture.
Cheers,
Ben.
> Memory info.
> ==========
>
> [130508.050783] Plx8000_NT: Received PLX message ===>
> [130508.050784] Plx8000_NT: PLX_IOCTL_PHYSICAL_MEM_ALLOCATE
> [130508.050785] Plx8000_NT: Attempt to allocate physical memory (1953KB)
> [130508.051165] Plx8000_NT: Allocated physical memory...
> [130508.051167] Plx8000_NT: CPU Phys Addr: 1f9e400000
> [130508.051168] Plx8000_NT: Bus Phys Addr: 60a00000
> [130508.051170] Plx8000_NT: Kernel VA : c000001f9e400000
> [130508.051171] Plx8000_NT: Size : 1E8480h (1MB)
> [130508.051173] Plx8000_NT: ...Completed message
> [130508.051184] Plx8000_NT:
> [130508.051185] Plx8000_NT: Received message ===> MMAP
> [130508.051187] Plx8000_NT: Mapped Phys (1f9e400000) ==> User VA
> (3fff83ad0000)
> [130508.051189] Plx8000_NT: ...Completed message
> [130508.051196] Plx8000_NT:
> [130508.051198] Plx8000_NT: Received PLX message ===>
> [130508.051199] Plx8000_NT: PLX_IOCTL_PHYSICAL_MEM_ALLOCATE
> [130508.051200] Plx8000_NT: Attempt to allocate physical memory (1953KB)
> [130508.051562] Plx8000_NT: Allocated physical memory...
> [130508.051564] Plx8000_NT: CPU Phys Addr: 1f82c00000
> [130508.051565] Plx8000_NT: Bus Phys Addr: 60c00000
> [130508.051566] Plx8000_NT: Kernel VA : c000001f82c00000
> [130508.051568] Plx8000_NT: Size : 1E8480h (1MB)
> [130508.051569] Plx8000_NT: ...Completed message
> [130508.051580] Plx8000_NT:
> [130508.051581] Plx8000_NT: Received message ===> MMAP
> [130508.051583] Plx8000_NT: Mapped Phys (1f82c00000) ==> User VA
> (3fff838e0000)
> [130508.051585] Plx8000_NT: ...Completed message
> [130508.051600] Plx8000_NT:
>
> EEH info.
> ========
>
> [130515.365924] Plx8000_DMA: Received PLX message ===>
> [130515.365972] Plx8000_DMA: PLX_IOCTL_DMA_TRANSFER_BLOCK
> [130515.366033] PLX DMA[PlxDmaTransferBlock-2479]
> [130515.366084] PLX DMA[PlxDmaTransferBlock-2488]
> [130515.366131] PLX DMA[PlxDmaTransferBlock-2495]
> [130515.366181] Plx8000_DMA: Ch 0 - DMA 0000001F_9E400000 -->
> 0000001F_82C00000 (65536 bytes)
> [130515.366250] PLX DMA[PlxDmaTransferBlock-2503]
> [130515.366296] PLX DMA[PlxDmaTransferBlock-2511]
> [130515.366343] PLX DMA[PlxDmaTransferBlock-2516]
> [130515.366392] PLX DMA[PlxDmaTransferBlock-2521]
> [130515.366440] PLX DMA[PlxDmaTransferBlock-2532]
> [130515.366487] PLX DMA[PlxDmaTransferBlock-2535]
> [130515.366537] PLX DMA[PlxDmaTransferBlock-2539]
> [130515.366584] PLX DMA[PlxDmaTransferBlock-2550]
> [130515.366632] PLX DMA[PlxDmaTransferBlock-2557]
> [130515.366681] PLX DMA[PlxDmaTransferBlock-2562]
> [130515.366728] Plx8000_DMA: Start DMA transfer...
> [130515.366775] PLX DMA[PlxDmaTransferBlock-2565]
> [130515.366826] PLX DMA[PlxDmaTransferBlock-2569]
> [130515.366868] EEH: Frozen PE#1 on PHB#1 detected
> [130515.366872] EEH: PE location: Slot4, PHB location: N/A
> [130515.367997] EEH: This PCI device has failed 1 times in the last hour
> [130515.367997] EEH: Notify device drivers to shutdown
> [130515.368006] EEH: Collect temporary log
> [130515.368072] EEH: of node=0001:01:00:0
> [130515.368075] EEH: PCI device/vendor: 861910b5
> [130515.368077] EEH: PCI cmd/status register: 00100547
> [130515.368079] EEH: Bridge secondary status: 0000
> [130515.368081] EEH: Bridge control: 0002
> [130515.368081] EEH: PCI-E capabilities and status follow:
> [130515.368091] EEH: PCI-E 00: 0052a410 00008004 00000046 0000cc82
> [130515.368098] EEH: PCI-E 10: 00820000 00000000 00000000 00000000
> [130515.368099] EEH: PCI-E 20: 00000000
> [130515.368100] EEH: PCI-E AER capability register set follows:
> [130515.368109] EEH: PCI-E AER 00: 13810001 00000000 00000000 00062030
> [130515.368116] EEH: PCI-E AER 10: 00000000 00002000 000000ff 00000000
> [130515.368122] EEH: PCI-E AER 20: 00000000 00000000 00000000 00000000
> [130515.368125] EEH: PCI-E AER 30: 00000000 0e0e0e0e
> [130515.368127] EEH: of node=0001:01:00:1
> [130515.368294] Plx8000_DMA: ...Completed message
> [130515.368295] PLX DMA[Dispatch_IoControl-1053]
> [130515.368295] PLX DMA[Dispatch_IoControl-1061]
> [130515.368297] Plx8000_DMA:
> [130515.368298] Plx8000_DMA: Received PLX message ===>
> [130515.368298] Plx8000_DMA: PLX_IOCTL_NOTIFICATION_WAIT
> [130515.368299] Plx8000_DMA: Waiting for Interrupt wait object
> (c000003c0705f880) to wake-up
> [130515.369283] EEH: PCI device/vendor: 861910b5
> [130515.369336] EEH: PCI cmd/status register: 10100546
> [130515.369384] EEH: PCI-E capabilities and status follow:
> [130515.369440] EEH: PCI-E 00: 0002a410 00008fe4 0020204e 0000cc82
> [130515.369506] EEH: PCI-E 10: 00820000 00000000 00000000 00000000
> [130515.369564] EEH: PCI-E 20: 00000000
> [130515.393162] EEH: PCI-E AER capability register set follows:
> [130515.420590] EEH: PCI-E AER 00: 1f410001 00000000 00000000 00062030
> [130515.441475] EEH: PCI-E AER 10: 00000000 00002000 000001ff 00000000
> [130515.454700] EEH: PCI-E AER 20: 00000000 00000000 00000000 00000000
> [130515.469331] EEH: PCI-E AER 30: 00000000 00000000
> [130515.488728] EEH: of node=0001:02:01:0
> [130515.502865] EEH: PCI device/vendor: 861910b5
> [130515.516637] EEH: PCI cmd/status register: 00100546
> [130515.536602] EEH: PCI-E capabilities and status follow:
> [130515.536659] EEH: PCI-E 00: 0002a410 00008fc4 0000004e 0100cc82
> [130515.552999] EEH: PCI-E 10: 00420000 00000000 00000000 00000000
> [130515.569904] EEH: PCI-E 20: 00000000
> [130515.594771] EEH: PCI-E AER capability register set follows:
> [130515.623612] EEH: PCI-E AER 00: 14810001 00000000 00000000 00062030
> [130515.646365] EEH: PCI-E AER 10: 00000000 00002000 000001ff 00000000
> [130515.675020] EEH: PCI-E AER 20: 00000000 00000000 00000000 00000000
> [130515.722944] EEH: PCI-E AER 30: 00000000 00000000
> [130515.722994] PHB3 PHB#1 Diag-data (Version: 1)
> [130515.777673] brdgCtl: 00000002
> [130515.837348] RootSts: 0002004f 00400000 f0820008 00100147 00002800
> [130515.862070] RootErrSts: 00000000 00008000 00000000
> [130515.910110] PhbSts: 0000001c00000000 0000001c00000000
> [130515.927288] Lem: 0000000008000000 42498e327f502eae
> 0000000000000000
> [130515.954319] InAErr: 0000000100000000 0000000100000000
> 0e0c010100000800 0000001f9e400000
> [130515.987234] PE[ 1] A/B: 8200802401010000 8000001f9e400000
> [130516.000681] EEH: Enable I/O for affected devices
> [130516.008885] EEH: Notify device drivers to resume I/O
> [130516.028718] EEH: Enabled DMA for affected devices
> [130516.059665] EEH: Notify device driver to resume
> [130518.366890] Plx8000_DMA: Timeout waiting for interrupt
> [130518.367090] Plx8000_DMA: ...Completed message
>
>
>
>
> --
> View this message in context: http://linuxppc.10917.n7.nabble.com/EEH-error-in-doing-DMA-with-PEX-8619-tp121121p121154.html
> Sent from the linuxppc-dev mailing list archive at Nabble.com.
next prev parent reply other threads:[~2017-04-11 2:16 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-10 12:22 EEH error in doing DMA with PEX 8619 IanJiang
2017-04-10 22:24 ` Gavin Shan
2017-04-11 2:04 ` IanJiang
2017-04-11 2:15 ` Benjamin Herrenschmidt [this message]
2017-04-11 4:42 ` Gavin Shan
2017-04-11 9:26 ` IanJiang
2017-04-11 9:35 ` Benjamin Herrenschmidt
2017-04-12 1:39 ` IanJiang
2017-04-12 1:50 ` Benjamin Herrenschmidt
2017-04-12 8:42 ` IanJiang
2017-04-12 13:53 ` Benjamin Herrenschmidt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1491876910.4166.219.camel@au1.ibm.com \
--to=benh@au1.ibm.com \
--cc=ianjiang.cn@gmail.com \
--cc=linuxppc-dev@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.