From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: Santosh Shukla <sshukla@mvista.com>
Cc: dev@dpdk.org, Alex Williamson <alex.williamson@redhat.com>
Subject: Re: [dpdk-dev] [PATCH v6 08/11] eal: pci: introduce RTE_KDRV_VFIO_NOIOMMUi driver mode
Date: Mon, 25 Jan 2016 16:29:03 +0100 [thread overview]
Message-ID: <2661661.zCOWZL8G2B@xps13> (raw)
In-Reply-To: <CAAyOgsY7TCesjFr36_P=VEMNmOTLWKwu-+yyEOHTnOR7ckNOoA@mail.gmail.com>
2016-01-21 22:47, Santosh Shukla:
> On Thu, Jan 21, 2016 at 8:16 PM, Thomas Monjalon
> <thomas.monjalon@6wind.com> wrote:
> > 2016-01-21 17:34, Santosh Shukla:
> >> On Thu, Jan 21, 2016 at 4:58 PM, Thomas Monjalon
> >> <thomas.monjalon@6wind.com> wrote:
> >> > 2016-01-21 16:43, Santosh Shukla:
> >> >> David Marchand <david.marchand@6wind.com> wrote:
> >> >> > This is a mode (specific to vfio), not a new kernel driver.
> >> >> >
> >> >> Yes, Specific to VFIO and this is why noiommu appended after vfio i.e..
> >> >> __VFIO and __VFIO_NOIOMMU.
> >> >
> >> > Woaaa! Your logic is really disappointing :)
> >> > Specific to VFIO => append _NOIOMMU
> >> > If it's for VFIO, it should be called VFIO (that's my logic).
> >> >
> >> I am confused by reading your comment. vfio works for default iommu
> >> and now with noiommu. drv->kdrv need to know driver mode for vfio
> >> case. So that user can simply read drv->kdrv value in their driver and
> >> accordingly use vfio rd/wr api for example {pread/pwrite}. This is how
> >> rte_eal_pci_vfio_read/write_bar() api implemented.
> >
> > Sorry I don't understand. Why EAL read/write functions should be different
> > depending of the VFIO mode?
>
> no, EAL rd/wr functions are not different for vfio or vfio modes {same
> for iommu or noiommu}. Pl. see pci_eal_read/write_bar() api. Those
> apis currently used for VFIO, Irrespective of vfio mode. If required,
> we can add UIO bar_rd/wr api too. pci_eal_rd/wr_bar() are abstract
> apis. Underneath implementation can be vfio or uio type.
It means you agree the suffix _NOIOMMU is not needed?
It seems we go nowhere in this discussion. You said
"drv->kdrv need to know driver mode for vfio"
and after
"Those apis currently used for VFIO, Irrespective of vfio mode"
That's why I assume your first assumption was wrong.
> >> > Why do we care to parse noiommu only?
> >>
> >> Because pmd drivers example virtio can work with vfio only in
> >> _noiommu_ mode. In particular, virtio spec 0.95 / legacy virtio.
> >
> > Please could you explain the limitation (except IOMMU availability)?
>
> Ok.
>
> I believe - we both agree that noiommu mode is a need for pmd drivers
> like virtio, right? if so then other reason is implementation driven
No, noiommu is a need for some environment having no IOMMU.
But in my understanding, virtio could run with a nested IOMMU.
> i.e..
>
> Pl. look at virtio_pci.c in this patch.. VIRTIO_RD/WR/_1/2/4()
> implementation. They are in-use and applicable to virtio spec 0.95,
> so far support uio/ioport-way rd/wr. Now to support vfio-way rd/wr -
> need to check drv->kdrv value, that value should be of vfio_noiommu
> types __not__ generic _vfio types.
I still don't understand why it would not work with VFIO w/IOMMU.
> >> So at
> >> the initialization (example .. virtio-net) of such pmd driver, pmd
> >> driver should know that vfio-with-noiommu mode enabled or not? for
> >> that pmd driver simply checks drv->kdrv value.
> >
> > If a check is needed, I would prefer using your function
> > pci_vfio_is_noiommu() and remove driver modes from struct rte_kernel_driver.
>
> I don't think calling pci_vfio_no_iommu() inside
> virtio_reg_rd/wr_1/2/3() would be a good idea.
Why? The value may be cached in the priv properties.
next prev parent reply other threads:[~2016-01-25 15:30 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-19 18:57 Santosh Shukla
2016-01-21 10:32 ` David Marchand
2016-01-21 11:13 ` Santosh Shukla
2016-01-21 11:28 ` Thomas Monjalon
2016-01-21 12:04 ` Santosh Shukla
2016-01-21 14:46 ` Thomas Monjalon
2016-01-21 17:17 ` Santosh Shukla
2016-01-25 15:29 ` Thomas Monjalon [this message]
2016-01-26 10:26 ` Santosh Shukla
2016-01-26 13:00 ` Thomas Monjalon
2016-01-26 14:05 ` Santosh Shukla
2016-01-26 14:28 ` Thomas Monjalon
2016-01-26 16:21 ` Santosh Shukla
2016-01-27 10:41 ` Santosh Shukla
2016-01-27 15:32 ` Santosh Shukla
2016-01-27 15:39 ` Thomas Monjalon
2016-01-27 15:56 ` Santosh Shukla
2016-01-27 17:18 ` Santosh Shukla
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=2661661.zCOWZL8G2B@xps13 \
--to=thomas.monjalon@6wind.com \
--cc=alex.williamson@redhat.com \
--cc=dev@dpdk.org \
--cc=sshukla@mvista.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).