LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@qumranet.com>
To: Robin Holt <holt@sgi.com>
Cc: Christoph Lameter <clameter@sgi.com>,
Jack Steiner <steiner@sgi.com>, Avi Kivity <avi@qumranet.com>,
Izik Eidus <izike@qumranet.com>, Nick Piggin <npiggin@suse.de>,
kvm-devel@lists.sourceforge.net,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
daniel.blueman@quadrics.com, Hugh Dickins <hugh@veritas.com>
Subject: Re: [patch 1/6] mmu_notifier: Core code
Date: Thu, 31 Jan 2008 00:38:03 +0100 [thread overview]
Message-ID: <20080130233803.GB7185@v2.random> (raw)
In-Reply-To: <20080130222035.GX26420@sgi.com>
On Wed, Jan 30, 2008 at 04:20:35PM -0600, Robin Holt wrote:
> On Wed, Jan 30, 2008 at 11:19:28AM -0800, Christoph Lameter wrote:
> > On Wed, 30 Jan 2008, Jack Steiner wrote:
> >
> > > Moving to a different lock solves the problem.
> >
> > Well it gets us back to the issue why we removed the lock. As Robin said
> > before: If its global then we can have a huge number of tasks contending
> > for the lock on startup of a process with a large number of ranks. The
> > reason to go to mmap_sem was that it was placed in the mm_struct and so we
> > would just have a couple of contentions per mm_struct.
> >
> > I'll be looking for some other way to do this.
>
> I think Andrea's original concept of the lock in the mmu_notifier_head
> structure was the best. I agree with him that it should be a spinlock
> instead of the rw_lock.
BTW, I don't see the scalability concern with huge number of tasks:
the lock is still in the mm, down_write(mm->mmap_sem); oneinstruction;
up_write(mm->mmap_sem) is always going to scale worse than
spin_lock(mm->somethingelse); oneinstruction;
spin_unlock(mm->somethinglese).
Furthermore if we go this route and we don't relay on implicit
serialization of all the mmu notifier users against exit_mmap
(i.e. the mmu notifier user must agree to stop calling
mmu_notifier_register on a mm after the last mmput) the autodisarming
feature will likely have to be removed or it can't possibly be safe to
run mmu_notifier_unregister while mmu_notifier_release runs. With the
auto-disarming feature, there is no way to safely know if
mmu_notifier_unregister has to be called or not. I'm ok with removing
the auto-disarming feature and to have as self-contained-as-possible
locking. Then mmu_notifier_release can just become the
invalidate_all_after and invalidate_all, invalidate_all_before.
next prev parent reply other threads:[~2008-01-30 23:38 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-30 2:29 [patch 0/6] [RFC] MMU Notifiers V3 Christoph Lameter
2008-01-30 2:29 ` [patch 1/6] mmu_notifier: Core code Christoph Lameter
2008-01-30 15:37 ` Andrea Arcangeli
2008-01-30 15:53 ` Jack Steiner
2008-01-30 16:38 ` Andrea Arcangeli
2008-01-30 19:19 ` Christoph Lameter
2008-01-30 22:20 ` Robin Holt
2008-01-30 23:38 ` Andrea Arcangeli [this message]
2008-01-30 23:55 ` Christoph Lameter
2008-01-31 0:12 ` [kvm-devel] " Andrea Arcangeli
2008-01-31 1:27 ` Christoph Lameter
2008-01-30 17:10 ` Peter Zijlstra
2008-01-30 19:28 ` Christoph Lameter
2008-01-30 18:02 ` Robin Holt
2008-01-30 19:08 ` Christoph Lameter
2008-01-30 19:14 ` Christoph Lameter
2008-01-30 2:29 ` [patch 2/6] mmu_notifier: Callbacks to invalidate address ranges Christoph Lameter
2008-01-30 2:29 ` [patch 3/6] mmu_notifier: invalidate_page callbacks for subsystems with rmap Christoph Lameter
2008-01-30 18:03 ` Robin Holt
2008-01-30 2:29 ` [patch 4/6] MMU notifier: invalidate_page callbacks using Linux rmaps Christoph Lameter
2008-01-30 2:29 ` [patch 5/6] mmu_notifier: Callbacks for xip_filemap.c Christoph Lameter
2008-01-30 2:29 ` [patch 6/6] mmu_notifier: Add invalidate_all() Christoph Lameter
-- strict thread matches above, loose matches on Subject: below --
2008-02-15 6:48 [patch 0/6] MMU Notifiers V7 Christoph Lameter
2008-02-15 6:49 ` [patch 1/6] mmu_notifier: Core code Christoph Lameter
2008-02-16 3:37 ` Andrew Morton
2008-02-16 8:45 ` Avi Kivity
2008-02-16 8:56 ` Andrew Morton
2008-02-16 9:21 ` Avi Kivity
2008-02-16 10:41 ` Brice Goglin
2008-02-16 10:58 ` Andrew Morton
2008-02-16 19:31 ` Christoph Lameter
2008-02-16 19:21 ` Christoph Lameter
2008-02-17 3:01 ` Andrea Arcangeli
2008-02-17 12:24 ` Robin Holt
2008-02-17 5:04 ` Doug Maxey
2008-02-18 22:33 ` Roland Dreier
2008-02-08 22:06 [patch 0/6] MMU Notifiers V6 Christoph Lameter
2008-02-08 22:06 ` [patch 1/6] mmu_notifier: Core code Christoph Lameter
2008-01-28 20:28 [patch 0/6] [RFC] MMU Notifiers V2 Christoph Lameter
2008-01-28 20:28 ` [patch 1/6] mmu_notifier: Core code Christoph Lameter
2008-01-28 22:06 ` Christoph Lameter
2008-01-29 0:05 ` Robin Holt
2008-01-29 1:19 ` Christoph Lameter
2008-01-29 13:59 ` Andrea Arcangeli
2008-01-29 14:34 ` Andrea Arcangeli
2008-01-29 19:49 ` Christoph Lameter
2008-01-29 20:41 ` Avi Kivity
2008-01-29 16:07 ` Robin Holt
2008-02-05 18:05 ` Andy Whitcroft
2008-02-05 18:17 ` Peter Zijlstra
2008-02-05 18:19 ` Christoph Lameter
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=20080130233803.GB7185@v2.random \
--to=andrea@qumranet.com \
--cc=a.p.zijlstra@chello.nl \
--cc=avi@qumranet.com \
--cc=benh@kernel.crashing.org \
--cc=clameter@sgi.com \
--cc=daniel.blueman@quadrics.com \
--cc=holt@sgi.com \
--cc=hugh@veritas.com \
--cc=izike@qumranet.com \
--cc=kvm-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=npiggin@suse.de \
--cc=steiner@sgi.com \
--subject='Re: [patch 1/6] mmu_notifier: Core code' \
/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
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).