[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: gnumach memory attributes



On Sun, Nov 20, 2016 at 01:09:08PM +0100, Luca dariz wrote:
> Maybe the translation should be done by the pager?
> For example, the default pager would deny such requests, while there
> could be an "io pager" which handles only contiguous memory objects and
> perform the translation.

We don't want pagers, privileged or not, to mess with page tables. These
are the responsibility of the kernel.

> The main reason of this distinction is that sometimes on rump drivers
> the buffer used for I/O is not allocated from contiguous memory.

Which is fine. You're not dealing with just contiguous memory here, you
want to handle any device memory.

> Ok, so memory mapped I/O would work for user-space drivers.
> I still have to figure out how this "io pager" should be implemented.
> Should it be driver-specific? Or should it ask the specific driver to
> fill a specific memory page on demand?

It should probably driver-specific, but unless you can cite one example
where the memory object pattern doesn't fit, I don't think we need a
new RPC. What drivers need to do is request specific physical memory
to insert into memory objects, with special properties (uncacheable,
wired, etc...), that can then be mapped by users.

-- 
Richard Braun


Reply to: