From: Andrea Arcangeli <andrea-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Christoph Lameter <clameter-sJ/iWh9BUns@public.gmane.org>
Cc: Nick Piggin <npiggin-l3A5Bk7waGM@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/6] mmu_notifier: Core code
Date: Tue, 29 Jan 2008 14:59:14 +0100 [thread overview]
Message-ID: <20080129135914.GF7233@v2.random> (raw)
In-Reply-To: <20080128202923.609249585-sJ/iWh9BUns@public.gmane.org>
On Mon, Jan 28, 2008 at 12:28:41PM -0800, Christoph Lameter wrote:
> +struct mmu_notifier_head {
> + struct hlist_head head;
> +};
> +
> struct mm_struct {
> struct vm_area_struct * mmap; /* list of VMAs */
> struct rb_root mm_rb;
> @@ -219,6 +223,8 @@ struct mm_struct {
> /* aio bits */
> rwlock_t ioctx_list_lock;
> struct kioctx *ioctx_list;
> +
> + struct mmu_notifier_head mmu_notifier; /* MMU notifier list */
> };
Not sure why you prefer to waste ram when MMU_NOTIFIER=n, this is a
regression (a minor one though).
> + /*
> + * lock indicates that the function is called under spinlock.
> + */
> + void (*invalidate_range)(struct mmu_notifier *mn,
> + struct mm_struct *mm,
> + unsigned long start, unsigned long end,
> + int lock);
> +};
It's out of my reach how can you be ok with lock=1. You said you have
to block, if you can deal with lock=1 once, why can't you deal with
lock=1 _always_?
> +/*
> + * Note that all notifiers use RCU. The updates are only guaranteed to be
> + * visible to other processes after a RCU quiescent period!
> + */
> +void __mmu_notifier_register(struct mmu_notifier *mn, struct mm_struct *mm)
> +{
> + hlist_add_head_rcu(&mn->hlist, &mm->mmu_notifier.head);
> +}
> +EXPORT_SYMBOL_GPL(__mmu_notifier_register);
> +
> +void mmu_notifier_register(struct mmu_notifier *mn, struct mm_struct *mm)
> +{
> + down_write(&mm->mmap_sem);
> + __mmu_notifier_register(mn, mm);
> + up_write(&mm->mmap_sem);
> +}
> +EXPORT_SYMBOL_GPL(mmu_notifier_register);
The down_write is garbage. The caller should put it around
mmu_notifier_register if something. The same way the caller should
call synchronize_rcu after mmu_notifier_register if it needs
synchronous behavior from the notifiers. The default version of
mmu_notifier_register shouldn't be cluttered with unnecessary locking.
-------------------------------------------------------------------------
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/
next prev parent reply other threads:[~2008-01-29 13:59 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
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
[not found] ` <20080128202923.609249585-sJ/iWh9BUns@public.gmane.org>
2008-01-28 22:06 ` Christoph Lameter
2008-01-29 0:05 ` Robin Holt
[not found] ` <20080129000534.GT3058-sJ/iWh9BUns@public.gmane.org>
2008-01-29 1:19 ` Christoph Lameter
2008-01-29 13:59 ` Andrea Arcangeli [this message]
[not found] ` <20080129135914.GF7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-29 14:34 ` Andrea Arcangeli
2008-01-29 19:49 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801291148080.24807-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
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
[not found] ` <20080205180557.GC29502-26w3C0LaAnFg9hUCZPvPmw@public.gmane.org>
2008-02-05 18:19 ` Christoph Lameter
2008-01-28 20:28 ` [patch 2/6] mmu_notifier: Callbacks to invalidate address ranges Christoph Lameter
[not found] ` <20080128202923.849058104-sJ/iWh9BUns@public.gmane.org>
2008-01-29 16:20 ` Andrea Arcangeli
[not found] ` <20080129162004.GL7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-29 18:28 ` Andrea Arcangeli
[not found] ` <20080129182831.GS7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-29 20:30 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801291219030.25629-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-29 21:36 ` Andrea Arcangeli
[not found] ` <20080129213604.GW7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-29 21:53 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801291343530.26824-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-29 22:35 ` Andrea Arcangeli
[not found] ` <20080129223503.GY7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-29 22:55 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801291440170.27327-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-29 23:43 ` Andrea Arcangeli
[not found] ` <20080129234353.GZ7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-30 0:34 ` Christoph Lameter
2008-01-29 19:55 ` Christoph Lameter
2008-01-29 21:17 ` Andrea Arcangeli
[not found] ` <20080129211759.GV7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-29 21:35 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801291327330.26649-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-29 22:02 ` Andrea Arcangeli
[not found] ` <20080129220212.GX7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-29 22:39 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801291407380.27104-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-30 0:00 ` Andrea Arcangeli
[not found] ` <20080130000039.GA7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-30 0:05 ` Andrea Arcangeli
[not found] ` <20080130000559.GB7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-30 0:22 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801291621380.28027-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-30 0:59 ` Andrea Arcangeli
2008-01-30 8:26 ` Peter Zijlstra
2008-01-30 0:20 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801291620170.28027-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-30 0:28 ` Jack Steiner
[not found] ` <20080130002804.GA13840-sJ/iWh9BUns@public.gmane.org>
2008-01-30 0:35 ` Christoph Lameter
2008-01-30 13:37 ` Andrea Arcangeli
[not found] ` <20080130133720.GM7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-30 14:43 ` Jack Steiner
[not found] ` <20080130144305.GA25193-sJ/iWh9BUns@public.gmane.org>
2008-01-30 19:41 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801301140320.30568-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-30 20:29 ` Jack Steiner
[not found] ` <20080130202918.GB11324-sJ/iWh9BUns@public.gmane.org>
2008-01-30 20:55 ` Christoph Lameter
2008-01-30 16:11 ` Robin Holt
[not found] ` <20080130161123.GS26420-sJ/iWh9BUns@public.gmane.org>
2008-01-30 17:04 ` Andrea Arcangeli
[not found] ` <20080130170451.GP7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-30 17:30 ` Robin Holt
[not found] ` <20080130173009.GT26420-sJ/iWh9BUns@public.gmane.org>
2008-01-30 18:25 ` Andrea Arcangeli
[not found] ` <20080130182506.GQ7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-30 19:50 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801301147330.30568-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-30 22:18 ` Robin Holt
2008-01-30 23:52 ` Andrea Arcangeli
[not found] ` <20080130235214.GC7185-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-31 0:01 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801301555550.1722-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-31 0:34 ` Andrea Arcangeli
[not found] ` <20080131003434.GE7185-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-31 1:46 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801301728110.2454-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-31 2:34 ` Robin Holt
[not found] ` <20080131023401.GY26420-sJ/iWh9BUns@public.gmane.org>
2008-01-31 2:37 ` Christoph Lameter
2008-01-31 2:56 ` mmu_notifier: invalidate_range_start with lock=1 Christoph Lameter
2008-01-31 10:52 ` [patch 2/6] mmu_notifier: Callbacks to invalidate address ranges Andrea Arcangeli
2008-01-31 2:08 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801301805200.14071-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-31 2:42 ` Andrea Arcangeli
[not found] ` <20080131024252.GF7185-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-31 2:51 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801301848550.14263-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-31 13:39 ` Andrea Arcangeli
2008-01-30 19:35 ` Christoph Lameter
2008-01-28 20:28 ` [patch 3/6] mmu_notifier: invalidate_page callbacks for subsystems with rmap Christoph Lameter
2008-01-29 16:28 ` Robin Holt
2008-01-28 20:28 ` [patch 4/6] MMU notifier: invalidate_page callbacks using Linux rmaps Christoph Lameter
[not found] ` <20080128202924.334342410-sJ/iWh9BUns@public.gmane.org>
2008-01-29 14:03 ` Andrea Arcangeli
[not found] ` <20080129140345.GG7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-29 14:24 ` Andrea Arcangeli
[not found] ` <20080129142452.GH7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-29 19:51 ` Christoph Lameter
2008-01-28 20:28 ` [patch 5/6] mmu_notifier: Callbacks for xip_filemap.c Christoph Lameter
2008-01-28 20:28 ` [patch 6/6] mmu_notifier: Add invalidate_all() Christoph Lameter
2008-01-29 16:31 ` Robin Holt
[not found] ` <20080129163158.GX3058-sJ/iWh9BUns@public.gmane.org>
2008-01-29 20:02 ` Christoph Lameter
-- strict thread matches above, loose matches on Subject: below --
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
[not found] ` <20080130022944.236370194-sJ/iWh9BUns@public.gmane.org>
2008-01-30 15:37 ` Andrea Arcangeli
[not found] ` <20080130153749.GN7233-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-30 15:53 ` Jack Steiner
[not found] ` <20080130155306.GA13746-sJ/iWh9BUns@public.gmane.org>
2008-01-30 16:38 ` Andrea Arcangeli
2008-01-30 19:19 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801301116510.27491-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-30 22:20 ` Robin Holt
[not found] ` <20080130222035.GX26420-sJ/iWh9BUns@public.gmane.org>
2008-01-30 23:38 ` Andrea Arcangeli
2008-01-30 23:55 ` Christoph Lameter
[not found] ` <Pine.LNX.4.64.0801301552210.1722-RYO/mD75kfhx2SFC9UQUAuF7EQX82lMiAL8bYrjMMd8@public.gmane.org>
2008-01-31 0:12 ` Andrea Arcangeli
[not found] ` <20080131001258.GD7185-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
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
[not found] ` <20080130180207.GU26420-sJ/iWh9BUns@public.gmane.org>
2008-01-30 19:08 ` Christoph Lameter
2008-01-30 19:14 ` Christoph Lameter
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-02-15 6:48 [ofa-general] [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 ` [ofa-general] " Andrew Morton
2008-02-16 8:45 ` Avi Kivity
2008-02-16 8:56 ` [ofa-general] " Andrew Morton
2008-02-16 9:21 ` Avi Kivity
2008-02-16 19:21 ` [ofa-general] " Christoph Lameter
2008-02-17 3:01 ` Andrea Arcangeli
2008-02-17 12:24 ` Robin Holt
2008-02-17 5:04 ` Doug Maxey
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=20080129135914.GF7233@v2.random \
--to=andrea-atkuwr5tajbwk0htik3j/w@public.gmane.org \
--cc=a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw@public.gmane.org \
--cc=avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
--cc=benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org \
--cc=clameter-sJ/iWh9BUns@public.gmane.org \
--cc=daniel.blueman-xqY44rlHlBpWk0Htik3J/w@public.gmane.org \
--cc=holt-sJ/iWh9BUns@public.gmane.org \
--cc=hugh-DTz5qymZ9yRBDgjK7y7TUQ@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org \
--cc=npiggin-l3A5Bk7waGM@public.gmane.org \
--cc=steiner-sJ/iWh9BUns@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