From: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
To: "Jeff Squyres (jsquyres)"
<jsquyres-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
Cc: Haggai Eran <haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Shachar Raindel <raindel-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: Re: Status of "ummunot" branch?
Date: Fri, 7 Jun 2013 17:57:31 -0600 [thread overview]
Message-ID: <20130607235731.GA25942@obsidianresearch.com> (raw)
In-Reply-To: <EF66BBEB19BADC41AC8CCF5F684F07FC4F66E403-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
On Fri, Jun 07, 2013 at 10:59:43PM +0000, Jeff Squyres (jsquyres) wrote:
> > I don't think this covers other memory regions, like those added via mmap, right?
>
> We talked about this at the MPI Forum this week; it doesn't seem
> like ODP fixes any MPI problems.
ODP without 'register all address space' changes the nature of the
problem, and fixes only one problem.
You do need to cache registrations, and all the tuning parameters (how
much do I cache, how long do I hold it for, etc, etc) all still apply.
What goes away (is fixed) is the need for intercepts and the need to
purge address space from the cache because the backing registration
has become non-coherent/invalid. Registrations are always
coherent/valid with ODP.
This cache, and the associated optimization problem, can never go
away. With a 'register all of memory' semantic the cache can move into
the kernel, but the performance implication and overheads are all
still present, just migrated.
> 2. MPI still has to intercept (at least) munmap().
Curious to know what for?
If you want to prune registrations (ie to reduce memory footprint),
this can be done lazyily at any time (eg in a background thread or
something). Read /proc/self/maps and purge all the registrations
pointing to unmapped memory. Similar to garbage collection.
There is no harm in keeping a registration for a long period, except
for the memory footprint in the kernel.
> 3. Having mmap/malloc/etc. return "new" memory that may already be
> registered because of a prior memory registration and subsequent
> munmap/free/etc. is just plain weird. Worse, if we re-register it,
> ref counts could go such that the actual registration will never
> actually expire until the process dies (which could lead to
> processes with abnormally large memory footprints, because they
> never actually let go of memory because it's still registered).
This is entirely on the registration cache implementation to sort
out, there are lots of performance/memory trade offs.
It is only weird when you think about it in terms of buffers. memory
registration has to do with address space, not buffers.
> What MPI wants is:
>
> 1. verbs for ummunotify-like functionality
> 2. non-blocking memory registration verbs; poll the cq to know when it has completed
To me, ODP with an additional 'register all address space' semantic, plus
an asynchronous prefetch does both of these for you.
1. ummunotify functionality and caching is now in the kernel, under
ODP. RDMA access to an 'all of memory' registration always does the
right thing.
2. asynchronous prefetch (eg as a work request) triggers ODP and
kernel actions to ready a subset of memory for RDMA, including
all the work that memory registration does today (get_user_pages,
COW break, etc)
Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-06-07 23:57 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-28 17:51 Status of "ummunot" branch? Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F643196-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-05-28 17:52 ` Roland Dreier
[not found] ` <CAL1RGDUops1ju6zU=w3vKxcUcLHp6XJFKfBTDr4nm397UkhaYA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-05-28 18:30 ` Jeff Squyres (jsquyres)
2013-05-29 8:53 ` Or Gerlitz
[not found] ` <CAJZOPZJc2Dq2jQgRspP_2c1j=4aJ40UxcBEcyiY_mhHPX1ptPw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-05-29 22:56 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F64AAB7-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-05-30 5:09 ` Or Gerlitz
[not found] ` <51A6DEEC.40305-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-05-30 15:52 ` Jeff Squyres (jsquyres)
2013-06-04 1:24 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F657918-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-04 8:37 ` Or Gerlitz
[not found] ` <51ADA761.2080107-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-06-04 9:54 ` Haggai Eran
[not found] ` <51ADB948.5080903-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-06-04 10:56 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F659155-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-04 11:50 ` Haggai Eran
[not found] ` <51ADD489.3020902-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-06-04 17:04 ` Jason Gunthorpe
[not found] ` <20130604170441.GA13745-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-06-05 7:09 ` Haggai Eran
2013-06-04 20:13 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F65AE40-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-05 7:14 ` Haggai Eran
[not found] ` <51AEE53C.2090603-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-06-05 12:45 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F65C855-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-05 13:39 ` Haggai Eran
[not found] ` <51AF3FA8.7000900-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-06-05 16:53 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F65D5D3-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-05 17:14 ` Jason Gunthorpe
[not found] ` <20130605171426.GC30184-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-06-05 18:10 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F65DC0D-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-05 18:18 ` Jason Gunthorpe
[not found] ` <20130605181853.GB1946-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-06-05 18:45 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F65DF6F-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-05 19:05 ` Jason Gunthorpe
[not found] ` <20130605190529.GA3044-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-06-06 2:58 ` Jeff Squyres (jsquyres)
2013-06-06 5:52 ` Haggai Eran
[not found] ` <51B023B9.9050000-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2013-06-06 23:33 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F66B79C-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-07 22:59 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F66E403-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-07 23:57 ` Jason Gunthorpe [this message]
[not found] ` <20130607235731.GA25942-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-06-10 9:17 ` Liran Liss
2013-06-10 14:49 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F676E59-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-10 15:56 ` Liran Liss
[not found] ` <D554B471892C914E90E136467281724DAD695B50-fViJhHBwANKuSA5JZHE7gA@public.gmane.org>
2013-06-12 21:10 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F6808D7-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-12 21:17 ` Jason Gunthorpe
[not found] ` <20130612211742.GA8625-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-06-14 22:48 ` Jeff Squyres (jsquyres)
2013-06-10 17:26 ` Jason Gunthorpe
[not found] ` <20130610172627.GC2391-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-06-12 21:18 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F680A2B-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-12 21:47 ` Jason Gunthorpe
[not found] ` <20130612214708.GD8625-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-06-14 22:53 ` Jeff Squyres (jsquyres)
[not found] ` <EF66BBEB19BADC41AC8CCF5F684F07FC4F6886C8-nsZYYkk5h5QQ2GdVW7+PtKBKnGwkPULj@public.gmane.org>
2013-06-14 23:11 ` Jason Gunthorpe
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=20130607235731.GA25942@obsidianresearch.com \
--to=jgunthorpe-epgobjl8dl3ta4ec/59zmfatqe2ktcn/@public.gmane.org \
--cc=haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=jsquyres-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=raindel-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
/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