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: [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 [PATCH v6 08/11] eal: pci: introduce RTE_KDRV_VFIO_NOIOMMUi driver mode 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 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.