From owner-cvs-src@FreeBSD.ORG Mon Mar 21 23:01:30 2005 Return-Path: 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 B9E3616A4CE; Mon, 21 Mar 2005 23:01:30 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9419F43D3F; Mon, 21 Mar 2005 23:01:30 +0000 (GMT) (envelope-from iedowse@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2LN1Umw084501; Mon, 21 Mar 2005 23:01:30 GMT (envelope-from iedowse@repoman.freebsd.org) Received: (from iedowse@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2LN1Uqk084500; Mon, 21 Mar 2005 23:01:30 GMT (envelope-from iedowse) Message-Id: <200503212301.j2LN1Uqk084500@repoman.freebsd.org> From: Ian Dowse Date: Mon, 21 Mar 2005 23:01:30 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: RELENG_5 Subject: cvs commit: src/share/man/man9 Makefile timeout.9 src/sys/kern kern_timeout.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 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: Mon, 21 Mar 2005 23:01:30 -0000 iedowse 2005-03-21 23:01:30 UTC FreeBSD src repository Modified files: (Branch: RELENG_5) share/man/man9 timeout.9 Makefile sys/kern kern_timeout.c Log: Partialially MFC the changes to the callout system that prevent race conditions when stopping and resetting timers. This only avoids the race conditions with Giant-locked callouts; it was not possible to backport callout_init_mtx() since adding the c_mtx field to struct callout would have changed the callout ABI. Giant-locked callouts will now have much simpler semantics. As long as Giant is held when invoking callout_stop() or callout_reset(), then these functions will guarantee that the callout will be stopped, even if softclock() had already begun to process the callout. There should be no change in behaviour for "MP-safe" callouts; these still need to use the techniques now described in timeout(9) to avoid race conditions. Approved by: re (kensmith) Revision Changes Path 1.239.2.8 +3 -0 src/share/man/man9/Makefile 1.23.2.2 +252 -9 src/share/man/man9/timeout.9 1.91.2.2 +52 -8 src/sys/kern/kern_timeout.c