From: Alex Williamson <alex.williamson@redhat.com>
To: Anup Patel <anup.patel@broadcom.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
Linux ARM Kernel <linux-arm-kernel@lists.infradead.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jonathan Corbet <corbet@lwn.net>,
Mark Rutland <mark.rutland@arm.com>,
Device Tree <devicetree@vger.kernel.org>,
Scott Branden <sbranden@broadcom.com>,
linux-doc@vger.kernel.org, Ray Jui <rjui@broadcom.com>,
Russell King - ARM Linux <linux@armlinux.org.uk>,
Linux Kernel <linux-kernel@vger.kernel.org>,
Rob Herring <robh+dt@kernel.org>,
BCM Kernel Feedback <bcm-kernel-feedback-list@broadcom.com>,
Ankit Jindal <thatsjindal@gmail.com>,
Jan Viktorin <viktorin@rehivetech.com>
Subject: Re: [PATCH RESEND v2 0/8] Cache-coherent DMA access using UIO
Date: Thu, 11 Aug 2016 06:29:57 -0600 [thread overview]
Message-ID: <20160811062957.62868fdc@t450s.home> (raw)
In-Reply-To: <CAALAos-jJqLFoUjNMGnRKiD4EuvwOoQ_4V2L6coe+s0+M8We5Q@mail.gmail.com>
On Thu, 11 Aug 2016 10:06:19 +0530
Anup Patel <anup.patel@broadcom.com> wrote:
> Hi Alex,
>
> On Thu, Aug 11, 2016 at 9:46 AM, Alex Williamson
> <alex.williamson@redhat.com> wrote:
> > On Thu, 11 Aug 2016 09:30:19 +0530
> > Anup Patel <anup.patel@broadcom.com> wrote:
> >
> >> Hi Arnd,
> >>
> >> On Wed, Aug 10, 2016 at 9:25 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> >> > On Monday, August 8, 2016 11:22:29 AM CEST Anup Patel wrote:
> >> >> The goal of this patchset is to improve UIO framework and UIO dmem
> >> >> driver to allow cache-coherent DMA accesses from user-space.
> >> >>
> >> >> This patchset is based on two previous patchsets:
> >> >> 1) [PATCH v5 0/6] UIO driver for APM X-Gene QMTM
> >> >> (Refer, http://www.spinics.net/lists/devicetree/msg58244.html)
> >> >> 2) [PATCH 0/4] Fix and extend uio_dmem_genirq
> >> >> (Refer, https://lkml.org/lkml/2016/5/17/141)
> >> >>
> >> >> We have adopted only patch0-3 of patchset1 which was abandoned
> >> >> long time back. We have taken care of last few unaddressed comments
> >> >> on these patches.
> >> >>
> >> >> The patchset2 is quite recent has been adopted entirely. We have
> >> >> taken care review comments on these patches too.
> >> >>
> >> >> This patchset is based on v4.7-rc7 tag and it is available in uio-v2
> >> >> branch of https://github.com/Broadcom/arm64-linux.git
> >> >
> >> >
> >> > UIO devices are generally meant to be things that do not
> >> > perform DMA and that don't screw up the rest of the system
> >> > when misused. A device that is able to access any physical
> >> > memory doesn't belong into this category. The way that
> >> > uio_dmem_genirq.c gets around this is by requiring the device
> >> > to be created by some code that sets up a separate IOMMU
> >> > domain first, but the DT probing here doesn't do that.
> >> > Note that IOMMU domains typically use 32-bit addressing,
> >> > so the entire "dma_mask from property" dance isn't even
> >> > required.
> >>
> >> IMHO, UIO devices are meant for things that are not behind
> >> any IOMMU hardware.
> >>
> >> Yes, any mis-programming in user space using UIO can
> >> potentially screw-up the rest of the system but this is
> >> generally a known/assumed fact for people who are using UIO.
> >>
> >> >
> >> > Also, this seems to duplicate a lot of the work that
> >> > went into "vfio". Can you explain why we need another way
> >> > of doing the same thing here?
> >>
> >> We can only use "vfio" for devices that are behind some
> >> kind of IOMMU (Right??). For devices not having IOMMU
> >> support will have to use UIO for user space access.
> >>
> >> Particularly, there are lot of FPGA-based solutions and legacy
> >> hardware which do not have IOMMU support (devices on
> >> FPGA or specific devices).
> >>
> >> In our use case, we have some FPGA-based device which
> >> does not have IOMMU support and we are accessing this
> >> FPGA-based device from user-space.
> >>
> >> This patchset only tries to extend "uio" and "uio_dmem_genirq".
> >> There is no intention of duplicating what has been already
> >> done for "vfio".
> >>
> >> I do agree that "vfio" should eventually become defacto method
> >> of accessing devices in user space but that requires devices to
> >> always have IOMMU support.
> >
> > A vfio no-iommu mode exists since v4.5:
> >
> > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=03a76b60f8ba27974e2d252bc555d2c103420e15
>
> It's good that we have "No-IOMMU" mode in VFIO now but I see
> that it's for vfio_pci only. Has this been extended for vfio_platform?
Yes, it went in during the most recent merge window for v4.8:
9698cbf vfio: platform: support No-IOMMU mode
> We would certainly like to move to VFIO if "No-IOMMU" mode
> is available for vfio_platform devices because in-our use case
> devices are memory-mapped FPGA devices.
>
> Meanwhile, I would like to have this patchset for benefit of
> people who already using UIO.
>
> Regards,
> Anup
prev parent reply other threads:[~2016-08-11 12:29 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-08 5:52 [PATCH RESEND v2 0/8] Cache-coherent DMA access using UIO Anup Patel
2016-08-08 5:52 ` [PATCH RESEND v2 1/8] uio: fix dmem_region_start computation Anup Patel
2016-08-08 5:52 ` [PATCH RESEND v2 2/8] uio: code style cleanup Anup Patel
2016-08-08 5:52 ` [PATCH RESEND v2 3/8] uio: Add new UIO_MEM_PHYS_CACHE type for mem regions Anup Patel
2016-08-08 5:52 ` [PATCH RESEND v2 4/8] uio: Add new UIO_MEM_DEVICE " Anup Patel
2016-08-08 5:52 ` [PATCH RESEND v2 5/8] Documentation: Update documentation for UIO_MEM_PHYS_CACHE and UIO_MEM_DEVICE Anup Patel
2016-08-08 5:52 ` [PATCH RESEND v2 6/8] uio: UIO_IRQ_NONE is a valid option for uioinfo->irq Anup Patel
2016-08-08 5:52 ` [PATCH RESEND v2 7/8] uio: bind uio_dmem_genirq via OF Anup Patel
2016-08-08 5:52 ` [PATCH RESEND v2 8/8] uio: Use new memtypes in uio_dmem_genirq Anup Patel
2016-08-10 15:55 ` [PATCH RESEND v2 0/8] Cache-coherent DMA access using UIO Arnd Bergmann
2016-08-11 4:00 ` Anup Patel
2016-08-11 4:16 ` Alex Williamson
2016-08-11 4:36 ` Anup Patel
2016-08-11 12:29 ` Alex Williamson [this message]
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=20160811062957.62868fdc@t450s.home \
--to=alex.williamson@redhat.com \
--cc=anup.patel@broadcom.com \
--cc=arnd@arndb.de \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=mark.rutland@arm.com \
--cc=rjui@broadcom.com \
--cc=robh+dt@kernel.org \
--cc=sbranden@broadcom.com \
--cc=thatsjindal@gmail.com \
--cc=viktorin@rehivetech.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).