LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Christoph Lameter <clameter@sgi.com>
Cc: akpm@linux-foundation.org, Andrea Arcangeli <andrea@qumranet.com>,
Robin Holt <holt@sgi.com>, Avi Kivity <avi@qumranet.com>,
Izik Eidus <izike@qumranet.com>,
kvm-devel@lists.sourceforge.net,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
general@lists.openfabrics.org,
Steve Wise <swise@opengridcomputing.com>,
Roland Dreier <rdreier@cisco.com>,
Kanoj Sarcar <kanojsarcar@yahoo.com>,
steiner@sgi.com, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, daniel.blueman@quadrics.com
Subject: Re: [patch 2/6] mmu_notifier: Callbacks to invalidate address ranges
Date: Wed, 5 Mar 2008 11:52:13 +1100 [thread overview]
Message-ID: <200803051152.15160.nickpiggin@yahoo.com.au> (raw)
In-Reply-To: <Pine.LNX.4.64.0803041054210.13957@schroedinger.engr.sgi.com>
On Wednesday 05 March 2008 05:58, Christoph Lameter wrote:
> On Tue, 4 Mar 2008, Nick Piggin wrote:
> > > Then put it into the arch code for TLB invalidation. Paravirt ops gives
> > > good examples on how to do that.
> >
> > Put what into arch code?
>
> The mmu notifier code.
It isn't arch specific.
> > > > What about a completely different approach... XPmem runs over
> > > > NUMAlink, right? Why not provide some non-sleeping way to basically
> > > > IPI remote nodes over the NUMAlink where they can process the
> > > > invalidation? If you intra-node cache coherency has to run over this
> > > > link anyway, then presumably it is capable.
> > >
> > > There is another Linux instance at the remote end that first has to
> > > remove its own ptes.
> >
> > Yeah, what's the problem?
>
> The remote end has to invalidate the page which involves locking etc.
I don't see what the problem is.
> > > Also would not work for Inifiniband and other
> > > solutions.
> >
> > infiniband doesn't want it. Other solutions is just handwaving,
> > because if we don't know what the other soloutions are, then we can't
> > make any sort of informed choices.
>
> We need a solution in general to avoid the pinning problems. Infiniband
> has those too.
>
> > > All the approaches that require evictions in an atomic context
> > > are limiting the approach and do not allow the generic functionality
> > > that we want in order to not add alternate APIs for this.
> >
> > The only generic way to do this that I have seen (and the only proposed
> > way that doesn't add alternate APIs for that matter) is turning VM locks
> > into sleeping locks. In which case, Andrea's notifiers will work just
> > fine (except for relatively minor details like rcu list scanning).
>
> No they wont. As you pointed out the callback need RCU locking.
That can be fixed easily.
> > > The good enough solution right now is to pin pages by elevating
> > > refcounts.
> >
> > Which kind of leads to the question of why do you need any further
> > kernel patches if that is good enough?
>
> Well its good enough with severe problems during reclaim, livelocks etc.
> One could improve on that scheme through Rik's work trying to add a new
> page flag that mark pinned pages and then keep them off the LRUs and
> limiting their number. Having pinned page would limit the ability to
> reclaim by the VM and make page migration, memory unplug etc impossible.
Well not impossible. You could have a callback to invalidate the remote
TLB and drop the pin on a given page.
> It is better to have notifier scheme that allows to tell a device driver
> to free up the memory it has mapped.
Yeah, it would be nice for those people with clusters of Altixes. Doesn't
mean it has to go upstream, though.
next prev parent reply other threads:[~2008-03-05 0:53 UTC|newest]
Thread overview: 129+ messages / expand[flat|nested] mbox.gz Atom feed top
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-15 6:49 ` [patch 2/6] mmu_notifier: Callbacks to invalidate address ranges Christoph Lameter
2008-02-16 3:37 ` Andrew Morton
2008-02-16 19:26 ` Christoph Lameter
2008-02-19 8:54 ` Nick Piggin
2008-02-19 13:34 ` Andrea Arcangeli
2008-02-27 22:23 ` Christoph Lameter
2008-02-27 23:57 ` Andrea Arcangeli
2008-02-19 23:08 ` Nick Piggin
2008-02-20 1:00 ` Andrea Arcangeli
2008-02-20 3:00 ` Robin Holt
2008-02-20 3:11 ` Nick Piggin
2008-02-20 3:19 ` Robin Holt
2008-02-27 22:39 ` Christoph Lameter
2008-02-28 0:38 ` Andrea Arcangeli
2008-02-27 22:35 ` Christoph Lameter
2008-02-27 22:42 ` Jack Steiner
2008-02-28 0:10 ` Christoph Lameter
2008-02-28 0:11 ` Andrea Arcangeli
2008-02-28 0:14 ` Christoph Lameter
2008-02-28 0:52 ` Andrea Arcangeli
2008-02-28 1:03 ` Christoph Lameter
2008-02-28 1:10 ` Andrea Arcangeli
2008-02-28 18:43 ` Christoph Lameter
2008-02-29 0:55 ` Andrea Arcangeli
2008-02-29 0:59 ` Christoph Lameter
2008-02-29 13:13 ` Andrea Arcangeli
2008-02-29 19:55 ` Christoph Lameter
2008-02-29 20:17 ` Andrea Arcangeli
2008-02-29 21:03 ` Christoph Lameter
2008-02-29 21:23 ` Andrea Arcangeli
2008-02-29 21:29 ` Christoph Lameter
2008-02-29 21:34 ` Christoph Lameter
2008-02-29 21:48 ` Andrea Arcangeli
2008-02-29 22:12 ` Christoph Lameter
2008-02-29 22:41 ` Andrea Arcangeli
2008-02-28 10:53 ` Robin Holt
2008-03-03 5:11 ` Nick Piggin
2008-03-03 19:28 ` Christoph Lameter
2008-03-03 19:50 ` Nick Piggin
2008-03-04 18:58 ` Christoph Lameter
2008-03-05 0:52 ` Nick Piggin [this message]
2008-02-15 6:49 ` [patch 3/6] mmu_notifier: invalidate_page callbacks Christoph Lameter
2008-02-16 3:37 ` Andrew Morton
2008-02-16 11:07 ` Andrea Arcangeli
2008-02-16 19:22 ` Christoph Lameter
2008-02-16 19:54 ` Avi Kivity
2008-02-19 8:46 ` Nick Piggin
2008-02-19 13:30 ` Andrea Arcangeli
2008-02-18 1:51 ` Nick Piggin
2008-02-15 6:49 ` [patch 4/6] mmu_notifier: Skeleton driver for a simple mmu_notifier Christoph Lameter
2008-02-15 6:49 ` [patch 5/6] mmu_notifier: Support for drivers with revers maps (f.e. for XPmem) Christoph Lameter
2008-02-16 3:37 ` Andrew Morton
2008-02-16 19:28 ` Christoph Lameter
2008-02-19 23:55 ` Nick Piggin
2008-02-20 3:12 ` Robin Holt
2008-02-20 3:51 ` Nick Piggin
2008-02-20 9:00 ` Robin Holt
2008-02-20 9:05 ` Robin Holt
2008-02-21 4:20 ` Nick Piggin
2008-02-21 10:58 ` Robin Holt
2008-02-26 6:11 ` Nick Piggin
2008-02-26 7:21 ` [ofa-general] " Gleb Natapov
2008-02-26 8:52 ` Nick Piggin
2008-02-26 9:38 ` Gleb Natapov
2008-02-26 9:52 ` KOSAKI Motohiro
2008-02-26 12:28 ` Robin Holt
2008-02-26 12:29 ` Robin Holt
2008-02-27 22:43 ` Christoph Lameter
2008-02-28 0:42 ` Andrea Arcangeli
2008-02-28 1:01 ` Christoph Lameter
2008-02-15 6:49 ` [patch 6/6] mmu_rmap_notifier: Skeleton for complex driver that uses its own rmaps Christoph Lameter
2008-02-16 10:48 ` [PATCH] KVM swapping with MMU Notifiers V7 Andrea Arcangeli
2008-02-16 11:08 ` Andrew Morton
2008-02-18 12:17 ` Andrea Arcangeli
2008-02-16 11:51 ` Robin Holt
2008-02-18 12:35 ` Andrea Arcangeli
-- strict thread matches above, loose matches on Subject: below --
2008-02-08 22:06 [patch 0/6] MMU Notifiers V6 Christoph Lameter
2008-02-08 22:06 ` [patch 2/6] mmu_notifier: Callbacks to invalidate address ranges Christoph Lameter
2008-01-30 2:29 [patch 0/6] [RFC] MMU Notifiers V3 Christoph Lameter
2008-01-30 2:29 ` [patch 2/6] mmu_notifier: Callbacks to invalidate address ranges Christoph Lameter
2008-01-28 20:28 [patch 0/6] [RFC] MMU Notifiers V2 Christoph Lameter
2008-01-28 20:28 ` [patch 2/6] mmu_notifier: Callbacks to invalidate address ranges Christoph Lameter
2008-01-29 16:20 ` Andrea Arcangeli
2008-01-29 18:28 ` Andrea Arcangeli
2008-01-29 20:30 ` Christoph Lameter
2008-01-29 21:36 ` Andrea Arcangeli
2008-01-29 21:53 ` Christoph Lameter
2008-01-29 22:35 ` Andrea Arcangeli
2008-01-29 22:55 ` Christoph Lameter
2008-01-29 23:43 ` Andrea Arcangeli
2008-01-30 0:34 ` Christoph Lameter
2008-01-29 19:55 ` Christoph Lameter
2008-01-29 21:17 ` Andrea Arcangeli
2008-01-29 21:35 ` Christoph Lameter
2008-01-29 22:02 ` Andrea Arcangeli
2008-01-29 22:39 ` Christoph Lameter
2008-01-30 0:00 ` Andrea Arcangeli
2008-01-30 0:05 ` Andrea Arcangeli
2008-01-30 0:22 ` Christoph Lameter
2008-01-30 0:59 ` Andrea Arcangeli
2008-01-30 8:26 ` Peter Zijlstra
2008-01-30 0:20 ` Christoph Lameter
2008-01-30 0:28 ` Jack Steiner
2008-01-30 0:35 ` Christoph Lameter
2008-01-30 13:37 ` Andrea Arcangeli
2008-01-30 14:43 ` Jack Steiner
2008-01-30 19:41 ` Christoph Lameter
2008-01-30 20:29 ` Jack Steiner
2008-01-30 20:55 ` Christoph Lameter
2008-01-30 16:11 ` Robin Holt
2008-01-30 17:04 ` Andrea Arcangeli
2008-01-30 17:30 ` Robin Holt
2008-01-30 18:25 ` Andrea Arcangeli
2008-01-30 19:50 ` Christoph Lameter
2008-01-30 22:18 ` Robin Holt
2008-01-30 23:52 ` Andrea Arcangeli
2008-01-31 0:01 ` Christoph Lameter
2008-01-30 19:35 ` 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=200803051152.15160.nickpiggin@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=andrea@qumranet.com \
--cc=avi@qumranet.com \
--cc=clameter@sgi.com \
--cc=daniel.blueman@quadrics.com \
--cc=general@lists.openfabrics.org \
--cc=holt@sgi.com \
--cc=izike@qumranet.com \
--cc=kanojsarcar@yahoo.com \
--cc=kvm-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=rdreier@cisco.com \
--cc=steiner@sgi.com \
--cc=swise@opengridcomputing.com \
--subject='Re: [patch 2/6] mmu_notifier: Callbacks to invalidate address ranges' \
/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).