Re: [patch 3.5-rc3] mm, mempolicy: fix mbind() to do synchronousmigration

From: Ingo Molnar
Date: Fri Jun 22 2012 - 03:42:09 EST



* Ingo Molnar <mingo@xxxxxxxxxx> 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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/