Date: Wed, 1 Nov 2006 10:21:09 -0500 From: John Baldwin <jhb@freebsd.org> To: Pawel Jakub Dawidek <pjd@freebsd.org> Cc: cvs-src@freebsd.org, John Birrell <jb@freebsd.org>, src-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/amd64/amd64 genassym.c src/sys/arm/arm genassym.c src/sys/i386/i386 genassym.c src/sys/ia64/ia64 genassym.c src/sys/kern subr_prf.c tty_cons.c src/sys/powerpc/powerpc genassym.c src/sys/sparc64/sparc64 ... Message-ID: <200611011021.10535.jhb@freebsd.org> In-Reply-To: <20061101093550.GK15861@garage.freebsd.pl> References: <200611010454.kA14spYn014613@repoman.freebsd.org> <20061101093550.GK15861@garage.freebsd.pl>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 01 November 2006 04:35, Pawel Jakub Dawidek wrote: > On Wed, Nov 01, 2006 at 04:54:51AM +0000, John Birrell wrote: > > jb 2006-11-01 04:54:51 UTC > > > > FreeBSD src repository > > > > Modified files: > > sys/amd64/amd64 genassym.c > > sys/arm/arm genassym.c > > sys/i386/i386 genassym.c > > sys/ia64/ia64 genassym.c > > sys/kern subr_prf.c tty_cons.c > > sys/powerpc/powerpc genassym.c > > sys/sparc64/sparc64 genassym.c > > sys/sys cons.h pcpu.h > > Log: > > Add a cnputs() function to write a string to the console with > > a lock to prevent interspersed strings written from different CPUs > > at the same time. > > Nice, this was very annoying, but I'd still like to have a recursive > lock, which could be used by printf(9) consumers. For example, I'm not > able to implement such macro in a way that ensure everything will be > printed in one line: > > #define G_MIRROR_DEBUG(lvl, ...) do { \ > if (g_mirror_debug >= (lvl)) { \ > printf("GEOM_MIRROR"); \ > if (g_mirror_debug > 0) \ > printf("[%u]", lvl); \ > printf(": "); \ > printf(__VA_ARGS__); \ > printf("\n"); \ > } \ > } while (0) > > What I'd like is a global printf_lock which will allow me to put many > separate printfs under it and be sure it won't be messed up by other > CPUs. Having it recursive could also eliminate the need for per-CPU > buffers, as I don't think we care about performance here. > > What do you think? Because printf is used for things like panics, I think it needs to be as robust as possible. I think adding a larger lock like you request would make it too fragile. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200611011021.10535.jhb>