Re: RFC [patch 13/34] PID Virtualization Define new task_pid api
From: Eric W. Biederman
Date: Wed Jan 25 2006 - 04:13:26 EST
Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> writes:
>> However it looks to me that the biggest challenge right now about
>> development is the size of a patch to change any one of these things.
>
> Thats where we disagree strongly. Wrappers hide, confuse and obscure. We
> want the workings brutally and clearly visible so that people don't make
> assumptions and have nasty accidents. Its like typdedefs and overuse of
> defines.
I totally that we want the uses of pids to be clear and not over abstracted.
However most places that reference pids are debug statements are simply
line noise in any patch.
I threw together a casual patch for purposes of discussion earlier.
Not fully polished, just a rough draft for discussion and it was so big
most people didn't even receive it. So regardless of other considerations
the sheer number size is a problem even if abstractions can't help.
I think adding a helper for the common debugging idiom of printing out
the current task is generally useful, and is worth considering on it's own merits.
In particular, does this look like a sane piece of code to add to the kernel?
This is based on analogy with dev_printk.
Either tsk_printk or something like NIP_QUAD is what I am thinking about.
Eric
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 0cfcd1c..d5dcbde 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -880,6 +880,19 @@ static inline pid_t process_group(struct
return tsk->signal->pgrp;
}
+/* debugging and troubleshooting/disanostic helpers. */
+#define tsk_printk(level, dev, format, arg...) \
+ printk(level "%s(%d): " format , (tsk)->comm , (tsk)->pid , ## arg)
+
+#define tsk_dbg(tsk, format, arg...) \
+ tsk_printk(KERN_DEBUG , tsk , format, ## arg)
+#define tsk_err(tsk, format, arg...) \
+ tsk_printk(KERN_ERR , tsk , format, ## arg)
+#define tsk_info(tsk, format, arg...) \
+ tsk_printk(KERN_INFO , tsk , format, ## arg)
+#define tsk_warn(tsk, format, arg...) \
+ tsk_printk(KERN_WARN , tsk , format, ## arg)
+
/**
* pid_alive - check that a task structure is not stale
* @p: Task structure to be checked.
-
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/