This commit is contained in:
markm 2013-08-26 18:21:04 +00:00
commit bd5fc148c5
22 changed files with 1246 additions and 151 deletions

View File

@ -38,6 +38,14 @@
# xargs -n1 | sort | uniq -d;
# done
# 20130822: bind 9.9.3-P2 import
OLD_LIBS+=usr/lib/liblwres.so.80
# 20130814: vm_page_busy(9)
OLD_FILES+=usr/share/man/man9/vm_page_flash.9.gz
OLD_FILES+=usr/share/man/man9/vm_page_io.9.gz
OLD_FILES+=usr/share/man/man9/vm_page_io_finish.9.gz
OLD_FILES+=usr/share/man/man9/vm_page_io_start.9.gz
OLD_FILES+=usr/share/man/man9/vm_page_wakeup.9.gz
# 20130710: libkvm version bump
OLD_LIBS+=lib/libkvm.so.5
OLD_LIBS+=usr/lib32/libkvm.so.5
@ -114,6 +122,7 @@ OLD_FILES+=usr/include/clang/3.2/xmmintrin.h
OLD_FILES+=usr/include/clang/3.2/xopintrin.h
OLD_DIRS+=usr/include/clang/3.2
# 20130404: legacy ATA stack removed
OLD_FILES+=etc/periodic/daily/405.status-ata-raid
OLD_FILES+=rescue/atacontrol
OLD_FILES+=sbin/atacontrol
OLD_FILES+=usr/share/man/man8/atacontrol.8.gz

View File

@ -1,7 +1,7 @@
.\" DO NOT EDIT-- this file is automatically generated.
.\" from FreeBSD: head/tools/build/options/makeman 253304 2013-07-12 23:08:44Z bapt
.\" $FreeBSD$
.Dd July 16, 2013
.Dd August 26, 2013
.Dt SRC.CONF 5
.Os
.Sh NAME
@ -245,9 +245,6 @@ Set to not build the BSD licensed version of cpio based on
.It Va WITH_BSD_GREP
.\" from FreeBSD: head/tools/build/options/WITH_BSD_GREP 222273 2011-05-25 01:04:12Z obrien
Install BSD-licensed grep as '[ef]grep' instead of GNU grep.
.It Va WITH_BSD_PATCH
.\" from FreeBSD: head/tools/build/options/WITH_BSD_PATCH 246074 2013-01-29 17:03:18Z gabor
Install BSD-licensed patch as 'patch' instead of GNU patch.
.It Va WITHOUT_BSNMP
.\" from FreeBSD: head/tools/build/options/WITHOUT_BSNMP 183306 2008-09-23 16:15:42Z sam
Set to not build or install
@ -506,6 +503,9 @@ When set, it also enforces the following options:
.It
.Va WITHOUT_GNU_SUPPORT
.El
.It Va WITH_GNU_PATCH
.\" from FreeBSD: head/tools/build/options/WITH_GNU_PATCH 253689 2013-07-26 21:25:18Z pfg
Install GNU-licensed patch as 'patch' instead of BSD patch.
.It Va WITHOUT_GNU_SUPPORT
.\" from FreeBSD: head/tools/build/options/WITHOUT_GNU_SUPPORT 156932 2006-03-21 07:50:50Z ru
Set to build some programs without optional GNU support.
@ -538,9 +538,15 @@ Set to build Hesiod support.
.It Va WITHOUT_HTML
.\" from FreeBSD: head/tools/build/options/WITHOUT_HTML 156932 2006-03-21 07:50:50Z ru
Set to not build HTML docs.
.It Va WITH_ICONV
.\" from FreeBSD: head/tools/build/options/WITH_ICONV 219020 2011-02-25 00:10:26Z gabor
Set to build iconv as part of libc.
.It Va WITHOUT_ICONV
.\" from FreeBSD: head/tools/build/options/WITHOUT_ICONV 254919 2013-08-26 17:15:56Z antoine
Set to not build iconv as part of libc.
When set, it also enforces the following options:
.Pp
.Bl -item -compact
.It
.Va WITHOUT_LIBICONV_COMPAT
.El
.It Va WITHOUT_INET
.\" from FreeBSD: head/tools/build/options/WITHOUT_INET 221266 2011-04-30 17:58:28Z bz
Set to not build programs and libraries related to IPv4 networking.
@ -701,6 +707,9 @@ runtime linker.
.It Va WITHOUT_LIBCPLUSPLUS
.\" from FreeBSD: head/tools/build/options/WITHOUT_LIBCPLUSPLUS 246262 2013-02-02 22:42:46Z dim
Set to avoid building libcxxrt and libc++.
.It Va WITH_LIBICONV_COMPAT
.\" from FreeBSD: head/tools/build/options/WITH_LIBICONV_COMPAT 254919 2013-08-26 17:15:56Z antoine
Set to build libiconv API and link time compatibility.
.It Va WITHOUT_LIBPTHREAD
.\" from FreeBSD: head/tools/build/options/WITHOUT_LIBPTHREAD 188848 2009-02-20 11:09:55Z mtm
Set to not build the
@ -1129,6 +1138,9 @@ When set, it also enforces the following options:
.It Va WITHOUT_USB
.\" from FreeBSD: head/tools/build/options/WITHOUT_USB 156932 2006-03-21 07:50:50Z ru
Set to not build USB-related programs and libraries.
.It Va WITH_USB_GADGET_EXAMPLES
.\" from FreeBSD: head/tools/build/options/WITH_USB_GADGET_EXAMPLES 254919 2013-08-26 17:15:56Z antoine
Set to build USB gadget kernel modules.
.It Va WITHOUT_UTMPX
.\" from FreeBSD: head/tools/build/options/WITHOUT_UTMPX 231530 2012-02-11 20:28:42Z ed
Set to not build user accounting tools such as

View File

@ -324,6 +324,7 @@ MAN= accept_filter.9 \
vm_map_wire.9 \
vm_page_alloc.9 \
vm_page_bits.9 \
vm_page_busy.9 \
vm_page_cache.9 \
vm_page_deactivate.9 \
vm_page_dontneed.9 \

View File

@ -187,6 +187,7 @@ jkim [label="Jung-uk Kim\njkim@FreeBSD.org\n2005/07/06"]
jkoshy [label="A. Joseph Koshy\njkoshy@FreeBSD.org\n1998/05/13"]
jlh [label="Jeremie Le Hen\njlh@FreeBSD.org\n2012/04/22"]
jls [label="Jordan Sissel\njls@FreeBSD.org\n2006/12/06"]
jmg [label="John-Mark Gurney\njmg@FreeBSD.org\n1997/02/13"]
joerg [label="Joerg Wunsch\njoerg@FreeBSD.org\n1993/11/14"]
jon [label="Jonathan Chen\njon@FreeBSD.org\n2000/10/17"]
jonathan [label="Jonathan Anderson\njonathan@FreeBSD.org\n2010/10/07"]
@ -495,6 +496,7 @@ jlemon -> brooks
joerg -> brian
joerg -> eik
joerg -> jmg
joerg -> le
joerg -> netchild
joerg -> schweikh

File diff suppressed because it is too large Load Diff

View File

@ -108,9 +108,10 @@
#define PDR_SHIFT 20 /* log2(NBPDR) */
#define NBPDR (1 << PDR_SHIFT)
#define PDRMASK (NBPDR - 1)
#define NPDEPG (1 << (32 - PDR_SHIFT))
#define MAXPAGESIZES 1 /* maximum number of supported page sizes */
#define MAXPAGESIZES 2 /* maximum number of supported page sizes */
#ifndef KSTACK_PAGES
#define KSTACK_PAGES 2
@ -133,8 +134,8 @@
*/
#define trunc_page(x) ((x) & ~PAGE_MASK)
#define round_page(x) (((x) + PAGE_MASK) & ~PAGE_MASK)
#define trunc_4mpage(x) ((unsigned)(x) & ~PDRMASK)
#define round_4mpage(x) ((((unsigned)(x)) + PDRMASK) & ~PDRMASK)
#define trunc_1mpage(x) ((unsigned)(x) & ~PDRMASK)
#define round_1mpage(x) ((((unsigned)(x)) + PDRMASK) & ~PDRMASK)
#define atop(x) ((unsigned)(x) >> PAGE_SHIFT)
#define ptoa(x) ((unsigned)(x) << PAGE_SHIFT)

View File

@ -97,8 +97,12 @@ enum mem_type {
#endif
#define pmap_page_get_memattr(m) ((m)->md.pv_memattr)
#define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list))
#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0)
#if (ARM_MMU_V6 + ARM_MMU_V7) > 0
boolean_t pmap_page_is_mapped(vm_page_t);
#else
#define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list))
#endif
void pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma);
/*
@ -258,7 +262,9 @@ void *pmap_mapdev(vm_offset_t, vm_size_t);
void pmap_unmapdev(vm_offset_t, vm_size_t);
vm_page_t pmap_use_pt(pmap_t, vm_offset_t);
void pmap_debug(int);
#if (ARM_MMU_V6 + ARM_MMU_V7) == 0
void pmap_map_section(vm_offset_t, vm_offset_t, vm_offset_t, int, int);
#endif
void pmap_link_l2pt(vm_offset_t, vm_offset_t, struct pv_addr *);
vm_size_t pmap_map_chunk(vm_offset_t, vm_offset_t, vm_offset_t, vm_size_t, int, int);
void
@ -411,6 +417,24 @@ extern int pmap_needs_pte_sync;
#define L1_C_PROTO (L1_TYPE_C)
#define L2_S_PROTO (L2_TYPE_S)
/*
* Promotion to a 1MB (SECTION) mapping requires that the corresponding
* 4KB (SMALL) page mappings have identical settings for the following fields:
*/
#define L2_S_PROMOTE (L2_S_REF | L2_SHARED | L2_S_PROT_MASK | \
L2_XN | L2_S_PROTO)
/*
* In order to compare 1MB (SECTION) entry settings with the 4KB (SMALL)
* page mapping it is necessary to read and shift appropriate bits from
* L1 entry to positions of the corresponding bits in the L2 entry.
*/
#define L1_S_DEMOTE(l1pd) ((((l1pd) & L1_S_PROTO) >> 0) | \
(((l1pd) & L1_SHARED) >> 6) | \
(((l1pd) & L1_S_REF) >> 6) | \
(((l1pd) & L1_S_PROT_MASK) >> 6) | \
(((l1pd) & L1_S_XN) >> 4))
#ifndef SMP
#define ARM_L1S_STRONG_ORD (0)
#define ARM_L1S_DEVICE_NOSHARE (L1_S_TEX(2))
@ -497,11 +521,15 @@ extern int pmap_needs_pte_sync;
(((pr) & VM_PROT_WRITE) ? L2_S_PROT_W : 0))
#else
#define L1_S_PROT_U (L1_S_AP(AP_U))
#define L1_S_PROT_MASK (L1_S_APX|L1_S_AP(0x3))
#define L1_S_WRITABLE(pd) (!((pd) & L1_S_APX))
#define L1_S_PROT_W (L1_S_APX) /* Write disable */
#define L1_S_PROT_MASK (L1_S_PROT_W|L1_S_PROT_U)
#define L1_S_REF (L1_S_AP(AP_REF)) /* Reference flag */
#define L1_S_WRITABLE(pd) (!((pd) & L1_S_PROT_W))
#define L1_S_REFERENCED(pd) ((pd) & L1_S_REF)
#define L1_S_PROT(ku, pr) (L1_S_PROT_MASK & ~((((ku) == PTE_KERNEL) ? L1_S_PROT_U : 0) | \
(((pr) & VM_PROT_WRITE) ? L1_S_APX : 0)))
#define L1_S_PROT(ku, pr) (((((ku) == PTE_KERNEL) ? 0 : L1_S_PROT_U) | \
(((pr) & VM_PROT_WRITE) ? 0 : L1_S_PROT_W) | \
(((pr) & VM_PROT_EXECUTE) ? 0 : L1_S_XN)))
#define L2_L_PROT_MASK (L2_APX|L2_AP0(0x3))
#define L2_L_PROT(ku, pr) (L2_L_PROT_MASK & ~((((ku) == PTE_KERNEL) ? L2_S_PROT_U : 0) | \

View File

@ -159,6 +159,9 @@ typedef uint32_t pt_entry_t; /* page table entry */
*/
#define L2_TABLE_SIZE_REAL 0x400 /* 1K */
/* Total number of page table entries in L2 table */
#define L2_PTE_NUM_TOTAL (L2_TABLE_SIZE_REAL / sizeof(pt_entry_t))
/*
* ARM L1 Descriptors
*/
@ -173,6 +176,7 @@ typedef uint32_t pt_entry_t; /* page table entry */
#define L1_S_B 0x00000004 /* bufferable Section */
#define L1_S_C 0x00000008 /* cacheable Section */
#define L1_S_IMP 0x00000010 /* implementation defined */
#define L1_S_XN (1 << 4) /* execute not */
#define L1_S_DOM(x) ((x) << 5) /* domain */
#define L1_S_DOM_MASK L1_S_DOM(0xf)
#define L1_S_AP(x) ((x) << 10) /* access permissions */
@ -248,6 +252,7 @@ typedef uint32_t pt_entry_t; /* page table entry */
* Access Permissions for L1 and L2 Descriptors.
*/
#define AP_W 0x01 /* writable */
#define AP_REF 0x01 /* referenced flag */
#define AP_U 0x02 /* user */
/*

View File

@ -109,10 +109,17 @@
#define VM_NFREEORDER 9
/*
* Disable superpage reservations.
* Enable superpage reservations: 1 level.
*/
#ifndef VM_NRESERVLEVEL
#define VM_NRESERVLEVEL 0
#define VM_NRESERVLEVEL 1
#endif
/*
* Level 0 reservations consist of 256 pages.
*/
#ifndef VM_LEVEL_0_ORDER
#define VM_LEVEL_0_ORDER 8
#endif
#define UPT_MAX_ADDRESS VADDR(UPTPTDI + 3, 0)

View File

@ -76,6 +76,7 @@ struct amdtemp_softc {
#define DEVICEID_AMD_MISC0F 0x1103
#define DEVICEID_AMD_MISC10 0x1203
#define DEVICEID_AMD_MISC11 0x1303
#define DEVICEID_AMD_MISC12 0x1403
#define DEVICEID_AMD_MISC14 0x1703
#define DEVICEID_AMD_MISC15 0x1603
@ -86,6 +87,7 @@ static struct amdtemp_product {
{ VENDORID_AMD, DEVICEID_AMD_MISC0F },
{ VENDORID_AMD, DEVICEID_AMD_MISC10 },
{ VENDORID_AMD, DEVICEID_AMD_MISC11 },
{ VENDORID_AMD, DEVICEID_AMD_MISC12 },
{ VENDORID_AMD, DEVICEID_AMD_MISC14 },
{ VENDORID_AMD, DEVICEID_AMD_MISC15 },
{ 0, 0 }

View File

@ -587,14 +587,14 @@ xnb_dump_mbuf(const struct mbuf *m)
if (m->m_flags & M_PKTHDR) {
printf(" flowid=%10d, csum_flags=%#8x, csum_data=%#8x, "
"tso_segsz=%5hd\n",
m->m_pkthdr.flowid, m->m_pkthdr.csum_flags,
m->m_pkthdr.flowid, (int)m->m_pkthdr.csum_flags,
m->m_pkthdr.csum_data, m->m_pkthdr.tso_segsz);
printf(" rcvif=%16p, header=%18p, len=%19d\n",
m->m_pkthdr.rcvif, m->m_pkthdr.header, m->m_pkthdr.len);
printf(" rcvif=%16p, len=%19d\n",
m->m_pkthdr.rcvif, m->m_pkthdr.len);
}
printf(" m_next=%16p, m_nextpk=%16p, m_data=%16p\n",
m->m_next, m->m_nextpkt, m->m_data);
printf(" m_len=%17d, m_flags=%#15x, m_type=%18hd\n",
printf(" m_len=%17d, m_flags=%#15x, m_type=%18u\n",
m->m_len, m->m_flags, m->m_type);
len = m->m_len;

View File

@ -1753,10 +1753,6 @@ vm_page_alloc_contig(vm_object_t object, vm_pindex_t pindex, int req,
if (drop != NULL) {
/*
* Enqueue the vnode for deferred vdrop().
*
* Once the pages are removed from the free
* page list, "pageq" can be safely abused to
* construct a short-lived list of vnodes.
*/
m->plinks.s.pv = drop;
SLIST_INSERT_HEAD(&deferred_vdrop_list, m,

View File

@ -1600,6 +1600,11 @@ OLD_FILES+=usr/share/man/man1/gdbserver.1.gz
OLD_FILES+=usr/share/man/man1/kgdb.1.gz
.endif
.if ${MK_GNU_PATCH} == no
OLD_FILES+=usr/bin/bsdpatch
OLD_FILES+=usr/share/man/man1/bsdpatch.1.gz
.endif
.if ${MK_GPIB} == no
OLD_FILES+=usr/include/dev/ieee488/ibfoo_int.h
OLD_FILES+=usr/include/dev/ieee488/ugpib.h

View File

@ -0,0 +1,2 @@
.\" $FreeBSD$
Set to not build iconv as part of libc.

View File

@ -1,2 +0,0 @@
.\" $FreeBSD$
Set to build iconv as part of libc.

View File

@ -0,0 +1,2 @@
.\" $FreeBSD$
Set to build libiconv API and link time compatibility.

View File

@ -0,0 +1,2 @@
.\" $FreeBSD$
Set to build USB gadget kernel modules.

View File

@ -830,7 +830,7 @@ ktrsyscall(struct ktr_syscall *ktr, u_int flags)
ip++;
narg--;
putchar(',');
socktypename(*ip);
socktypenamewithflags(*ip);
ip++;
narg--;
if (sockdomain == PF_INET ||
@ -908,7 +908,7 @@ ktrsyscall(struct ktr_syscall *ktr, u_int flags)
ip++;
narg--;
putchar(',');
socktypename(*ip);
socktypenamewithflags(*ip);
ip++;
narg--;
c = ',';

View File

@ -368,6 +368,19 @@ vmprotname (int type)
if_print_or(type, VM_PROT_EXECUTE, or);
if_print_or(type, VM_PROT_COPY, or);
}
/*
* MANUAL
*/
void
socktypenamewithflags(int type)
{
if (type & SOCK_CLOEXEC)
printf("SOCK_CLOEXEC|"), type &= ~SOCK_CLOEXEC;
if (type & SOCK_NONBLOCK)
printf("SOCK_NONBLOCK|"), type &= ~SOCK_NONBLOCK;
socktypename(type);
}
_EOF_
auto_or_type "accessmodename" "[A-Z]_OK[[:space:]]+0?x?[0-9A-Fa-f]+" "sys/unistd.h"

View File

@ -473,6 +473,20 @@ rebuild_drive(int ac, char **av)
}
MFI_COMMAND(top, rebuild, rebuild_drive);
static int
syspd_drive(int ac, char **av)
{
if (ac != 2) {
warnx("syspd: %s", ac > 2 ? "extra arguments" :
"drive required");
return (EINVAL);
}
return (drive_set_state(av[1], MFI_PD_STATE_SYSTEM));
}
MFI_COMMAND(top, syspd, syspd_drive);
static int
start_rebuild(int ac, char **av)
{

View File

@ -91,6 +91,9 @@
.Cm rebuild Ar drive
.Nm
.Op Fl u Ar unit
.Cm syspd Ar drive
.Nm
.Op Fl u Ar unit
.Cm drive progress Ar drive
.Nm
.Op Fl u Ar unit
@ -372,6 +375,11 @@ Mark a failed
that is still part of an array as a good drive suitable for a rebuild.
The firmware should kick off an array rebuild on its own if a failed drive
is marked as a rebuild drive.
.It Cm syspd Ar drive
Present the drive to the host operating system as a disk SYSPD block device in
the format /dev/mfisyspdX. Clear this flag with
.Cm good
.Ar drive
.It Cm drive progress Ar drive
Report the current progress and estimated completion time of drive operations
such as rebuilds or patrol reads.
@ -679,6 +687,10 @@ Add the drive in slot 2 in the main chassis as a hot spare for volume mfid0:
.Pp
.Dl Nm Cm add s2 mfid0
.Pp
Reconfigure a disk as a SYSPD block device with no RAID
.Pp
.Dl Nm Cm syspd 0
.Pp
Configure the adapter to run periodic patrol reads once a week with the first
patrol read starting in 5 minutes:
.Pp

View File

@ -66,8 +66,9 @@ usage(void)
fprintf(stderr, " show patrol - display patrol read status\n");
fprintf(stderr, " show progress - display status of active operations\n");
fprintf(stderr, " fail <drive> - fail a physical drive\n");
fprintf(stderr, " good <drive> - mark a bad physical drive as good\n");
fprintf(stderr, " good <drive> - set a failed/SYSPD drive as UNCONFIGURED\n");
fprintf(stderr, " rebuild <drive> - mark failed drive ready for rebuild\n");
fprintf(stderr, " syspd <drive> - set drive into use as SYSPD JBOD\n");
fprintf(stderr, " drive progress <drive> - display status of active operations\n");
fprintf(stderr, " drive clear <drive> <start|stop> - clear a drive with all 0x00\n");
fprintf(stderr, " start rebuild <drive>\n");
@ -103,7 +104,7 @@ static int
version(int ac __unused, char **av __unused)
{
printf("mfiutil version 1.0.14");
printf("mfiutil version 1.0.15");
#ifdef DEBUG
printf(" (DEBUG)");
#endif