Re: [PATCH 1/1] kernel/workqueue.c: pr_warning/pr_warn & printk/pr_info

From: Joe Perches
Date: Mon May 12 2014 - 14:21:36 EST


On Mon, 2014-05-12 at 19:56 +0200, Fabian Frederick wrote:
> Cc: Tejun Heo <tj@xxxxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Fabian Frederick <fabf@xxxxxxxxx>
> ---
> kernel/workqueue.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/workqueue.c b/kernel/workqueue.c
> index 0ee63af..6824afc 100644
> --- a/kernel/workqueue.c
> +++ b/kernel/workqueue.c
> @@ -4098,8 +4098,8 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,
> /* create a new pwq */
> pwq = alloc_unbound_pwq(wq, target_attrs);
> if (!pwq) {
> - pr_warning("workqueue: allocation failed while updating NUMA affinity of \"%s\"\n",
> - wq->name);
> + pr_warn("workqueue: allocation failed while updating NUMA affinity of \"%s\"\n",
> + wq->name);
> goto out_unlock;
> }
>
> @@ -4548,7 +4548,7 @@ void print_worker_info(const char *log_lvl, struct task_struct *task)
> probe_kernel_read(desc, worker->desc, sizeof(desc) - 1);
>
> if (fn || name[0] || desc[0]) {
> - printk("%sWorkqueue: %s %pf", log_lvl, name, fn);
> + pr_info("%sWorkqueue: %s %pf", log_lvl, name, fn);

Not correct.

log_lvl already emits the appropriate level
and this overrides it with KERN_INFO.

The output will now be incorrect emitting
at KERN_INFO followed by an SOH and the
desired log level.

> if (desc[0])
> pr_cont(" (%s)", desc);
> pr_cont("\n");

Trivially, it likely would be a bit better to avoid
any possible output message interleaving by using:

if (fn || name[0] || desc[0]) {
if (desc[0])
printk("%sWorkqueue: %s %pf (%s)\n",
log_lvl, name, fn, desc);
else
printk("%sWorkqueue: %s %pf\n",
log_lvl, name, fn);
}



--
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/