From: "Hans J. Koch" <hjk@linutronix.de>
To: Leon Woestenberg <leon.woestenberg@gmail.com>
Cc: Tom Lyon <pugs@cisco.com>,
mst@redhat.com, hjk@linutronix.de, gregkh@suse.de,
chrisw@sous-sol.org, joro@8bytes.org, avi@redhat.com,
linux-kernel@vger.kernel.org
Subject: Re: UIO DMA to userspace question
Date: Mon, 9 Aug 2010 13:11:56 +0200 [thread overview]
Message-ID: <20100809111155.GB2569@local> (raw)
In-Reply-To: <AANLkTimWdaBrJz-dQ3MHWwG7iZ5m1opSmLFKva880csi@mail.gmail.com>
On Sat, Aug 07, 2010 at 08:38:30PM +0200, Leon Woestenberg wrote:
> Hello all,
>
> can I use the UIO framework for the following?
>
> The userspace portion of the driver allocates memory in user-space
> using malloc() - usually resulting in a scatter pages in physical
> memory.
> The UIO kernel portion of the driver maps those using pci_map_sg().
>
> Is this possible, or does the UIO framework assume memory for DMA is
> allocated in kernel space?
You would have to write your own mmap() function and and set the pointer
to it in struct uio_info->mmap. Have a look at uio_mmap() in
drivers/uio/uio.c to see when your function will be called, and what is
checked before that call.
If that works, we might invent a new UIO_MEM_* type, and move your function
over to the UIO core, if this is interesting for other people.
Anyway, sooner or later we should have a generic way of handling DMA in
UIO. The topic comes up every few month, but nobody came up with an
acceptable solution yet. It should probably be a separate uio_dma device,
e.g. for a /dev/uio0 you'll get a /dev/uio_dma0 if the driver sets a flag
indicating it needs DMA support. This new uio_dma device should then have
an API (to be defined, without ioctl if possible) that provides the
necessary functionality. But that's just a thought ATM. Ideas/patches are
welcome.
Thanks,
Hans
next prev parent reply other threads:[~2010-08-09 11:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-07 18:38 UIO DMA to userspace question Leon Woestenberg
2010-08-09 11:11 ` Hans J. Koch [this message]
2010-08-10 0:12 ` Hans J. Koch
2010-08-11 18:42 ` Leon Woestenberg
2010-08-12 0:14 ` Hans J. Koch
2010-08-15 11:33 ` Avi Kivity
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=20100809111155.GB2569@local \
--to=hjk@linutronix.de \
--cc=avi@redhat.com \
--cc=chrisw@sous-sol.org \
--cc=gregkh@suse.de \
--cc=joro@8bytes.org \
--cc=leon.woestenberg@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=pugs@cisco.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.