From owner-cvs-src-old@FreeBSD.ORG Tue Nov 3 21:11:52 2009 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9D056106568B for ; Tue, 3 Nov 2009 21:11:52 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8A8678FC0A for ; Tue, 3 Nov 2009 21:11:52 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id nA3LBqGH004847 for ; Tue, 3 Nov 2009 21:11:52 GMT (envelope-from ed@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id nA3LBqf5004846 for cvs-src-old@freebsd.org; Tue, 3 Nov 2009 21:11:52 GMT (envelope-from ed@repoman.freebsd.org) Message-Id: <200911032111.nA3LBqf5004846@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to ed@repoman.freebsd.org using -f From: Ed Schouten Date: Tue, 3 Nov 2009 21:06:19 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/kern subr_log.c subr_prf.c src/sys/sys msgbuf.h X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Nov 2009 21:11:52 -0000 ed 2009-11-03 21:06:19 UTC FreeBSD src repository Modified files: sys/kern subr_log.c subr_prf.c sys/sys msgbuf.h Log: SVN rev 198860 on 2009-11-03 21:06:19Z by ed Make /dev/klog and kern.msgbuf* MPSAFE. Normally msgbufp is locked using Giant. Switch it to use the msgbuf_lock. Instead of changing the tsleep() calls to msleep(), just convert it to condvar(9). In my opinion the locking around msgbuf_peekbytes() still remains questionable. It looks like locks are dropped while performing copies of multiple blocks to userspace, which may cause the msgbuf to be reset in the mean time. At least getting it underneath from Giant should make it a little easier for us to figure out how to solve that. Reminded by: rdivacky Revision Changes Path 1.66 +41 -32 src/sys/kern/subr_log.c 1.139 +16 -5 src/sys/kern/subr_prf.c 1.29 +1 -0 src/sys/sys/msgbuf.h