[PATCH] cpufreq: shorten names for cpufreq workqueues

From: Andreas Herrmann
Date: Wed May 06 2009 - 10:18:11 EST


The names for workqueues are restricted to 15 characters (plus
terminating zero). Due to TASK_COMM_LEN==16, see
include/linux/sched.h.

This implies that for "kconservative"-workqueues for CPU numbers
greater than 10 the names get truncated, e.g.

# ps x | grep kconservative
1575 ? S< 0:00 [kconservative/1]
1576 ? S< 0:00 [kconservative/2]
1577 ? S< 0:00 [kconservative/3]
1578 ? S< 0:00 [kconservative/4]
1579 ? S< 0:00 [kconservative/5]
1580 ? S< 0:00 [kconservative/6]
1581 ? S< 0:00 [kconservative/7]
1582 ? S< 0:00 [kconservative/8]
1583 ? S< 0:00 [kconservative/9]
1584 ? S< 0:00 [kconservative/1]
1585 ? S< 0:00 [kconservative/1]
1586 ? S< 0:00 [kconservative/1]
1587 ? S< 0:00 [kconservative/1]
1588 ? S< 0:00 [kconservative/1]
1589 ? S< 0:00 [kconservative/1]
1590 ? S< 0:00 [kconservative/1]
1591 ? S< 0:00 [kconservative/1]
1592 ? S< 0:00 [kconservative/1]
1593 ? S< 0:00 [kconservative/1]
1594 ? S< 0:00 [kconservative/2]
1595 ? S< 0:00 [kconservative/2]
1597 ? S< 0:00 [kconservative/2]

Same is true for top output and of course for information in
/proc/<pid> for those kernel threads. That is no big issue but
at least "unesthetic".

Instead of increasing TASK_COMM_LEN (and thus increasing size of
task_struct) I suggest to shorten the names of those workqueues by
ommitting the leading "k" which doesn't add much value to the
workqueue name anyway. This allows proper naming of workqueues up to
100 CPUs and should suffice for a while.

I also remove the leading "k" from the identifier of conservative
workqueue. And for uniformity I similarly change identifier and name
for ondemand workqueues. The new workqueue names are

# ps x | grep "ond\|cons"
1568 ? S< 0:00 [ondemand/0]
1569 ? S< 0:00 [ondemand/1]
...
1590 ? S< 0:00 [ondemand/22]
1591 ? S< 0:00 [ondemand/23]
1592 ? S< 0:00 [conservative/0]
1593 ? S< 0:00 [conservative/1]
...
1614 ? S< 0:00 [conservative/22]
1615 ? S< 0:00 [conservative/23]

Signed-off-by: Andreas Herrmann <andreas.herrmann3@xxxxxxx>
---
drivers/cpufreq/cpufreq_conservative.c | 16 ++++++++--------
drivers/cpufreq/cpufreq_ondemand.c | 16 ++++++++--------
2 files changed, 16 insertions(+), 16 deletions(-)

Patch is against v2.6.30-rc4-289-g83e9854.
Please apply.

Thanks,
Andreas


diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c
index 2ecd95e..38ac028 100644
--- a/drivers/cpufreq/cpufreq_conservative.c
+++ b/drivers/cpufreq/cpufreq_conservative.c
@@ -94,7 +94,7 @@ static unsigned int dbs_enable; /* number of CPUs using this policy */
*/
static DEFINE_MUTEX(dbs_mutex);

-static struct workqueue_struct *kconservative_wq;
+static struct workqueue_struct *conservative_wq;

static struct dbs_tuners {
unsigned int sampling_rate;
@@ -523,7 +523,7 @@ static void do_dbs_timer(struct work_struct *work)

dbs_check_cpu(dbs_info);

- queue_delayed_work_on(cpu, kconservative_wq, &dbs_info->work, delay);
+ queue_delayed_work_on(cpu, conservative_wq, &dbs_info->work, delay);
unlock_policy_rwsem_write(cpu);
}

@@ -535,7 +535,7 @@ static inline void dbs_timer_init(struct cpu_dbs_info_s *dbs_info)

dbs_info->enable = 1;
INIT_DELAYED_WORK_DEFERRABLE(&dbs_info->work, do_dbs_timer);
- queue_delayed_work_on(dbs_info->cpu, kconservative_wq, &dbs_info->work,
+ queue_delayed_work_on(dbs_info->cpu, conservative_wq, &dbs_info->work,
delay);
}

@@ -664,15 +664,15 @@ static int __init cpufreq_gov_dbs_init(void)
{
int err;

- kconservative_wq = create_workqueue("kconservative");
- if (!kconservative_wq) {
- printk(KERN_ERR "Creation of kconservative failed\n");
+ conservative_wq = create_workqueue("conservative");
+ if (!conservative_wq) {
+ printk(KERN_ERR "Creation of conservative workqueue failed\n");
return -EFAULT;
}

err = cpufreq_register_governor(&cpufreq_gov_conservative);
if (err)
- destroy_workqueue(kconservative_wq);
+ destroy_workqueue(conservative_wq);

return err;
}
@@ -680,7 +680,7 @@ static int __init cpufreq_gov_dbs_init(void)
static void __exit cpufreq_gov_dbs_exit(void)
{
cpufreq_unregister_governor(&cpufreq_gov_conservative);
- destroy_workqueue(kconservative_wq);
+ destroy_workqueue(conservative_wq);
}


diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
index 338f428..6ff3ca0 100644
--- a/drivers/cpufreq/cpufreq_ondemand.c
+++ b/drivers/cpufreq/cpufreq_ondemand.c
@@ -101,7 +101,7 @@ static unsigned int dbs_enable; /* number of CPUs using this policy */
*/
static DEFINE_MUTEX(dbs_mutex);

-static struct workqueue_struct *kondemand_wq;
+static struct workqueue_struct *ondemand_wq;

static struct dbs_tuners {
unsigned int sampling_rate;
@@ -541,7 +541,7 @@ static void do_dbs_timer(struct work_struct *work)
__cpufreq_driver_target(dbs_info->cur_policy,
dbs_info->freq_lo, CPUFREQ_RELATION_H);
}
- queue_delayed_work_on(cpu, kondemand_wq, &dbs_info->work, delay);
+ queue_delayed_work_on(cpu, ondemand_wq, &dbs_info->work, delay);
unlock_policy_rwsem_write(cpu);
}

@@ -555,7 +555,7 @@ static inline void dbs_timer_init(struct cpu_dbs_info_s *dbs_info)
ondemand_powersave_bias_init();
dbs_info->sample_type = DBS_NORMAL_SAMPLE;
INIT_DELAYED_WORK_DEFERRABLE(&dbs_info->work, do_dbs_timer);
- queue_delayed_work_on(dbs_info->cpu, kondemand_wq, &dbs_info->work,
+ queue_delayed_work_on(dbs_info->cpu, ondemand_wq, &dbs_info->work,
delay);
}

@@ -677,14 +677,14 @@ static int __init cpufreq_gov_dbs_init(void)
MICRO_FREQUENCY_DOWN_DIFFERENTIAL;
}

- kondemand_wq = create_workqueue("kondemand");
- if (!kondemand_wq) {
- printk(KERN_ERR "Creation of kondemand failed\n");
+ ondemand_wq = create_workqueue("ondemand");
+ if (!ondemand_wq) {
+ printk(KERN_ERR "Creation of ondemand workqueue failed\n");
return -EFAULT;
}
err = cpufreq_register_governor(&cpufreq_gov_ondemand);
if (err)
- destroy_workqueue(kondemand_wq);
+ destroy_workqueue(ondemand_wq);

return err;
}
@@ -692,7 +692,7 @@ static int __init cpufreq_gov_dbs_init(void)
static void __exit cpufreq_gov_dbs_exit(void)
{
cpufreq_unregister_governor(&cpufreq_gov_ondemand);
- destroy_workqueue(kondemand_wq);
+ destroy_workqueue(ondemand_wq);
}


--
1.6.2



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