PERFORCE change 90459 for review
Alan Cox
alc at FreeBSD.org
Thu Jan 26 23:55:15 PST 2006
http://perforce.freebsd.org/chv.cgi?CH=90459
Change 90459 by alc at alc_home on 2006/01/27 07:54:23
IFC
Affected files ...
.. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/security/chapter.sgml#4 integrate
.. //depot/projects/superpages/src/lib/libc/stdlib/malloc.c#5 integrate
.. //depot/projects/superpages/src/share/man/man5/rc.conf.5#4 integrate
.. //depot/projects/superpages/src/sys/kern/vfs_aio.c#5 integrate
.. //depot/projects/superpages/src/sys/vm/vm_map.c#4 integrate
.. //depot/projects/superpages/src/sys/vm/vm_object.c#6 integrate
.. //depot/projects/superpages/src/sys/vm/vm_pageout.c#7 integrate
.. //depot/projects/superpages/src/sys/vm/vm_pageq.c#8 integrate
.. //depot/projects/superpages/www/en/releases/6.1R/todo.sgml#3 integrate
Differences ...
==== //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/security/chapter.sgml#4 (text+ko) ====
@@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
- $FreeBSD: doc/en_US.ISO8859-1/books/handbook/security/chapter.sgml,v 1.285 2006/01/22 22:00:18 brd Exp $
+ $FreeBSD: doc/en_US.ISO8859-1/books/handbook/security/chapter.sgml,v 1.286 2006/01/27 05:43:53 brd Exp $
-->
<chapter id="security">
@@ -4810,12 +4810,11 @@
<username>root</username>'s email account, are being read. No
more configuration will be required here.</para>
- <para>After installation, an administrator must update the database
- stored locally in
- <filename role="directory">/var/db/portaudit</filename> by
- invoking the following command:</para>
+ <para>After installation, an administrator can update the database
+ and view known vulnerabilities in installed packages by invoking
+ the following command:</para>
- <screen>&prompt.root; <userinput>portaudit -F</userinput></screen>
+ <screen>&prompt.root; <userinput>portaudit -Fda</userinput></screen>
<note>
<para>The database will automatically be updated during the
@@ -4825,12 +4824,13 @@
</note>
<para>To audit the third party utilities installed as part of
- the Ports Collection, an administrator need only run the
- following command:</para>
+ the Ports Collection at anytime, an administrator need only run
+ the following command:</para>
<screen>&prompt.root; <userinput>portaudit -a</userinput></screen>
- <para>An example of output is provided:</para>
+ <para><application>Portaudit</application> will produce something
+ like this for vulnerable packages:</para>
<programlisting>Affected package: cups-base-1.1.22.0_1
Type of problem: cups-base -- HPGL buffer overflow vulnerability.
==== //depot/projects/superpages/src/lib/libc/stdlib/malloc.c#5 (text+ko) ====
@@ -133,10 +133,19 @@
/******************************************************************************/
-#define MALLOC_DEBUG
+/*
+ * In order to disable various extra features that may have negative
+ * performance impacts, (assertions, expanded statistics, redzones), define
+ * NO_MALLOC_EXTRAS.
+ */
+/* #define NO_MALLOC_EXTRAS */
+
+#ifndef NO_MALLOC_EXTRAS
+# define MALLOC_DEBUG
+#endif
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.106 2006/01/26 08:11:23 jasone Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdlib/malloc.c,v 1.109 2006/01/27 04:42:10 jasone Exp $");
#include "libc_private.h"
#ifdef MALLOC_DEBUG
@@ -176,13 +185,16 @@
* Calculate statistics that can be used to get an idea of how well caching is
* working.
*/
-#define MALLOC_STATS
-#define MALLOC_STATS_ARENAS
+#ifndef NO_MALLOC_EXTRAS
+# define MALLOC_STATS
+#endif
/*
* Include redzones before/after every region, and check for buffer overflows.
*/
-#define MALLOC_REDZONES
+#ifndef NO_MALLOC_EXTRAS
+# define MALLOC_REDZONES
+#endif
#ifdef MALLOC_REDZONES
# define MALLOC_RED_2POW 4
# define MALLOC_RED ((size_t)(1 << MALLOC_RED_2POW))
@@ -298,10 +310,10 @@
uint64_t nrequests;
/*
- * Number of best-fit allocations that were successfully serviced by
+ * Number of exact-fit allocations that were successfully serviced by
* this bin.
*/
- uint64_t nfit;
+ uint64_t nserviced;
/* High-water marks for this bin. */
unsigned long highcached;
@@ -311,7 +323,7 @@
* during normal operation, so is maintained here in order to allow
* calculating the high water mark.
*/
- unsigned nregions;
+ unsigned long curcached;
};
typedef struct arena_stats_s arena_stats_t;
@@ -349,11 +361,8 @@
/* Frag statistics. */
struct {
- /*
- * Number of times a region is cached in the "frag" field of
- * the arena.
- */
- uint64_t ncached;
+ /* Number of times the "frag" field of the arena is refilled. */
+ uint64_t nrefills;
/*
* Number of times a region is requested from the "frag" field
@@ -377,18 +386,12 @@
uint64_t nrequests;
/*
- * Number of best-fit allocations that were successfully
+ * Number of allocation requests that were successfully
* serviced by large_regions.
*/
- uint64_t nfit;
+ uint64_t nserviced;
/*
- * Number of allocation requests that were successfully serviced
- * large_regions, but that a bin could have serviced.
- */
- uint64_t noverfit;
-
- /*
* High-water mark for large_regions (number of nodes in tree).
*/
unsigned long highcached;
@@ -1176,7 +1179,7 @@
stats_arenas->split.nserviced += arena->stats.split.nserviced;
/* Frag. */
- stats_arenas->frag.ncached += arena->stats.frag.ncached;
+ stats_arenas->frag.nrefills += arena->stats.frag.nrefills;
stats_arenas->frag.nrequests += arena->stats.frag.nrequests;
stats_arenas->frag.nserviced += arena->stats.frag.nserviced;
@@ -1184,18 +1187,20 @@
for (i = 0; i < NBINS; i++) {
stats_arenas->bins[i].nrequests +=
arena->stats.bins[i].nrequests;
- stats_arenas->bins[i].nfit += arena->stats.bins[i].nfit;
+ stats_arenas->bins[i].nserviced +=
+ arena->stats.bins[i].nserviced;
if (arena->stats.bins[i].highcached
> stats_arenas->bins[i].highcached) {
stats_arenas->bins[i].highcached
= arena->stats.bins[i].highcached;
}
+ stats_arenas->bins[i].curcached
+ += arena->stats.bins[i].curcached;
}
/* large and large_regions. */
stats_arenas->large.nrequests += arena->stats.large.nrequests;
- stats_arenas->large.nfit += arena->stats.large.nfit;
- stats_arenas->large.noverfit += arena->stats.large.noverfit;
+ stats_arenas->large.nserviced += arena->stats.large.nserviced;
if (arena->stats.large.highcached > stats_arenas->large.highcached)
stats_arenas->large.highcached = arena->stats.large.highcached;
stats_arenas->large.curcached += arena->stats.large.curcached;
@@ -1227,28 +1232,29 @@
stats_arenas->split.nserviced);
malloc_printf("cached frag usage:\n");
- malloc_printf(" %13s%13s%13s\n", "ncached", "nrequests", "nserviced");
- malloc_printf(" %13llu%13llu%13llu\n", stats_arenas->frag.ncached,
+ malloc_printf(" %13s%13s%13s\n", "nrefills", "nrequests", "nserviced");
+ malloc_printf(" %13llu%13llu%13llu\n", stats_arenas->frag.nrefills,
stats_arenas->frag.nrequests, stats_arenas->frag.nserviced);
malloc_printf("bins:\n");
- malloc_printf(" %4s%7s%13s%13s%11s\n", "bin",
- "size", "nrequests", "nfit", "highcached");
+ malloc_printf(" %4s%7s%13s%13s%11s%11s\n", "bin",
+ "size", "nrequests", "nserviced", "highcached", "curcached");
for (i = 0; i < NBINS; i++) {
malloc_printf(
- " %4u%7u%13llu%13llu%11lu\n",
+ " %4u%7u%13llu%13llu%11lu%11lu\n",
i, ((i + bin_shift) << opt_quantum_2pow),
- stats_arenas->bins[i].nrequests, stats_arenas->bins[i].nfit,
- stats_arenas->bins[i].highcached);
+ stats_arenas->bins[i].nrequests,
+ stats_arenas->bins[i].nserviced,
+ stats_arenas->bins[i].highcached,
+ stats_arenas->bins[i].curcached);
}
malloc_printf("large:\n");
- malloc_printf(" %13s%13s%13s%13s%13s\n", "nrequests", "nfit",
- "noverfit", "highcached", "curcached");
- malloc_printf(" %13llu%13llu%13llu%13lu%13lu\n",
- stats_arenas->large.nrequests, stats_arenas->large.nfit,
- stats_arenas->large.noverfit, stats_arenas->large.highcached,
- stats_arenas->large.curcached);
+ malloc_printf(" %13s%13s%13s%13s\n", "nrequests", "nserviced",
+ "highcached", "curcached");
+ malloc_printf(" %13llu%13llu%13lu%13lu\n",
+ stats_arenas->large.nrequests, stats_arenas->large.nserviced,
+ stats_arenas->large.highcached, stats_arenas->large.curcached);
malloc_printf("huge\n");
malloc_printf(" %13s\n", "nrequests");
@@ -1715,7 +1721,7 @@
qr_remove(reg, next.u.s.link);
#ifdef MALLOC_STATS
- arena->stats.bins[bin].nregions--;
+ arena->stats.bins[bin].curcached--;
#endif
if (qr_next(&tbin->regions, next.u.s.link) == &tbin->regions)
arena_mask_unset(arena, bin);
@@ -2066,12 +2072,12 @@
qr_new(reg, next.u.s.link);
qr_before_insert(&tbin->regions, reg, next.u.s.link);
#ifdef MALLOC_STATS
- arena->stats.bins[bin].nregions++;
+ arena->stats.bins[bin].curcached++;
- if (arena->stats.bins[bin].nregions
+ if (arena->stats.bins[bin].curcached
> arena->stats.bins[bin].highcached) {
arena->stats.bins[bin].highcached
- = arena->stats.bins[bin].nregions;
+ = arena->stats.bins[bin].curcached;
}
#endif
}
@@ -2096,12 +2102,12 @@
qr_new(reg, next.u.s.link);
qr_after_insert(&tbin->regions, reg, next.u.s.link);
#ifdef MALLOC_STATS
- arena->stats.bins[bin].nregions++;
+ arena->stats.bins[bin].curcached++;
- if (arena->stats.bins[bin].nregions
+ if (arena->stats.bins[bin].curcached
> arena->stats.bins[bin].highcached) {
arena->stats.bins[bin].highcached
- = arena->stats.bins[bin].nregions;
+ = arena->stats.bins[bin].curcached;
}
#endif
}
@@ -2123,7 +2129,7 @@
== ((bin + bin_shift) << opt_quantum_2pow));
qr_remove(ret, next.u.s.link);
#ifdef MALLOC_STATS
- arena->stats.bins[bin].nregions--;
+ arena->stats.bins[bin].curcached--;
#endif
if (qr_next(&tbin->regions, next.u.s.link) == &tbin->regions)
arena_mask_unset(arena, bin);
@@ -2479,7 +2485,7 @@
frag = node->reg;
#ifdef MALLOC_STATS
- arena->stats.frag.ncached++;
+ arena->stats.frag.nrefills++;
#endif
assert(region_next_free_get(&frag->sep));
region_next_free_unset(&frag->sep);
@@ -2499,7 +2505,7 @@
/* Use the smallest available region. */
arena->frag = arena_bin_pop(arena, bin);
#ifdef MALLOC_STATS
- arena->stats.frag.ncached++;
+ arena->stats.frag.nrefills++;
#endif
total_size =
region_next_size_get(&arena->frag->sep);
@@ -2657,7 +2663,6 @@
#ifdef MALLOC_STATS
arena->stats.split.nrequests++;
#endif
-
if (region_next_size_get(&arena->split->sep) >= size) {
if (fit) {
size_t total_size;
@@ -2778,7 +2783,6 @@
}
#endif
}
-
#ifdef MALLOC_STATS
arena->stats.split.nserviced++;
#endif
@@ -2884,7 +2888,6 @@
} else
arena_mru_cache(arena, next, next_size);
}
-
#ifdef MALLOC_STATS
arena->stats.nsplit++;
#endif
@@ -2911,7 +2914,7 @@
ret = arena_bin_pop(arena, bin);
assert(region_next_size_get(&ret->sep) >= size);
#ifdef MALLOC_STATS
- arena->stats.bins[bin].nfit++;
+ arena->stats.bins[bin].nserviced++;
#endif
goto RETURN;
}
@@ -2967,10 +2970,7 @@
arena_reg_fit(arena, size, ret, false);
#ifdef MALLOC_STATS
- if (size > bin_maxsize)
- arena->stats.large.nfit++;
- else
- arena->stats.large.noverfit++;
+ arena->stats.large.nserviced++;
#endif
RETURN:
@@ -3962,13 +3962,12 @@
}
}
-RETURN:
#ifdef MALLOC_STATS
malloc_mutex_lock(&arena->mtx);
arena->stats.npalloc++;
malloc_mutex_unlock(&arena->mtx);
#endif
-
+RETURN:
if (opt_junk) {
if (ret != NULL)
memset(ret, 0xa5, size);
@@ -4118,12 +4117,12 @@
idalloc(ptr);
-RETURN:
#ifdef MALLOC_STATS
malloc_mutex_lock(&arena->mtx);
arena->stats.nralloc++;
malloc_mutex_unlock(&arena->mtx);
#endif
+RETURN:
return (ret);
}
@@ -4202,7 +4201,7 @@
{
arena_stats_t stats_arenas;
arena_t *arena;
- unsigned i;
+ unsigned i, narenas_used;
/* Print chunk stats. */
{
@@ -4221,11 +4220,11 @@
chunks_stats.curchunks);
}
-#ifdef MALLOC_STATS_ARENAS
/* Print stats for each arena. */
- for (i = 0; i < narenas; i++) {
+ for (i = 0, narenas_used = 0; i < narenas; i++) {
arena = arenas[i];
if (arena != NULL) {
+ narenas_used++;
malloc_printf(
"\narenas[%u] statistics:\n", i);
malloc_mutex_lock(&arena->mtx);
@@ -4236,22 +4235,29 @@
" unused arena\n", i);
}
}
-#endif
- /* Merge arena stats from arenas. */
- memset(&stats_arenas, 0, sizeof(arena_stats_t));
- for (i = 0; i < narenas; i++) {
- arena = arenas[i];
- if (arena != NULL) {
- malloc_mutex_lock(&arena->mtx);
- stats_merge(arena, &stats_arenas);
- malloc_mutex_unlock(&arena->mtx);
+ /*
+ * Only print merged stats if multiple arenas were
+ * used.
+ */
+ if (narenas_used > 1) {
+ /* Merge arena stats from arenas. */
+ memset(&stats_arenas, 0, sizeof(arena_stats_t));
+ for (i = 0; i < narenas; i++) {
+ arena = arenas[i];
+ if (arena != NULL) {
+ malloc_mutex_lock(&arena->mtx);
+ stats_merge(arena,
+ &stats_arenas);
+ malloc_mutex_unlock(
+ &arena->mtx);
+ }
}
+
+ /* Print arena stats. */
+ malloc_printf("\nMerged arena statistics:\n");
+ stats_print(&stats_arenas);
}
-
- /* Print arena stats. */
- malloc_printf("\nMerged arena statistics:\n");
- stats_print(&stats_arenas);
}
#endif /* #ifdef MALLOC_STATS */
malloc_printf("--- End malloc statistics ---\n");
==== //depot/projects/superpages/src/share/man/man5/rc.conf.5#4 (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/man5/rc.conf.5,v 1.281 2006/01/21 18:08:16 yar Exp $
+.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.282 2006/01/27 02:46:08 jkoshy Exp $
.\"
.Dd January 21, 2006
.Dt RC.CONF 5
@@ -68,6 +68,11 @@
.Va rc_conf_files
variable below.
.Pp
+Options are set with
+.Dq Li name=value
+assignments that use
+.Xr sh 1
+syntax.
The following list provides a name and short description for each
variable that can be set in the
.Nm
@@ -3435,6 +3440,7 @@
.Xr info 1 ,
.Xr kbdcontrol 1 ,
.Xr makewhatis 1 ,
+.Xr sh 1 ,
.Xr vi 1 ,
.Xr vidcontrol 1 ,
.Xr ip 4 ,
==== //depot/projects/superpages/src/sys/kern/vfs_aio.c#5 (text+ko) ====
@@ -19,7 +19,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_aio.c,v 1.216 2006/01/26 08:37:02 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_aio.c,v 1.217 2006/01/27 04:14:16 davidxu Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1547,7 +1547,6 @@
PROC_UNLOCK(p);
suword(&uaiocb->_aiocb_private.error, error);
suword(&uaiocb->_aiocb_private.status, status);
- error = 0;
} else {
error = EINVAL;
PROC_UNLOCK(p);
==== //depot/projects/superpages/src/sys/vm/vm_map.c#4 (text+ko) ====
@@ -63,7 +63,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/vm/vm_map.c,v 1.371 2005/12/04 22:55:41 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/vm/vm_map.c,v 1.372 2006/01/27 07:28:50 alc Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1426,7 +1426,7 @@
are_queues_locked = TRUE;
vm_page_lock_queues();
}
- if (p->queue == PQ_CACHE)
+ if (VM_PAGE_INQUEUE1(p, PQ_CACHE))
vm_page_deactivate(p);
mpte = pmap_enter_quick(map->pmap,
addr + ptoa(tmpidx), p, prot, mpte);
==== //depot/projects/superpages/src/sys/vm/vm_object.c#6 (text+ko) ====
@@ -63,7 +63,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/vm/vm_object.c,v 1.355 2006/01/25 08:42:58 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/vm/vm_object.c,v 1.356 2006/01/27 07:28:50 alc Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -705,7 +705,7 @@
curgeneration = object->generation;
p = vm_page_lookup(object, tscan);
if (p == NULL || p->valid == 0 ||
- p->queue == PQ_CACHE) {
+ VM_PAGE_INQUEUE1(p, PQ_CACHE)) {
if (--scanlimit == 0)
break;
++tscan;
@@ -794,7 +794,7 @@
if (((p->flags & PG_CLEANCHK) == 0) ||
(pi < tstart) || (pi >= tend) ||
(p->valid == 0) ||
- p->queue == PQ_CACHE) {
+ VM_PAGE_INQUEUE1(p, PQ_CACHE)) {
vm_page_flag_clear(p, PG_CLEANCHK);
continue;
}
@@ -872,7 +872,7 @@
(tp->flags & PG_CLEANCHK) == 0) ||
(tp->busy != 0))
break;
- if (tp->queue == PQ_CACHE) {
+ if (VM_PAGE_INQUEUE1(tp, PQ_CACHE)) {
vm_page_flag_clear(tp, PG_CLEANCHK);
break;
}
@@ -900,7 +900,7 @@
(tp->flags & PG_CLEANCHK) == 0) ||
(tp->busy != 0))
break;
- if (tp->queue == PQ_CACHE) {
+ if (VM_PAGE_INQUEUE1(tp, PQ_CACHE)) {
vm_page_flag_clear(tp, PG_CLEANCHK);
break;
}
==== //depot/projects/superpages/src/sys/vm/vm_pageout.c#7 (text+ko) ====
@@ -73,7 +73,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/vm/vm_pageout.c,v 1.271 2005/12/31 14:39:20 netchild Exp $");
+__FBSDID("$FreeBSD: src/sys/vm/vm_pageout.c,v 1.272 2006/01/27 07:28:51 alc Exp $");
#include "opt_vm.h"
#include <sys/param.h>
@@ -337,7 +337,7 @@
ib = 0;
break;
}
- if (p->queue == PQ_CACHE ||
+ if (VM_PAGE_INQUEUE1(p, PQ_CACHE) ||
(p->flags & (PG_BUSY|PG_UNMANAGED)) || p->busy) {
ib = 0;
break;
@@ -367,7 +367,7 @@
if ((p = vm_page_lookup(object, pindex + is)) == NULL)
break;
- if (p->queue == PQ_CACHE ||
+ if (VM_PAGE_INQUEUE1(p, PQ_CACHE) ||
(p->flags & (PG_BUSY|PG_UNMANAGED)) || p->busy) {
break;
}
==== //depot/projects/superpages/src/sys/vm/vm_pageq.c#8 (text+ko) ====
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/vm/vm_pageq.c,v 1.22 2006/01/24 19:24:54 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/vm/vm_pageq.c,v 1.23 2006/01/27 07:28:51 alc Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -194,7 +194,7 @@
TAILQ_REMOVE(&pq->pl, m, pageq);
(*pq->cnt)--;
pq->lcnt--;
- if (queue == PQ_CACHE) {
+ if (VM_PAGE_RESOLVEQUEUE(m, queue) == PQ_CACHE) {
if (vm_paging_needed())
pagedaemon_wakeup();
}
==== //depot/projects/superpages/www/en/releases/6.1R/todo.sgml#3 (text+ko) ====
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY email 'freebsd-qa'>
-<!ENTITY date "$FreeBSD: www/en/releases/6.1R/todo.sgml,v 1.4 2006/01/26 09:57:12 murray Exp $">
+<!ENTITY date "$FreeBSD: www/en/releases/6.1R/todo.sgml,v 1.6 2006/01/27 05:53:28 murray Exp $">
<!ENTITY local.rel "6.1">
<!ENTITY title "FreeBSD 6.1 Open Issues">
<!ENTITY % navincludes SYSTEM "../../includes.navdownload.sgml"> %navincludes;
@@ -67,6 +67,13 @@
</tr>
<tr>
+ <td>quota deadlocks</td>
+ <td>&status.unknown;</td>
+ <td></td>
+ <td>Quota support is not locked properly and causes deadlocks.</td>
+ </tr>
+
+ <tr>
<td>UFS deadlocks on amd64</td>
<td>&status.unknown;</td>
<td>tegge</td>
@@ -91,62 +98,9 @@
<tr>
<td>sparc64 instability.</td>
<td>&status.unknown;</td>
- <td></td>
- <td>Outstanding recurrent issues include:<pre>
-panic: uma_small_alloc: free page still has mappings!
-cpuid = 0
-KDB: enter: panic
-[thread pid 9124 tid 100318 ]
-Stopped at kdb_enter+0x3c: ta %xcc, 1
-db> wh
-Tracing pid 9124 tid 100318 td 0xfffff800f6fb2720
-panic() at panic+0x164
-uma_small_alloc() at uma_small_alloc+0x9c
-slab_zalloc() at slab_zalloc+0x98
-uma_zone_slab() at uma_zone_slab+0x12c
-uma_zalloc_bucket() at uma_zalloc_bucket+0x16c
-uma_zalloc_arg() at uma_zalloc_arg+0x374
-malloc() at malloc+0x114
-allocbuf() at allocbuf+0x208
-getblk() at getblk+0x598
-breadn() at breadn+0x58
-bread() at bread+0x20
-ffs_blkatoff() at ffs_blkatoff+0x64
-ufs_direnter() at ufs_direnter+0x444
-ufs_makeinode() at ufs_makeinode+0x460
-ufs_create() at ufs_create+0x30
-VOP_CREATE_APV() at VOP_CREATE_APV+0xb4
-vn_open_cred() at vn_open_cred+0x188
-vn_open() at vn_open+0x18
-kern_open() at kern_open+0x8c
-pen() at open+0x14
-syscall() at syscall+0x2dc
--- syscall (5, FreeBSD ELF64, open) %o7=0x4034d5b8 --
-
-panic: trap: data access error
-cpuid = 1
-KDB: enter: panic
-[thread pid 2724 tid 100224 ]
-Stopped at kdb_enter+0x3c: ta %xcc, 1
-db> wh
-Tracing pid 2724 tid 100224 td 0xfffff8004e55a720
-panic() at panic+0x16c
-trap() at trap+0x3f0
--- data access error %o7=0xc017392c --
-copyout() at copyout+0xb0
-memrw() at memrw+0x2a8
-devfs_read_f() at devfs_read_f+0x9c
-dofileread() at dofileread+0xa4
-read() at read+0x38
-syscall() at syscall+0x2d4
--- syscall (3, FreeBSD ELF64, read) %o7=0x40339328 --
-
-(this one needs a port of
-
-1.117 +57 -33 src/sys/i386/i386/mem.c
-
-which marius is working on)</pre>
- </td>
+ <td>marius</td>
+ <td>sparc64 installability when accessing /dev/mem. Contact
+ marius or kris for debugging information.</td>
</tr>
<tr>
@@ -166,9 +120,8 @@
<tr>
<td>serious sparc64 IPv6 panic</td>
<td>&status.unknown;</td>
- <td></td>
- <td>Triggered by just ping6'ing the box. gnn keeps promising to
- look at this but hasn't found it yet. It may even be a MI
+ <td>gnn</td>
+ <td>Triggered by just ping6'ing the box. It may even be a MI
issue, the reporter of this bug only uses IPv6 with
sparc64.</td>
</tr>
More information about the p4-projects
mailing list