UIO Devices and user processes

Kenneth Adam Miller kennethadammiller at gmail.com
Tue Oct 6 10:13:16 EDT 2015


On Tue, Oct 6, 2015 at 9:58 AM, Yann Droneaud <ydroneaud at opteya.com> wrote:

> Le mardi 06 octobre 2015 à 09:26 -0400, Kenneth Adam Miller a écrit :
>
> > Any body know about the issue of assigning a process a region of
> > physical memory to use for it's malloc and free? I'd like to just
> > have the process call through to a UIO driver with an ioctl, and then
> > once that's done it gets all it's memory from a specific region.
> >
>
> You mean CONFIG_UIO_DMEM_GENIRQ (drivers/uio/uio_dmem_genirq.c)
>
> See:
>
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0a0c3b5a24bd802b1ebbf99e0b01296647b8199b
>
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b533a83008c3fb4983c1213276790cacd39b518f
> https://www.kernel.org/doc/htmldocs/uio-howto/using-uio_dmem_genirq.html
>
>
>
Well I don't think that does exactly what I would like, although I've got
that on my machine and I've been compiling it and learning from it. Here's
my understanding of the process of the way mmap works:

Mmap is called from userland and it maps a region of memory of a certain
size according to the parameters given to it, and the return value it has
is the address at which the block requested starts, if it was successful
(which I'm not addressing the unsuccessful case here for brevity). The
userland process now has only a pointer to a region of space, as if they
had allocated something with new or malloc. Further calls to new or malloc
don't mean that the pointers returned will preside within the new mmap'd
chunk, they are just separate regions also mapped into the process.

What I would like is a region of memory that, once mapped to a process,
further calls to new/malloc return pointers that preside within this chunk.
Calls to new/malloc and delete/free only edit the process's internal table,
which is fine.

Is that wrong? Or is it that mmap already does the latter?


> PS: please don't top post reply as it makes it difficult to parse the
> discussion.
>
>
> > On Tue, Oct 6, 2015 at 1:21 AM, Greg KH <greg at kroah.com> wrote:
> > > On Mon, Oct 05, 2015 at 07:07:51PM -0400, Kenneth Adam Miller
> > > wrote:
> > > > So, I'm reading about UIO devices and user processes for mapping
> > > memory into
> > > > userland, and basically I have just a couple questions:
> > > >
> > > > What happens when a userland processes has allocated some
> > > resource from a
> > > > driver that is facilitating UIO, but then subsequently crashes?
> > > I'd like to
> > > > know that the driver can (or how you would enable such) recover
> > > the resources
> > > > so that the next user process can acquire them, instead of them
> > > being lost.
> > >
> > > Have you tried this?  All of your resources should be freed
> > > properly, if
> > > not, let the uio maintainers know.
> > >
> > > thanks,
> > >
>
> Regards.
>
> --
> Yann Droneaud
> OPTEYA
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20151006/7ea13123/attachment-0001.html 


More information about the Kernelnewbies mailing list