Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Dec 2008 22:11:15 +1100 (EST)
From:      Bruce Evans <brde@optusnet.com.au>
To:        Ivan Voras <ivoras@FreeBSD.org>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: svn commit: r186285 - head/sys/kern
Message-ID:  <20081219211850.X99600@delplex.bde.org>
In-Reply-To: <200812181525.mBIFPXkN044933@svn.freebsd.org>
References:  <200812181525.mBIFPXkN044933@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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
"input".

> +	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
context-dependent.

> +	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);

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081219211850.X99600>