* [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration
@ 2012-06-21 1:00 David Rientjes
2012-06-21 12:42 ` Mel Gorman
2012-06-21 23:46 ` Andrew Morton
0 siblings, 2 replies; 10+ messages in thread
From: David Rientjes @ 2012-06-21 1:00 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton
Cc: Mel Gorman, KOSAKI Motohiro, linux-kernel, linux-mm
If the range passed to mbind() is not allocated on nodes set in the
nodemask, it migrates the pages to respect the constraint.
The final formal of migrate_pages() is a mode of type enum migrate_mode,
not a boolean. do_mbind() is currently passing "true" which is the
equivalent of MIGRATE_SYNC_LIGHT. This should instead be MIGRATE_SYNC
for synchronous page migration.
Signed-off-by: David Rientjes <rientjes@google.com>
---
mm/mempolicy.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -1177,7 +1177,7 @@ static long do_mbind(unsigned long start, unsigned long len,
if (!list_empty(&pagelist)) {
nr_failed = migrate_pages(&pagelist, new_vma_page,
(unsigned long)vma,
- false, true);
+ false, MIGRATE_SYNC);
if (nr_failed)
putback_lru_pages(&pagelist);
}
--
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>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration
2012-06-21 1:00 [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration David Rientjes
@ 2012-06-21 12:42 ` Mel Gorman
2012-06-21 23:46 ` Andrew Morton
1 sibling, 0 replies; 10+ messages in thread
From: Mel Gorman @ 2012-06-21 12:42 UTC (permalink / raw)
To: David Rientjes
Cc: Linus Torvalds, Andrew Morton, KOSAKI Motohiro, linux-kernel,
linux-mm
On Wed, Jun 20, 2012 at 06:00:12PM -0700, David Rientjes wrote:
> If the range passed to mbind() is not allocated on nodes set in the
> nodemask, it migrates the pages to respect the constraint.
>
> The final formal of migrate_pages() is a mode of type enum migrate_mode,
> not a boolean. do_mbind() is currently passing "true" which is the
> equivalent of MIGRATE_SYNC_LIGHT. This should instead be MIGRATE_SYNC
> for synchronous page migration.
>
> Signed-off-by: David Rientjes <rientjes@google.com>
Acked-by: Mel Gorman <mgorman@suse.de>
--
Mel Gorman
SUSE Labs
--
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>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration
2012-06-21 1:00 [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration David Rientjes
2012-06-21 12:42 ` Mel Gorman
@ 2012-06-21 23:46 ` Andrew Morton
2012-06-22 0:46 ` Linus Torvalds
1 sibling, 1 reply; 10+ messages in thread
From: Andrew Morton @ 2012-06-21 23:46 UTC (permalink / raw)
To: David Rientjes
Cc: Linus Torvalds, Mel Gorman, KOSAKI Motohiro, linux-kernel,
linux-mm, Peter Zijlstra, Ingo Molnar
On Wed, 20 Jun 2012 18:00:12 -0700 (PDT)
David Rientjes <rientjes@google.com> wrote:
> If the range passed to mbind() is not allocated on nodes set in the
> nodemask, it migrates the pages to respect the constraint.
>
> The final formal of migrate_pages() is a mode of type enum migrate_mode,
> not a boolean. do_mbind() is currently passing "true" which is the
> equivalent of MIGRATE_SYNC_LIGHT. This should instead be MIGRATE_SYNC
> for synchronous page migration.
>
> Signed-off-by: David Rientjes <rientjes@google.com>
> ---
> mm/mempolicy.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/mempolicy.c b/mm/mempolicy.c
> --- a/mm/mempolicy.c
> +++ b/mm/mempolicy.c
> @@ -1177,7 +1177,7 @@ static long do_mbind(unsigned long start, unsigned long len,
> if (!list_empty(&pagelist)) {
> nr_failed = migrate_pages(&pagelist, new_vma_page,
> (unsigned long)vma,
> - false, true);
> + false, MIGRATE_SYNC);
> if (nr_failed)
> putback_lru_pages(&pagelist);
> }
I can't really do anything with this patch - it's a bug added by
Peter's "mm/mpol: Simplify do_mbind()" and added to linux-next via one
of Ingo's trees.
And I can't cleanly take the patch over as it's all bound up with the
other changes for sched/numa balancing.
Is that patchset actually going anywhere in the short term in its
present form? If not, methinks it would be better to pull it out of
-next for now.
--
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>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration
2012-06-21 23:46 ` Andrew Morton
@ 2012-06-22 0:46 ` Linus Torvalds
2012-06-22 1:45 ` Andrew Morton
0 siblings, 1 reply; 10+ messages in thread
From: Linus Torvalds @ 2012-06-22 0:46 UTC (permalink / raw)
To: Andrew Morton
Cc: David Rientjes, Mel Gorman, KOSAKI Motohiro, linux-kernel,
linux-mm, Peter Zijlstra, Ingo Molnar
On Thu, Jun 21, 2012 at 4:46 PM, Andrew Morton
<akpm@linux-foundation.org> wrote:
>
> I can't really do anything with this patch - it's a bug added by
> Peter's "mm/mpol: Simplify do_mbind()" and added to linux-next via one
> of Ingo's trees.
>
> And I can't cleanly take the patch over as it's all bound up with the
> other changes for sched/numa balancing.
I took the patch, it looked obviously correct (passing in a boolean
was clearly crap).
I wonder if I should make sparse warn about any casts to/from enums.
They tend to always be wrong.
Linus
--
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>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration
2012-06-22 0:46 ` Linus Torvalds
@ 2012-06-22 1:45 ` Andrew Morton
2012-06-22 2:22 ` Linus Torvalds
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Andrew Morton @ 2012-06-22 1:45 UTC (permalink / raw)
To: Linus Torvalds
Cc: David Rientjes, Mel Gorman, KOSAKI Motohiro, linux-kernel,
linux-mm, Peter Zijlstra, Ingo Molnar
On Thu, 21 Jun 2012 17:46:52 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Thu, Jun 21, 2012 at 4:46 PM, Andrew Morton
> <akpm@linux-foundation.org> wrote:
> >
> > I can't really do anything with this patch - it's a bug added by
> > Peter's "mm/mpol: Simplify do_mbind()" and added to linux-next via one
> > of Ingo's trees.
> >
> > And I can't cleanly take the patch over as it's all bound up with the
> > other changes for sched/numa balancing.
>
> I took the patch, it looked obviously correct (passing in a boolean
> was clearly crap).
Ah, OK, the bug was actually "retained" by "mm/mpol: Simplify do_mbind()".
I do still ask what the plans are for that patchset..
> I wonder if I should make sparse warn about any casts to/from enums.
> They tend to always be wrong.
I think it would be worth trying, see how much fallout there is. Also
casts from "enum a" to "enum b". We've had a few of those,
unintentionally.
And casts to/from bool, perhaps. To squish the warning we'd do things
like a_bool = !!a_int. That generates extra code, but gcc internally
generates extra code for a_bool = a_int anyway, and a quick test here
indicates that the generated code is identical (testl/setne).
It would be nice to find a way of converting an integer which is known
to be 1 or 0 into a bool without generating any code, but I haven't
found a way of tricking the compiler into doing that. It's all a bit
of a downside to using bool at all.
--
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>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration
2012-06-22 1:45 ` Andrew Morton
@ 2012-06-22 2:22 ` Linus Torvalds
2012-06-22 3:33 ` Linus Torvalds
2012-06-22 7:12 ` Ingo Molnar
2 siblings, 0 replies; 10+ messages in thread
From: Linus Torvalds @ 2012-06-22 2:22 UTC (permalink / raw)
To: Andrew Morton
Cc: David Rientjes, Mel Gorman, KOSAKI Motohiro, linux-kernel,
linux-mm, Peter Zijlstra, Ingo Molnar
On Thu, Jun 21, 2012 at 6:45 PM, Andrew Morton
<akpm@linux-foundation.org> wrote:
>
> And casts to/from bool, perhaps. To squish the warning we'd do things
> like a_bool = !!a_int. That generates extra code, but gcc internally
> generates extra code for a_bool = a_int anyway, and a quick test here
> indicates that the generated code is identical (testl/setne).
It *has* to generate extra code. A cast to Bool is very much not at
all like a normal cast. All the traditional C casts just do a pure bit
truncate (or zero/sign extension) keeping the same value.
A cast to bool is totally different. It is exactly the same as "test
against zero" - so it in no way acts like a traditional integer cast
to a one-bit integer.
I'm not 100% sure the use of "bool" is a great idea, and people who
use pointers to bools are crazy mf's (you can break the fundamental
property of bools by assigning random values through the pointer), but
_Bool certainly ahs the _potential_ to be a good thing. The reason I'm
nervous about it is exactly that people get it wrong so easily because
they do *not* act like any other C type (the whole pointer-to-bool
thing being one example of people doing bad things - I personally
would be much happier if _Bool acted more like a one-bit bitfield and
could not have its address taken).
Linus
--
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>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration
2012-06-22 1:45 ` Andrew Morton
2012-06-22 2:22 ` Linus Torvalds
@ 2012-06-22 3:33 ` Linus Torvalds
2012-06-22 3:59 ` Linus Torvalds
2012-06-22 7:12 ` Ingo Molnar
2 siblings, 1 reply; 10+ messages in thread
From: Linus Torvalds @ 2012-06-22 3:33 UTC (permalink / raw)
To: Andrew Morton
Cc: David Rientjes, Mel Gorman, KOSAKI Motohiro, linux-kernel,
linux-mm, Peter Zijlstra, Ingo Molnar
On Thu, Jun 21, 2012 at 6:45 PM, Andrew Morton
<akpm@linux-foundation.org> wrote:
>
>> I wonder if I should make sparse warn about any casts to/from enums.
>> They tend to always be wrong.
>
> I think it would be worth trying, see how much fallout there is. Also
> casts from "enum a" to "enum b". We've had a few of those,
> unintentionally.
Ugh. We have this all over. Well, at least in multiple places.
Like <linux/personality.h>, which does things like
PER_LINUX_32BIT = 0x0000 | ADDR_LIMIT_32BIT,
where PER_LINUX_32BIT is one enum, and ADDR_LIMIT_32BIT is a different one.
And things like
WORK_STRUCT_PENDING = 1 << WORK_STRUCT_PENDING_BIT,
in <linux/workqueue.h> is similar.
Sure, my quick warning generator gives lots of extraneous warnings,
and it complains about the above kind of "mixing enum with int"
behavior, but the above is a very real example of casting an enum to
an integer. And we *want* it to happen in the above cases.
I'll see what it looks like if I only warn about casting *to* an enum.
Linus
--
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>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration
2012-06-22 3:33 ` Linus Torvalds
@ 2012-06-22 3:59 ` Linus Torvalds
0 siblings, 0 replies; 10+ messages in thread
From: Linus Torvalds @ 2012-06-22 3:59 UTC (permalink / raw)
To: Andrew Morton
Cc: David Rientjes, Mel Gorman, KOSAKI Motohiro, linux-kernel,
linux-mm, Peter Zijlstra, Ingo Molnar
On Thu, Jun 21, 2012 at 8:33 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> I'll see what it looks like if I only warn about casting *to* an enum.
Hmm. That results in much fewer warnings. Not that I'm sure that my
sparse hack is right. But for my normal build (which is pretty
minimal), I get:
drivers/ata/libahci.c:1786:16: warning: casting to an enum type
drivers/ata/libata-sff.c:1662:16: warning: casting to an enum type
drivers/gpu/drm/i915/i915_irq.c:2300:16: warning: casting to an enum type
drivers/gpu/drm/i915/i915_irq.c:2544:16: warning: casting to an enum type
drivers/gpu/drm/i915/i915_irq.c:740:16: warning: casting to an enum type
drivers/gpu/drm/i915/intel_panel.c:319:50: warning: casting to an enum type
drivers/input/mouse/lifebook.c:148:59: warning: casting to an enum type
drivers/input/mouse/lifebook.c:153:80: warning: casting to an enum type
drivers/input/mouse/lifebook.c:156:59: warning: casting to an enum type
drivers/input/mouse/lifebook.c:159:73: warning: casting to an enum type
drivers/input/mouse/synaptics.c:1129:86: warning: casting to an enum type
drivers/input/serio/i8042.c:533:16: warning: casting to an enum type
drivers/input/serio/i8042.c:693:16: warning: casting to an enum type
drivers/net/ethernet/realtek/r8169.c:5860:16: warning: casting to
an enum type
drivers/pci/probe.c:511:26: warning: casting to an enum type
drivers/tty/serial/8250/8250.c:1556:16: warning: casting to an enum type
drivers/usb/host/xhci-ring.c:2419:24: warning: casting to an enum type
fs/sysfs/sysfs.h:114:51: warning: casting to an enum type
include/linux/mm.h:660:47: warning: casting to an enum type
kernel/sched/rt.c:32:21: warning: casting to an enum type
kernel/time/alarmtimer.c:231:16: warning: casting to an enum type
kernel/time/alarmtimer.c:439:16: warning: casting to an enum type
lib/zlib_deflate/deflate.c:1035:13: warning: casting to an enum type
lib/zlib_deflate/deflate.c:1041:13: warning: casting to an enum type
lib/zlib_deflate/deflate.c:1044:5: warning: casting to an enum type
lib/zlib_deflate/deflate.c:1045:30: warning: casting to an enum type
lib/zlib_deflate/deflate.c:1138:21: warning: casting to an enum type
lib/zlib_deflate/deflate.c:1140:5: warning: casting to an enum type
lib/zlib_deflate/deflate.c:1141:30: warning: casting to an enum type
lib/zlib_deflate/deflate.c:1233:25: warning: casting to an enum type
lib/zlib_deflate/deflate.c:1262:5: warning: casting to an enum type
lib/zlib_deflate/deflate.c:1263:30: warning: casting to an enum type
net/ipv4/ipmr.c:449:24: warning: casting to an enum type
net/ipv4/netfilter/nf_defrag_ipv4.c:58:47: warning: casting to an enum type
net/ipv4/netfilter/nf_defrag_ipv4.c:60:48: warning: casting to an enum type
net/ipv6/netfilter/nf_defrag_ipv6_hooks.c:49:48: warning: casting
to an enum type
net/ipv6/netfilter/nf_defrag_ipv6_hooks.c:51:49: warning: casting
to an enum type
sound/pci/intel8x0.c:821:24: warning: casting to an enum type
but the ones I looked at were all ok. Admittedly I only looked at a
few (maybe five), though.
That said, the drivers/pci/probe.c case is actually ugly code. That
"agp_speeds[]" array *could* be an array of the proper enum's, rather
than "unsigned char". I don't know why it isn't (but 'unsigned char'
may be more efficient than a compiler that might make it an 'int').
So the warning *may* be useful. However, to get sparse to give that
warning I had to do some hacks that broke other parts of sparse, so I
don't have a good sparse patch yet. I'll look at it some more
tomorrow.
Linus
--
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>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration
2012-06-22 1:45 ` Andrew Morton
2012-06-22 2:22 ` Linus Torvalds
2012-06-22 3:33 ` Linus Torvalds
@ 2012-06-22 7:12 ` Ingo Molnar
2012-06-22 7:41 ` Ingo Molnar
2 siblings, 1 reply; 10+ messages in thread
From: Ingo Molnar @ 2012-06-22 7:12 UTC (permalink / raw)
To: Andrew Morton
Cc: Linus Torvalds, David Rientjes, Mel Gorman, KOSAKI Motohiro,
linux-kernel, linux-mm, Peter Zijlstra, Ingo Molnar
* Andrew Morton <akpm@linux-foundation.org> wrote:
> On Thu, 21 Jun 2012 17:46:52 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> > On Thu, Jun 21, 2012 at 4:46 PM, Andrew Morton
> > <akpm@linux-foundation.org> wrote:
> > >
> > > I can't really do anything with this patch - it's a bug
> > > added by Peter's "mm/mpol: Simplify do_mbind()" and added
> > > to linux-next via one of Ingo's trees.
> > >
> > > And I can't cleanly take the patch over as it's all bound
> > > up with the other changes for sched/numa balancing.
> >
> > I took the patch, it looked obviously correct (passing in a
> > boolean was clearly crap).
>
> Ah, OK, the bug was actually "retained" by "mm/mpol: Simplify
> do_mbind()".
>
> I do still ask what the plans are for that patchset..
Somewhat off topic, but the main sched/numa objections were over
the mbind/etc. syscalls and the extra configuration space - we
dropped those bits and just turned it all into an improved NUMA
scheduling feature, as suggested by Peter and me in the original
discussion.
There were no objections to that approach so the reworked NUMA
scheduling/balancing scheme is now in the scheduler tree
(tip:sched/core).
The mbind/etc. syscall changes and all the related cleanups,
speedups and reorganization of the MM code are still in limbo.
I dropped them with the rest of tip:sched/numa as nobody from
the MM side expressed much interest in them and I wanted to keep
things simple and not carry objected-to commits.
We can revive them if there's interest and consensus. I suspect
once we gather experience with the automatic NUMA scheduling
feature we'll see whether it's worth exposing that to user-space
as an ABI - or whether we should go back to random placement and
forget about it all.
Thanks,
Ingo
--
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>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration
2012-06-22 7:12 ` Ingo Molnar
@ 2012-06-22 7:41 ` Ingo Molnar
0 siblings, 0 replies; 10+ messages in thread
From: Ingo Molnar @ 2012-06-22 7:41 UTC (permalink / raw)
To: Andrew Morton
Cc: Linus Torvalds, David Rientjes, Mel Gorman, KOSAKI Motohiro,
linux-kernel, linux-mm, Peter Zijlstra, Ingo Molnar
* Ingo Molnar <mingo@kernel.org> wrote:
> > I do still ask what the plans are for that patchset..
>
> Somewhat off topic, but the main sched/numa objections were
> over the mbind/etc. syscalls and the extra configuration space
> - we dropped those bits and just turned it all into an
> improved NUMA scheduling feature, as suggested by Peter and me
> in the original discussion.
>
> There were no objections to that approach so the reworked NUMA
> scheduling/balancing scheme is now in the scheduler tree
> (tip:sched/core).
>
> The mbind/etc. syscall changes and all the related cleanups,
> speedups and reorganization of the MM code are still in limbo.
>
> I dropped them with the rest of tip:sched/numa as nobody from
> the MM side expressed much interest in them and I wanted to
> keep things simple and not carry objected-to commits.
>From your mail it appears that you weren't aware that this was
all queued up (clearly our fault) - so here's a quick status
dump, please let us know what you think and whether we can keep
them.
The ones with mm/ effect that we kept are these, which are
needed for scheduler directed opportunistic/lazy memory
migration between nodes:
e9941dae8708 mm/mpol: Lazy migrate a process/vma
a9ea2f1e496e mm/mpol: Make mempolicy home-node aware
5dca4a911980 mm/mpol: Split and explose some mempolicy functions
f1b39afe3e55 mm/mpol: Introduce vma_put_policy()
9fc52f506a4e mm/mpol: Introduce vma_dup_policy()
6494a5f2cb89 mm/mpol: Simplify do_mbind()
65699050e8aa mm: Handle misplaced anon pages
4783af477d3d mm: Migrate misplaced page
147c5c460202 mm/mpol: Check for misplaced page
84f1e3478238 mm/mpol: Add MPOL_MF_NOOP
68d9661d42bf mm/mpol: Add MPOL_MF_LAZY ...
03ed7b538ca0 mm/mpol: Make MPOL_LOCAL a real policy
e975d6ac08f3 mm/mpol: Remove NUMA_INTERLEAVE_HIT
8c41549ed1b3 mm/mpol: Re-implement check_*_range() using walk_page_range()
2ab41dd59922 mm: Optimize put_mems_allowed() usage
Or with diffstats:
e9941dae8708 mm/mpol: Lazy migrate a process/vma
mm/mempolicy.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 84 insertions(+)
a9ea2f1e496e mm/mpol: Make mempolicy home-node aware
mm/mempolicy.c | 29 +++++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
5dca4a911980 mm/mpol: Split and explose some mempolicy functions
mm/mempolicy.c | 111 ++++++++++++++++++++++++++++++++------------------------
1 file changed, 63 insertions(+), 48 deletions(-)
f1b39afe3e55 mm/mpol: Introduce vma_put_policy()
mm/mempolicy.c | 5 +++++
mm/mmap.c | 8 ++++----
2 files changed, 9 insertions(+), 4 deletions(-)
9fc52f506a4e mm/mpol: Introduce vma_dup_policy()
mm/mempolicy.c | 11 +++++++++++
mm/mmap.c | 17 +++++------------
2 files changed, 16 insertions(+), 12 deletions(-)
6494a5f2cb89 mm/mpol: Simplify do_mbind()
mm/mempolicy.c | 73 +++++++++++++++++++++++++++++---------------------------
1 file changed, 38 insertions(+), 35 deletions(-)
65699050e8aa mm: Handle misplaced anon pages
mm/memory.c | 17 +++++++++++++++++
mm/swapfile.c | 13 +++++++++++++
2 files changed, 30 insertions(+)
4783af477d3d mm: Migrate misplaced page
mm/mempolicy.c | 19 +++++++++
mm/migrate.c | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 148 insertions(+), 1 deletion(-)
147c5c460202 mm/mpol: Check for misplaced page
mm/mempolicy.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)
84f1e3478238 mm/mpol: Add MPOL_MF_NOOP
mm/mempolicy.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
68d9661d42bf mm/mpol: Add MPOL_MF_LAZY ...
mm/mempolicy.c | 20 +++++++-----
mm/migrate.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
mm/rmap.c | 6 ++--
3 files changed, 109 insertions(+), 13 deletions(-)
03ed7b538ca0 mm/mpol: Make MPOL_LOCAL a real policy
mm/mempolicy.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
e975d6ac08f3 mm/mpol: Remove NUMA_INTERLEAVE_HIT
mm/mempolicy.c | 68 +++++++++++++++++---------------------------------------
1 file changed, 21 insertions(+), 47 deletions(-)
8c41549ed1b3 mm/mpol: Re-implement check_*_range() using walk_page_range()
mm/mempolicy.c | 141 ++++++++++++++++++--------------------------------------
1 file changed, 45 insertions(+), 96 deletions(-)
2ab41dd59922 mm: Optimize put_mems_allowed() usage
mm/filemap.c | 4 ++--
mm/hugetlb.c | 4 ++--
mm/mempolicy.c | 14 +++++++-------
mm/page_alloc.c | 8 ++++----
mm/slab.c | 4 ++--
mm/slub.c | 16 +++-------------
6 files changed, 20 insertions(+), 30 deletions(-)
These are mostly lazy migration facility enablers. On a second
note, should we internalize MPOL_MF_LAZY as well, to not expose
it to user-space?
Thanks,
Ingo
--
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>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2012-06-22 7:42 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-21 1:00 [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronous migration David Rientjes
2012-06-21 12:42 ` Mel Gorman
2012-06-21 23:46 ` Andrew Morton
2012-06-22 0:46 ` Linus Torvalds
2012-06-22 1:45 ` Andrew Morton
2012-06-22 2:22 ` Linus Torvalds
2012-06-22 3:33 ` Linus Torvalds
2012-06-22 3:59 ` Linus Torvalds
2012-06-22 7:12 ` Ingo Molnar
2012-06-22 7:41 ` Ingo Molnar
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).