svn commit: r186285 - head/sys/kern

Bruce Evans brde at
Fri Dec 19 11:11:20 UTC 2008

On Thu, 18 Dec 2008, Ivan Voras wrote:

> Log:
>  Remove spaces in wait object names to make top (1) output prettier and
>  unbreak scripts that examine ps (1) output.

Thanks, but these are still broken.  Both ps and top use %6.6s format,
so wait messages must be limited to 6 characters or at least contain
only secondary info after the 6th character, with the first 6 characters
carefully chosen to be unambigous and to be a good abbreviation when
truncated too.  I once fixed many sleep messages including all of the
ones in the tty driver to satisfy the first (stricter) requirement.

> Modified: head/sys/kern/tty.c
> ==============================================================================
> --- head/sys/kern/tty.c	Thu Dec 18 15:12:04 2008	(r186284)
> +++ head/sys/kern/tty.c	Thu Dec 18 15:25:33 2008	(r186285)
> @@ -871,10 +871,10 @@ tty_alloc(struct ttydevsw *tsw, void *sc
> 	tty_init_termios(tp);
> -	cv_init(&tp->t_inwait, "tty input");
> -	cv_init(&tp->t_outwait, "tty output");
> -	cv_init(&tp->t_bgwait, "tty background");
> -	cv_init(&tp->t_dcdwait, "tty dcd");
> +	cv_init(&tp->t_inwait, "ttyinput");

When truncated, this has regressed from "ttyin" to "ttyinp".  Not too bad.
The kernel struct member name still uses the better abbreviation "in" for

> +	cv_init(&tp->t_outwait, "ttyoutput");

This gets truncated reasonably.

> +	cv_init(&tp->t_bgwait, "ttybackground");

When truncated, this has regressed from "ttybg[1-4]" to "ttybac".  The
kernel struct member name still uses the better abbreviation "bg".
"bg[1-4]" also encodes more detailed info about the reason for the
wait.  Most locking interfaces encourage this regression by putting
the message in a data structure so that it is hard to make it

> +	cv_init(&tp->t_dcdwait, "ttydcd");

The commit fixes this.

> 	ttyinq_init(&tp->t_inq);
> 	ttyoutq_init(&tp->t_outq);
> @@ -884,7 +884,7 @@ tty_alloc(struct ttydevsw *tsw, void *sc
> 		tp->t_mtx = mutex;
> 	} else {
> 		tp->t_mtx = &tp->t_mtxobj;
> -		mtx_init(&tp->t_mtxobj, "tty lock", NULL, MTX_DEF);
> +		mtx_init(&tp->t_mtxobj, "ttylock", NULL, MTX_DEF);

This gets truncated to "ttyloc".  "ttylk" or "ttlock" would be better.
The abbreviation "mtx" in the kernel struct member name is not so good
as elsewhere for printing in userland.

> 	}
> 	knlist_init(&tp->t_inpoll.si_note, tp->t_mtx, NULL, NULL, NULL);


More information about the svn-src-all mailing list