Sharing I/O Memory

Adam Lackorzynski adam at
Wed Feb 1 14:25:20 CET 2012


On Tue Jan 31, 2012 at 21:55:30 -0000, Wesley Miaw wrote:
> Everything seems to be working now that I've defined the RAM as a region
> in the Io server's configuration file. After requesting access via
> l4io_request_iomem_region() in both my tasks they can read/write the
> memory. Thanks.


> > Generally multiple tasks can have access to the same memory, be it RAM
> > or device memory does not matter. Doing map/unmap operations for each
> > request also sounds expensive to do. I think io is the one to look into,
> > moe has no business with non-ram memory.
> This confuses me. I thought part of sigma's job was to hand out memory as
> needed, and only to do so to one task. I remember seeing something in the
> sigma library code that checked who the owner of the memory was before
> returning it. Otherwise what prevents one task from clobbering another
> task? Or does that only apply to memory that is indirectly
> requested/allocated like via new/malloc?

sigma0's policy on handing out memory is a simple FCFS, so sharing is
typically implemented using a third component (e.g. moe). This
third component will allow for memory sharing given some configuration
and then it is up to the tasks to get that sharing right.
In sigma0 there's no way to remove a connection between a client and a
page once it is made, i.e. this is up to other components.

Adam                 adam at

More information about the l4-hackers mailing list