forked from Minki/linux
slab: remove nodeid in struct slab
We can get nodeid using address translation, so this field is not useful. Therefore, remove it. Acked-by: Andi Kleen <ak@linux.intel.com> Acked-by: Christoph Lameter <cl@linux.com> Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Pekka Enberg <penberg@iki.fi>
This commit is contained in:
parent
ac2b54edbc
commit
1ea991b00c
11
mm/slab.c
11
mm/slab.c
@ -222,7 +222,6 @@ struct slab {
|
||||
void *s_mem; /* including colour offset */
|
||||
unsigned int inuse; /* num of objs active in slab */
|
||||
kmem_bufctl_t free;
|
||||
unsigned short nodeid;
|
||||
};
|
||||
struct slab_rcu __slab_cover_slab_rcu;
|
||||
};
|
||||
@ -1099,8 +1098,7 @@ static void drain_alien_cache(struct kmem_cache *cachep,
|
||||
|
||||
static inline int cache_free_alien(struct kmem_cache *cachep, void *objp)
|
||||
{
|
||||
struct slab *slabp = virt_to_slab(objp);
|
||||
int nodeid = slabp->nodeid;
|
||||
int nodeid = page_to_nid(virt_to_page(objp));
|
||||
struct kmem_cache_node *n;
|
||||
struct array_cache *alien = NULL;
|
||||
int node;
|
||||
@ -1111,7 +1109,7 @@ static inline int cache_free_alien(struct kmem_cache *cachep, void *objp)
|
||||
* Make sure we are not freeing a object from another node to the array
|
||||
* cache on this cpu.
|
||||
*/
|
||||
if (likely(slabp->nodeid == node))
|
||||
if (likely(nodeid == node))
|
||||
return 0;
|
||||
|
||||
n = cachep->node[node];
|
||||
@ -2630,7 +2628,6 @@ static struct slab *alloc_slabmgmt(struct kmem_cache *cachep,
|
||||
}
|
||||
slabp->inuse = 0;
|
||||
slabp->s_mem = addr + colour_off;
|
||||
slabp->nodeid = nodeid;
|
||||
slabp->free = 0;
|
||||
return slabp;
|
||||
}
|
||||
@ -2707,7 +2704,7 @@ static void *slab_get_obj(struct kmem_cache *cachep, struct slab *slabp,
|
||||
next = slab_bufctl(slabp)[slabp->free];
|
||||
#if DEBUG
|
||||
slab_bufctl(slabp)[slabp->free] = BUFCTL_FREE;
|
||||
WARN_ON(slabp->nodeid != nodeid);
|
||||
WARN_ON(page_to_nid(virt_to_page(objp)) != nodeid);
|
||||
#endif
|
||||
slabp->free = next;
|
||||
|
||||
@ -2721,7 +2718,7 @@ static void slab_put_obj(struct kmem_cache *cachep, struct slab *slabp,
|
||||
|
||||
#if DEBUG
|
||||
/* Verify that the slab belongs to the intended node */
|
||||
WARN_ON(slabp->nodeid != nodeid);
|
||||
WARN_ON(page_to_nid(virt_to_page(objp)) != nodeid);
|
||||
|
||||
if (slab_bufctl(slabp)[objnr] + 1 <= SLAB_LIMIT + 1) {
|
||||
printk(KERN_ERR "slab: double free detected in cache "
|
||||
|
Loading…
Reference in New Issue
Block a user