From: "Takeshi T Yoshimura" <TYOS@jp.ibm.com>
To: David Marchand <david.marchand@redhat.com>
Cc: dev <dev@dpdk.org>, David Christensen <drc@linux.vnet.ibm.com>
Subject: Re: [dpdk-dev] [PATCH] eal: forcing IOVA as PA in ppc
Date: Thu, 1 Aug 2019 04:10:25 +0000 [thread overview]
Message-ID: <OF4FAB9588.00060719-ON00258449.001697CC-00258449.0016ED64@notes.na.collabserv.com> (raw)
In-Reply-To: <CAJFAV8xp7T+Y_9JM29VtezRXM=jgbtigkVhvy=hewy=MCLOuRA@mail.gmail.com>
-----David Marchand <david.marchand@redhat.com> wrote: -----
>To: Takeshi T Yoshimura <TYOS@jp.ibm.com>
>From: David Marchand <david.marchand@redhat.com>
>Date: 08/01/2019 04:45AM
>Cc: dev <dev@dpdk.org>, David Christensen <drc@linux.vnet.ibm.com>
>Subject: [EXTERNAL] Re: [dpdk-dev] [PATCH] eal: forcing IOVA as PA in
>ppc
>
>On Wed, Jul 31, 2019 at 12:44 PM Takeshi T Yoshimura
><TYOS@jp.ibm.com> wrote:
>>
>> -----David Marchand <david.marchand@redhat.com> wrote: -----
>>
>> >To: Takeshi Yoshimura <tyos@jp.ibm.com>
>> >From: David Marchand <david.marchand@redhat.com>
>> >Date: 07/31/2019 06:29PM
>> >Cc: dev <dev@dpdk.org>
>> >Subject: [EXTERNAL] Re: [dpdk-dev] [PATCH] eal: forcing IOVA as PA
>in
>> >ppc
>> >
>> >On Wed, Jul 31, 2019 at 5:36 AM Takeshi Yoshimura
><tyos@jp.ibm.com>
>> >wrote:
>> >>
>> >> Commit b76fafb174d2 ("eal: fix IOVA mode selection as VA for PCI
>> >> drivers") breaks ppc apps with no IOVA configs (or RTE_IOVA_DC)
>> >> because of the inconsistency of user's request and the result of
>> >> device capability for IOVA mode. I updated the code to force
>IOVA
>> >as
>> >> PA in ppc as before because current ppc driver does not support
>VA
>> >> mode.
>> >
>> >What is the "ppc driver" you are referring to?
>> >Do you mean the vfio implementation for ppc?
>> >
>> >>
>> >> Theoretically, ppc can support VA mode, but I suspect that ppc
>with
>> >> VA mode may have performance issues to create a big DMA window
>> >> (VA often uses higher addresses than PA). So, I didn't change
>the
>> >> code to check device capability in ppc.
>> >
>> >Sorry, I am confused.
>> >Is VA mode not working at all? or is it a performance issue?
>> >
>> >
>> >--
>> >David Marchand
>> >
>> >
>>
>> Ah, I overlooked your first question. The "ppc driver" is in
>> drivers/bus/pci/linux/pci.c. In pci.c,
>pci_one_device_iommu_support_va()
>> always returns false in ppc. so, the driver does not allow VA mode
>in ppc.
>>
>> This return value is passed to rte_pci_probe_one_driver()
>> in drivers/bus/pci/pci_common.c. And the error log appeared like:
>>
>> EAL: PCI device 0000:01:00.0 on NUMA socket 0
>> EAL: probe driver: 144d:a822 spdk_nvme
>> EAL: Expecting 'PA' IOVA mode but current mode is 'VA', not
>initializing
>
>Can you confirm on which kernel driver this device was bound ?
>I'd like to be sure this is the same issue than David.
>
>
>--
>David Marchand
>
>
Here's the full debug log I got. I ran upstream SPDK on NVMe on IBM Power9 AC922.
The operating system is Ubuntu 18.04 and Linux 4.17.
Starting SPDK v19.07-pre / DPDK 19.08.0-rc3 initialization...
[ DPDK EAL parameters: identify --no-shconf -c 0x1 -n 1 -m 0 --log-level=lib.eal:6 --log-level=lib.cryptodev:5 --log-level=user1:6 --log-level=lib.eal:8 --base-virtaddr=0x200000000000 --match-allocations --file-prefix=spdk_pid139059 ]
EAL: Probing VFIO support...
EAL: IOMMU type 1 (Type 1) is not supported
EAL: IOMMU type 7 (sPAPR) is supported
EAL: IOMMU type 8 (No-IOMMU) is not supported
EAL: VFIO support initialized
EAL: Ask a virtual area of 0x30000 bytes
EAL: Virtual area found at 0x200000000000 (size = 0x30000)
EAL: Setting up physically contiguous memory...
EAL: Setting maximum number of open files to 1048576
EAL: Detected memory type: socket_id:0 hugepage_sz:2097152
EAL: Detected memory type: socket_id:8 hugepage_sz:2097152
EAL: Creating 4 segment lists: n_segs:8192 socket_id:0 hugepage_sz:2097152
EAL: Ask a virtual area of 0x70000 bytes
EAL: Virtual area found at 0x200000030000 (size = 0x70000)
EAL: Memseg list allocated: 0x800kB at socket 0
EAL: Ask a virtual area of 0x400000000 bytes
EAL: Virtual area found at 0x200000200000 (size = 0x400000000)
EAL: Ask a virtual area of 0x70000 bytes
EAL: Virtual area found at 0x200400200000 (size = 0x70000)
EAL: Memseg list allocated: 0x800kB at socket 0
EAL: Ask a virtual area of 0x400000000 bytes
EAL: Virtual area found at 0x200400400000 (size = 0x400000000)
EAL: Ask a virtual area of 0x70000 bytes
EAL: Virtual area found at 0x200800400000 (size = 0x70000)
EAL: Memseg list allocated: 0x800kB at socket 0
EAL: Ask a virtual area of 0x400000000 bytes
EAL: Virtual area found at 0x200800600000 (size = 0x400000000)
EAL: Ask a virtual area of 0x70000 bytes
EAL: Virtual area found at 0x200c00600000 (size = 0x70000)
EAL: Memseg list allocated: 0x800kB at socket 0
EAL: Ask a virtual area of 0x400000000 bytes
EAL: Virtual area found at 0x200c00800000 (size = 0x400000000)
EAL: Creating 4 segment lists: n_segs:8192 socket_id:8 hugepage_sz:2097152
EAL: Ask a virtual area of 0x70000 bytes
EAL: Virtual area found at 0x201000800000 (size = 0x70000)
EAL: Memseg list allocated: 0x800kB at socket 8
EAL: Ask a virtual area of 0x400000000 bytes
EAL: Virtual area found at 0x201000a00000 (size = 0x400000000)
EAL: Ask a virtual area of 0x70000 bytes
EAL: Virtual area found at 0x201400a00000 (size = 0x70000)
EAL: Memseg list allocated: 0x800kB at socket 8
EAL: Ask a virtual area of 0x400000000 bytes
EAL: Virtual area found at 0x201400c00000 (size = 0x400000000)
EAL: Ask a virtual area of 0x70000 bytes
EAL: Virtual area found at 0x201800c00000 (size = 0x70000)
EAL: Memseg list allocated: 0x800kB at socket 8
EAL: Ask a virtual area of 0x400000000 bytes
EAL: Virtual area found at 0x201800e00000 (size = 0x400000000)
EAL: Ask a virtual area of 0x70000 bytes
EAL: Virtual area found at 0x201c00e00000 (size = 0x70000)
EAL: Memseg list allocated: 0x800kB at socket 8
EAL: Ask a virtual area of 0x400000000 bytes
EAL: Virtual area found at 0x201c01000000 (size = 0x400000000)
EAL: Hugepages will be freed exactly as allocated.
EAL: No shared files mode enabled, IPC is disabled
EAL: TSC frequency is ~510000 KHz
EAL: Master lcore 0 is ready (tid=77e7345a44a0;cpuset=[0])
EAL: Trying to obtain current memory policy.
EAL: Setting policy MPOL_PREFERRED for socket 0
EAL: Restoring previous memory policy: 0
EAL: request: mp_malloc_sync
EAL: No shared files mode enabled, IPC is disabled
EAL: Heap on socket 0 was expanded by 2MB
EAL: No shared files mode enabled, IPC is disabled
EAL: Mem event callback 'spdk:(nil)' registered
EAL: PCI device 0000:01:00.0 on NUMA socket 0
EAL: probe driver: 144d:a822 spdk_nvme
EAL: Expecting 'PA' IOVA mode but current mode is 'VA', not initializing
EAL: Requested device 0000:01:00.0 cannot be used
EAL: PCI device 0003:01:00.0 on NUMA socket 0
EAL: probe driver: 144d:a822 spdk_nvme
EAL: Expecting 'PA' IOVA mode but current mode is 'VA', not initializing
EAL: Requested device 0003:01:00.0 cannot be used
EAL: PCI device 0030:01:00.0 on NUMA socket 8
EAL: probe driver: 144d:a822 spdk_nvme
EAL: Expecting 'PA' IOVA mode but current mode is 'VA', not initializing
EAL: Requested device 0030:01:00.0 cannot be used
next prev parent reply other threads:[~2019-08-01 4:10 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-31 3:35 Takeshi Yoshimura
2019-07-31 9:10 ` Burakov, Anatoly
2019-07-31 9:29 ` David Marchand
2019-07-31 10:34 ` Takeshi T Yoshimura
2019-07-31 10:44 ` Takeshi T Yoshimura
2019-07-31 10:58 ` David Marchand
2019-07-31 19:23 ` David Christensen
2019-07-31 19:32 ` David Marchand
2019-07-31 21:20 ` David Christensen
2019-08-01 5:04 ` David Marchand
2019-07-31 19:44 ` David Marchand
2019-08-01 4:10 ` Takeshi T Yoshimura [this message]
2019-08-01 5:01 ` David Marchand
2019-08-01 5:25 ` Takeshi T Yoshimura
2019-08-01 7:15 ` David Marchand
2019-08-01 8:46 ` Takeshi T Yoshimura
2019-08-01 9:46 ` David Marchand
2019-08-02 8:09 ` Takeshi T Yoshimura
2019-08-02 8:22 ` David Marchand
2019-08-01 4:12 ` Takeshi T Yoshimura
2019-08-01 13:01 ` David Marchand
2019-08-02 8:50 ` Burakov, Anatoly
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=OF4FAB9588.00060719-ON00258449.001697CC-00258449.0016ED64@notes.na.collabserv.com \
--to=tyos@jp.ibm.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=drc@linux.vnet.ibm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).