From: Adam Litke <agl@us.ibm.com>
To: dean gaudet <dean@arctic.org>
Cc: William Lee Irwin III <wli@holomorphy.com>,
"Eric W. Biederman" <ebiederm@xmission.com>,
linux-kernel@vger.kernel.org, ak@suse.de, clameter@sgi.com
Subject: [shm][hugetlb] Fix get_policy for stacked shared memory files
Date: Mon, 11 Jun 2007 16:34:54 -0500 [thread overview]
Message-ID: <1181597696.22671.2.camel@localhost.localdomain> (raw)
In-Reply-To: <Pine.LNX.4.64.0706092106220.10324@twinlark.arctic.org>
Here's another breakage as a result of shared memory stacked files :(
The NUMA policy for a VMA is determined by checking the following (in the order
given):
1) vma->vm_ops->get_policy() (if defined)
2) vma->vm_policy (if defined)
3) task->mempolicy (if defined)
4) Fall back to default_policy
By switching to stacked files for shared memory, get_policy() is now always set
to shm_get_policy which is a wrapper function. This causes us to stop at step
1, which yields NULL for hugetlb instead of task->mempolicy which was the
previous (and correct) result.
This patch modifies the shm_get_policy() wrapper to maintain steps 1-3 for the
wrapped vm_ops. Andi and Christoph, does this look right to you?
Signed-off-by: Adam Litke <agl@us.ibm.com>
diff --git a/ipc/shm.c b/ipc/shm.c
index 4fefbad..8d2672d 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -254,8 +254,10 @@ struct mempolicy *shm_get_policy(struct vm_area_struct *vma, unsigned long addr)
if (sfd->vm_ops->get_policy)
pol = sfd->vm_ops->get_policy(vma, addr);
- else
+ else if (vma->vm_policy)
pol = vma->vm_policy;
+ else
+ pol = current->mempolicy;
return pol;
}
#endif
--
Adam Litke - (agl at us.ibm.com)
IBM Linux Technology Center
next prev parent reply other threads:[~2007-06-11 21:35 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-16 5:41 2.6.21 numa policy and huge pages not working dean gaudet
2007-05-16 6:12 ` William Lee Irwin III
2007-06-09 18:06 ` dean gaudet
2007-06-10 4:10 ` dean gaudet
2007-06-10 4:51 ` William Lee Irwin III
2007-06-11 16:23 ` Adam Litke
2007-06-11 21:34 ` Adam Litke [this message]
2007-06-12 3:36 ` [shm][hugetlb] Fix get_policy for stacked shared memory files dean gaudet
2007-06-12 3:51 ` William Lee Irwin III
2007-06-12 4:30 ` Andrew Morton
2007-06-12 4:48 ` William Lee Irwin III
2007-06-12 10:20 ` Andi Kleen
2007-06-12 6:20 ` Eric W. Biederman
2007-06-12 6:58 ` William Lee Irwin III
2007-06-12 14:32 ` Adam Litke
2007-06-12 18:22 ` Eric W. Biederman
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=1181597696.22671.2.camel@localhost.localdomain \
--to=agl@us.ibm.com \
--cc=ak@suse.de \
--cc=clameter@sgi.com \
--cc=dean@arctic.org \
--cc=ebiederm@xmission.com \
--cc=linux-kernel@vger.kernel.org \
--cc=wli@holomorphy.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.