From: Stephen Rothwell <sfr@canb.auug.org.au>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-next@vger.kernel.org, linux-kernel@vger.kernel.org,
Lee Schermerhorn <lee.schermerhorn@hp.com>,
Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
"H. Peter Anvin" <hpa@zytor.com>,
Peter Zijlstra <peterz@infradead.org>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Mel Gorman <mgorman@suse.de>
Subject: linux-next: manual merge of the akpm tree with the tip tree
Date: Thu, 27 Sep 2012 16:57:07 +1000 [thread overview]
Message-ID: <20120927165707.3baaa7f083da9f157a09c653@canb.auug.org.au> (raw)
[-- Attachment #1: Type: text/plain, Size: 2858 bytes --]
Hi Andrew,
Today's linux-next merge of the akpm tree got a conflict in
mm/mempolicy.c between commit 4d58c795f691 ("mm/mpol: Check for misplaced
page") from the tip tree and commit "mempolicy: fix refcount leak in
mpol_set_shared_policy()" from the akpm tree.
I fixed it up (see below) and can carry the fix as necessary (no action
is required).
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc mm/mempolicy.c
index a0eec0e,1763418..0000000
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@@ -2174,82 -2157,12 +2174,88 @@@ mpol_shared_policy_lookup(struct shared
return pol;
}
+/**
+ * mpol_misplaced - check whether current page node is valid in policy
+ *
+ * @page - page to be checked
+ * @vma - vm area where page mapped
+ * @addr - virtual address where page mapped
+ *
+ * Lookup current policy node id for vma,addr and "compare to" page's
+ * node id.
+ *
+ * Returns:
+ * -1 - not misplaced, page is in the right node
+ * node - node id where the page should be
+ *
+ * Policy determination "mimics" alloc_page_vma().
+ * Called from fault path where we know the vma and faulting address.
+ */
+int mpol_misplaced(struct page *page, struct vm_area_struct *vma, unsigned long addr)
+{
+ struct mempolicy *pol;
+ struct zone *zone;
+ int curnid = page_to_nid(page);
+ unsigned long pgoff;
+ int polnid = -1;
+ int ret = -1;
+
+ BUG_ON(!vma);
+
+ pol = get_vma_policy(current, vma, addr);
+ if (!(pol->flags & MPOL_F_MOF))
+ goto out;
+
+ switch (pol->mode) {
+ case MPOL_INTERLEAVE:
+ BUG_ON(addr >= vma->vm_end);
+ BUG_ON(addr < vma->vm_start);
+
+ pgoff = vma->vm_pgoff;
+ pgoff += (addr - vma->vm_start) >> PAGE_SHIFT;
+ polnid = offset_il_node(pol, vma, pgoff);
+ break;
+
+ case MPOL_PREFERRED:
+ if (pol->flags & MPOL_F_LOCAL)
+ polnid = numa_node_id();
+ else
+ polnid = pol->v.preferred_node;
+ break;
+
+ case MPOL_BIND:
+ /*
+ * allows binding to multiple nodes.
+ * use current page if in policy nodemask,
+ * else select nearest allowed node, if any.
+ * If no allowed nodes, use current [!misplaced].
+ */
+ if (node_isset(curnid, pol->v.nodes))
+ goto out;
+ (void)first_zones_zonelist(
+ node_zonelist(numa_node_id(), GFP_HIGHUSER),
+ gfp_zone(GFP_HIGHUSER),
+ &pol->v.nodes, &zone);
+ polnid = zone->node;
+ break;
+
+ default:
+ BUG();
+ }
+ if (curnid != polnid)
+ ret = polnid;
+out:
+ mpol_cond_put(pol);
+
+ return ret;
+}
+
+ static void sp_free(struct sp_node *n)
+ {
+ mpol_put(n->policy);
+ kmem_cache_free(sn_cache, n);
+ }
+
static void sp_delete(struct shared_policy *sp, struct sp_node *n)
{
pr_debug("deleting %lx-l%lx\n", n->start, n->end);
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
next reply other threads:[~2012-09-27 6:57 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-27 6:57 Stephen Rothwell [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-05-29 10:57 linux-next: manual merge of the akpm tree with the tip tree Stephen Rothwell
2020-05-29 10:49 Stephen Rothwell
2020-01-22 6:37 Stephen Rothwell
2019-02-13 6:49 Stephen Rothwell
2019-02-13 19:59 ` Andrew Morton
2018-01-09 5:02 Stephen Rothwell
2018-01-09 10:36 ` Andy Shevchenko
2017-10-16 18:48 Mark Brown
2017-10-16 20:01 ` Mark Brown
2017-04-12 7:08 Stephen Rothwell
2017-03-31 5:44 Stephen Rothwell
2017-03-31 6:42 ` Peter Zijlstra
2017-03-31 13:54 ` Andi Kleen
2017-03-31 14:45 ` Peter Zijlstra
2017-03-31 16:02 ` Andi Kleen
2017-03-31 17:48 ` Peter Zijlstra
2017-03-24 5:40 Stephen Rothwell
2017-03-24 8:05 ` Peter Zijlstra
2016-03-10 5:28 Stephen Rothwell
2016-03-10 8:00 ` Ingo Molnar
2016-03-10 20:38 ` Andrew Morton
2016-02-09 4:50 Stephen Rothwell
2016-02-09 14:04 ` Matt Fleming
2016-02-09 14:07 ` Ingo Molnar
2015-06-09 14:12 Stephen Rothwell
2015-04-08 8:49 Stephen Rothwell
2015-04-08 15:13 ` Ingo Molnar
2015-04-08 20:46 ` Andrew Morton
2015-04-08 21:57 ` Stephen Rothwell
2014-03-21 6:45 Stephen Rothwell
2014-01-13 6:17 Stephen Rothwell
2013-04-23 7:17 Stephen Rothwell
2013-02-14 4:33 Stephen Rothwell
2013-02-14 4:25 Stephen Rothwell
2013-02-14 4:34 ` H. Peter Anvin
2013-02-04 7:00 Stephen Rothwell
2013-01-28 12:29 Stephen Rothwell
2012-12-10 8:29 Stephen Rothwell
2012-12-10 10:46 ` Ingo Molnar
2012-12-10 8:25 Stephen Rothwell
2012-12-10 8:20 Stephen Rothwell
2012-12-10 8:11 Stephen Rothwell
2012-12-10 8:01 Stephen Rothwell
2012-12-10 11:13 ` Will Deacon
2012-12-10 7:47 Stephen Rothwell
2012-11-15 6:32 Stephen Rothwell
2012-10-01 14:22 Stephen Rothwell
2012-09-27 7:15 Stephen Rothwell
2012-09-27 7:10 Stephen Rothwell
2012-09-27 7:04 Stephen Rothwell
2012-09-27 6:49 Stephen Rothwell
2012-07-27 3:50 Stephen Rothwell
2012-07-25 4:08 Stephen Rothwell
2012-07-25 7:10 ` Ingo Molnar
2012-07-25 7:35 ` Johannes Weiner
2012-07-25 18:57 ` Andrew Morton
2012-07-25 19:03 ` Ingo Molnar
2012-07-25 19:26 ` Andrew Morton
2012-07-26 7:51 ` Ingo Molnar
2012-07-26 18:05 ` Andrew Morton
2012-07-25 19:20 ` Johannes Weiner
2012-07-26 7:03 ` Stephen Rothwell
2012-05-21 8:29 Stephen Rothwell
2012-05-21 8:04 Stephen Rothwell
2012-05-21 7:59 Stephen Rothwell
2012-03-27 4:57 Stephen Rothwell
2012-03-26 4:01 Stephen Rothwell
2012-03-26 5:20 ` Alex Shi
2012-03-08 6:32 Stephen Rothwell
2012-03-08 6:28 Stephen Rothwell
2012-02-29 6:27 Stephen Rothwell
2012-02-28 4:52 Stephen Rothwell
2012-02-27 5:53 Stephen Rothwell
2012-02-27 5:57 ` Cyrill Gorcunov
2012-02-27 6:02 ` H. Peter Anvin
2012-02-27 6:05 ` Cyrill Gorcunov
2012-02-27 6:01 ` H. Peter Anvin
2012-02-27 6:19 ` Stephen Rothwell
2012-02-27 5:44 Stephen Rothwell
2012-02-27 5:33 Stephen Rothwell
2012-02-27 5:23 Stephen Rothwell
2012-02-27 5:16 Stephen Rothwell
2011-12-06 4:04 Stephen Rothwell
2011-09-27 7:13 Stephen Rothwell
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=20120927165707.3baaa7f083da9f157a09c653@canb.auug.org.au \
--to=sfr@canb.auug.org.au \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=lee.schermerhorn@hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-next@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
/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;
as well as URLs for NNTP newsgroup(s).