DPDK patches and discussions
 help / color / mirror / Atom feed
From: Andre Richter <andre.o.richter@gmail.com>
To: "Burakov, Anatoly" <anatoly.burakov@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] VFIO in setup.sh
Date: Tue, 31 Mar 2015 14:41:55 +0200	[thread overview]
Message-ID: <CAKqeN2_BwrH8YE0fzzuynN9DpdCxMBBG0zC3iAe8V7b6Q6a75Q@mail.gmail.com> (raw)
In-Reply-To: <C6ECDF3AB251BE4894318F4E4512369780C7B5BE@IRSMSX109.ger.corp.intel.com>

2015-03-31 11:35 GMT+02:00 Burakov, Anatoly <anatoly.burakov@intel.com>:
>
> > I think the whole process of VFIO binding maybe needs at least a second thought regarding corner cases and security.
> >
> > 1) in the setup process, there currently is no mechanism that checks if the Device to be used has other devices in the
> > same iommu group that need to be bound to VFIO too. Otherwise using VFIO will fail.
> > I think currently, it only works if the network device is the only one in its iommu group.
> >
> > 2) Right now everything inside /dev/vfio/ is granted to the all users, right? Maybe this leads to (security) issues if VFIO
> > is in active use by other non-dpdk processes for other PCIe devices.
>
> I believe that's how VFIO is meant to be used. At least according to VFIO documentation, located here: https://www.kernel.org/doc/Documentation/vfio.txt
>
> Regarding 1), this can only be done by unbinding the device from the host driver and binding it to vfio-pci, which can't be done by the user. If the device is not bound to vfio-pci, we have no way of knowing if it belongs to this or that IOMMU group.

iommu groups already exist before vfio-pci is loaded.
The whole setup process as described in the VFIO documentation, where
a PCIe device shares an iommu group with other devices, can therefore
be automated. Some time ago I wrote a ruby script that does exactly
that (https://github.com/andre-richter/rVFIO/blob/master/example/pci-bind.rb).
Porting it to bash should be no problem.

However, the question is if dpdk needs to cover this (corner?) case.
I would assume that the bulk of dpdk use-cases deals with scenarios
where the targeted NIC is the only one in its iommu group, because it
is a high-speed NIC that is connected to a CPU-integrated PCIe-Port.
A NIC sharing an iommu group with other devices would be most likely
if it is behind a bridge, aka a chipset-integrated NIC or a NIC that
resides in a PCIe-Slot that connects to the chipset. This is more
common in desktop machines than in server grade machines.

Cheers,
Andre

>
> Regarding 2), as noted above, the administrator should set up VFIO devices. While I agree that the way setup.sh sets up VFIO security permissions is not ideal, it's really there to cover the most common use case. An administrator can always set up VFIO on his own, granting permissions as needed.
>
> Thanks,
> Anatoly

  reply	other threads:[~2015-03-31 12:41 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-30 20:35 Stephen Hemminger
2015-03-30 20:37 ` Stephen Hemminger
2015-03-31  9:05   ` Burakov, Anatoly
2015-03-31  9:26     ` Andre Richter
2015-03-31  9:35       ` Burakov, Anatoly
2015-03-31 12:41         ` Andre Richter [this message]
2015-03-31 12:59           ` 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=CAKqeN2_BwrH8YE0fzzuynN9DpdCxMBBG0zC3iAe8V7b6Q6a75Q@mail.gmail.com \
    --to=andre.o.richter@gmail.com \
    --cc=anatoly.burakov@intel.com \
    --cc=dev@dpdk.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 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).