OSDN Git Service

slub: use %*pb[l] to print bitmaps including cpumasks and nodemasks
authorTejun Heo <tj@kernel.org>
Fri, 13 Feb 2015 22:37:59 +0000 (14:37 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 14 Feb 2015 05:21:38 +0000 (21:21 -0800)
printk and friends can now format bitmaps using '%*pb[l]'.  cpumask
and nodemask also provide cpumask_pr_args() and nodemask_pr_args()
respectively which can be used to generate the two printf arguments
necessary to format the specified cpu/nodemask.

* This is an equivalent conversion but the whole function should be
  converted to use scnprinf famiily of functions rather than
  performing custom output length predictions in multiple places.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/slub.c

index 06cdb18..783505b 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -4108,20 +4108,16 @@ static int list_locations(struct kmem_cache *s, char *buf,
 
                if (num_online_cpus() > 1 &&
                                !cpumask_empty(to_cpumask(l->cpus)) &&
-                               len < PAGE_SIZE - 60) {
-                       len += sprintf(buf + len, " cpus=");
-                       len += cpulist_scnprintf(buf + len,
-                                                PAGE_SIZE - len - 50,
-                                                to_cpumask(l->cpus));
-               }
+                               len < PAGE_SIZE - 60)
+                       len += scnprintf(buf + len, PAGE_SIZE - len - 50,
+                                        " cpus=%*pbl",
+                                        cpumask_pr_args(to_cpumask(l->cpus)));
 
                if (nr_online_nodes > 1 && !nodes_empty(l->nodes) &&
-                               len < PAGE_SIZE - 60) {
-                       len += sprintf(buf + len, " nodes=");
-                       len += nodelist_scnprintf(buf + len,
-                                                 PAGE_SIZE - len - 50,
-                                                 l->nodes);
-               }
+                               len < PAGE_SIZE - 60)
+                       len += scnprintf(buf + len, PAGE_SIZE - len - 50,
+                                        " nodes=%*pbl",
+                                        nodemask_pr_args(&l->nodes));
 
                len += sprintf(buf + len, "\n");
        }