* [PATCH v3 2/5] mm/slab: Sharing s_next and s_stop between slab and slub
2013-07-04 0:33 [PATCH v3 1/5] mm/slab: Fix drain freelist excessively Wanpeng Li
@ 2013-07-04 0:33 ` Wanpeng Li
2013-07-04 0:33 ` [PATCH v3 3/5] mm/slab: Fix /proc/slabinfo unwriteable for slab Wanpeng Li
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Wanpeng Li @ 2013-07-04 0:33 UTC (permalink / raw)
To: Pekka Enberg, Christoph Lameter, Matt Mackall
Cc: Glauber Costa, Andrew Morton, Joonsoo Kim, David Rientjes,
linux-mm, linux-kernel, Wanpeng Li
This patch shares s_next and s_stop between slab and slub.
Acked-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
---
mm/slab.c | 10 ----------
mm/slab.h | 3 +++
mm/slab_common.c | 4 ++--
3 files changed, 5 insertions(+), 12 deletions(-)
diff --git a/mm/slab.c b/mm/slab.c
index 3002771..59c78b1 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -4436,16 +4436,6 @@ static int leaks_show(struct seq_file *m, void *p)
return 0;
}
-static void *s_next(struct seq_file *m, void *p, loff_t *pos)
-{
- return seq_list_next(p, &slab_caches, pos);
-}
-
-static void s_stop(struct seq_file *m, void *p)
-{
- mutex_unlock(&slab_mutex);
-}
-
static const struct seq_operations slabstats_op = {
.start = leaks_start,
.next = s_next,
diff --git a/mm/slab.h b/mm/slab.h
index f96b49e..95c8860 100644
--- a/mm/slab.h
+++ b/mm/slab.h
@@ -271,3 +271,6 @@ struct kmem_cache_node {
#endif
};
+
+void *s_next(struct seq_file *m, void *p, loff_t *pos);
+void s_stop(struct seq_file *m, void *p);
diff --git a/mm/slab_common.c b/mm/slab_common.c
index 2d41450..d161b81 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -531,12 +531,12 @@ static void *s_start(struct seq_file *m, loff_t *pos)
return seq_list_start(&slab_caches, *pos);
}
-static void *s_next(struct seq_file *m, void *p, loff_t *pos)
+void *s_next(struct seq_file *m, void *p, loff_t *pos)
{
return seq_list_next(p, &slab_caches, pos);
}
-static void s_stop(struct seq_file *m, void *p)
+void s_stop(struct seq_file *m, void *p)
{
mutex_unlock(&slab_mutex);
}
--
1.8.1.2
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 3/5] mm/slab: Fix /proc/slabinfo unwriteable for slab
2013-07-04 0:33 [PATCH v3 1/5] mm/slab: Fix drain freelist excessively Wanpeng Li
2013-07-04 0:33 ` [PATCH v3 2/5] mm/slab: Sharing s_next and s_stop between slab and slub Wanpeng Li
@ 2013-07-04 0:33 ` Wanpeng Li
2013-07-04 0:33 ` [PATCH v3 4/5] mm/slub: Drop unnecessary nr_partials Wanpeng Li
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Wanpeng Li @ 2013-07-04 0:33 UTC (permalink / raw)
To: Pekka Enberg, Christoph Lameter, Matt Mackall
Cc: Glauber Costa, Andrew Morton, Joonsoo Kim, David Rientjes,
linux-mm, linux-kernel, Wanpeng Li
Slab have some tunables like limit, batchcount, and sharedfactor can be
tuned through function slabinfo_write. Commit (b7454ad3: mm/sl[au]b: Move
slabinfo processing to slab_common.c) uncorrectly change /proc/slabinfo
unwriteable for slab, this patch fix it by revert to original mode.
Acked-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
---
mm/slab_common.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/mm/slab_common.c b/mm/slab_common.c
index d161b81..6a2e530 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -497,6 +497,13 @@ void __init create_kmalloc_caches(unsigned long flags)
#ifdef CONFIG_SLABINFO
+
+#ifdef CONFIG_SLAB
+#define SLABINFO_RIGHTS (S_IWUSR | S_IRUSR)
+#else
+#define SLABINFO_RIGHTS S_IRUSR
+#endif
+
void print_slabinfo_header(struct seq_file *m)
{
/*
@@ -633,7 +640,8 @@ static const struct file_operations proc_slabinfo_operations = {
static int __init slab_proc_init(void)
{
- proc_create("slabinfo", S_IRUSR, NULL, &proc_slabinfo_operations);
+ proc_create("slabinfo", SLABINFO_RIGHTS, NULL,
+ &proc_slabinfo_operations);
return 0;
}
module_init(slab_proc_init);
--
1.8.1.2
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 4/5] mm/slub: Drop unnecessary nr_partials
2013-07-04 0:33 [PATCH v3 1/5] mm/slab: Fix drain freelist excessively Wanpeng Li
2013-07-04 0:33 ` [PATCH v3 2/5] mm/slab: Sharing s_next and s_stop between slab and slub Wanpeng Li
2013-07-04 0:33 ` [PATCH v3 3/5] mm/slab: Fix /proc/slabinfo unwriteable for slab Wanpeng Li
@ 2013-07-04 0:33 ` Wanpeng Li
2013-07-04 0:33 ` [PATCH v3 5/5] mm/slub: Use node_nr_slabs and node_nr_objs in get_slabinfo Wanpeng Li
2013-07-05 13:37 ` [PATCH v3 1/5] mm/slab: Fix drain freelist excessively Christoph Lameter
4 siblings, 0 replies; 9+ messages in thread
From: Wanpeng Li @ 2013-07-04 0:33 UTC (permalink / raw)
To: Pekka Enberg, Christoph Lameter, Matt Mackall
Cc: Glauber Costa, Andrew Morton, Joonsoo Kim, David Rientjes,
linux-mm, linux-kernel, Wanpeng Li
This patch remove unused nr_partials variable.
Acked-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
---
mm/slub.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/mm/slub.c b/mm/slub.c
index 4649ff0..84b84f4 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -5269,7 +5269,6 @@ __initcall(slab_sysfs_init);
#ifdef CONFIG_SLABINFO
void get_slabinfo(struct kmem_cache *s, struct slabinfo *sinfo)
{
- unsigned long nr_partials = 0;
unsigned long nr_slabs = 0;
unsigned long nr_objs = 0;
unsigned long nr_free = 0;
@@ -5281,7 +5280,6 @@ void get_slabinfo(struct kmem_cache *s, struct slabinfo *sinfo)
if (!n)
continue;
- nr_partials += n->nr_partial;
nr_slabs += atomic_long_read(&n->nr_slabs);
nr_objs += atomic_long_read(&n->total_objects);
nr_free += count_partial(n, count_free);
--
1.8.1.2
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 5/5] mm/slub: Use node_nr_slabs and node_nr_objs in get_slabinfo
2013-07-04 0:33 [PATCH v3 1/5] mm/slab: Fix drain freelist excessively Wanpeng Li
` (2 preceding siblings ...)
2013-07-04 0:33 ` [PATCH v3 4/5] mm/slub: Drop unnecessary nr_partials Wanpeng Li
@ 2013-07-04 0:33 ` Wanpeng Li
2013-07-05 13:37 ` [PATCH v3 1/5] mm/slab: Fix drain freelist excessively Christoph Lameter
4 siblings, 0 replies; 9+ messages in thread
From: Wanpeng Li @ 2013-07-04 0:33 UTC (permalink / raw)
To: Pekka Enberg, Christoph Lameter, Matt Mackall
Cc: Glauber Costa, Andrew Morton, Joonsoo Kim, David Rientjes,
linux-mm, linux-kernel, Wanpeng Li
Use existing interface node_nr_slabs and node_nr_objs to get
nr_slabs and nr_objs.
Acked-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
---
mm/slub.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/slub.c b/mm/slub.c
index 84b84f4..d9135a8 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -5280,8 +5280,8 @@ void get_slabinfo(struct kmem_cache *s, struct slabinfo *sinfo)
if (!n)
continue;
- nr_slabs += atomic_long_read(&n->nr_slabs);
- nr_objs += atomic_long_read(&n->total_objects);
+ nr_slabs += node_nr_slabs(n);
+ nr_objs += node_nr_objs(n);
nr_free += count_partial(n, count_free);
}
--
1.8.1.2
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/5] mm/slab: Fix drain freelist excessively
2013-07-04 0:33 [PATCH v3 1/5] mm/slab: Fix drain freelist excessively Wanpeng Li
` (3 preceding siblings ...)
2013-07-04 0:33 ` [PATCH v3 5/5] mm/slub: Use node_nr_slabs and node_nr_objs in get_slabinfo Wanpeng Li
@ 2013-07-05 13:37 ` Christoph Lameter
2013-07-07 9:24 ` Wanpeng Li
2013-07-07 9:24 ` Wanpeng Li
4 siblings, 2 replies; 9+ messages in thread
From: Christoph Lameter @ 2013-07-05 13:37 UTC (permalink / raw)
To: Wanpeng Li
Cc: Pekka Enberg, Matt Mackall, Glauber Costa, Andrew Morton,
Joonsoo Kim, David Rientjes, linux-mm, linux-kernel
On Thu, 4 Jul 2013, Wanpeng Li wrote:
> This patch fix the callers that pass # of objects. Make sure they pass #
> of slabs.
Acked-by: Christoph Lameter <cl@linux.com>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/5] mm/slab: Fix drain freelist excessively
2013-07-05 13:37 ` [PATCH v3 1/5] mm/slab: Fix drain freelist excessively Christoph Lameter
@ 2013-07-07 9:24 ` Wanpeng Li
2013-07-07 15:38 ` Pekka Enberg
2013-07-07 9:24 ` Wanpeng Li
1 sibling, 1 reply; 9+ messages in thread
From: Wanpeng Li @ 2013-07-07 9:24 UTC (permalink / raw)
To: Pekka Enberg
Cc: Christoph Lameter, Matt Mackall, Glauber Costa, Andrew Morton,
Joonsoo Kim, David Rientjes, linux-mm, linux-kernel
On Fri, Jul 05, 2013 at 01:37:28PM +0000, Christoph Lameter wrote:
>On Thu, 4 Jul 2013, Wanpeng Li wrote:
>
>> This patch fix the callers that pass # of objects. Make sure they pass #
>> of slabs.
>
>Acked-by: Christoph Lameter <cl@linux.com>
Hi Pekka,
Is it ok for you to pick this patchset? ;-)
Regards,
Wanpeng Li
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/5] mm/slab: Fix drain freelist excessively
2013-07-07 9:24 ` Wanpeng Li
@ 2013-07-07 15:38 ` Pekka Enberg
0 siblings, 0 replies; 9+ messages in thread
From: Pekka Enberg @ 2013-07-07 15:38 UTC (permalink / raw)
To: Wanpeng Li
Cc: Christoph Lameter, Matt Mackall, Glauber Costa, Andrew Morton,
Joonsoo Kim, David Rientjes, linux-mm, linux-kernel
On 7/7/13 12:24 PM, Wanpeng Li wrote:
> On Fri, Jul 05, 2013 at 01:37:28PM +0000, Christoph Lameter wrote:
>> On Thu, 4 Jul 2013, Wanpeng Li wrote:
>>
>>> This patch fix the callers that pass # of objects. Make sure they pass #
>>> of slabs.
>>
>> Acked-by: Christoph Lameter <cl@linux.com>
>
> Hi Pekka,
>
> Is it ok for you to pick this patchset? ;-)
Applied, thanks a lot!
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/5] mm/slab: Fix drain freelist excessively
2013-07-05 13:37 ` [PATCH v3 1/5] mm/slab: Fix drain freelist excessively Christoph Lameter
2013-07-07 9:24 ` Wanpeng Li
@ 2013-07-07 9:24 ` Wanpeng Li
1 sibling, 0 replies; 9+ messages in thread
From: Wanpeng Li @ 2013-07-07 9:24 UTC (permalink / raw)
To: Pekka Enberg
Cc: Christoph Lameter, Matt Mackall, Glauber Costa, Andrew Morton,
Joonsoo Kim, David Rientjes, linux-mm, linux-kernel
On Fri, Jul 05, 2013 at 01:37:28PM +0000, Christoph Lameter wrote:
>On Thu, 4 Jul 2013, Wanpeng Li wrote:
>
>> This patch fix the callers that pass # of objects. Make sure they pass #
>> of slabs.
>
>Acked-by: Christoph Lameter <cl@linux.com>
Hi Pekka,
Is it ok for you to pick this patchset? ;-)
Regards,
Wanpeng Li
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 9+ messages in thread