numa: mempolicy: trivial debug fixes.
Enabling debugging fails to build due to the nodemask variable in do_mbind() having changed names, and then oopses on boot due to the assumption that the nodemask can be dereferenced -- which doesn't work out so well when the policy is changed to MPOL_DEFAULT with a NULL nodemask by numa_default_policy(). This fixes it up, and switches from PDprintk() to pr_debug() while we're at it. Signed-off-by: Paul Mundt <lethal@linux-sh.org> Cc: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
462e00cc71
commit
140d5a4904
|
@ -101,8 +101,6 @@
|
||||||
static struct kmem_cache *policy_cache;
|
static struct kmem_cache *policy_cache;
|
||||||
static struct kmem_cache *sn_cache;
|
static struct kmem_cache *sn_cache;
|
||||||
|
|
||||||
#define PDprintk(fmt...)
|
|
||||||
|
|
||||||
/* Highest zone. An specific allocation for a zone below that is not
|
/* Highest zone. An specific allocation for a zone below that is not
|
||||||
policied. */
|
policied. */
|
||||||
enum zone_type policy_zone = 0;
|
enum zone_type policy_zone = 0;
|
||||||
|
@ -175,7 +173,9 @@ static struct mempolicy *mpol_new(int mode, nodemask_t *nodes)
|
||||||
{
|
{
|
||||||
struct mempolicy *policy;
|
struct mempolicy *policy;
|
||||||
|
|
||||||
PDprintk("setting mode %d nodes[0] %lx\n", mode, nodes_addr(*nodes)[0]);
|
pr_debug("setting mode %d nodes[0] %lx\n",
|
||||||
|
mode, nodes ? nodes_addr(*nodes)[0] : -1);
|
||||||
|
|
||||||
if (mode == MPOL_DEFAULT)
|
if (mode == MPOL_DEFAULT)
|
||||||
return NULL;
|
return NULL;
|
||||||
policy = kmem_cache_alloc(policy_cache, GFP_KERNEL);
|
policy = kmem_cache_alloc(policy_cache, GFP_KERNEL);
|
||||||
|
@ -379,7 +379,7 @@ static int policy_vma(struct vm_area_struct *vma, struct mempolicy *new)
|
||||||
int err = 0;
|
int err = 0;
|
||||||
struct mempolicy *old = vma->vm_policy;
|
struct mempolicy *old = vma->vm_policy;
|
||||||
|
|
||||||
PDprintk("vma %lx-%lx/%lx vm_ops %p vm_file %p set_policy %p\n",
|
pr_debug("vma %lx-%lx/%lx vm_ops %p vm_file %p set_policy %p\n",
|
||||||
vma->vm_start, vma->vm_end, vma->vm_pgoff,
|
vma->vm_start, vma->vm_end, vma->vm_pgoff,
|
||||||
vma->vm_ops, vma->vm_file,
|
vma->vm_ops, vma->vm_file,
|
||||||
vma->vm_ops ? vma->vm_ops->set_policy : NULL);
|
vma->vm_ops ? vma->vm_ops->set_policy : NULL);
|
||||||
|
@ -776,8 +776,8 @@ long do_mbind(unsigned long start, unsigned long len,
|
||||||
if (!new)
|
if (!new)
|
||||||
flags |= MPOL_MF_DISCONTIG_OK;
|
flags |= MPOL_MF_DISCONTIG_OK;
|
||||||
|
|
||||||
PDprintk("mbind %lx-%lx mode:%ld nodes:%lx\n",start,start+len,
|
pr_debug("mbind %lx-%lx mode:%ld nodes:%lx\n",start,start+len,
|
||||||
mode,nodes_addr(nodes)[0]);
|
mode, nmask ? nodes_addr(*nmask)[0] : -1);
|
||||||
|
|
||||||
down_write(&mm->mmap_sem);
|
down_write(&mm->mmap_sem);
|
||||||
vma = check_range(mm, start, end, nmask,
|
vma = check_range(mm, start, end, nmask,
|
||||||
|
@ -1434,7 +1434,7 @@ static void sp_insert(struct shared_policy *sp, struct sp_node *new)
|
||||||
}
|
}
|
||||||
rb_link_node(&new->nd, parent, p);
|
rb_link_node(&new->nd, parent, p);
|
||||||
rb_insert_color(&new->nd, &sp->root);
|
rb_insert_color(&new->nd, &sp->root);
|
||||||
PDprintk("inserting %lx-%lx: %d\n", new->start, new->end,
|
pr_debug("inserting %lx-%lx: %d\n", new->start, new->end,
|
||||||
new->policy ? new->policy->policy : 0);
|
new->policy ? new->policy->policy : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1459,7 +1459,7 @@ mpol_shared_policy_lookup(struct shared_policy *sp, unsigned long idx)
|
||||||
|
|
||||||
static void sp_delete(struct shared_policy *sp, struct sp_node *n)
|
static void sp_delete(struct shared_policy *sp, struct sp_node *n)
|
||||||
{
|
{
|
||||||
PDprintk("deleting %lx-l%x\n", n->start, n->end);
|
pr_debug("deleting %lx-l%lx\n", n->start, n->end);
|
||||||
rb_erase(&n->nd, &sp->root);
|
rb_erase(&n->nd, &sp->root);
|
||||||
mpol_free(n->policy);
|
mpol_free(n->policy);
|
||||||
kmem_cache_free(sn_cache, n);
|
kmem_cache_free(sn_cache, n);
|
||||||
|
@ -1558,10 +1558,10 @@ int mpol_set_shared_policy(struct shared_policy *info,
|
||||||
struct sp_node *new = NULL;
|
struct sp_node *new = NULL;
|
||||||
unsigned long sz = vma_pages(vma);
|
unsigned long sz = vma_pages(vma);
|
||||||
|
|
||||||
PDprintk("set_shared_policy %lx sz %lu %d %lx\n",
|
pr_debug("set_shared_policy %lx sz %lu %d %lx\n",
|
||||||
vma->vm_pgoff,
|
vma->vm_pgoff,
|
||||||
sz, npol? npol->policy : -1,
|
sz, npol? npol->policy : -1,
|
||||||
npol ? nodes_addr(npol->v.nodes)[0] : -1);
|
npol ? nodes_addr(npol->v.nodes)[0] : -1);
|
||||||
|
|
||||||
if (npol) {
|
if (npol) {
|
||||||
new = sp_alloc(vma->vm_pgoff, vma->vm_pgoff + sz, npol);
|
new = sp_alloc(vma->vm_pgoff, vma->vm_pgoff + sz, npol);
|
||||||
|
|
Reference in New Issue