|
@@ -1295,7 +1295,8 @@ static struct page *get_any_partial(struct kmem_cache *s, gfp_t flags)
|
|
|
* expensive if we do it every time we are trying to find a slab
|
|
|
* with available objects.
|
|
|
*/
|
|
|
- if (!s->defrag_ratio || get_cycles() % 1024 > s->defrag_ratio)
|
|
|
+ if (!s->remote_node_defrag_ratio ||
|
|
|
+ get_cycles() % 1024 > s->remote_node_defrag_ratio)
|
|
|
return NULL;
|
|
|
|
|
|
zonelist = &NODE_DATA(slab_node(current->mempolicy))
|
|
@@ -2209,7 +2210,7 @@ static int kmem_cache_open(struct kmem_cache *s, gfp_t gfpflags,
|
|
|
|
|
|
s->refcount = 1;
|
|
|
#ifdef CONFIG_NUMA
|
|
|
- s->defrag_ratio = 100;
|
|
|
+ s->remote_node_defrag_ratio = 100;
|
|
|
#endif
|
|
|
if (!init_kmem_cache_nodes(s, gfpflags & ~SLUB_DMA))
|
|
|
goto error;
|
|
@@ -3847,21 +3848,21 @@ static ssize_t free_calls_show(struct kmem_cache *s, char *buf)
|
|
|
SLAB_ATTR_RO(free_calls);
|
|
|
|
|
|
#ifdef CONFIG_NUMA
|
|
|
-static ssize_t defrag_ratio_show(struct kmem_cache *s, char *buf)
|
|
|
+static ssize_t remote_node_defrag_ratio_show(struct kmem_cache *s, char *buf)
|
|
|
{
|
|
|
- return sprintf(buf, "%d\n", s->defrag_ratio / 10);
|
|
|
+ return sprintf(buf, "%d\n", s->remote_node_defrag_ratio / 10);
|
|
|
}
|
|
|
|
|
|
-static ssize_t defrag_ratio_store(struct kmem_cache *s,
|
|
|
+static ssize_t remote_node_defrag_ratio_store(struct kmem_cache *s,
|
|
|
const char *buf, size_t length)
|
|
|
{
|
|
|
int n = simple_strtoul(buf, NULL, 10);
|
|
|
|
|
|
if (n < 100)
|
|
|
- s->defrag_ratio = n * 10;
|
|
|
+ s->remote_node_defrag_ratio = n * 10;
|
|
|
return length;
|
|
|
}
|
|
|
-SLAB_ATTR(defrag_ratio);
|
|
|
+SLAB_ATTR(remote_node_defrag_ratio);
|
|
|
#endif
|
|
|
|
|
|
static struct attribute * slab_attrs[] = {
|
|
@@ -3892,7 +3893,7 @@ static struct attribute * slab_attrs[] = {
|
|
|
&cache_dma_attr.attr,
|
|
|
#endif
|
|
|
#ifdef CONFIG_NUMA
|
|
|
- &defrag_ratio_attr.attr,
|
|
|
+ &remote_node_defrag_ratio_attr.attr,
|
|
|
#endif
|
|
|
NULL
|
|
|
};
|