[PATCH 08/12] cpuset: use {cpu|node}mask pr_cont and seq output functions

2014-12-10 Thread Tejun Heo
Convert the existing user of cpu{mask|list}_scnprintf() and
node{mask|list}_scnprintf() which use them just to printk or
seq_printf() the resulting buffer to use the following functions
instead respectively.

* For printk: cpu{mask|list}_pr_cont() and node{mask|list}_pr_cont().

* For seq_file: seq_cpumask[_list]() and seq_nodemask[_list]().

Because these conversions usually break up a single output function
call into multiple, the reduction is LOC isn't too big but it removes
unnecessary complexity and/or arbitrary limit on the length printed.

* kernel/cpuset.c::cpuset_print_task_mems_allowed() used a static
  buffer which is protected by a dedicated spinlock.  Replaced with
  plain pr_conts.

This patch is dependent on the previous patch ("bitmap, cpumask,
nodemask: implement pr_cont variants of formatting functions") which
is planned to go through -mm.  It'd be the easiest to route this
together.  If this should go through the subsystem tree, please wait
till the forementioned patch is merged to mainline.

Signed-off-by: Tejun Heo 
Cc: Andrew Morton 
Cc: Li Zefan 
---
 kernel/cpuset.c | 13 +++--
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index fdf1759..6a7f466 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -2614,8 +2614,6 @@ int cpuset_mems_allowed_intersects(const struct 
task_struct *tsk1,
return nodes_intersects(tsk1->mems_allowed, tsk2->mems_allowed);
 }
 
-#define CPUSET_NODELIST_LEN(256)
-
 /**
  * cpuset_print_task_mems_allowed - prints task's cpuset and mems_allowed
  * @tsk: pointer to task_struct of some task.
@@ -2625,23 +2623,18 @@ int cpuset_mems_allowed_intersects(const struct 
task_struct *tsk1,
  */
 void cpuset_print_task_mems_allowed(struct task_struct *tsk)
 {
-/* Statically allocated to prevent using excess stack. */
-   static char cpuset_nodelist[CPUSET_NODELIST_LEN];
-   static DEFINE_SPINLOCK(cpuset_buffer_lock);
struct cgroup *cgrp;
 
-   spin_lock(_buffer_lock);
rcu_read_lock();
 
cgrp = task_cs(tsk)->css.cgroup;
-   nodelist_scnprintf(cpuset_nodelist, CPUSET_NODELIST_LEN,
-  tsk->mems_allowed);
pr_info("%s cpuset=", tsk->comm);
pr_cont_cgroup_name(cgrp);
-   pr_cont(" mems_allowed=%s\n", cpuset_nodelist);
+   pr_cont(" mems_allowed=");
+   nodelist_pr_cont(tsk->mems_allowed);
+   pr_cont("\n");
 
rcu_read_unlock();
-   spin_unlock(_buffer_lock);
 }
 
 /*
-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 08/12] cpuset: use {cpu|node}mask pr_cont and seq output functions

2014-12-10 Thread Tejun Heo
Convert the existing user of cpu{mask|list}_scnprintf() and
node{mask|list}_scnprintf() which use them just to printk or
seq_printf() the resulting buffer to use the following functions
instead respectively.

* For printk: cpu{mask|list}_pr_cont() and node{mask|list}_pr_cont().

* For seq_file: seq_cpumask[_list]() and seq_nodemask[_list]().

Because these conversions usually break up a single output function
call into multiple, the reduction is LOC isn't too big but it removes
unnecessary complexity and/or arbitrary limit on the length printed.

* kernel/cpuset.c::cpuset_print_task_mems_allowed() used a static
  buffer which is protected by a dedicated spinlock.  Replaced with
  plain pr_conts.

This patch is dependent on the previous patch (bitmap, cpumask,
nodemask: implement pr_cont variants of formatting functions) which
is planned to go through -mm.  It'd be the easiest to route this
together.  If this should go through the subsystem tree, please wait
till the forementioned patch is merged to mainline.

Signed-off-by: Tejun Heo t...@kernel.org
Cc: Andrew Morton a...@linux-foundation.org
Cc: Li Zefan lize...@huawei.com
---
 kernel/cpuset.c | 13 +++--
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index fdf1759..6a7f466 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -2614,8 +2614,6 @@ int cpuset_mems_allowed_intersects(const struct 
task_struct *tsk1,
return nodes_intersects(tsk1-mems_allowed, tsk2-mems_allowed);
 }
 
-#define CPUSET_NODELIST_LEN(256)
-
 /**
  * cpuset_print_task_mems_allowed - prints task's cpuset and mems_allowed
  * @tsk: pointer to task_struct of some task.
@@ -2625,23 +2623,18 @@ int cpuset_mems_allowed_intersects(const struct 
task_struct *tsk1,
  */
 void cpuset_print_task_mems_allowed(struct task_struct *tsk)
 {
-/* Statically allocated to prevent using excess stack. */
-   static char cpuset_nodelist[CPUSET_NODELIST_LEN];
-   static DEFINE_SPINLOCK(cpuset_buffer_lock);
struct cgroup *cgrp;
 
-   spin_lock(cpuset_buffer_lock);
rcu_read_lock();
 
cgrp = task_cs(tsk)-css.cgroup;
-   nodelist_scnprintf(cpuset_nodelist, CPUSET_NODELIST_LEN,
-  tsk-mems_allowed);
pr_info(%s cpuset=, tsk-comm);
pr_cont_cgroup_name(cgrp);
-   pr_cont( mems_allowed=%s\n, cpuset_nodelist);
+   pr_cont( mems_allowed=);
+   nodelist_pr_cont(tsk-mems_allowed);
+   pr_cont(\n);
 
rcu_read_unlock();
-   spin_unlock(cpuset_buffer_lock);
 }
 
 /*
-- 
2.1.0

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/