From: Jack Steiner <steiner@sgi.com>
To: Andrea Arcangeli <andrea@qumranet.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Christoph Lameter <clameter@sgi.com>, Robin Holt <holt@sgi.com>,
Nick Piggin <npiggin@suse.de>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
kvm-devel@lists.sourceforge.net,
Kanoj Sarcar <kanojsarcar@yahoo.com>,
Roland Dreier <rdreier@cisco.com>,
Steve Wise <swise@opengridcomputing.com>,
linux-kernel@vger.kernel.org, Avi Kivity <avi@qumranet.com>,
linux-mm@kvack.org, general@lists.openfabrics.org,
Hugh Dickins <hugh@veritas.com>,
Rusty Russell <rusty@rustcorp.com.au>,
Anthony Liguori <aliguori@us.ibm.com>,
Chris Wright <chrisw@redhat.com>,
Marcelo Tosatti <marcelo@kvack.org>,
Eric Dumazet <dada1@cosmosbay.com>,
"Paul E. McKenney" <paulmck@us.ibm.com>
Subject: Re: [PATCH 01 of 11] mmu-notifier-core
Date: Mon, 5 May 2008 14:46:25 -0500 [thread overview]
Message-ID: <20080505194625.GA17734@sgi.com> (raw)
In-Reply-To: <20080505183405.GI8470@duo.random>
[-- Attachment #1: Type: text/plain, Size: 2227 bytes --]
On Mon, May 05, 2008 at 08:34:05PM +0200, Andrea Arcangeli wrote:
> On Mon, May 05, 2008 at 12:25:06PM -0500, Jack Steiner wrote:
> > Agree. My apologies... I should have caught it.
>
> No problem.
>
> > __mmu_notifier_register/__mmu_notifier_unregister seems like a better way to
> > go, although either is ok.
>
> If you also like __mmu_notifier_register more I'll go with it. The
> bitflags seems like a bit of overkill as I can't see the need of any
> other bitflag other than this one and they also can't be removed as
> easily in case you'll find a way to call it outside the lock later.
>
> > Let me finish my testing. At one time, I did not use ->release but
> > with all the locking & teardown changes, I need to do some reverification.
I finished testing & everything looks good. I do use the ->release callout but
mainly as a performance hint that teardown is in progress & that TLB flushing is
no longer needed. (GRU TLB entries are tagged with a task-specific ID that will
not be reused until a full TLB purge is done. This eliminates the requirement
to purge at task-exit.)
Normally, a notifier is registered when a GRU segment is mmaped, and unregistered
when the segment is unmapped. Well behaved tasks will not have a GRU or
a notifier when exit starts.
If a task fails to unmap a GRU segment, they still exist at the start of
exit. On the ->release callout, I set a flag in the container of my
mmu_notifier that exit has started. As VMA are cleaned up, TLB flushes
are skipped because of the flag is set. When the GRU VMA is deleted, I free
my structure containing the notifier.
I _think_ works. Do you see any problems?
I should also mention that I have an open-coded function that possibly
belongs in mmu_notifier.c. A user is allowed to have multiple GRU segments.
Each GRU has a couple of data structures linked to the VMA. All, however,
need to share the same notifier. I currently open code a function that
scans the notifier list to determine if a GRU notifier already exists.
If it does, I update a refcnt & use it. Otherwise, I register a new
one. All of this is protected by the mmap_sem.
Just in case I mangled the above description, I'll attach a copy of the GRU mmuops
code.
--- jack
[-- Attachment #2: z --]
[-- Type: application/x-compress, Size: 2763 bytes --]
next prev parent reply other threads:[~2008-05-05 19:46 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-02 15:05 [PATCH 00 of 11] mmu notifier #v15 Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [PATCH 01 of 11] mmu-notifier-core Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [ofa-general] " Andrea Arcangeli
2008-05-04 19:13 ` Robin Holt
2008-05-04 19:13 ` Robin Holt
2008-05-04 19:13 ` [ofa-general] " Robin Holt
2008-05-04 22:08 ` Andrea Arcangeli
2008-05-04 22:08 ` Andrea Arcangeli
2008-05-04 22:08 ` Andrea Arcangeli
2008-05-05 2:25 ` Robin Holt
2008-05-05 2:25 ` Robin Holt
2008-05-05 2:25 ` [ofa-general] " Robin Holt
2008-05-05 16:21 ` Jack Steiner
2008-05-05 16:21 ` Jack Steiner
2008-05-05 16:21 ` [ofa-general] " Jack Steiner
2008-05-05 17:14 ` Andrea Arcangeli
2008-05-05 17:14 ` Andrea Arcangeli
2008-05-05 17:14 ` [ofa-general] " Andrea Arcangeli
2008-05-05 17:25 ` Jack Steiner
2008-05-05 17:25 ` Jack Steiner
2008-05-05 17:25 ` [ofa-general] " Jack Steiner
2008-05-05 18:34 ` Andrea Arcangeli
2008-05-05 18:34 ` Andrea Arcangeli
2008-05-05 18:34 ` [ofa-general] " Andrea Arcangeli
2008-05-05 19:46 ` Jack Steiner [this message]
2008-05-06 14:46 ` Andrea Arcangeli
2008-05-06 14:46 ` Andrea Arcangeli
2008-05-06 17:53 ` mmu notifier v15 -> v16 diff Andrea Arcangeli
2008-05-06 17:53 ` Andrea Arcangeli
2008-05-06 17:53 ` [ofa-general] " Andrea Arcangeli
2008-05-02 15:05 ` [PATCH 02 of 11] get_task_mm Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [ofa-general] " Andrea Arcangeli
2008-05-02 15:05 ` [PATCH 03 of 11] invalidate_page outside PT lock Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [ofa-general] " Andrea Arcangeli
2008-05-02 15:05 ` [PATCH 04 of 11] free-pgtables Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [ofa-general] " Andrea Arcangeli
2008-05-02 15:05 ` [PATCH 05 of 11] unmap vmas tlb flushing Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [ofa-general] " Andrea Arcangeli
2008-05-02 15:05 ` [PATCH 06 of 11] rwsem contended Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [ofa-general] " Andrea Arcangeli
2008-05-02 15:05 ` [PATCH 07 of 11] i_mmap_rwsem Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [ofa-general] " Andrea Arcangeli
2008-05-02 15:05 ` [PATCH 08 of 11] anon-vma-rwsem Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [ofa-general] " Andrea Arcangeli
2008-05-02 15:05 ` [PATCH 09 of 11] mm_lock-rwsem Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [ofa-general] " Andrea Arcangeli
2008-05-02 15:05 ` [PATCH 10 of 11] export zap_page_range for XPMEM Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [ofa-general] " Andrea Arcangeli
2008-05-02 15:05 ` [PATCH 11 of 11] mmap sems Andrea Arcangeli
2008-05-02 15:05 ` Andrea Arcangeli
2008-05-02 15:05 ` [ofa-general] " Andrea Arcangeli
2008-05-03 11:09 ` [PATCH 00 of 11] mmu notifier #v15 Jack Steiner
2008-05-03 11:09 ` Jack Steiner
2008-05-03 11:09 ` Jack Steiner
-- strict thread matches above, loose matches on Subject: below --
2008-05-07 14:35 [PATCH 00 of 11] mmu notifier #v16 Andrea Arcangeli
2008-05-07 14:35 ` [PATCH 01 of 11] mmu-notifier-core Andrea Arcangeli
2008-05-07 14:35 ` Andrea Arcangeli
2008-05-07 17:35 ` Rik van Riel
2008-05-07 17:35 ` Rik van Riel
2008-05-07 20:02 ` Andrew Morton
2008-05-07 20:02 ` Andrew Morton
2008-05-07 20:05 ` Andrew Morton
2008-05-07 20:05 ` Andrew Morton
2008-05-07 20:30 ` Linus Torvalds
2008-05-07 20:30 ` Linus Torvalds
2008-05-07 21:58 ` Andrea Arcangeli
2008-05-07 21:58 ` Andrea Arcangeli
2008-05-07 22:11 ` Linus Torvalds
2008-05-07 22:11 ` Linus Torvalds
2008-05-07 22:27 ` Andrea Arcangeli
2008-05-07 22:27 ` Andrea Arcangeli
2008-05-07 22:37 ` Andrea Arcangeli
2008-05-07 22:37 ` Andrea Arcangeli
2008-05-07 23:38 ` Linus Torvalds
2008-05-07 23:38 ` Linus Torvalds
2008-05-07 23:00 ` Linus Torvalds
2008-05-07 23:00 ` Linus Torvalds
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=20080505194625.GA17734@sgi.com \
--to=steiner@sgi.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=aliguori@us.ibm.com \
--cc=andrea@qumranet.com \
--cc=avi@qumranet.com \
--cc=chrisw@redhat.com \
--cc=clameter@sgi.com \
--cc=dada1@cosmosbay.com \
--cc=general@lists.openfabrics.org \
--cc=holt@sgi.com \
--cc=hugh@veritas.com \
--cc=kanojsarcar@yahoo.com \
--cc=kvm-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=marcelo@kvack.org \
--cc=npiggin@suse.de \
--cc=paulmck@us.ibm.com \
--cc=rdreier@cisco.com \
--cc=rusty@rustcorp.com.au \
--cc=swise@opengridcomputing.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.