linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Robin Holt <holt@sgi.com>
Cc: Cliff Wickman <cpw@sgi.com>,
	linux-mm@kvack.org, aarcange@redhat.com, mgorman@suse.de
Subject: Re: [PATCH] mm: export mmu notifier invalidates
Date: Thu, 14 Feb 2013 13:08:56 -0800	[thread overview]
Message-ID: <20130214130856.13d1b5bb.akpm@linux-foundation.org> (raw)
In-Reply-To: <20130213210305.GV3438@sgi.com>

On Wed, 13 Feb 2013 15:03:05 -0600
Robin Holt <holt@sgi.com> wrote:

> 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@sgi.com> 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.

What exactly is "SGI's MPI" from the kernel POV?  A separate
out-of-tree driver?

If the objective is to "directly map portions of the other tasks
address space" then how does this slicing-up of physical address
regions come into play?  If one wishes to map another mm's memory,
wouldn't you just go ahead and map it, regardless of physical address?

To what extent is all this specific to SGI hardware characteristics?

> 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?

I'm obviously on first base here, but overall approach:

- Is the top-level feature useful to general Linux users?  Perhaps
  after suitable generalisations (aka dumbing down :))

- Even if the answer to that is "no", should we maintain the feature
  in-tree rather than out-of-tree?

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

  reply	other threads:[~2013-02-14 21:08 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-12 21:35 [PATCH] mm: export mmu notifier invalidates Cliff Wickman
2013-02-12 21:57 ` Andrew Morton
2013-02-13 15:03   ` Robin Holt
2013-02-13 20:11     ` Andrew Morton
2013-02-13 21:03       ` Robin Holt
2013-02-14 21:08         ` Andrew Morton [this message]
2013-02-14 21:35           ` Robin Holt
2013-02-14 21:52             ` Andrew Morton
2013-02-14 22:25               ` Robin Holt
  -- strict thread matches above, loose matches on Subject: below --
2013-01-04 15:41 Cliff Wickman
2013-01-04 21:35 ` Christoph Hellwig
2013-01-04 22:09   ` Cliff Wickman
2013-01-07 14:14 ` Mel Gorman
2013-01-07 15:35   ` Andrea Arcangeli

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=20130214130856.13d1b5bb.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=aarcange@redhat.com \
    --cc=cpw@sgi.com \
    --cc=holt@sgi.com \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).