From: Robin Holt <holt@sgi.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: Robin Holt <holt@sgi.com>, Andrea Arcangeli <andrea@qumranet.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>,
steiner@sgi.com, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, daniel.blueman@quadrics.com,
Hugh Dickins <hugh@veritas.com>
Subject: Re: [patch 1/4] mmu_notifier: Core code
Date: Sat, 26 Jan 2008 05:56:39 -0600 [thread overview]
Message-ID: <20080126115639.GQ26420@sgi.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0801251206390.7856@schroedinger.engr.sgi.com>
> > > 1. invalidate_all()
> >
> > That will be fine as long as we can unregister the ops notifier and free
> > the structure. Otherwise, we end up being called needlessly.
>
> No you cannot do that because there are still callbacks that come later.
> The invalidate_all may lead to invalidate_range() doing nothing for this
> mm. The ops notifier and the freeing of the structure has to wait until
> release().
Could you be a little more clear here? If you are saying that the other
callbacks will need to do work? I can assure you we will clean up those
pages and raise memory protections. It will also be done in a much more
efficient fashion than the individual callouts.
If, on the other hand, you are saying we can not because of the way
we traverse the list, can we return a result indicating to the caller
we would like to be unregistered and then the mmu_notifier code do the
remove followed by a call to the release notifier?
>
> > > 2. invalidate_range() for each vma
> > >
> > > 3. release()
> > >
> > > We cannot simply move the call up because there will be future range
> > > callbacks on vma invalidation.
> >
> > I am not sure what this means. Right now, if you were to notify XPMEM
> > the process is exiting, we would take care of all the recalling of pages
> > exported by this process, clearing those pages cache lines from cache,
> > and raising memory protections. I would assume that moving the callout
> > earlier would expect the same of every driver.
>
> That does not sync with the current scheme of the invalidate_range()
> hooks. We would have to do a global invalidate early and then place the
> other invalidate_range hooks in such a way that none is called in later in
> process exit handling.
But if the notifier is removed from the list following the invalidate_all
callout, there would be no additional callouts.
Thanks,
Robin
WARNING: multiple messages have this Message-ID (diff)
From: Robin Holt <holt-sJ/iWh9BUns@public.gmane.org>
To: Christoph Lameter <clameter-sJ/iWh9BUns@public.gmane.org>
Cc: Nick Piggin <npiggin-l3A5Bk7waGM@public.gmane.org>,
Andrea Arcangeli <andrea-atKUWr5tajBWk0Htik3J/w@public.gmane.org>,
Peter Zijlstra
<a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw@public.gmane.org>,
linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org,
Benjamin Herrenschmidt
<benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>,
steiner-sJ/iWh9BUns@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>,
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
daniel.blueman-xqY44rlHlBpWk0Htik3J/w@public.gmane.org,
Robin Holt <holt-sJ/iWh9BUns@public.gmane.org>,
Hugh Dickins <hugh-DTz5qymZ9yRBDgjK7y7TUQ@public.gmane.org>
Subject: Re: [patch 1/4] mmu_notifier: Core code
Date: Sat, 26 Jan 2008 05:56:39 -0600 [thread overview]
Message-ID: <20080126115639.GQ26420@sgi.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0801251206390.7856-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
> > > 1. invalidate_all()
> >
> > That will be fine as long as we can unregister the ops notifier and free
> > the structure. Otherwise, we end up being called needlessly.
>
> No you cannot do that because there are still callbacks that come later.
> The invalidate_all may lead to invalidate_range() doing nothing for this
> mm. The ops notifier and the freeing of the structure has to wait until
> release().
Could you be a little more clear here? If you are saying that the other
callbacks will need to do work? I can assure you we will clean up those
pages and raise memory protections. It will also be done in a much more
efficient fashion than the individual callouts.
If, on the other hand, you are saying we can not because of the way
we traverse the list, can we return a result indicating to the caller
we would like to be unregistered and then the mmu_notifier code do the
remove followed by a call to the release notifier?
>
> > > 2. invalidate_range() for each vma
> > >
> > > 3. release()
> > >
> > > We cannot simply move the call up because there will be future range
> > > callbacks on vma invalidation.
> >
> > I am not sure what this means. Right now, if you were to notify XPMEM
> > the process is exiting, we would take care of all the recalling of pages
> > exported by this process, clearing those pages cache lines from cache,
> > and raising memory protections. I would assume that moving the callout
> > earlier would expect the same of every driver.
>
> That does not sync with the current scheme of the invalidate_range()
> hooks. We would have to do a global invalidate early and then place the
> other invalidate_range hooks in such a way that none is called in later in
> process exit handling.
But if the notifier is removed from the list following the invalidate_all
callout, there would be no additional callouts.
Thanks,
Robin
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
WARNING: multiple messages have this Message-ID (diff)
From: Robin Holt <holt@sgi.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: Robin Holt <holt@sgi.com>, Andrea Arcangeli <andrea@qumranet.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>,
steiner@sgi.com, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, daniel.blueman@quadrics.com,
Hugh Dickins <hugh@veritas.com>
Subject: Re: [patch 1/4] mmu_notifier: Core code
Date: Sat, 26 Jan 2008 05:56:39 -0600 [thread overview]
Message-ID: <20080126115639.GQ26420@sgi.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0801251206390.7856@schroedinger.engr.sgi.com>
> > > 1. invalidate_all()
> >
> > That will be fine as long as we can unregister the ops notifier and free
> > the structure. Otherwise, we end up being called needlessly.
>
> No you cannot do that because there are still callbacks that come later.
> The invalidate_all may lead to invalidate_range() doing nothing for this
> mm. The ops notifier and the freeing of the structure has to wait until
> release().
Could you be a little more clear here? If you are saying that the other
callbacks will need to do work? I can assure you we will clean up those
pages and raise memory protections. It will also be done in a much more
efficient fashion than the individual callouts.
If, on the other hand, you are saying we can not because of the way
we traverse the list, can we return a result indicating to the caller
we would like to be unregistered and then the mmu_notifier code do the
remove followed by a call to the release notifier?
>
> > > 2. invalidate_range() for each vma
> > >
> > > 3. release()
> > >
> > > We cannot simply move the call up because there will be future range
> > > callbacks on vma invalidation.
> >
> > I am not sure what this means. Right now, if you were to notify XPMEM
> > the process is exiting, we would take care of all the recalling of pages
> > exported by this process, clearing those pages cache lines from cache,
> > and raising memory protections. I would assume that moving the callout
> > earlier would expect the same of every driver.
>
> That does not sync with the current scheme of the invalidate_range()
> hooks. We would have to do a global invalidate early and then place the
> other invalidate_range hooks in such a way that none is called in later in
> process exit handling.
But if the notifier is removed from the list following the invalidate_all
callout, there would be no additional callouts.
Thanks,
Robin
--
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>
next prev parent reply other threads:[~2008-01-26 11:58 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-25 5:56 [patch 0/4] [RFC] MMU Notifiers V1 Christoph Lameter
2008-01-25 5:56 ` Christoph Lameter
2008-01-25 5:56 ` [patch 1/4] mmu_notifier: Core code Christoph Lameter
2008-01-25 5:56 ` Christoph Lameter
2008-01-25 18:39 ` Robin Holt
2008-01-25 18:39 ` Robin Holt
2008-01-25 18:39 ` Robin Holt
2008-01-25 18:47 ` Christoph Lameter
2008-01-25 18:47 ` Christoph Lameter
2008-01-25 18:47 ` Christoph Lameter
2008-01-25 18:56 ` Robin Holt
2008-01-25 18:56 ` Robin Holt
2008-01-25 19:03 ` Christoph Lameter
2008-01-25 19:03 ` Christoph Lameter
2008-01-25 19:03 ` Christoph Lameter
2008-01-25 19:35 ` Robin Holt
2008-01-25 19:35 ` Robin Holt
2008-01-25 19:35 ` Robin Holt
2008-01-25 20:10 ` Christoph Lameter
2008-01-25 20:10 ` Christoph Lameter
2008-01-25 20:10 ` Christoph Lameter
2008-01-26 11:56 ` Robin Holt [this message]
2008-01-26 11:56 ` Robin Holt
2008-01-26 11:56 ` Robin Holt
2008-01-28 18:51 ` Christoph Lameter
2008-01-28 18:51 ` Christoph Lameter
2008-01-25 21:18 ` Christoph Lameter
2008-01-25 21:18 ` Christoph Lameter
2008-01-25 21:18 ` Christoph Lameter
2008-01-26 12:01 ` Robin Holt
2008-01-26 12:01 ` Robin Holt
2008-01-26 12:01 ` Robin Holt
2008-01-28 18:44 ` Christoph Lameter
2008-01-28 18:44 ` Christoph Lameter
2008-01-28 18:44 ` Christoph Lameter
2008-01-25 5:56 ` [patch 2/4] mmu_notifier: Callbacks to invalidate address ranges Christoph Lameter
2008-01-25 5:56 ` Christoph Lameter
2008-01-25 5:56 ` [patch 3/4] mmu_notifier: invalidate_page callbacks for subsystems with rmap Christoph Lameter
2008-01-25 5:56 ` Christoph Lameter
2008-01-25 5:56 ` [patch 4/4] MMU notifier: invalidate_page callbacks using Linux rmaps Christoph Lameter
2008-01-25 5:56 ` Christoph Lameter
2008-01-25 11:42 ` [patch 0/4] [RFC] MMU Notifiers V1 Andrea Arcangeli
2008-01-25 11:42 ` Andrea Arcangeli
2008-01-25 12:43 ` Robin Holt
2008-01-25 12:43 ` Robin Holt
2008-01-25 12:43 ` Robin Holt
2008-01-25 18:31 ` Christoph Lameter
2008-01-25 18:31 ` Christoph Lameter
2008-01-25 18:31 ` Christoph Lameter
2008-01-25 21:18 ` Benjamin Herrenschmidt
2008-01-25 21:18 ` Benjamin Herrenschmidt
2008-01-25 21:18 ` Benjamin Herrenschmidt
2008-01-25 21:25 ` Christoph Lameter
2008-01-25 21:25 ` Christoph Lameter
2008-01-25 21:25 ` Christoph Lameter
2008-01-28 16:10 ` Izik Eidus
2008-01-28 16:10 ` Izik Eidus
2008-01-28 16:10 ` Izik Eidus
2008-01-28 17:25 ` Andrea Arcangeli
2008-01-28 17:25 ` Andrea Arcangeli
2008-01-28 19:04 ` Christoph Lameter
2008-01-28 19:04 ` Christoph Lameter
2008-01-28 19:40 ` Andrea Arcangeli
2008-01-28 19:40 ` Andrea Arcangeli
2008-01-28 19:40 ` Andrea Arcangeli
2008-01-28 20:16 ` Christoph Lameter
2008-01-28 20:16 ` Christoph Lameter
2008-01-28 20:16 ` Christoph Lameter
-- strict thread matches above, loose matches on Subject: below --
2008-02-01 5:04 [patch 0/4] [RFC] EMMU Notifiers V5 Christoph Lameter
2008-02-01 5:04 ` [patch 1/4] mmu_notifier: Core code Christoph Lameter
2008-02-01 5:04 ` Christoph Lameter
2008-02-01 10:55 ` Robin Holt
2008-02-01 10:55 ` Robin Holt
2008-02-01 10:55 ` Robin Holt
2008-02-01 11:04 ` Robin Holt
2008-02-01 11:04 ` Robin Holt
2008-02-01 19:14 ` Christoph Lameter
2008-02-01 19:14 ` Christoph Lameter
2008-02-01 19:14 ` 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=20080126115639.GQ26420@sgi.com \
--to=holt@sgi.com \
--cc=a.p.zijlstra@chello.nl \
--cc=andrea@qumranet.com \
--cc=avi@qumranet.com \
--cc=benh@kernel.crashing.org \
--cc=clameter@sgi.com \
--cc=daniel.blueman@quadrics.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 \
/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.