From owner-cvs-src@FreeBSD.ORG Wed Nov 1 09:36:04 2006 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6873716A403; Wed, 1 Nov 2006 09:36:04 +0000 (UTC) (envelope-from pjd@garage.freebsd.pl) Received: from mail.garage.freebsd.pl (arm132.internetdsl.tpnet.pl [83.17.198.132]) by mx1.FreeBSD.org (Postfix) with ESMTP id 95AD643D45; Wed, 1 Nov 2006 09:36:03 +0000 (GMT) (envelope-from pjd@garage.freebsd.pl) Received: by mail.garage.freebsd.pl (Postfix, from userid 65534) id B022548802; Wed, 1 Nov 2006 10:36:01 +0100 (CET) Received: from localhost (dkh63.neoplus.adsl.tpnet.pl [83.24.11.63]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.garage.freebsd.pl (Postfix) with ESMTP id 8BA2E487F5; Wed, 1 Nov 2006 10:35:54 +0100 (CET) Date: Wed, 1 Nov 2006 10:35:50 +0100 From: Pawel Jakub Dawidek To: John Birrell Message-ID: <20061101093550.GK15861@garage.freebsd.pl> References: <200611010454.kA14spYn014613@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="V3eawNQxI9TAjvgi" Content-Disposition: inline In-Reply-To: <200611010454.kA14spYn014613@repoman.freebsd.org> X-PGP-Key-URL: http://people.freebsd.org/~pjd/pjd.asc X-OS: FreeBSD 7.0-CURRENT i386 User-Agent: mutt-ng/devel-r804 (FreeBSD) X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on mail.garage.freebsd.pl X-Spam-Level: X-Spam-Status: No, score=-0.5 required=3.0 tests=BAYES_00,RCVD_IN_NJABL_DUL, RCVD_IN_SORBS_DUL autolearn=no version=3.0.4 Cc: cvs-src@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 ... X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Nov 2006 09:36:04 -0000 --V3eawNQxI9TAjvgi Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Nov 01, 2006 at 04:54:51AM +0000, John Birrell wrote: > jb 2006-11-01 04:54:51 UTC >=20 > FreeBSD src repository >=20 > Modified files: > sys/amd64/amd64 genassym.c=20 > sys/arm/arm genassym.c=20 > sys/i386/i386 genassym.c=20 > sys/ia64/ia64 genassym.c=20 > sys/kern subr_prf.c tty_cons.c=20 > sys/powerpc/powerpc genassym.c=20 > sys/sparc64/sparc64 genassym.c=20 > sys/sys cons.h pcpu.h=20 > 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 >=3D (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? --=20 Pawel Jakub Dawidek http://www.wheel.pl pjd@FreeBSD.org http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am! --V3eawNQxI9TAjvgi Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.4 (FreeBSD) iD8DBQFFSGp2ForvXbEpPzQRAgoZAJ9UwG4IP/871t60BCNiHs+E1GxGwwCg49ac s0cTJZbNJi07w7aJp8/R3U8= =CWZO -----END PGP SIGNATURE----- --V3eawNQxI9TAjvgi--