Re: [PATCH] mm: export mmu notifier invalidates

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

 



On Wed, Feb 13, 2013 at 12:11:49PM -0800, Andrew Morton wrote:
> On Wed, 13 Feb 2013 09:03:40 -0600
> Robin Holt <holt@xxxxxxx> wrote:
> 
> > > But in a better world, the core kernel would support your machines
> > > adequately and you wouldn't need to maintain that out-of-tree MM code. 
> > > What are the prospects of this?
> > 
> > We can put it on our todo list.  Getting a user of this infrastructure
> > will require changes by Dimitri for the GRU driver (drivers/misc/sgi-gru).
> > He is currently focused on getting the design of some upcoming hardware
> > finalized and design changes tested in our simulation environment so he
> > will be consumed for the next several months.
> > 
> > If you would like, I can clean up the driver in my spare time and submit
> > it for review.  Would you consider allowing its inclusion without the
> > GRU driver as a user?
> 
> >From Cliff's description it sounded like that driver is
> duplicating/augmenting core MM functions.  I was more wondering
> whether core MM could be enhanced so that driver becomes obsolete?

That would be fine with me.  The requirements on the driver are fairly
small and well known.  We separate virtual addresses above processor
addressable space into two "regions".  Memory from 1UL << 53 to 1UL <<
63 is considered one set of virtual addresses.  Memory above 1UL << 63
is considered "shared among a process group".

I will only mention in passing that we also have a driver which exposes
mega-size pages which the kernel has not been informed of by the EFI
memory map and xvma is used to allow the GRU to fault pages of a supported
page size (eg: 64KB, 256KB 512KB, 2MB, 8MB, ... 1TB).

The shared address has a couple unusual features.  One task makes a ioctl
(happens to come via XPMEM) which creates a shared_xmm.  This is roughly
equivalent to an mm for a pthread app.  Once it is created, a shared_xmm
id is returned.  Other tasks then join that shared xmm.

At any time, any process can created shared mmap entries (again, currently
via XPMEM).  Again, this is like a pthread in that this new mapping is
now referencable from all tasks at the same virtual address.

There are similar functions for removing the shared mapping.

The non-shared case is equivalent to a regular mm/vma, but beyond
processor addressable space.

SGI's MPI utilizes these address spaces for directly mapping portions
of the other tasks address space.  This can include processes in other
portions of the machine beyond the processor's ability to physically
address.

The above, of course, is an oversimplification, but should give you and
idea of the big picture design goals.

Does any of this make sense?  Do you see areas where you think we should
extend regular mm functionality to include these functions?

How would you like me to proceed?

Thanks,
Robin

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]