Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 May 2003 11:37:24 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 31574 for review
Message-ID:  <200305211837.h4LIbOLj046583@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=31574

Change 31574 by peter@peter_daintree on 2003/05/21 11:36:39

	IFC @31573

Affected files ...

.. //depot/projects/hammer/lib/libpthread/arch/i386/i386/ksd.c#2 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_cond.c#6 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_kern.c#10 integrate
.. //depot/projects/hammer/lib/libpthread/thread/thr_pselect.c#3 integrate
.. //depot/projects/hammer/lib/libthr/arch/i386/i386/_setcurthread.c#3 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_cond.c#3 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_create.c#3 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_exit.c#2 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_init.c#2 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_join.c#2 integrate
.. //depot/projects/hammer/lib/libthr/thread/thr_mutex.c#4 integrate
.. //depot/projects/hammer/release/Makefile#21 integrate
.. //depot/projects/hammer/release/alpha/drivers.conf#10 integrate
.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#25 integrate
.. //depot/projects/hammer/share/man/man4/agp.4#3 integrate
.. //depot/projects/hammer/share/man/man4/bge.4#5 integrate
.. //depot/projects/hammer/share/man/man4/dpt.4#3 integrate
.. //depot/projects/hammer/share/man/man4/em.4#3 integrate
.. //depot/projects/hammer/share/man/man4/geom.4#4 integrate
.. //depot/projects/hammer/share/man/man4/ip.4#6 integrate
.. //depot/projects/hammer/share/man/man4/mac.4#3 integrate
.. //depot/projects/hammer/share/man/man4/mac_bsdextended.4#3 integrate
.. //depot/projects/hammer/share/man/man4/mac_ifoff.4#3 integrate
.. //depot/projects/hammer/share/man/man4/mac_lomac.4#3 integrate
.. //depot/projects/hammer/share/man/man4/mac_mls.4#3 integrate
.. //depot/projects/hammer/share/man/man4/mac_none.4#3 integrate
.. //depot/projects/hammer/share/man/man4/mac_partition.4#3 integrate
.. //depot/projects/hammer/share/man/man4/mac_seeotheruids.4#3 integrate
.. //depot/projects/hammer/share/man/man4/mac_test.4#3 integrate
.. //depot/projects/hammer/share/man/man4/ng_bluetooth.4#4 integrate
.. //depot/projects/hammer/share/man/man4/ng_bt3c.4#4 integrate
.. //depot/projects/hammer/share/man/man4/ng_btsocket.4#4 integrate
.. //depot/projects/hammer/share/man/man4/ng_h4.4#4 integrate
.. //depot/projects/hammer/share/man/man4/ng_hci.4#4 integrate
.. //depot/projects/hammer/share/man/man4/ng_l2cap.4#4 integrate
.. //depot/projects/hammer/share/man/man4/ng_ubt.4#4 integrate
.. //depot/projects/hammer/share/man/man4/oldcard.4#3 integrate
.. //depot/projects/hammer/share/man/man4/raid.4#3 integrate
.. //depot/projects/hammer/share/man/man4/syscons.4#4 integrate
.. //depot/projects/hammer/share/man/man4/ubtbcmfw.4#2 integrate
.. //depot/projects/hammer/share/man/man4/umass.4#7 integrate
.. //depot/projects/hammer/share/man/man4/wi.4#8 integrate
.. //depot/projects/hammer/share/man/man5/fs.5#4 integrate
.. //depot/projects/hammer/share/man/man5/procfs.5#4 integrate
.. //depot/projects/hammer/share/man/man5/rc.conf.5#11 integrate
.. //depot/projects/hammer/share/man/man7/development.7#2 integrate
.. //depot/projects/hammer/share/man/man7/maclabel.7#3 integrate
.. //depot/projects/hammer/share/man/man7/release.7#9 integrate
.. //depot/projects/hammer/share/man/man7/tuning.7#4 integrate
.. //depot/projects/hammer/share/man/man9/BUS_SETUP_INTR.9#3 integrate
.. //depot/projects/hammer/share/man/man9/bus_alloc_resource.9#3 integrate
.. //depot/projects/hammer/share/man/man9/byteorder.9#4 integrate
.. //depot/projects/hammer/share/man/man9/device_get_ivars.9#3 integrate
.. //depot/projects/hammer/share/man/man9/device_get_softc.9#3 integrate
.. //depot/projects/hammer/share/man/man9/malloc.9#5 integrate
.. //depot/projects/hammer/share/man/man9/mbuf.9#6 integrate
.. //depot/projects/hammer/share/man/man9/mutex.9#5 integrate
.. //depot/projects/hammer/share/man/man9/signal.9#4 integrate
.. //depot/projects/hammer/share/mk/bsd.cpu.mk#7 integrate
.. //depot/projects/hammer/share/mk/bsd.info.mk#2 integrate
.. //depot/projects/hammer/sys/dev/bge/if_bge.c#14 integrate
.. //depot/projects/hammer/sys/dev/bge/if_bgereg.h#10 integrate
.. //depot/projects/hammer/sys/dev/ciss/ciss.c#7 integrate
.. //depot/projects/hammer/sys/dev/usb/umass.c#8 integrate
.. //depot/projects/hammer/sys/dev/usb/usbdevs#10 integrate
.. //depot/projects/hammer/sys/dev/usb/usbdevs.h#10 integrate
.. //depot/projects/hammer/sys/dev/usb/usbdevs_data.h#10 integrate
.. //depot/projects/hammer/sys/i386/conf/PAE#4 integrate
.. //depot/projects/hammer/sys/i386/i386/trap.c#13 integrate
.. //depot/projects/hammer/sys/ia64/ia64/clock.c#5 integrate
.. //depot/projects/hammer/sys/ia64/ia64/exception.s#9 integrate
.. //depot/projects/hammer/sys/ia64/ia64/pmap.c#12 integrate
.. //depot/projects/hammer/usr.bin/bluetooth/btsockstat/btsockstat.1#4 integrate
.. //depot/projects/hammer/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1#2 integrate
.. //depot/projects/hammer/usr.bin/catman/catman.c#6 integrate
.. //depot/projects/hammer/usr.bin/logger/logger.1#2 integrate
.. //depot/projects/hammer/usr.sbin/bluetooth/bcmfw/bcmfw.8#2 integrate
.. //depot/projects/hammer/usr.sbin/bluetooth/bt3cfw/bt3cfw.8#4 integrate
.. //depot/projects/hammer/usr.sbin/bluetooth/hccontrol/hccontrol.8#4 integrate
.. //depot/projects/hammer/usr.sbin/bluetooth/hcsecd/hcsecd.8#2 integrate
.. //depot/projects/hammer/usr.sbin/bluetooth/hcseriald/hcseriald.8#4 integrate
.. //depot/projects/hammer/usr.sbin/bluetooth/l2control/l2control.8#4 integrate
.. //depot/projects/hammer/usr.sbin/bluetooth/l2ping/l2ping.8#4 integrate
.. //depot/projects/hammer/usr.sbin/bluetooth/rfcomm_pppd/rfcomm_pppd.8#2 integrate
.. //depot/projects/hammer/usr.sbin/ppp/Makefile#3 integrate

Differences ...

==== //depot/projects/hammer/lib/libpthread/arch/i386/i386/ksd.c#2 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libpthread/arch/i386/i386/ksd.c,v 1.2 2003/04/18 07:09:42 deischen Exp $");
+__FBSDID("$FreeBSD: src/lib/libpthread/arch/i386/i386/ksd.c,v 1.3 2003/05/19 23:04:49 deischen Exp $");
 
 #include <sys/types.h>
 #include <machine/cpufunc.h>
@@ -48,7 +48,9 @@
 static unsigned int ldt_mask[LDT_WORDS];
 static int initialized = 0;
 
-void
+static void	initialize(void);
+
+static void
 initialize(void)
 {
 	int i, j;

==== //depot/projects/hammer/lib/libpthread/thread/thr_cond.c#6 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libpthread/thread/thr_cond.c,v 1.40 2003/05/16 19:58:29 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_cond.c,v 1.41 2003/05/19 23:04:50 deischen Exp $
  */
 #include <stdlib.h>
 #include <errno.h>
@@ -49,10 +49,16 @@
 static inline void		cond_queue_remove(pthread_cond_t, pthread_t);
 static inline void		cond_queue_enq(pthread_cond_t, pthread_t);
 
+/*
+ * Double underscore versions are cancellation points.  Single underscore
+ * versions are not and are provided for libc internal usage (which
+ * shouldn't introduce cancellation points).
+ */
+__weak_reference(__pthread_cond_wait, pthread_cond_wait);
+__weak_reference(__pthread_cond_timedwait, pthread_cond_timedwait);
+
 __weak_reference(_pthread_cond_init, pthread_cond_init);
 __weak_reference(_pthread_cond_destroy, pthread_cond_destroy);
-__weak_reference(_pthread_cond_wait, pthread_cond_wait);
-__weak_reference(_pthread_cond_timedwait, pthread_cond_timedwait);
 __weak_reference(_pthread_cond_signal, pthread_cond_signal);
 __weak_reference(_pthread_cond_broadcast, pthread_cond_broadcast);
 
@@ -167,22 +173,16 @@
 	int	unlock_mutex = 1;
 	int	seqno;
 
-	_thr_enter_cancellation_point(curthread);
-
-	if (cond == NULL) {
-		_thr_leave_cancellation_point(curthread);
+	if (cond == NULL)
 		return (EINVAL);
-	}
 
 	/*
 	 * If the condition variable is statically initialized,
 	 * perform the dynamic initialization:
 	 */
 	if (*cond == NULL &&
-	    (rval = pthread_cond_init(cond, NULL)) != 0) {
-		_thr_leave_cancellation_point(curthread);
+	    (rval = pthread_cond_init(cond, NULL)) != 0)
 		return (rval);
-	}
 
 	/*
 	 * Enter a loop waiting for a condition signal or broadcast
@@ -348,8 +348,6 @@
 			curthread->continuation((void *) curthread);
 	} while ((done == 0) && (rval == 0));
 
-	_thr_leave_cancellation_point(curthread);
-
 	/* Return the completion status: */
 	return (rval);
 }
@@ -379,21 +377,16 @@
 
 	THR_ASSERT(curthread->locklevel == 0,
 	    "cv_timedwait: locklevel is not zero!");
-	_thr_enter_cancellation_point(curthread);
 
 	if (abstime == NULL || abstime->tv_sec < 0 || abstime->tv_nsec < 0 ||
-	    abstime->tv_nsec >= 1000000000) {
-		_thr_leave_cancellation_point(curthread);
+	    abstime->tv_nsec >= 1000000000)
 		return (EINVAL);
-	}
 	/*
 	 * If the condition variable is statically initialized, perform dynamic
 	 * initialization.
 	 */
-	if (*cond == NULL && (rval = pthread_cond_init(cond, NULL)) != 0) {
-		_thr_leave_cancellation_point(curthread);
+	if (*cond == NULL && (rval = pthread_cond_init(cond, NULL)) != 0)
 		return (rval);
-	}
 
 	/*
 	 * Enter a loop waiting for a condition signal or broadcast
@@ -556,8 +549,6 @@
 			curthread->continuation((void *)curthread);
 	} while ((done == 0) && (rval == 0));
 
-	_thr_leave_cancellation_point(curthread);
-
 	/* Return the completion status: */
 	return (rval);
 }

==== //depot/projects/hammer/lib/libpthread/thread/thr_kern.c#10 (text+ko) ====

@@ -33,7 +33,7 @@
  *
  */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.65 2003/05/16 19:58:29 deischen Exp $");
+__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.66 2003/05/19 23:04:50 deischen Exp $");
 
 #include <sys/types.h>
 #include <sys/kse.h>
@@ -117,6 +117,9 @@
 static int			active_kse_count = 0;
 static int			active_kseg_count = 0;
 
+#ifdef DEBUG_THREAD_KERN
+static void	dump_queues(struct kse *curkse);
+#endif
 static void	kse_check_completed(struct kse *kse);
 static void	kse_check_waitq(struct kse *kse);
 static void	kse_check_signals(struct kse *kse);
@@ -762,7 +765,8 @@
 }
 #endif
 
-void
+#ifdef DEBUG_THREAD_KERN
+static void
 dump_queues(struct kse *curkse)
 {
 	struct pthread *thread;
@@ -773,6 +777,7 @@
 		    thread, thread->state, thread->blocked);
 	}
 }
+#endif
 
 /*
  * This is the scheduler for a KSE which runs multiple threads.

==== //depot/projects/hammer/lib/libpthread/thread/thr_pselect.c#3 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_pselect.c,v 1.3 2003/04/18 05:04:16 deischen Exp $");
+__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_pselect.c,v 1.4 2003/05/19 23:04:50 deischen Exp $");
 
 #include <sys/select.h>
 #include <sys/time.h>
@@ -40,8 +40,10 @@
 extern int __pselect(int count, fd_set *rfds, fd_set *wfds, fd_set *efds, 
 		const struct timespec *timo, const sigset_t *mask);
 
+__weak_reference(_pselect, pselect);
+
 int 
-pselect(int count, fd_set *rfds, fd_set *wfds, fd_set *efds, 
+_pselect(int count, fd_set *rfds, fd_set *wfds, fd_set *efds, 
 	const struct timespec *timo, const sigset_t *mask)
 {
 	struct pthread *curthread = _get_curthread();

==== //depot/projects/hammer/lib/libthr/arch/i386/i386/_setcurthread.c#3 (text+ko) ====

@@ -23,27 +23,35 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/arch/i386/i386/_setcurthread.c,v 1.4 2003/05/06 02:33:49 mtm Exp $
+ * $FreeBSD: src/lib/libthr/arch/i386/i386/_setcurthread.c,v 1.5 2003/05/21 08:21:24 mtm Exp $
  */
 
 #include <sys/types.h>
 #include <sys/ucontext.h>
 
+#include <pthread.h>
 #include <stdio.h>
 
 #include <machine/sysarch.h>
 #include <machine/segments.h>
 
+#include "thr_private.h"
+
 #define	MAXTHR	128
 
 #define	LDT_INDEX(x)	(((long)(x) - (long)ldt_entries) / sizeof(ldt_entries[0]))
 
-void **ldt_free = NULL;
-static int ldt_inited = 0;
-void *ldt_entries[MAXTHR];
+void		**ldt_free = NULL;
+void		 *ldt_entries[MAXTHR];
+static int	  ldt_inited = 0;
+static spinlock_t ldt_lock = _SPINLOCK_INITIALIZER;
 
 static void ldt_init(void);
 
+/*
+ * Initialize the array of ldt_entries and the next free slot.
+ * This routine must be called with the global ldt lock held.
+ */
 static void
 ldt_init(void)
 {
@@ -62,21 +70,32 @@
 void
 _retire_thread(void *entry)
 {
+	_SPINLOCK(&ldt_lock);
 	if (ldt_free == NULL)
 		*(void **)entry = NULL;
 	else
 		*(void **)entry = *ldt_free;
 	ldt_free = entry;
+	_SPINUNLOCK(&ldt_lock);
 }
 
 void *
-_set_curthread(ucontext_t *uc, void *thr)
+_set_curthread(ucontext_t *uc, struct pthread *thr)
 {
 	union descriptor desc;
 	void **ldt_entry;
 	int ldt_index;
 	int error;
 
+	/*
+	 * If we are setting up the initial thread, the gs register
+	 * won't be setup for the current thread. In any case, we
+	 * don't need protection from re-entrancy at this point in
+	 * the life of the program.
+	 */
+	if (thr != _thread_initial)
+		_SPINLOCK(&ldt_lock);
+
 	if (ldt_inited == NULL)
 		ldt_init();
 
@@ -89,11 +108,14 @@
 	ldt_entry = ldt_free;
 	ldt_free = (void **)*ldt_entry;
 
+	if (thr != _thread_initial)
+		_SPINUNLOCK(&ldt_lock);
+
 	/*
 	 * Cache the address of the thread structure here.  This is
 	 * what the gs register will point to.
 	 */
-	*ldt_entry = thr;
+	*ldt_entry = (void *)thr;
 	ldt_index = LDT_INDEX(ldt_entry);
 
 	bzero(&desc, sizeof(desc));

==== //depot/projects/hammer/lib/libthr/thread/thr_cond.c#3 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_cond.c,v 1.4 2003/05/15 18:17:13 mtm Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_cond.c,v 1.5 2003/05/21 03:41:07 mtm Exp $
  */
 #include <stdlib.h>
 #include <errno.h>
@@ -518,7 +518,15 @@
 cond_queue_enq(pthread_cond_t cond, pthread_t pthread)
 {
 	pthread_t tid = TAILQ_LAST(&cond->c_queue, cond_head);
+	char *name;
 
+	name = pthread->name ? pthread->name : "unknown";
+	if ((pthread->flags & PTHREAD_FLAGS_IN_CONDQ) != 0)
+		_thread_printf(2, "Thread (%s:%u) already on condq\n",
+		    pthread->name, pthread->uniqueid);
+	if ((pthread->flags & PTHREAD_FLAGS_IN_MUTEXQ) != 0)
+		_thread_printf(2, "Thread (%s:%u) already on mutexq\n",
+		    pthread->name, pthread->uniqueid);
 	PTHREAD_ASSERT_NOT_IN_SYNCQ(pthread);
 
 	/*

==== //depot/projects/hammer/lib/libthr/thread/thr_create.c#3 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_create.c,v 1.4 2003/04/20 02:56:12 marcel Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_create.c,v 1.5 2003/05/21 03:34:54 mtm Exp $
  */
 #include <errno.h>
 #include <stdlib.h>
@@ -200,10 +200,8 @@
 	 * Start a garbage collector thread
 	 * if necessary.
 	 */
-#if 0
 	if (f_gc && pthread_create(&gc_thread,NULL, _thread_gc,NULL) != 0)
 		PANIC("Can't create gc thread");
-#endif
 
 	return (0);
 }

==== //depot/projects/hammer/lib/libthr/thread/thr_exit.c#2 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_exit.c,v 1.2 2003/04/02 03:05:39 jeff Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_exit.c,v 1.3 2003/05/21 03:29:18 mtm Exp $
  */
 #include <errno.h>
 #include <unistd.h>
@@ -171,6 +171,10 @@
 	PTHREAD_SET_STATE(curthread, PS_DEAD);
 	GIANT_UNLOCK(curthread);
 
+	/* If we're the last thread, call it quits */
+	if (TAILQ_EMPTY(&_thread_list))
+		exit(curthread->ret);
+
 	/*
 	 * Retire the architecture specific id so that it can be used for
 	 * new threads.

==== //depot/projects/hammer/lib/libthr/thread/thr_init.c#2 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_init.c,v 1.3 2003/04/03 03:34:50 jake Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_init.c,v 1.4 2003/05/21 03:22:36 mtm Exp $
  */
 
 /* Allocate space for global thread variables here: */
@@ -218,11 +218,12 @@
 		 */
 		PANIC("Cannot allocate memory for initial thread");
 	}
+	/* Zero the initial thread structure: */
+	memset(pthread, 0, sizeof(struct pthread));
+
 	_thread_initial = pthread;
 	pthread->arch_id = _set_curthread(NULL, pthread);
 
-	/* Zero the initial thread structure: */
-	memset(pthread, 0, sizeof(struct pthread));
 	/* Get our thread id. */
 	thr_self(&pthread->thr_id);
 

==== //depot/projects/hammer/lib/libthr/thread/thr_join.c#2 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.3 2003/04/02 03:05:39 jeff Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.4 2003/05/20 18:48:41 mtm Exp $
  */
 #include <errno.h>
 #include <pthread.h>
@@ -104,7 +104,6 @@
 		ret = ENOTSUP;
 		goto out;
 
-	/* Check if the thread is not dead: */
 	}
 	/*
 	 * Unlock the garbage collector mutex, now that the garbage collector
@@ -113,6 +112,7 @@
 	if (pthread_mutex_unlock(&_gc_mutex) != 0)
 		PANIC("Cannot lock gc mutex");
 
+	/* Check if the thread is not dead: */
 	if (pthread->state != PS_DEAD) {
 		/* Set the running thread to be the joiner: */
 		pthread->joiner = curthread;

==== //depot/projects/hammer/lib/libthr/thread/thr_mutex.c#4 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.6 2003/05/12 10:48:02 mtm Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.7 2003/05/21 03:41:07 mtm Exp $
  */
 #include <stdlib.h>
 #include <errno.h>
@@ -1348,7 +1348,15 @@
 mutex_queue_enq(pthread_mutex_t mutex, pthread_t pthread)
 {
 	pthread_t tid = TAILQ_LAST(&mutex->m_queue, mutex_head);
+	char *name;
 
+	name = pthread->name ? pthread->name : "unknown";
+	if ((pthread->flags & PTHREAD_FLAGS_IN_CONDQ) != 0)
+		_thread_printf(2, "Thread (%s:%u) already on condq\n",
+		    pthread->name, pthread->uniqueid);
+	if ((pthread->flags & PTHREAD_FLAGS_IN_MUTEXQ) != 0)
+		_thread_printf(2, "Thread (%s:%u) already on mutexq\n",
+		    pthread->name, pthread->uniqueid);
 	PTHREAD_ASSERT_NOT_IN_SYNCQ(pthread);
 	/*
 	 * For the common case of all threads having equal priority,

==== //depot/projects/hammer/release/Makefile#21 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/release/Makefile,v 1.777 2003/05/18 19:34:03 jmallett Exp $
+# $FreeBSD: src/release/Makefile,v 1.778 2003/05/20 01:46:09 scottl Exp $
 #
 # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \
 #     [RELEASETAG=tag]
@@ -190,7 +190,7 @@
 FIXITSIZE=		2880
 MFSSIZE=		4320
 BIGBOOTSIZE=		2880
-DRIVERINODE=		80000
+DRIVERINODE=		40000
 BOOTINODE=		80000
 FIXITINODE=		40000
 MFSINODE=		8000

==== //depot/projects/hammer/release/alpha/drivers.conf#10 (text+ko) ====

@@ -24,7 +24,7 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-# $FreeBSD: src/release/alpha/drivers.conf,v 1.18 2003/05/17 11:58:28 wilko Exp $
+# $FreeBSD: src/release/alpha/drivers.conf,v 1.19 2003/05/20 01:46:09 scottl Exp $
 
 #
 # drv: driver name in kernel config file
@@ -52,7 +52,6 @@
 ahc	ahc		3	disk	"Adaptec 2940"
 ahc	ahc_eisa	3	disk	"Adaptec 2940 EISA"
 ahc	ahc_pci		3	disk	"Adaptec 2940 PCI"
-isp	isp		3	disk	"Qlogic SCSI"
 amr	amr		3	disk	"AMI MegaRAID"
 ispfw	ispfw		3	disk	"Qlogic SCSI firmware modules"
 mlx	mlx		3	disk	"Mylex DAC-family RAID"

==== //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#25 (text+ko) ====

@@ -3,7 +3,7 @@
 
   <corpauthor>The FreeBSD Project</corpauthor>
 
-  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.568 2003/05/19 21:30:09 blackend Exp $</pubdate>
+  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.569 2003/05/20 04:03:29 bmah Exp $</pubdate>
 
   <copyright>
     <year>2000</year>
@@ -1011,7 +1011,7 @@
       has been updated to 2.2.1. &merged;</para>
 
     <para>The supported release of <application>KDE</application>
-      has been updated to 3.1.1a. &merged;</para>
+      has been updated to 3.1.2. &merged;</para>
 
     <para>There is no longer a separate <filename>krb5</filename>
       distribution.  The Kerberos 5 libraries and utilities have been

==== //depot/projects/hammer/share/man/man4/agp.4#3 (text+ko) ====

@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/agp.4,v 1.4 2003/05/12 21:34:29 hmp Exp $
+.\" $FreeBSD: src/share/man/man4/agp.4,v 1.5 2003/05/20 22:06:43 ru Exp $
 .\"
 .Dd October 5, 2001
 .Dt AGP 4
@@ -65,7 +65,8 @@
 .Pa /dev/agpgart ,
 which are defined in
 .Aq Pa sys/agpio.h :
-.Ss Dv AGPIOC_INFO
+.Bl -tag -width indent
+.It Dv AGPIOC_INFO
 Returns state of the
 .Nm
 system.
@@ -82,16 +83,16 @@
 	size_t pg_used;       /* current pages used           */
 } agp_info;
 .Ed
-.Ss Dv AGPIOC_ACQUIRE
+.It Dv AGPIOC_ACQUIRE
 Acquire control of the AGP chipset for use by this client.
 Returns
 .Er EBUSY
 if the AGP chipset is already acquired by another client.
-.Ss Dv AGPIOC_RELEASE
+.It Dv AGPIOC_RELEASE
 Release control of the AGP chipset.
 This does not unbind or free any allocated memory, which is the
 responsibility of the client to handle if necessary.
-.Ss Dv AGPIOC_SETUP
+.It Dv AGPIOC_SETUP
 Enable the AGP hardware with the relevant mode.
 This
 .Xr ioctl 2
@@ -104,7 +105,7 @@
 .Pp
 The mode bits are defined in
 .Aq Pa sys/agpio.h .
-.Ss Dv AGPIOC_ALLOCATE
+.It Dv AGPIOC_ALLOCATE
 Allocate physical memory suitable for mapping into the AGP aperture.
 This
 .Xr ioctl 2
@@ -114,17 +115,17 @@
 	int key;              /* tag of allocation            */
 	size_t pg_count;      /* number of pages              */
 	u_int32_t type;       /* 0 == normal, other devspec   */
-	u_int32_t physical;   /* device specific (some devices  
-			       * need a phys address of the     
+	u_int32_t physical;   /* device specific (some devices
+			       * need a phys address of the
 			       * actual page behind the gatt
 			       * table)                       */
 } agp_allocate;
 .Ed
 .Pp
 Returns a handle to the allocated memory.
-.Ss Dv AGPIOC_DEALLOCATE
+.It Dv AGPIOC_DEALLOCATE
 Free the previously allocated memory associated with the handle passed.
-.Ss Dv AGPIOC_BIND
+.It Dv AGPIOC_BIND
 Bind the allocated memory at given offset with the AGP aperture.
 Returns
 .Er EINVAL
@@ -139,17 +140,15 @@
 } agp_bind;
 .Ed
 .Pp
-The
-.Sq tag of allocation ,
-is the handle returned by
-.Dv AGPIOC_ALLOCATE.
-.Ss Dv AGPIOC_UNBIND
+The tag of allocation is the handle returned by
+.Dv AGPIOC_ALLOCATE .
+.It Dv AGPIOC_UNBIND
 Unbind memory from the AGP aperture.
 Returns
 .Er EINVAL
 if the memory is not bound.
 This
-.Xr ioctl
+.Xr ioctl 2
 takes the following structure:
 .Bd -literal
 typedef struct _agp_unbind {
@@ -157,6 +156,7 @@
 	u_int32_t priority;     /* priority for paging out   */
 } agp_unbind;
 .Ed
+.El
 .Sh FILES
 .Bl -tag -width ".Pa /dev/agpgart" -compact
 .It Pa /dev/agpgart

==== //depot/projects/hammer/share/man/man4/bge.4#5 (text+ko) ====

@@ -29,7 +29,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 .\" THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/bge.4,v 1.7 2003/03/25 18:08:57 ps Exp $
+.\" $FreeBSD: src/share/man/man4/bge.4,v 1.8 2003/05/20 22:07:03 ru Exp $
 .\"
 .Dd September 27, 2001
 .Dt BGE 4
@@ -129,7 +129,8 @@
 .Cm half-duplex
 modes.
 .It Cm 1000baseTX
-Set 1000baseTX operation over twisted pair.  Only
+Set 1000baseTX operation over twisted pair.
+Only
 .Cm full-duplex
 mode is supported.
 .It Cm 1000baseSX

==== //depot/projects/hammer/share/man/man4/dpt.4#3 (text+ko) ====

@@ -21,7 +21,7 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/dpt.4,v 1.14 2003/03/02 22:56:04 obrien Exp $
+.\" $FreeBSD: src/share/man/man4/dpt.4,v 1.15 2003/05/20 22:07:30 ru Exp $
 .\"
 .Dd October 16, 1998
 .Dt DPT 4
@@ -44,7 +44,8 @@
 The
 .Nm
 driver provides support for the following RAID adapters:
-.Bl -bullet
+.Pp
+.Bl -bullet -compact
 .It
 DPT Smart Cache Plus
 .It
@@ -57,8 +58,8 @@
 Smart RAID III (PM3?3?, PM3332 [EISA], PM3334UW [PCI]) (Gen3)
 .It
 Smart Cache IV (PM2?4?, PM2042 [EISA], PM2044/PM2144 [PCI]) (Gen4)
+.El
 .Pp
-.El
 SmartRAID (PM3???) are "Enterprise" class cards,
 and SmartCache (PM2???) cards are in the "Workstation" class.
 The Gen 4 Smart Cache IV products were a re-issue of the Gen 3 utilizing

==== //depot/projects/hammer/share/man/man4/em.4#3 (text+ko) ====

@@ -1,6 +1,6 @@
 .\" Copyright (c) 2001-2003, Intel Corporation
 .\" All rights reserved.
-.\" 
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions are met:
 .\"
@@ -29,7 +29,7 @@
 .\"
 .\" * Other names and brands may be claimed as the property of others.
 .\"
-.\" $FreeBSD: src/share/man/man4/em.4,v 1.12 2003/01/24 21:28:20 pdeuskar Exp $
+.\" $FreeBSD: src/share/man/man4/em.4,v 1.13 2003/05/21 15:55:40 ru Exp $
 .\"
 .Dd July 26, 2002
 .Dt EM 4

==== //depot/projects/hammer/share/man/man4/geom.4#4 (text+ko) ====

@@ -32,7 +32,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/geom.4,v 1.8 2003/05/05 17:36:57 phk Exp $
+.\" $FreeBSD: src/share/man/man4/geom.4,v 1.9 2003/05/21 15:55:40 ru Exp $
 .\"
 .Dd March 27, 2002
 .Os
@@ -175,7 +175,7 @@
 .Pp
 When a provider is orphaned, this does not necessarily result in any
 immediate change in the topology: any attached consumers are still
-attached, any opened paths are still open, any outstanding I/O 
+attached, any opened paths are still open, any outstanding I/O
 requests are still outstanding.
 .Pp
 The typical scenario is
@@ -183,7 +183,7 @@
 .It
 A device driver detects a disk has departed and orphans the provider for it.
 .It
-The geoms on top of the disk receive the orphanization event and 
+The geoms on top of the disk receive the orphanization event and
 orphans all their providers in turn.
 Providers, which are not attached to, will typically self-destruct
 right away.

==== //depot/projects/hammer/share/man/man4/ip.4#6 (text+ko) ====

@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)ip.4	8.2 (Berkeley) 11/30/93
-.\" $FreeBSD: src/share/man/man4/ip.4,v 1.32 2003/04/29 21:36:18 mdodd Exp $
+.\" $FreeBSD: src/share/man/man4/ip.4,v 1.33 2003/05/20 22:07:55 ru Exp $
 .\"
 .Dd March 3, 2001
 .Dt IP 4
@@ -125,11 +125,19 @@
 address for a
 .Tn UDP
 datagram.
-The msg_control field in the msghdr structure points to a buffer
-that contains a cmsghdr structure followed by the
+The
+.Vt msg_control
+field in the
+.Vt msghdr
+structure points to a buffer
+that contains a
+.Vt cmsghdr
+structure followed by the
 .Tn IP
 address.
-The cmsghdr fields have the following values:
+The
+.Vt cmsghdr
+fields have the following values:
 .Bd -literal
 cmsg_len = sizeof(struct in_addr)
 cmsg_level = IPPROTO_IP
@@ -143,7 +151,9 @@
 address can be specified as ancillary data with a type code of
 .Dv IP_SENDSRCADDR .
 The msg_control field in the msghdr structure should point to a buffer
-that contains a cmsghdr structure followed by the
+that contains a
+.Vt cmsghdr
+structure followed by the
 .Tn IP
 address.
 The cmsghdr fields should have the following values:
@@ -177,7 +187,7 @@
 .Tn UDP
 datagram.
 The msg_control field in the msghdr structure points to a buffer
-that contains a cmsghdr structure followed by the 
+that contains a cmsghdr structure followed by the
 .Tn TTL .
 The cmsghdr fields have the following values:
 .Bd -literal
@@ -186,16 +196,27 @@
 cmsg_type = IP_RECVTTL
 .Ed
 .Pp
-If the 
-.Dv IP_RECVIF 
-option is enabled on a 
+If the
+.Dv IP_RECVIF
+option is enabled on a
 .Dv SOCK_DGRAM
-socket, the 
-.Xr recvmsg 2 
-call returns a struct sockaddr_dl corresponding to the interface on which the   
-packet was received. The msg_control field in the msghdr structure points     
-to a buffer that contains a cmsghdr structure followed by the 
-struct sockaddr_dl. The cmsghdr fields have the following values:
+socket, the
+.Xr recvmsg 2
+call returns a
+.Vt "struct sockaddr_dl"
+corresponding to the interface on which the
+packet was received.
+The
+.Va msg_control
+field in the
+.Vt msghdr
+structure points to a buffer that contains a
+.Vt cmsghdr
+structure followed by the
+.Vt "struct sockaddr_dl" .
+The
+.Vt cmsghdr
+fields have the following values:
 .Bd -literal
 cmsg_len = sizeof(struct sockaddr_dl)
 cmsg_level = IPPROTO_IP
@@ -230,7 +251,8 @@
 use a low range of ports, which are normally restricted to
 privileged processes on
 .Ux
-systems.  The range is normally from
+systems.
+The range is normally from
 .Dv IPPORT_RESERVED
 \- 1 down to
 .Li IPPORT_RESERVEDSTART
@@ -287,7 +309,8 @@
 Multicast datagrams with a TTL of 0 will not be transmitted on any network,
 but may be delivered locally if the sending host belongs to the destination
 group and if multicast loopback has not been disabled on the sending socket
-(see below).  Multicast datagrams with TTL greater than 1 may be forwarded
+(see below).
+Multicast datagrams with TTL greater than 1 may be forwarded
 to other networks if a multicast router is attached to the local network.
 .Pp
 For hosts with multiple interfaces, each multicast transmission is
@@ -329,18 +352,20 @@
 This option
 improves performance for applications that may have no more than one
 instance on a single host (such as a router daemon), by eliminating
-the overhead of receiving their own transmissions.  It should generally not
+the overhead of receiving their own transmissions.
+It should generally not
 be used by applications for which there may be more than one instance on a
 single host (such as a conferencing program) or for which the sender does
 not belong to the destination group (such as a time querying program).
 .Pp
 A multicast datagram sent with an initial TTL greater than 1 may be delivered
 to the sending host on a different interface from that on which it was sent,
-if the host belongs to the destination group on that other interface.  The
-loopback control option has no effect on such delivery.
+if the host belongs to the destination group on that other interface.
+The loopback control option has no effect on such delivery.
 .Pp
 A host must become a member of a multicast group before it can receive
-datagrams sent to the group.  To join a multicast group, use the
+datagrams sent to the group.
+To join a multicast group, use the
 .Dv IP_ADD_MEMBERSHIP
 option:
 .Bd -literal
@@ -487,7 +512,7 @@
 may occur when setting or getting
 .Tn IP
 options:
-.Bl -tag -width EADDRNOTAVAILxx
+.Bl -tag -width Er
 .It Bq Er EINVAL
 An unknown socket option name was given.
 .It Bq Er EINVAL

==== //depot/projects/hammer/share/man/man4/mac.4#3 (text+ko) ====

@@ -1,12 +1,12 @@
 .\" Copyright (c) 2003 Networks Associates Technology, Inc.
 .\" All rights reserved.
-.\" 
+.\"
 .\" This software was developed for the FreeBSD Project by Chris Costello
 .\" at Safeport Network Services and Network Associates Labs, the
 .\" Security Research Division of Network Associates, Inc. under
 .\" DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the
 .\" DARPA CHATS research program.
-.\" 
+.\"
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -15,7 +15,7 @@
 .\" 2. Redistributions in binary form must reproduce the above copyright
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
-.\" 
+.\"
 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -27,8 +27,8 @@
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
-.\" 
-.\" $FreeBSD: src/share/man/man4/mac.4,v 1.9 2003/03/31 08:08:59 chris Exp $
+.\"
+.\" $FreeBSD: src/share/man/man4/mac.4,v 1.10 2003/05/21 15:55:40 ru Exp $
 .Dd JANUARY 8, 2003
 .Os
 .Dt MAC 4
@@ -285,8 +285,8 @@
 The TrustedBSD MAC Framework is considered experimental in
 .Fx .
 .Pp
-While the MAC Framework design is intended to support the containment of   
-the root user, not all attack channels are currently protected by entry  
+While the MAC Framework design is intended to support the containment of
+the root user, not all attack channels are currently protected by entry
 point checks.
 As such, MAC Framework policies should not be relied on, in isolation,
 to protect against a malicious privileged user.

==== //depot/projects/hammer/share/man/man4/mac_bsdextended.4#3 (text+ko) ====

@@ -1,12 +1,12 @@
 .\" Copyright (c) 2002 Networks Associates Technology, Inc.
 .\" All rights reserved.
-.\" 
+.\"
 .\" This software was developed for the FreeBSD Project by Chris Costello
 .\" at Safeport Network Services and Network Associates Laboratories, the
 .\" Security Research Division of Network Associates, Inc. under

>>> TRUNCATED FOR MAIL (1000 lines) <<<



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