Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jul 2006 05:43:05 GMT
From:      Kip Macy <kmacy@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 100461 for review
Message-ID:  <200607030543.k635h5tJ038849@repoman.freebsd.org>

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

Change 100461 by kmacy@kmacy_storage:sun4v_work_stable on 2006/07/03 05:42:13

	IFC@100453

Affected files ...

.. //depot/projects/kmacy_sun4v_stable/src/MAINTAINERS#3 integrate
.. //depot/projects/kmacy_sun4v_stable/src/include/malloc_np.h#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/lib/libc/stdlib/malloc.c#3 integrate
.. //depot/projects/kmacy_sun4v_stable/src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#3 integrate
.. //depot/projects/kmacy_sun4v_stable/src/share/man/man4/ng_netflow.4#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/amd64/amd64/pmap.c#3 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/arm/at91/at91_pio.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/arm/at91/at91_pio_rm9200.h#1 branch
.. //depot/projects/kmacy_sun4v_stable/src/sys/arm/at91/at91_piovar.h#1 branch
.. //depot/projects/kmacy_sun4v_stable/src/sys/arm/at91/uart_dev_at91usart.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/compat/svr4/Makefile#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/conf/kmod.mk#3 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/bktr/CHANGELOG.TXT#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/acphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/amphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/bmtphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/brgphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/ciphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/e1000phy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/exphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/inphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/lxtphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/mlphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/nsgphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/nsphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/pnaphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/qsphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/rgephy.c#3 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/rlphy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/ruephy.c#2 integrate
.. //depot/projects/kmacy_sun4v_stable/src/sys/dev/mii/tdkphy.c#2 integrate

Differences ...

==== //depot/projects/kmacy_sun4v_stable/src/MAINTAINERS#3 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/MAINTAINERS,v 1.135 2006/06/03 01:52:11 scottl Exp $
+$FreeBSD: src/MAINTAINERS,v 1.136 2006/07/01 10:51:54 markm Exp $
 
 Please note that the content of this file is strictly advisory.
 No locks listed here are valid.  The only strict review requirements
@@ -35,10 +35,6 @@
 NEWCARD		imp	Pre-commit review requested.
 OLDCARD		imp	Pre-commit review requested.
 pci bus		imp,jhb	Pre-commit review requested.
-telnet		markm	Heads-up appreciated. Try not to break it.
-secure/*	markm	Heads-up appreciated. Try not to break it.
-kerberos5	nectar  Pre-commit review requested.
-heimdal		nectar	Pre-commit review requested.
 cdboot		jhb	Pre-commit review requested.
 pxeboot		jhb	Pre-commit review requested.
 witness		jhb	Pre-commit review requested.
@@ -91,8 +87,6 @@
 libufs		jmallett	Willing to handle problems, help with work.
 fdc(4)		joerg	Just keep me informed of changes, try not to break it.
 sppp(4)		joerg	Just keep me informed of changes, try not to break it.
-libc		nectar	Opportuntity for pre-commit review appreciated for
-			nsdispatch(3) and its consumers.
 unifdef(1)	fanf	Pre-commit review requested.
 ntp         	roberto	Pre-commit review requested.
 inetd		dwmalone	Recommends pre-commit review.
@@ -147,12 +141,7 @@
 games/fortune/datfiles/Makefile:MAINTAINER=	jkh
 gnu/usr.bin/man/apropos/Makefile:MAINTAINER= wosch
 sbin/dhclient/Makefile.inc:MAINTAINER=     mbr
-sys/compat/svr4/Makefile:MAINTAINER=	newton@freebsd.org
-sys/dev/bktr/CHANGELOG.TXT: * MAINTAINER = Roger Hardiman <roger@freebsd.org>
 sys/modules/3dfx/Makefile:MAINTAINER=	cokane@FreeBSD.org
-sys/modules/bktr/bktr_mem/Makefile:MAINTAINER=	roger@freebsd.org
-sys/modules/streams/Makefile:MAINTAINER=	newton@atdot.dotat.org
-sys/modules/svr4/Makefile:MAINTAINER=	newton@FreeBSD.org
 sys/modules/urio/Makefile:MAINTAINER=	Iwasa Kazmi <kzmi@ca2.so-net.ne.jp>
 tools/tools/sysdoc/Makefile:MAINTAINER=	trhodes@FreeBSD.org
 usr.bin/locate/Makefile:MAINTAINER= wosch

==== //depot/projects/kmacy_sun4v_stable/src/include/malloc_np.h#2 (text) ====

@@ -26,12 +26,16 @@
  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/include/malloc_np.h,v 1.1 2006/03/28 22:16:03 jasone Exp $
+ * $FreeBSD: src/include/malloc_np.h,v 1.2 2006/06/30 20:57:41 jasone Exp $
  */
 
 #ifndef _MALLOC_NP_H_
 #define	_MALLOC_NP_H_
+#include <sys/cdefs.h>
+#include <sys/types.h>
 
+__BEGIN_DECLS
 size_t	malloc_usable_size(const void *ptr);
+__END_DECLS
 
 #endif /* _MALLOC_NP_H_ */

==== //depot/projects/kmacy_sun4v_stable/src/lib/libc/stdlib/malloc.c#3 (text+ko) ====

@@ -185,7 +185,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.127 2006/06/20 20:38:25 jasone Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.129 2006/07/01 16:51:10 jasone Exp $");
 
 #include "libc_private.h"
 #ifdef MALLOC_DEBUG
@@ -659,9 +659,6 @@
  * Data.
  */
 
-/* Used as a special "nil" return value for malloc(0). */
-static const int	nil;
-
 /* Number of CPUs. */
 static unsigned		ncpus;
 
@@ -1565,82 +1562,82 @@
 static inline void
 arena_run_reg_dalloc(arena_run_t *run, arena_bin_t *bin, void *ptr, size_t size)
 {
+	/*
+	 * To divide by a number D that is not a power of two we multiply
+	 * by (2^21 / D) and then right shift by 21 positions.
+	 *
+	 *   X / D
+	 *
+	 * becomes
+	 *
+	 *   (size_invs[(D >> QUANTUM_2POW_MIN) - 3] * D) >> SIZE_INV_SHIFT
+	 */
+#define SIZE_INV_SHIFT 21
+#define SIZE_INV(s) (((1 << SIZE_INV_SHIFT) / (s << QUANTUM_2POW_MIN)) + 1)
+	static const unsigned size_invs[] = {
+	    SIZE_INV(3),
+	    SIZE_INV(4), SIZE_INV(5), SIZE_INV(6), SIZE_INV(7),
+	    SIZE_INV(8), SIZE_INV(9), SIZE_INV(10), SIZE_INV(11),
+	    SIZE_INV(12),SIZE_INV(13), SIZE_INV(14), SIZE_INV(15),
+	    SIZE_INV(16),SIZE_INV(17), SIZE_INV(18), SIZE_INV(19),
+	    SIZE_INV(20),SIZE_INV(21), SIZE_INV(22), SIZE_INV(23),
+	    SIZE_INV(24),SIZE_INV(25), SIZE_INV(26), SIZE_INV(27),
+	    SIZE_INV(28),SIZE_INV(29), SIZE_INV(30), SIZE_INV(31)
+	};
 	unsigned diff, regind, elm, bit;
 
 	assert(run->magic == ARENA_RUN_MAGIC);
+	assert(((sizeof(size_invs)) / sizeof(unsigned)) + 3
+	    >= (SMALL_MAX_DEFAULT >> QUANTUM_2POW_MIN));
 
 	/*
-	 * Avoid doing division with a variable divisor if possible.  This
-	 * single operation can reduce allocator throughput by around 20%!
+	 * Avoid doing division with a variable divisor if possible.  Using
+	 * actual division here can reduce allocator throughput by over 20%!
 	 */
-#define POW2_CASE(p)							\
-		case (1 << (p)):					\
-			regind = diff >> (p);				\
-			break;
-#define QUANTUM_CASE(n)							\
-		case ((n) << QUANTUM_2POW_MIN):				\
-			regind = diff / ((n) << QUANTUM_2POW_MIN);	\
-			break;
-
-	/*
-	 * These assertions make sure that the switch statement matches
-	 * compile-time configuration.
-	 */
-	assert(tiny_min_2pow >= 1);
-	assert(QUANTUM_2POW_MIN >= 3 && QUANTUM_2POW_MIN <= 4);
-	assert(SMALL_MAX_2POW_DEFAULT == 9);
-
 	diff = (unsigned)((uintptr_t)ptr - (uintptr_t)run - bin->reg0_offset);
-	switch (size) {
-		POW2_CASE(1)
-		POW2_CASE(2)
-#if (QUANTUM_2POW_MIN > 3)
-		POW2_CASE(3)
-#endif
-		QUANTUM_CASE(1)
-		QUANTUM_CASE(2)
-		QUANTUM_CASE(3)
-		QUANTUM_CASE(4)
-		QUANTUM_CASE(5)
-		QUANTUM_CASE(6)
-		QUANTUM_CASE(7)
-		QUANTUM_CASE(8)
-		QUANTUM_CASE(9)
-		QUANTUM_CASE(10)
-		QUANTUM_CASE(11)
-		QUANTUM_CASE(12)
-		QUANTUM_CASE(13)
-		QUANTUM_CASE(14)
-		QUANTUM_CASE(15)
-		QUANTUM_CASE(16)
-		QUANTUM_CASE(17)
-		QUANTUM_CASE(18)
-		QUANTUM_CASE(19)
-		QUANTUM_CASE(20)
-		QUANTUM_CASE(21)
-		QUANTUM_CASE(22)
-		QUANTUM_CASE(23)
-		QUANTUM_CASE(24)
-		QUANTUM_CASE(25)
-		QUANTUM_CASE(26)
-		QUANTUM_CASE(27)
-		QUANTUM_CASE(28)
-		QUANTUM_CASE(29)
-		QUANTUM_CASE(30)
-		QUANTUM_CASE(31)
-		QUANTUM_CASE(32)
+	if ((size & (size - 1)) == 0) {
+		/*
+		 * log2_table allows fast division of a power of two in the
+		 * [1..128] range.
+		 *
+		 * (x / divisor) becomes (x >> log2_table[divisor - 1]).
+		 */
+		static const unsigned char log2_table[] = {
+		    0, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4,
+		    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
+		    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
+		    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7
+		};
 
-#if (QUANTUM_2POW_MIN <= 3)
-		POW2_CASE(9)
-#endif
-		POW2_CASE(10)
-		POW2_CASE(11)
-		POW2_CASE(12) /* Handle up to 8 kB pages. */
-		default:
+		if (size <= 128)
+			regind = (diff >> log2_table[size - 1]);
+		else if (size <= 32768)
+			regind = diff >> (8 + log2_table[(size >> 8) - 1]);
+		else {
+			/*
+			 * The page size is too large for us to use the lookup
+			 * table.  Use real division.
+			 */
 			regind = diff / size;
-	}
-#undef POW2_CASE
-#undef QUANTUM_CASE
+		}
+	} else if (size <= ((sizeof(size_invs) / sizeof(unsigned))
+	    << QUANTUM_2POW_MIN) + 2) {
+		regind = size_invs[(size >> QUANTUM_2POW_MIN) - 3] * diff;
+		regind >>= SIZE_INV_SHIFT;
+	} else {
+		/*
+		 * size_invs isn't large enough to handle this size class, so
+		 * calculate regind using actual division.  This only happens
+		 * if the user increases small_max via the 'S' runtime
+		 * configuration option.
+		 */
+		regind = diff / size;
+	};
+	assert(regind == diff / size);
 	assert(regind < bin->nregs);
 
 	elm = regind >> (SIZEOF_INT_2POW + 3);
@@ -1649,6 +1646,8 @@
 	bit = regind - (elm << (SIZEOF_INT_2POW + 3));
 	assert((run->regs_mask[elm] & (1 << bit)) == 0);
 	run->regs_mask[elm] |= (1 << bit);
+#undef SIZE_INV
+#undef SIZE_INV_SHIFT
 }
 
 static void
@@ -2239,7 +2238,6 @@
 	arena_chunk_map_t mapelm;
 
 	assert(ptr != NULL);
-	assert(ptr != &nil);
 	assert(CHUNK_ADDR2BASE(ptr) != ptr);
 
 	/*
@@ -2281,8 +2279,7 @@
 		    == (QUANTUM_CEILING(oldsize) >> opt_quantum_2pow))
 			goto IN_PLACE;
 	} else {
-		if (oldsize > small_max &&
-		    pow2_ceil(size) == pow2_ceil(oldsize))
+		if (oldsize > small_max && pow2_ceil(size) == oldsize)
 			goto IN_PLACE;
 	}
 
@@ -2320,7 +2317,6 @@
 	assert(arena->magic == ARENA_MAGIC);
 	assert(chunk->arena == arena);
 	assert(ptr != NULL);
-	assert(ptr != &nil);
 	assert(CHUNK_ADDR2BASE(ptr) != ptr);
 
 	pageind = (((uintptr_t)ptr - (uintptr_t)chunk) >> pagesize_2pow);
@@ -2353,6 +2349,7 @@
 		/* Medium allocation. */
 
 		size = mapelm.npages << pagesize_2pow;
+		assert((((uintptr_t)ptr) & (size - 1)) == 0);
 
 		if (opt_junk)
 			memset(ptr, 0x5a, size);
@@ -2666,29 +2663,36 @@
 ipalloc(size_t alignment, size_t size)
 {
 	void *ret;
-	size_t pow2_size;
+	size_t alloc_size;
 
 	/*
-	 * Round up to the nearest power of two that is >= alignment and
-	 * >= size.
+	 * Take advantage of the fact that for each size class, every object is
+	 * aligned at the smallest power of two that is non-zero in the base
+	 * two representation of the size.  For example:
+	 *
+	 *   Size |   Base 2 | Minimum alignment
+	 *   -----+----------+------------------
+	 *     96 |  1100000 |  32
+	 *    144 | 10100000 |  32
+	 *    192 | 11000000 |  64
+	 *
+	 * Depending on runtime settings, it is possible that arena_malloc()
+	 * will further round up to a power of two, but that never causes
+	 * correctness issues.
 	 */
-	if (size > alignment)
-		pow2_size = pow2_ceil(size);
-	else
-		pow2_size = alignment;
-	pow2_size = QUANTUM_CEILING(pow2_size);
-	if (pow2_size < size) {
+	alloc_size = (size + (alignment - 1)) & (-alignment);
+	if (alloc_size < size) {
 		/* size_t overflow. */
 		return (NULL);
 	}
 
-	if (pow2_size <= arena_maxclass)
-		ret = arena_malloc(choose_arena(), pow2_size);
+	if (alloc_size <= arena_maxclass)
+		ret = arena_malloc(choose_arena(), alloc_size);
 	else {
 		if (alignment <= chunk_size)
 			ret = huge_malloc(size);
 		else {
-			size_t chunksize, alloc_size, offset;
+			size_t chunksize, offset;
 			chunk_node_t *node;
 
 			/*
@@ -2815,7 +2819,6 @@
 	arena_chunk_t *chunk;
 
 	assert(ptr != NULL);
-	assert(ptr != &nil);
 
 	chunk = (arena_chunk_t *)CHUNK_ADDR2BASE(ptr);
 	if (chunk != ptr) {
@@ -2850,7 +2853,6 @@
 	size_t oldsize;
 
 	assert(ptr != NULL);
-	assert(ptr != &nil);
 	assert(size != 0);
 
 	oldsize = isalloc(ptr);
@@ -2869,7 +2871,6 @@
 	arena_chunk_t *chunk;
 
 	assert(ptr != NULL);
-	assert(ptr != &nil);
 
 	chunk = (arena_chunk_t *)CHUNK_ADDR2BASE(ptr);
 	if (chunk != ptr) {
@@ -3404,10 +3405,11 @@
 
 	if (size == 0) {
 		if (opt_sysv == false)
-			ret = (void *)&nil;
-		else
+			size = 1;
+		else {
 			ret = NULL;
-		goto RETURN;
+			goto RETURN;
+		}
 	}
 
 	ret = imalloc(size);
@@ -3486,10 +3488,11 @@
 	num_size = num * size;
 	if (num_size == 0) {
 		if (opt_sysv == false)
-			ret = (void *)&nil;
-		else
+			num_size = 1;
+		else {
 			ret = NULL;
-		goto RETURN;
+			goto RETURN;
+		}
 	/*
 	 * Try to avoid division here.  We know that it isn't possible to
 	 * overflow during multiplication if neither operand uses any of the
@@ -3524,44 +3527,49 @@
 {
 	void *ret;
 
-	if (size != 0) {
-		if (ptr != &nil && ptr != NULL) {
-			assert(malloc_initialized);
+	if (size == 0) {
+		if (opt_sysv == false)
+			size = 1;
+		else {
+			if (ptr != NULL)
+				idalloc(ptr);
+			ret = NULL;
+			goto RETURN;
+		}
+	}
 
-			ret = iralloc(ptr, size);
+	if (ptr != NULL) {
+		assert(malloc_initialized);
 
-			if (ret == NULL) {
-				if (opt_xmalloc) {
-					malloc_printf("%s: (malloc) Error in"
-					    " ralloc(%p, %zu): out of memory\n",
-					    _getprogname(), ptr, size);
-					abort();
-				}
-				errno = ENOMEM;
-			}
-		} else {
-			if (malloc_init())
-				ret = NULL;
-			else
-				ret = imalloc(size);
+		ret = iralloc(ptr, size);
 
-			if (ret == NULL) {
-				if (opt_xmalloc) {
-					malloc_printf("%s: (malloc) Error in"
-					    " ralloc(%p, %zu): out of memory\n",
-					    _getprogname(), ptr, size);
-					abort();
-				}
-				errno = ENOMEM;
+		if (ret == NULL) {
+			if (opt_xmalloc) {
+				malloc_printf("%s: (malloc) Error in"
+				    " realloc(%p, %zu): out of memory\n",
+				    _getprogname(), ptr, size);
+				abort();
 			}
+			errno = ENOMEM;
 		}
 	} else {
-		if (ptr != &nil && ptr != NULL)
-			idalloc(ptr);
+		if (malloc_init())
+			ret = NULL;
+		else
+			ret = imalloc(size);
 
-		ret = (void *)&nil;
+		if (ret == NULL) {
+			if (opt_xmalloc) {
+				malloc_printf("%s: (malloc) Error in"
+				    " realloc(%p, %zu): out of memory\n",
+				    _getprogname(), ptr, size);
+				abort();
+			}
+			errno = ENOMEM;
+		}
 	}
 
+RETURN:
 	UTRACE(ptr, size, ret);
 	return (ret);
 }
@@ -3571,7 +3579,7 @@
 {
 
 	UTRACE(ptr, 0, 0);
-	if (ptr != &nil && ptr != NULL) {
+	if (ptr != NULL) {
 		assert(malloc_initialized);
 
 		idalloc(ptr);
@@ -3592,10 +3600,7 @@
 
 	assert(ptr != NULL);
 
-	if (ptr == &nil)
-		return (0);
-	else
-		return (isalloc(ptr));
+	return (isalloc(ptr));
 }
 
 /*

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

@@ -3,7 +3,7 @@
 
   <corpauthor>The &os; Project</corpauthor>
 
-  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.951 2006/06/26 12:12:09 keramida Exp $</pubdate>
+  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.953 2006/07/02 01:58:33 bmah Exp $</pubdate>
 
   <copyright>
     <year>2000</year>
@@ -366,11 +366,11 @@
       <para arch="i386,amd64">A new loader tunable
 	<varname>comconsole_speed</varname> to change
 	the serial console speed has been added.
-	If the previous stage boot loader requested a serial console
+	If the previous stage boot loader requested a serial console,
 	then the default speed is determined from the current serial port
-	speed, and otherwise it is set to 9600 or the value of
-	the kernel option <literal>BOOT_COMCONSOLE_SPEED</literal>
-	at compile time.  &merged;</para>
+	speed.  Otherwise it is set to 9600 or the value of
+	the <literal>BOOT_COMCONSOLE_SPEED</literal> kernel option.
+	&merged;</para>
 
       <!-- Above this line, order boot loader changes by keyword-->
 
@@ -391,7 +391,7 @@
 	&man.pccbb.4;, and &man.exca.4; drivers are now buildable
 	as kernel modules.</para>
 
-      <para>A &man.acpi.dock.4; driver has been added to provide
+      <para>An &man.acpi.dock.4; driver has been added to provide
         support for controlling laptop docking station functions via
         ACPI.</para>
 
@@ -416,9 +416,11 @@
 
       <para>Support for the PadLock Security Co-processor in VIA C3
 	processors has been added to the &man.crypto.9; subsystem.
+	More information can be found in the &man.padlock.4; manual
+	page.
 	&merged;</para>
 
-      <para>A bug which prevents the &man.ichsmb.4; kernel module
+      <para>A bug which prevented the &man.ichsmb.4; kernel module
 	from unloading has been fixed.</para>
 
       <para arch="i386,amd64">Dual-core processors (such as the Intel
@@ -440,7 +442,7 @@
 	or at runtime via &man.kldload.8; and releasing the active
 	keyboard.  &merged;</para>
 
-      <para arch="amd64,i386">The &man.kbdmux.4; driver has been included in the
+      <para arch="amd64,i386">The &man.kbdmux.4; driver is now included in the
 	<filename>GENERIC</filename> kernel by default.
 	Also, the <quote>Boot FreeBSD with USB keyboard</quote>
 	menu item in the boot loader menu has been removed
@@ -461,22 +463,22 @@
       <para arch="amd64">The smbios(4) driver support for amd64 has been
 	added.</para>
 
-      <para>The tnt4882(4) driver which supports National Instruments
-	PCI-GPIB card has been added.</para>
+      <para>The tnt4882(4) driver, which supports the National Instruments
+	PCI-GPIB card, has been added.</para>
 
       <para arch="alpha,amd64,i386,ia64,sparc64">The &man.uart.4; driver has been included in the
 	<filename>GENERIC</filename> kernel by default.
-	When both &man.sio.4; and &man.uart.4; can handle a serial port,
+	When both &man.sio.4; and &man.uart.4; can handle a given serial port,
 	&man.sio.4; will claim it.</para>
 
       <para>The &man.uart.4; driver now supports LOM (Lights Out Management)
-	and RSC (Remote System Control) devices as console.</para>
+	and RSC (Remote System Control) devices as consoles.</para>
 
       <para arch="i386">A new loader tunable
 	<varname>hw.apic.enable_extint</varname> has been added.
-	This tunable can be used not to mask the ExtINT pin on the first
-	I/O APIC.  At least one chipset for Intel Pentium III seems
-	to need this even though all of the pins in the 8259A's are masked.
+	This tunable can be used to disable masking of the ExtINT pin on the first
+	I/O APIC.  At least one chipset for the Intel Pentium III seems
+	to need this, even though all of the pins in the 8259As are masked.
 	The default is still to mask the ExtINT pin.</para>
 
       <para arch="i386">Support has been improved for
@@ -487,7 +489,7 @@
       <sect4 id="mm">
 	<title>Multimedia Support</title>
 
-	<para>The &man.agp.4; driver now supports ATI IGP chipsets.
+	<para>The &man.agp.4; driver now supports ATI AGP chipsets.
 	  &merged;</para>
 
 	<para>The new midi(4) driver which is based on NetBSD's one
@@ -561,7 +563,7 @@
 
 	<para>The &man.ed.4; driver is now MPSAFE.</para>
 
-	<para>The &man.el.4; driver has been removed.</para>
+	<para>The &man.el.4; driver has been removed due to lack of use.</para>
 
 	<para>The &man.em.4; driver now supports big-endian
 	  architectures such as sparc64.  &merged;</para>
@@ -583,11 +585,12 @@
 	  architectures such as sparc64.</para>
 
 	<para>The &man.le.4; driver, which supports AMD Am7900 LANCE
-	  and Am79C9xx PCnet NICs and is based on NetBSD's implementation,
+	  and Am79C9xx PCnet NICs,
 	  has been added.  While the &man.lnc.4; driver also supports these
 	  NICs, this driver has several advantages over it such as
 	  MPSAFE, ALTQ, VLAN_MTU, ifmedia, and 32-bit DMA for PCI
-	  variants.  &merged;</para>
+	  variants.  This driver is based on NetBSD's implementation.
+	  &merged;</para>
 
 	<para>The &man.lge.4; driver is now MPSAFE. &merged;</para>
 
@@ -597,7 +600,7 @@
 
 	<para>The &man.my.4; driver is now MPSAFE. &merged;</para>
 
-	<para>The &man.my.4; driver now supports &man.altq.4;</para>
+	<para>The &man.my.4; driver now supports &man.altq.4;.</para>
 
 	<para arch="i386,amd64">The &man.mxge.4; driver,
 	  which supports Myricom Myri10GE 10 Gigabit Ethernet
@@ -647,14 +650,14 @@
     <sect3 id="net-proto">
       <title>Network Protocols</title>
 
-      <para>The &man.arp.8; retransmission algorithm has been
-	rewritten as that ARP requests are retransmitted without
+      <para>The &man.arp.4; retransmission algorithm has been
+	rewritten so that ARP requests are retransmitted without
 	suppression, while there is demand for such ARP entry.
 	Due to this change, a sysctl variable
 	<varname>net.link.ether.inet.host_down_time</varname>
 	has been removed.  &merged;</para>
 
-      <para>The &man.arp.8; now supports a sysctl variable
+      <para>The &man.arp.4; protocol now supports a sysctl variable
 	<varname>net.link.ether.inet.log_arp_permanent_modify</varname>
 	to suppress logging of attempts to modify
 	permanent ARP entries.  &merged;</para>
@@ -674,7 +677,7 @@
 	found in RFC 1701 and RFC 1702, now supports IPv6 over GRE.</para>
 
       <para>The &man.if.bridge.4; driver now supports
-	creating span ports, which transmit a copy of every frame
+	creating SPAN ports, which transmit a copy of every frame
 	received by the bridge.  This feature can be enabled
 	by using &man.ifconfig.8;.  &merged;</para>
 
@@ -689,15 +692,15 @@
         memberships (formerly 20) has been removed.</para>
 
       <para>The path MTU discovery for multicast packets in the &os;
-	&man.ip6.4; stack has been disabled by default because
-	notifying path MTU by a lot of routers in multicast
+	IPv6 stack has been disabled by default.
+	Path MTU notification from a large number of multicast routers
 	can be a kind of distributed Denial-of-Service attack to a router.
 	This feature can be re-enabled by using a new sysctl variable
 	<varname>net.inet6.ip6.mcast_pmtu</varname>.  &merged;</para>
 
       <para>The &man.ipfw.4; IP packet filter now supports IPv6.  &merged;</para>
 
-      <para>The &man.ipfw.4; now supports substitution of the action
+      <para>The &man.ipfw.4; firewall system now supports substitution of the action
 	argument with the value obtained from table lookup,
 	which allows some optimization of rulesets.
 	This is now applicable only to <literal>pipe</literal>,
@@ -776,25 +779,25 @@
       <para>A new socket option <literal>IP_MINTTL</literal> has been added.
 	This may be used to set the minimum acceptable
 	TTL a packet must have when received on a socket.
-	All packets with a lower TTL are silently dropped,
-	and this works on already connected/connecting and
+	All packets with a lower TTL are silently dropped.
+	This works on already connected/connecting and
 	listening sockets for RAW, UDP, and TCP.  This option
-	is only really useful when set to 255 preventing packets
+	is only really useful when set to <literal>255</literal>, preventing packets
 	from outside the directly connected networks reaching
 	local listeners on sockets.  Also, this option allows
 	userland implementation of <quote>The Generalized TTL
 	  Security Mechanism (GTSM)</quote> found in RFC 3682.</para>
 
-      <para>The stealth forwarding now supports IPv6 as well as IPv4.
+      <para>Stealth forwarding now supports IPv6 as well as IPv4.
 	This behavior can be controlled by using a new sysctl variable
 	<varname>net.inet6.ip6.stealth</varname>.</para>
 
-      <para>A bug that <literal>IPV6_V6ONLY</literal> socket option
-	does not work for UDP has been fixed.</para>
+      <para>The <literal>IPV6_V6ONLY</literal> socket option
+	now works for UDP.</para>
 
       <para>The TCP bandwidth-delay product limiting feature has
 	been disabled when the RTT is below a certain threshold.
-	This optimization does not make sense on a LAN as it has
+	This optimization does not make sense on a LAN, as it has
 	trouble figuring out the maximal bandwidth due to the coarse
 	tick granularity.  A new sysctl variable
 	<varname>net.inet.tcp.inflight.rttthresh</varname> specifies
@@ -831,16 +834,16 @@
 	Fasttrak TX4300.
 	&merged;</para>
 
-      <para>The &man.ata.4; driver now supports DMA for kernel crash dumps
-	and crash dumping to an &man.ataraid.4; device.
+      <para>The &man.ata.4; driver now supports DMA for kernel crash dumps,
+	as well as crash dumping to an &man.ataraid.4; device.
 	&merged;</para>
 
       <para>The &man.ata.4; driver now supports USB mass storage class
 	devices.  To enable it, a line <literal>device atausb</literal>
 	in the kernel configuration file or loading the
 	<filename>atausb</filename> kernel module is needed.
-	Note that this conflicts with &man.umass.4; and cannot coexist with
-	each other.</para>
+	Note that this functionality cannot coexist with the
+	&man.umass.4; driver.</para>
 
       <para>The &man.ataraid.4; driver now supports
 	JMicron ATA RAID metadata.  &merged;</para>
@@ -870,12 +873,12 @@
 	&merged;</para>
 
       <para>The <literal>GEOM_MIRROR</literal> and <literal>GEOM_RAID3</literal>
-	classes now use parallel I/O request for synchronization
+	classes now use parallel I/O requests for synchronization
 	to improve the performance.  New sysctl variables
 	<varname>kern.geom.mirror.sync_requests</varname> and
 	<varname>kern.geom.raid3.sync_requests</varname>
 	define how many parallel I/O requests should be used.
-	Also, sysctl variables
+	Also, the sysctl variables
 	<varname>kern.geom.mirror.reqs_per_sync</varname>,
 	<varname>kern.geom.mirror.syncs_per_sec</varname>,
 	<varname>kern.geom.raid3.reqs_per_sync</varname>, and
@@ -920,7 +923,7 @@
 	and supports different cryptographic algorithms.  See &man.geli.8; for
 	more information. &merged;</para>
 
-      <para>The &man.geli.8; now supports loading keyfiles before the root
+      <para>The &man.geli.8; disk encryption system now supports loading keyfiles before the root
 	file system is mounted.  &merged;
 	For example, the following entries
 	can be used in <filename>/boot/loader.conf</filename> to enable
@@ -981,8 +984,8 @@
       in <varname>struct addrinfo</varname> has been removed,
       which was originally for the ABI compatibility.
       For example, this change breaks the ABI compatibility of the
-      &man.getaddrinfo.3; function on 64-bit architecture including
-      &os;/alpha, &os;/amd64, &os;/ia64, and &os;/sparc64.</para>
+      &man.getaddrinfo.3; function on 64-bit architectures, including
+      &os;/amd64, &os;/ia64, and &os;/sparc64.</para>
 
     <para>The &man.arp.8; utility now allows the <option>-i</option>
       option together with the <option>-d</option> and <option>-a</option> options
@@ -1016,7 +1019,7 @@
       kernel configuration file if it exists in the current directory
       before the specified configuration file.  &merged;</para>
 
-    <para>The &man.csh.1; utility now supports NLS catalog.
+    <para>The &man.csh.1; utility now supports NLS catalogs.
       Note that this requires installing
       the <filename role="package">shells/tcsh_nls</filename> port.
       &merged;</para>
@@ -1070,7 +1073,7 @@
       to rename objects and to move a subdisk from
       one drive to another.  &merged;</para>
 
-    <para>The &man.gvinum.8; utility now supports
+    <para>The &man.gvinum.8; utility now supports the
       <command>resetconfig</command> sub-command.</para>
 
     <para>An implementation of Generic Security Service API (GSS-API)
@@ -1097,8 +1100,8 @@
 
     <para>The <option>-vlandev</option> parameter to &man.ifconfig.8;
       no longer requires a network interface as its argument.  The
-      argument still is supported for backward compatibility, but now
-      it is deprecated and its use is discouraged.</para>
+      argument still is supported for backward compatibility, but
+      is now deprecated and its use is discouraged.</para>
 
     <para>The &man.iostat.8; utility now supports
       a <option>-x</option> flag (inspired by Solaris) to print
@@ -1160,8 +1163,8 @@
       for the allocators. &merged;</para>
 
     <para>The &man.ln.1; utility now supports
-      an <option>-F</option> flag which allows to delete existing
-      empty directories, when creating symbolic links.
+      an <option>-F</option> flag, which deletes existing
+      empty directories when creating symbolic links.
       &merged;</para>
 
     <para>The &man.locate.1; utility now supports
@@ -1187,10 +1190,10 @@
       userland code, although most of the &os; base system and common
       ports have been tested and/or fixed.</para>
 
-    <para>The &man.mdconfig.8; utility now supports XML
-      output of the device listing.  Currently
+    <para>The &man.mdconfig.8; utility now supports producing
+      device listings formatted as XML.  Currently, the
       <command>list</command> and <command>query</command>
-      sub-command support this feature.</para>
+      sub-commands support this feature.</para>
 
     <para>The &man.mdconfig.8; utility's <option>-u</option> option
       now supports specifying multiple devices separated
@@ -1224,7 +1227,7 @@
       has been fixed.</para>
 
     <para>The &man.moused.8; daemon now supports an <option>-H</option> flag
-      to enable horizontal virtual scrolling similar to a
+      to enable horizontal virtual scrolling similar to the
       <option>-V</option> flag for vertical virtual scrolling.
       &merged;</para>
 
@@ -1273,7 +1276,7 @@
       each matching process.</para>
 
     <para>The &man.powerd.8; program now supports a
-      <option>-P</option> option which allows to specify pidfile.</para>
+      <option>-P</option> option, which specifies a pidfile to use.</para>
 
     <para>The DNS resolver library in &os;'s <application>libc</application>
       has been updated to BIND9's one.</para>
@@ -1284,7 +1287,7 @@
       LAN (LAN Access Using PPP), and SP (Serial Port).  &merged;</para>
 
     <para>The &man.rpcgen.1; utility now generates headers and stub files
-      which can be used with ANSI C compilers by default.</para>
+      that can be used with ANSI C compilers by default.</para>
 
     <para>The &man.rtld.1; runtime linker now supports ELF symbol versioning
       using GNU semantics.  This implementation aims to be compatible
@@ -1298,7 +1301,7 @@
       incorrect calculation of pattern space length in some cases
       has been fixed.</para>
 
-    <para>The &man.sh.1; utility now supports <literal>times</literal>
+    <para>The &man.sh.1; utility now supports a <literal>times</literal>
       built-in command. &merged;</para>
 
     <para>The &man.snapinfo.8; utility, which shows snapshot locations
@@ -1338,7 +1341,7 @@
 
     <para>The shared library version number of all libraries has
       been updated due to some possible ABI changes.  The libraries
-      include: snmp_*, libdialog, libg2c, libobjc,
+      include: snmp_<replaceable>*</replaceable>, libdialog, libg2c, libobjc,
       libreadline, libregex, libstdc++, libkrb5, libalias, libarchive,
       libbegemot, libbluetooth, libbsnmp, libbz2, libc_r, libcrypt,
       libdevstat, libedit, libexpat, libfetch, libftpio, libgpib,
@@ -1414,8 +1417,9 @@
 mdconfig_md1="-t vnode -f /var/foo.img"</programlisting>
 
       <para>The <filename>netif</filename> script now supports
-	<varname>ipv4_addrs_<replaceable>ifn</replaceable></varname>,
-	which adds one or more IPv4 address from a ranged list in
+	<varname>ipv4_addrs_<replaceable>ifn</replaceable></varname>
+	variables,
+	which add one or more IPv4 address from a ranged list in
 	CIDR notation.  &merged;  For example:</para>
 
       <programlisting>ipv4_addrs_ed0="192.168.0.1/24 192.168.1.1-5/28"</programlisting>
@@ -1427,7 +1431,8 @@
 
       <para>The <filename>rc.initdiskless</filename> script now uses &man.tar.1;
 	instead of &man.pax.1; because &man.pax.1; needs a writable
-	temporary directory.</para>
+	temporary directory that may not be available when this script
+	runs.</para>
 
       <para>The <filename>pccard</filename> script has been removed
 	since OLDCARD is deprecated.</para>
@@ -1539,7 +1544,7 @@
     <para>The &man.pkg.version.1; utility now supports an <option>-o</option>
       flag to show the origin recorded on package generation
       instead of the package name, and an <option>-O</option> flag
-      to list packages whose registered origin is origin only.
+      to list packages with a specific registered origin.
       &merged;</para>
 
     <para>The &man.portsnap.8; utility (<filename>sysutils/portsnap</filename>)
@@ -1644,9 +1649,9 @@
       </listitem>
     </itemizedlist>
 
-    <para>A new &man.make.1; target <command>make showconfig</command>
-      has been added in <filename>src/Makefile</filename>
-      to show build configuration of the &os; source tree.</para>
+    <para>A new <literal>showconfig</literal>
+      target has been added in <filename>src/Makefile</filename>
+      to show the build configuration of the &os; source tree.</para>
 
     <para>A <filename>/media</filename> directory has been
       added to contain mount points for removable media

==== //depot/projects/kmacy_sun4v_stable/src/share/man/man4/ng_netflow.4#2 (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/ng_netflow.4,v 1.13 2006/03/02 15:11:05 glebius Exp $
+.\" $FreeBSD: src/share/man/man4/ng_netflow.4,v 1.14 2006/07/01 17:59:13 ru Exp $
 .\"
 .Dd March 2, 2006
 .Os
@@ -108,7 +108,7 @@
 .Va iface Ns Ar N
 hook.
 Currently, supported types are raw IP datagrams and Ethernet.
-This messsage type uses
+This message type uses
 .Vt "struct ng_netflow_setdlt"
 as an argument:
 .Bd -literal -offset 4n

==== //depot/projects/kmacy_sun4v_stable/src/sys/amd64/amd64/pmap.c#3 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.560 2006/06/27 04:28:22 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.563 2006/07/02 18:22:46 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -490,8 +490,7 @@
  *	(physical) address starting relative to 0]
  */
 void
-pmap_bootstrap(firstaddr)
-	vm_paddr_t *firstaddr;
+pmap_bootstrap(vm_paddr_t *firstaddr)
 {
 	vm_offset_t va;
 	pt_entry_t *pte, *unused;
@@ -1132,8 +1131,7 @@
 }
 
 void
-pmap_pinit0(pmap)
-	struct pmap *pmap;
+pmap_pinit0(pmap_t pmap)
 {
 
 	PMAP_LOCK_INIT(pmap);
@@ -1148,8 +1146,7 @@
  * such as one in a vmspace structure.
  */
 void
-pmap_pinit(pmap)
-	register struct pmap *pmap;
+pmap_pinit(pmap_t pmap)
 {
 	vm_page_t pml4pg;
 	static vm_pindex_t color;
@@ -1611,9 +1608,9 @@
 				vm_page_flag_clear(m, PG_WRITEABLE);
 			m->md.pv_list_count--;
 			pmap_unuse_pt(pmap, va, ptepde);
+			free_pv_entry(pmap, pv);
 			if (pmap != locked_pmap)
 				PMAP_UNLOCK(pmap);
-			free_pv_entry(locked_pmap, pv);

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



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