svn commit: r246842 - in user/attilio/vmc-playground: include lib lib/libc/net lib/libc/stdio lib/libldns sbin/fsck_ffs sbin/fsdb share/man/man5 share/mk sys/amd64/amd64 sys/cddl/contrib/opensolari...
Attilio Rao
attilio at FreeBSD.org
Fri Feb 15 16:11:36 UTC 2013
Author: attilio
Date: Fri Feb 15 16:11:30 2013
New Revision: 246842
URL: http://svnweb.freebsd.org/changeset/base/246842
Log:
Merge from vmcontention
Added:
- copied from r246841, user/attilio/vmcontention/contrib/ldns/
user/attilio/vmc-playground/lib/libldns/
- copied from r246841, user/attilio/vmcontention/lib/libldns/
user/attilio/vmc-playground/tools/build/options/WITHOUT_LDNS
- copied unchanged from r246841, user/attilio/vmcontention/tools/build/options/WITHOUT_LDNS
user/attilio/vmc-playground/tools/build/options/WITH_LDNS_UTILS
- copied unchanged from r246841, user/attilio/vmcontention/tools/build/options/WITH_LDNS_UTILS
Directory Properties:
user/attilio/vmc-playground/contrib/ldns/ (props changed)
Modified:
user/attilio/vmc-playground/include/string.h
user/attilio/vmc-playground/lib/Makefile
user/attilio/vmc-playground/lib/libc/net/getaddrinfo.3
user/attilio/vmc-playground/lib/libc/net/getnameinfo.3
user/attilio/vmc-playground/lib/libc/stdio/setbuf.3
user/attilio/vmc-playground/sbin/fsck_ffs/fsck.h
user/attilio/vmc-playground/sbin/fsck_ffs/fsutil.c
user/attilio/vmc-playground/sbin/fsdb/fsdbutil.c
user/attilio/vmc-playground/share/man/man5/src.conf.5
user/attilio/vmc-playground/share/mk/bsd.libnames.mk
user/attilio/vmc-playground/share/mk/bsd.own.mk
user/attilio/vmc-playground/sys/amd64/amd64/pmap.c
user/attilio/vmc-playground/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lz4.c
user/attilio/vmc-playground/sys/conf/options
user/attilio/vmc-playground/sys/dev/oce/oce_if.c
user/attilio/vmc-playground/sys/dev/oce/oce_if.h
user/attilio/vmc-playground/sys/kern/uipc_usrreq.c
user/attilio/vmc-playground/sys/kern/vfs_vnops.c
user/attilio/vmc-playground/sys/net/if_pfsync.h
user/attilio/vmc-playground/sys/net80211/ieee80211.h
user/attilio/vmc-playground/sys/netgraph/ng_parse.c
user/attilio/vmc-playground/sys/netpfil/pf/if_pfsync.c
user/attilio/vmc-playground/sys/vm/vm_phys.c
user/attilio/vmc-playground/sys/x86/acpica/srat.c
user/attilio/vmc-playground/usr.bin/csup/csup.1
user/attilio/vmc-playground/usr.sbin/bhyvectl/bhyvectl.c
user/attilio/vmc-playground/usr.sbin/jail/command.c
Directory Properties:
user/attilio/vmc-playground/ (props changed)
user/attilio/vmc-playground/lib/libc/ (props changed)
user/attilio/vmc-playground/sbin/ (props changed)
user/attilio/vmc-playground/sys/ (props changed)
user/attilio/vmc-playground/sys/cddl/contrib/opensolaris/ (props changed)
user/attilio/vmc-playground/sys/conf/ (props changed)
user/attilio/vmc-playground/usr.bin/csup/ (props changed)
user/attilio/vmc-playground/usr.sbin/bhyvectl/ (props changed)
user/attilio/vmc-playground/usr.sbin/jail/ (props changed)
Modified: user/attilio/vmc-playground/include/string.h
==============================================================================
--- user/attilio/vmc-playground/include/string.h Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/include/string.h Fri Feb 15 16:11:30 2013 (r246842)
@@ -74,7 +74,7 @@ char *strcasestr(const char *, const cha
#endif
char *strcat(char * __restrict, const char * __restrict);
char *strchr(const char *, int) __pure;
-#if defined(_GNU_SOURCE)
+#if __BSD_VISIBLE
char *strchrnul(const char*, int) __pure;
#endif
int strcmp(const char *, const char *) __pure;
Modified: user/attilio/vmc-playground/lib/Makefile
==============================================================================
--- user/attilio/vmc-playground/lib/Makefile Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/lib/Makefile Fri Feb 15 16:11:30 2013 (r246842)
@@ -82,6 +82,7 @@ SUBDIR= ${SUBDIR_ORDERED} \
${_libipx} \
libjail \
libkiconv \
+ ${_libldns} \
liblzma \
libmagic \
libmandoc \
@@ -177,6 +178,10 @@ _libiconv_modules= libiconv_modules
_libipx= libipx
.endif
+.if ${MK_LDNS} != "no"
+_libldns= libldns
+.endif
+
.if ${MK_LIBCPLUSPLUS} != "no"
_libcxxrt= libcxxrt
_libcplusplus= libc++
Modified: user/attilio/vmc-playground/lib/libc/net/getaddrinfo.3
==============================================================================
--- user/attilio/vmc-playground/lib/libc/net/getaddrinfo.3 Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/lib/libc/net/getaddrinfo.3 Fri Feb 15 16:11:30 2013 (r246842)
@@ -18,7 +18,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd January 6, 2009
+.Dd February 14, 2013
.Dt GETADDRINFO 3
.Os
.Sh NAME
@@ -339,7 +339,7 @@ hints.ai_socktype = SOCK_STREAM;
error = getaddrinfo("www.kame.net", "http", &hints, &res0);
if (error) {
errx(1, "%s", gai_strerror(error));
- /*NOTREACHED*/
+ /* NOTREACHED */
}
s = -1;
for (res = res0; res; res = res->ai_next) {
@@ -361,7 +361,7 @@ for (res = res0; res; res = res->ai_next
}
if (s < 0) {
err(1, "%s", cause);
- /*NOTREACHED*/
+ /* NOTREACHED */
}
freeaddrinfo(res0);
.Ed
@@ -383,7 +383,7 @@ hints.ai_flags = AI_PASSIVE;
error = getaddrinfo(NULL, "http", &hints, &res0);
if (error) {
errx(1, "%s", gai_strerror(error));
- /*NOTREACHED*/
+ /* NOTREACHED */
}
nsock = 0;
for (res = res0; res && nsock < MAXSOCK; res = res->ai_next) {
@@ -405,7 +405,7 @@ for (res = res0; res && nsock < MAXSOCK;
}
if (nsock == 0) {
err(1, "%s", cause);
- /*NOTREACHED*/
+ /* NOTREACHED */
}
freeaddrinfo(res0);
.Ed
Modified: user/attilio/vmc-playground/lib/libc/net/getnameinfo.3
==============================================================================
--- user/attilio/vmc-playground/lib/libc/net/getnameinfo.3 Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/lib/libc/net/getnameinfo.3 Fri Feb 15 16:11:30 2013 (r246842)
@@ -18,7 +18,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 28, 2007
+.Dd February 14, 2013
.Dt GETNAMEINFO 3
.Os
.Sh NAME
@@ -157,7 +157,7 @@ char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV];
if (getnameinfo(sa, sa->sa_len, hbuf, sizeof(hbuf), sbuf,
sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV)) {
errx(1, "could not get numeric hostname");
- /*NOTREACHED*/
+ /* NOTREACHED */
}
printf("host=%s, serv=%s\en", hbuf, sbuf);
.Ed
@@ -170,7 +170,7 @@ char hbuf[NI_MAXHOST];
if (getnameinfo(sa, sa->sa_len, hbuf, sizeof(hbuf), NULL, 0,
NI_NAMEREQD)) {
errx(1, "could not resolve hostname");
- /*NOTREACHED*/
+ /* NOTREACHED */
}
printf("host=%s\en", hbuf);
.Ed
Modified: user/attilio/vmc-playground/lib/libc/stdio/setbuf.3
==============================================================================
--- user/attilio/vmc-playground/lib/libc/stdio/setbuf.3 Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/lib/libc/stdio/setbuf.3 Fri Feb 15 16:11:30 2013 (r246842)
@@ -32,7 +32,7 @@
.\" @(#)setbuf.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
-.Dd June 4, 1993
+.Dd February 15, 2013
.Dt SETBUF 3
.Os
.Sh NAME
@@ -195,19 +195,3 @@ and
functions
conform to
.St -isoC .
-.Sh BUGS
-The
-.Fn setbuffer
-and
-.Fn setlinebuf
-functions are not portable to versions of
-.Bx
-before
-.Bx 4.2 .
-On
-.Bx 4.2
-and
-.Bx 4.3
-systems,
-.Fn setbuf
-always uses a suboptimal buffer size and should be avoided.
Modified: user/attilio/vmc-playground/sbin/fsck_ffs/fsck.h
==============================================================================
--- user/attilio/vmc-playground/sbin/fsck_ffs/fsck.h Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sbin/fsck_ffs/fsck.h Fri Feb 15 16:11:30 2013 (r246842)
@@ -67,10 +67,13 @@
#include <stdlib.h>
#include <stdio.h>
+#include <sys/queue.h>
+
#define MAXDUP 10 /* limit on dup blks (per inode) */
#define MAXBAD 10 /* limit on bad blks (per inode) */
-#define MAXBUFSPACE 40*1024 /* maximum space to allocate to buffers */
-#define INOBUFSIZE 56*1024 /* size of buffer to read inodes in pass1 */
+#define MINBUFS 10 /* minimum number of buffers required */
+#define MAXBUFS 40 /* maximum space to allocate to buffers */
+#define INOBUFSIZE 64*1024 /* size of buffer to read inodes in pass1 */
union dinode {
struct ufs1_dinode dp1;
@@ -130,8 +133,7 @@ struct inostatlist {
* buffer cache structure.
*/
struct bufarea {
- struct bufarea *b_next; /* free list queue */
- struct bufarea *b_prev; /* free list queue */
+ TAILQ_ENTRY(bufarea) b_list; /* buffer list */
ufs2_daddr_t b_bno;
int b_size;
int b_errs;
@@ -159,10 +161,11 @@ struct bufarea {
(bp)->b_un.b_indir2[i] = (val); \
} while (0)
-#define B_INUSE 1
+/*
+ * Buffer flags
+ */
+#define B_INUSE 0x00000001 /* Buffer is in use */
-#define MINBUFS 5 /* minimum number of buffers required */
-struct bufarea bufhead; /* head of list of other blks in filesys */
struct bufarea sblk; /* file system superblock */
struct bufarea cgblk; /* cylinder group blocks */
struct bufarea *pdirbp; /* current directory contents */
Modified: user/attilio/vmc-playground/sbin/fsck_ffs/fsutil.c
==============================================================================
--- user/attilio/vmc-playground/sbin/fsck_ffs/fsutil.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sbin/fsck_ffs/fsutil.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -67,6 +67,8 @@ long diskreads, totalreads; /* Disk cach
struct timeval slowio_starttime;
int slowio_delay_usec = 10000; /* Initial IO delay for background fsck */
int slowio_pollcnt;
+static TAILQ_HEAD(buflist, bufarea) bufhead; /* head of buffer cache list */
+static int numbufs; /* size of buffer cache */
int
ftypeok(union dinode *dp)
@@ -162,8 +164,8 @@ bufinit(void)
errx(EEXIT, "cannot allocate buffer pool");
cgblk.b_un.b_buf = bufp;
initbarea(&cgblk);
- bufhead.b_next = bufhead.b_prev = &bufhead;
- bufcnt = MAXBUFSPACE / sblock.fs_bsize;
+ TAILQ_INIT(&bufhead);
+ bufcnt = MAXBUFS;
if (bufcnt < MINBUFS)
bufcnt = MINBUFS;
for (i = 0; i < bufcnt; i++) {
@@ -175,13 +177,10 @@ bufinit(void)
errx(EEXIT, "cannot allocate buffer pool");
}
bp->b_un.b_buf = bufp;
- bp->b_prev = &bufhead;
- bp->b_next = bufhead.b_next;
- bufhead.b_next->b_prev = bp;
- bufhead.b_next = bp;
+ TAILQ_INSERT_HEAD(&bufhead, bp, b_list);
initbarea(bp);
}
- bufhead.b_size = i; /* save number of buffers */
+ numbufs = i; /* save number of buffers */
}
/*
@@ -192,23 +191,19 @@ getdatablk(ufs2_daddr_t blkno, long size
{
struct bufarea *bp;
- for (bp = bufhead.b_next; bp != &bufhead; bp = bp->b_next)
+ TAILQ_FOREACH(bp, &bufhead, b_list)
if (bp->b_bno == fsbtodb(&sblock, blkno))
goto foundit;
- for (bp = bufhead.b_prev; bp != &bufhead; bp = bp->b_prev)
+ TAILQ_FOREACH_REVERSE(bp, &bufhead, buflist, b_list)
if ((bp->b_flags & B_INUSE) == 0)
break;
- if (bp == &bufhead)
+ if (bp == NULL)
errx(EEXIT, "deadlocked buffer pool");
getblk(bp, blkno, size);
/* fall through */
foundit:
- bp->b_prev->b_next = bp->b_next;
- bp->b_next->b_prev = bp->b_prev;
- bp->b_prev = &bufhead;
- bp->b_next = bufhead.b_next;
- bufhead.b_next->b_prev = bp;
- bufhead.b_next = bp;
+ TAILQ_REMOVE(&bufhead, bp, b_list);
+ TAILQ_INSERT_HEAD(&bufhead, bp, b_list);
bp->b_flags |= B_INUSE;
return (bp);
}
@@ -274,7 +269,7 @@ void
ckfini(int markclean)
{
struct bufarea *bp, *nbp;
- int ofsmodified, cnt = 0;
+ int ofsmodified, cnt;
if (bkgrdflag) {
unlink(snapname);
@@ -295,6 +290,10 @@ ckfini(int markclean)
rerun = 1;
}
}
+ if (debug && totalreads > 0)
+ printf("cache with %d buffers missed %ld of %ld (%d%%)\n",
+ numbufs, diskreads, totalreads,
+ (int)(diskreads * 100 / totalreads));
if (fswritefd < 0) {
(void)close(fsreadfd);
return;
@@ -309,15 +308,16 @@ ckfini(int markclean)
}
flush(fswritefd, &cgblk);
free(cgblk.b_un.b_buf);
- for (bp = bufhead.b_prev; bp && bp != &bufhead; bp = nbp) {
+ cnt = 0;
+ TAILQ_FOREACH_REVERSE_SAFE(bp, &bufhead, buflist, b_list, nbp) {
+ TAILQ_REMOVE(&bufhead, bp, b_list);
cnt++;
flush(fswritefd, bp);
- nbp = bp->b_prev;
free(bp->b_un.b_buf);
free((char *)bp);
}
- if (bufhead.b_size != cnt)
- errx(EEXIT, "panic: lost %d buffers", bufhead.b_size - cnt);
+ if (numbufs != cnt)
+ errx(EEXIT, "panic: lost %d buffers", numbufs - cnt);
pbp = pdirbp = (struct bufarea *)0;
if (cursnapshot == 0 && sblock.fs_clean != markclean) {
if ((sblock.fs_clean = markclean) != 0) {
@@ -343,9 +343,6 @@ ckfini(int markclean)
rerun = 1;
}
}
- if (debug && totalreads > 0)
- printf("cache missed %ld of %ld (%d%%)\n", diskreads,
- totalreads, (int)(diskreads * 100 / totalreads));
(void)close(fsreadfd);
(void)close(fswritefd);
}
Modified: user/attilio/vmc-playground/sbin/fsdb/fsdbutil.c
==============================================================================
--- user/attilio/vmc-playground/sbin/fsdb/fsdbutil.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sbin/fsdb/fsdbutil.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -239,7 +239,6 @@ printindir(ufs2_daddr_t blk, int level,
/* for the final indirect level, don't use the cache */
bp = &buf;
bp->b_un.b_buf = bufp;
- bp->b_prev = bp->b_next = bp;
initbarea(bp);
getblk(bp, blk, sblock.fs_bsize);
Modified: user/attilio/vmc-playground/share/man/man5/src.conf.5
==============================================================================
--- user/attilio/vmc-playground/share/man/man5/src.conf.5 Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/share/man/man5/src.conf.5 Fri Feb 15 16:11:30 2013 (r246842)
@@ -1,7 +1,7 @@
.\" DO NOT EDIT-- this file is automatically generated.
.\" from FreeBSD: head/tools/build/options/makeman 236279 2012-05-30 02:37:20Z gjb
.\" $FreeBSD$
-.Dd February 2, 2013
+.Dd February 15, 2013
.Dt SRC.CONF 5
.Os
.Sh NAME
@@ -291,7 +291,7 @@ When set, it also enforces the following
Set to not build the Clang C/C++ compiler.
.Pp
It is a default setting on
-arm/arm, arm/armeb, arm/armv6, arm/armv6eb, ia64/ia64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32 and sparc64/sparc64.
+arm/armeb, arm/armv6eb, ia64/ia64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32 and sparc64/sparc64.
When set, it also enforces the following options:
.Pp
.Bl -item -compact
@@ -302,12 +302,6 @@ When set, it also enforces the following
.It
.Va WITHOUT_CLANG_IS_CC
.El
-.It Va WITH_CLANG
-.\" from FreeBSD: head/tools/build/options/WITH_CLANG 221730 2011-05-10 11:14:40Z ru
-Set to build the Clang C/C++ compiler.
-.Pp
-It is a default setting on
-amd64/amd64, i386/i386, pc98/i386, powerpc/powerpc and powerpc/powerpc64.
.It Va WITH_CLANG_EXTRAS
.\" from FreeBSD: head/tools/build/options/WITH_CLANG_EXTRAS 231057 2012-02-05 23:56:22Z dim
Set to build additional clang and llvm tools, such as bugpoint.
@@ -435,13 +429,6 @@ This includes the device tree compiler (
.Pp
It is a default setting on
amd64/amd64, i386/i386, ia64/ia64, pc98/i386 and sparc64/sparc64.
-.It Va WITH_FDT
-.\" from FreeBSD: head/tools/build/options/WITH_FDT 221730 2011-05-10 11:14:40Z ru
-Set to build Flattened Device Tree support as part of the base system.
-This includes the device tree compiler (dtc) and libfdt support library.
-.Pp
-It is a default setting on
-arm/arm, arm/armeb, arm/armv6, arm/armv6eb, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, powerpc/powerpc and powerpc/powerpc64.
.It Va WITHOUT_FLOPPY
.\" from FreeBSD: head/tools/build/options/WITHOUT_FLOPPY 221540 2011-05-06 19:13:03Z ru
Set to not build or install programs
@@ -659,6 +646,26 @@ When set, it also enforces the following
Set to build some programs without optional
.Nm libkvm
support.
+.It Va WITHOUT_LDNS
+.\" from FreeBSD: head/tools/build/options/WITHOUT_LDNS 246827 2013-02-15 13:44:18Z des
+Setting this variable will prevent LDNS from being built.
+When set, it also enforces the following options:
+.Pp
+.Bl -item -compact
+.It
+.Va WITHOUT_LDNS_UTILS
+.El
+.It Va WITH_LDNS_UTILS
+.\" from FreeBSD: head/tools/build/options/WITH_LDNS_UTILS 246830 2013-02-15 13:57:51Z des
+Setting this variable will enable the LDNS-based versions of
+.Xr dig 1
+and
+.Xr host 1 .
+When set, the following options are also in effect:
+.Pp
+.Bl -inset -compact
+.It Va WITHOUT_BIND_UTILS
+.El
.It Va WITHOUT_LEGACY_CONSOLE
.\" from FreeBSD: head/tools/build/options/WITHOUT_LEGACY_CONSOLE 183242 2008-09-21 22:02:26Z sam
Set to not build programs that support a legacy PC console; e.g.
Modified: user/attilio/vmc-playground/share/mk/bsd.libnames.mk
==============================================================================
--- user/attilio/vmc-playground/share/mk/bsd.libnames.mk Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/share/mk/bsd.libnames.mk Fri Feb 15 16:11:30 2013 (r246842)
@@ -85,6 +85,9 @@ LIBKICONV?= ${DESTDIR}${LIBDIR}/libkicon
LIBKRB5?= ${DESTDIR}${LIBDIR}/libkrb5.a
LIBKVM?= ${DESTDIR}${LIBDIR}/libkvm.a
LIBL?= ${DESTDIR}${LIBDIR}/libl.a
+.if ${MK_LDNS} != "no"
+LIBLDNS?= ${DESTDIR}${LIBDIR}/lib_ldns.a
+.endif
LIBLN?= "don't use LIBLN, use LIBL"
.if ${MK_BIND} != "no"
LIBLWRES?= ${DESTDIR}${LIBDIR}/liblwres.a
Modified: user/attilio/vmc-playground/share/mk/bsd.own.mk
==============================================================================
--- user/attilio/vmc-playground/share/mk/bsd.own.mk Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/share/mk/bsd.own.mk Fri Feb 15 16:11:30 2013 (r246842)
@@ -295,6 +295,7 @@ __DEFAULT_YES_OPTIONS = \
KERBEROS \
KERNEL_SYMBOLS \
KVM \
+ LDNS \
LEGACY_CONSOLE \
LIB32 \
LIBPTHREAD \
@@ -370,6 +371,7 @@ __DEFAULT_NO_OPTIONS = \
ICONV \
IDEA \
INSTALL_AS_USER \
+ LDNS_UTILS \
NMTREE \
NAND \
OFED \
@@ -471,6 +473,14 @@ MK_BIND_NAMED:= no
MK_BIND_UTILS:= no
.endif
+.if ${MK_LDNS} == "no"
+MK_LDNS_UTILS:= no
+.endif
+
+.if ${MK_LDNS_UTILS} != "no"
+MK_BIND_UTILS:= no
+.endif
+
.if ${MK_BIND_MTREE} == "no"
MK_BIND_ETC:= no
.endif
Modified: user/attilio/vmc-playground/sys/amd64/amd64/pmap.c
==============================================================================
--- user/attilio/vmc-playground/sys/amd64/amd64/pmap.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/amd64/amd64/pmap.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -1482,6 +1482,7 @@ pmap_qremove(vm_offset_t sva, int count)
va = sva;
while (count-- > 0) {
+ KASSERT(va >= VM_MIN_KERNEL_ADDRESS, ("usermode va %lx", va));
pmap_kremove(va);
va += PAGE_SIZE;
}
@@ -4508,8 +4509,10 @@ pmap_remove_pages(pmap_t pmap)
pte = &pte[pmap_pte_index(pv->pv_va)];
tpte = *pte & ~PG_PTE_PAT;
}
- if ((tpte & PG_V) == 0)
- panic("bad pte");
+ if ((tpte & PG_V) == 0) {
+ panic("bad pte va %lx pte %lx",
+ pv->pv_va, tpte);
+ }
/*
* We cannot remove wired pages from a process' mapping at this time
Modified: user/attilio/vmc-playground/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lz4.c
==============================================================================
--- user/attilio/vmc-playground/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lz4.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lz4.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -36,7 +36,6 @@
static int real_LZ4_compress(const char *source, char *dest, int isize,
int osize);
-static int real_LZ4_uncompress(const char *source, char *dest, int osize);
static int LZ4_compressBound(int isize);
static int LZ4_uncompress_unknownOutputSize(const char *source, char *dest,
int isize, int maxOutputSize);
@@ -104,16 +103,6 @@ lz4_decompress(void *s_start, void *d_st
* situations (input data not compressible) worst case size
* evaluation is provided by function LZ4_compressBound().
*
- * real_LZ4_uncompress() :
- * osize : is the output size, therefore the original size
- * return : the number of bytes read in the source buffer.
- * If the source stream is malformed, the function will stop
- * decoding and return a negative result, indicating the byte
- * position of the faulty instruction. This function never
- * writes beyond dest + osize, and is therefore protected
- * against malicious data packets.
- * note : destination buffer must be already allocated
- *
* Advanced Functions
*
* LZ4_compressBound() :
@@ -137,7 +126,6 @@ lz4_decompress(void *s_start, void *d_st
* maxOutputSize, and is therefore protected against malicious
* data packets.
* note : Destination buffer must be already allocated.
- * This version is slightly slower than real_LZ4_uncompress()
*
* LZ4_compressCtx() :
* This function explicitly handles the CTX memory structure.
@@ -879,128 +867,16 @@ real_LZ4_compress(const char *source, ch
/* Decompression functions */
/*
- * Note: The decoding functions real_LZ4_uncompress() and
- * LZ4_uncompress_unknownOutputSize() are safe against "buffer overflow"
- * attack type. They will never write nor read outside of the provided
- * output buffers. LZ4_uncompress_unknownOutputSize() also insures that
- * it will never read outside of the input buffer. A corrupted input
- * will produce an error result, a negative int, indicating the position
- * of the error within input stream.
+ * Note: The decoding functionLZ4_uncompress_unknownOutputSize() is safe
+ * against "buffer overflow" attack type. They will never write nor
+ * read outside of the provided output buffers.
+ * LZ4_uncompress_unknownOutputSize() also insures that it will never
+ * read outside of the input buffer. A corrupted input will produce
+ * an error result, a negative int, indicating the position of the
+ * error within input stream.
*/
static int
-real_LZ4_uncompress(const char *source, char *dest, int osize)
-{
- /* Local Variables */
- const BYTE *restrict ip = (const BYTE *) source;
- const BYTE *ref;
-
- BYTE *op = (BYTE *) dest;
- BYTE *const oend = op + osize;
- BYTE *cpy;
-
- unsigned token;
-
- size_t length;
- size_t dec32table[] = {0, 3, 2, 3, 0, 0, 0, 0};
-#if LZ4_ARCH64
- size_t dec64table[] = {0, 0, 0, (size_t)-1, 0, 1, 2, 3};
-#endif
-
- /* Main Loop */
- for (;;) {
- /* get runlength */
- token = *ip++;
- if ((length = (token >> ML_BITS)) == RUN_MASK) {
- size_t len;
- for (; (len = *ip++) == 255; length += 255) {
- }
- length += len;
- }
- /* copy literals */
- cpy = op + length;
- if unlikely(cpy > oend - COPYLENGTH) {
- if (cpy != oend)
- /* Error: we must necessarily stand at EOF */
- goto _output_error;
- (void) memcpy(op, ip, length);
- ip += length;
- break; /* EOF */
- }
- LZ4_WILDCOPY(ip, op, cpy);
- ip -= (op - cpy);
- op = cpy;
-
- /* get offset */
- LZ4_READ_LITTLEENDIAN_16(ref, cpy, ip);
- ip += 2;
- if unlikely(ref < (BYTE * const) dest)
- /*
- * Error: offset create reference outside destination
- * buffer
- */
- goto _output_error;
-
- /* get matchlength */
- if ((length = (token & ML_MASK)) == ML_MASK) {
- for (; *ip == 255; length += 255) {
- ip++;
- }
- length += *ip++;
- }
- /* copy repeated sequence */
- if unlikely(op - ref < STEPSIZE) {
-#if LZ4_ARCH64
- size_t dec64 = dec64table[op-ref];
-#else
- const int dec64 = 0;
-#endif
- op[0] = ref[0];
- op[1] = ref[1];
- op[2] = ref[2];
- op[3] = ref[3];
- op += 4;
- ref += 4;
- ref -= dec32table[op-ref];
- A32(op) = A32(ref);
- op += STEPSIZE - 4;
- ref -= dec64;
- } else {
- LZ4_COPYSTEP(ref, op);
- }
- cpy = op + length - (STEPSIZE - 4);
- if (cpy > oend - COPYLENGTH) {
- if (cpy > oend)
- /*
- * Error: request to write beyond destination
- * buffer
- */
- goto _output_error;
- LZ4_SECURECOPY(ref, op, (oend - COPYLENGTH));
- while (op < cpy)
- *op++ = *ref++;
- op = cpy;
- if (op == oend)
- /*
- * Check EOF (should never happen, since last
- * 5 bytes are supposed to be literals)
- */
- goto _output_error;
- continue;
- }
- LZ4_SECURECOPY(ref, op, cpy);
- op = cpy; /* correction */
- }
-
- /* end of decoding */
- return (int)(((char *)ip) - source);
-
- /* write overflow error detected */
- _output_error:
- return (int)(-(((char *)ip) - source));
-}
-
-static int
LZ4_uncompress_unknownOutputSize(const char *source, char *dest, int isize,
int maxOutputSize)
{
Modified: user/attilio/vmc-playground/sys/conf/options
==============================================================================
--- user/attilio/vmc-playground/sys/conf/options Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/conf/options Fri Feb 15 16:11:30 2013 (r246842)
@@ -588,6 +588,7 @@ VFS_BIO_DEBUG opt_global.h
VM_KMEM_SIZE opt_vm.h
VM_KMEM_SIZE_SCALE opt_vm.h
VM_KMEM_SIZE_MAX opt_vm.h
+VM_NDOMAIN opt_vm.h
VM_NRESERVLEVEL opt_vm.h
VM_LEVEL_0_ORDER opt_vm.h
VM_RADIX_BOOT_CACHE opt_vm.h
Modified: user/attilio/vmc-playground/sys/dev/oce/oce_if.c
==============================================================================
--- user/attilio/vmc-playground/sys/dev/oce/oce_if.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/dev/oce/oce_if.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -1817,6 +1817,9 @@ oce_local_timer(void *arg)
}
+/* NOTE : This should only be called holding
+ * DEVICE_LOCK.
+*/
static void
oce_if_deactivate(POCE_SOFTC sc)
{
@@ -1846,11 +1849,17 @@ oce_if_deactivate(POCE_SOFTC sc)
/* Stop intrs and finish any bottom halves pending */
oce_hw_intr_disable(sc);
+ /* Since taskqueue_drain takes a Giant Lock, We should not acquire
+ any other lock. So unlock device lock and require after
+ completing taskqueue_drain.
+ */
+ UNLOCK(&sc->dev_lock);
for (i = 0; i < sc->intr_count; i++) {
if (sc->intrs[i].tq != NULL) {
taskqueue_drain(sc->intrs[i].tq, &sc->intrs[i].task);
}
}
+ LOCK(&sc->dev_lock);
/* Delete RX queue in card with flush param */
oce_stop_rx(sc);
Modified: user/attilio/vmc-playground/sys/dev/oce/oce_if.h
==============================================================================
--- user/attilio/vmc-playground/sys/dev/oce/oce_if.h Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/dev/oce/oce_if.h Fri Feb 15 16:11:30 2013 (r246842)
@@ -493,7 +493,7 @@ struct oce_lock {
#define LOCK_CREATE(lock, desc) { \
strncpy((lock)->name, (desc), MAX_LOCK_DESC_LEN); \
(lock)->name[MAX_LOCK_DESC_LEN] = '\0'; \
- mtx_init(&(lock)->mutex, (lock)->name, MTX_NETWORK_LOCK, MTX_DEF); \
+ mtx_init(&(lock)->mutex, (lock)->name, NULL, MTX_DEF); \
}
#define LOCK_DESTROY(lock) \
if (mtx_initialized(&(lock)->mutex))\
Modified: user/attilio/vmc-playground/sys/kern/uipc_usrreq.c
==============================================================================
--- user/attilio/vmc-playground/sys/kern/uipc_usrreq.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/kern/uipc_usrreq.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -1798,6 +1798,7 @@ unp_internalize(struct mbuf **controlp,
struct mbuf *control = *controlp;
struct proc *p = td->td_proc;
struct filedesc *fdescp = p->p_fd;
+ struct bintime *bt;
struct cmsghdr *cm = mtod(control, struct cmsghdr *);
struct cmsgcred *cmcred;
struct file **rp;
@@ -1906,6 +1907,18 @@ unp_internalize(struct mbuf **controlp,
microtime(tv);
break;
+ case SCM_BINTIME:
+ *controlp = sbcreatecontrol(NULL, sizeof(*bt),
+ SCM_BINTIME, SOL_SOCKET);
+ if (*controlp == NULL) {
+ error = ENOBUFS;
+ goto out;
+ }
+ bt = (struct bintime *)
+ CMSG_DATA(mtod(*controlp, struct cmsghdr *));
+ bintime(bt);
+ break;
+
default:
error = EINVAL;
goto out;
Modified: user/attilio/vmc-playground/sys/kern/vfs_vnops.c
==============================================================================
--- user/attilio/vmc-playground/sys/kern/vfs_vnops.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/kern/vfs_vnops.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -872,8 +872,8 @@ static const int io_hold_cnt = 16;
static int vn_io_fault_enable = 1;
SYSCTL_INT(_debug, OID_AUTO, vn_io_fault_enable, CTLFLAG_RW,
&vn_io_fault_enable, 0, "Enable vn_io_fault lock avoidance");
-static unsigned long vn_io_faults_cnt;
-SYSCTL_LONG(_debug, OID_AUTO, vn_io_faults, CTLFLAG_RD,
+static u_long vn_io_faults_cnt;
+SYSCTL_ULONG(_debug, OID_AUTO, vn_io_faults, CTLFLAG_RD,
&vn_io_faults_cnt, 0, "Count of vn_io_fault lock avoidance triggers");
/*
Modified: user/attilio/vmc-playground/sys/net/if_pfsync.h
==============================================================================
--- user/attilio/vmc-playground/sys/net/if_pfsync.h Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/net/if_pfsync.h Fri Feb 15 16:11:30 2013 (r246842)
@@ -67,8 +67,6 @@
#define PFSYNC_ACT_EOF 12 /* end of frame */
#define PFSYNC_ACT_MAX 13
-#define PFSYNC_HMAC_LEN 20
-
/*
* A pfsync frame is built from a header followed by several sections which
* are all prefixed with their own subheaders. Frames must be terminated with
@@ -205,18 +203,8 @@ struct pfsync_tdb {
u_int8_t _pad[2];
} __packed;
-/*
- * EOF
- */
-
-struct pfsync_eof {
- u_int8_t hmac[PFSYNC_HMAC_LEN];
-} __packed;
-
#define PFSYNC_HDRLEN sizeof(struct pfsync_header)
-
-
/*
* Names for PFSYNC sysctl objects
*/
Modified: user/attilio/vmc-playground/sys/net80211/ieee80211.h
==============================================================================
--- user/attilio/vmc-playground/sys/net80211/ieee80211.h Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/net80211/ieee80211.h Fri Feb 15 16:11:30 2013 (r246842)
@@ -200,11 +200,11 @@ struct ieee80211_qosframe_addr4 {
#define IEEE80211_QOS_EOSP_S 4
#define IEEE80211_QOS_TID 0x0f
/* qos[1] byte used for all frames sent by mesh STAs in a mesh BSS */
-#define IEEE80211_QOS_MC 0x10 /* Mesh control */
+#define IEEE80211_QOS_MC 0x01 /* Mesh control */
/* Mesh power save level*/
-#define IEEE80211_QOS_MESH_PSL 0x20
+#define IEEE80211_QOS_MESH_PSL 0x02
/* Mesh Receiver Service Period Initiated */
-#define IEEE80211_QOS_RSPI 0x40
+#define IEEE80211_QOS_RSPI 0x04
/* bits 11 to 15 reserved */
/* does frame have QoS sequence control data */
Modified: user/attilio/vmc-playground/sys/netgraph/ng_parse.c
==============================================================================
--- user/attilio/vmc-playground/sys/netgraph/ng_parse.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/netgraph/ng_parse.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -1236,6 +1236,7 @@ ng_parse_composite(const struct ng_parse
distinguish name from values by seeing if the next
token is an equals sign */
if (ctype != CT_STRUCT) {
+ u_long ul;
int len2, off2;
char *eptr;
@@ -1259,11 +1260,12 @@ ng_parse_composite(const struct ng_parse
}
/* Index was specified explicitly; parse it */
- index = (u_int)strtoul(s + *off, &eptr, 0);
- if (index < 0 || eptr - (s + *off) != len) {
+ ul = strtoul(s + *off, &eptr, 0);
+ if (ul == ULONG_MAX || eptr - (s + *off) != len) {
error = EINVAL;
goto done;
}
+ index = (u_int)ul;
nextIndex = index + 1;
*off += len + len2;
} else { /* a structure field */
Modified: user/attilio/vmc-playground/sys/netpfil/pf/if_pfsync.c
==============================================================================
--- user/attilio/vmc-playground/sys/netpfil/pf/if_pfsync.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/netpfil/pf/if_pfsync.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -99,8 +99,7 @@ __FBSDID("$FreeBSD$");
#define PFSYNC_MINPKT ( \
sizeof(struct ip) + \
sizeof(struct pfsync_header) + \
- sizeof(struct pfsync_subheader) + \
- sizeof(struct pfsync_eof))
+ sizeof(struct pfsync_subheader) )
struct pfsync_pkt {
struct ip *ip;
Modified: user/attilio/vmc-playground/sys/vm/vm_phys.c
==============================================================================
--- user/attilio/vmc-playground/sys/vm/vm_phys.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/vm/vm_phys.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -40,6 +40,7 @@
__FBSDID("$FreeBSD$");
#include "opt_ddb.h"
+#include "opt_vm.h"
#include <sys/param.h>
#include <sys/systm.h>
Modified: user/attilio/vmc-playground/sys/x86/acpica/srat.c
==============================================================================
--- user/attilio/vmc-playground/sys/x86/acpica/srat.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/sys/x86/acpica/srat.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -28,6 +28,8 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include "opt_vm.h"
+
#include <sys/param.h>
#include <sys/bus.h>
#include <sys/kernel.h>
Copied: user/attilio/vmc-playground/tools/build/options/WITHOUT_LDNS (from r246841, user/attilio/vmcontention/tools/build/options/WITHOUT_LDNS)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ user/attilio/vmc-playground/tools/build/options/WITHOUT_LDNS Fri Feb 15 16:11:30 2013 (r246842, copy of r246841, user/attilio/vmcontention/tools/build/options/WITHOUT_LDNS)
@@ -0,0 +1,2 @@
+.\" $FreeBSD$
+Setting this variable will prevent LDNS from being built.
Copied: user/attilio/vmc-playground/tools/build/options/WITH_LDNS_UTILS (from r246841, user/attilio/vmcontention/tools/build/options/WITH_LDNS_UTILS)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ user/attilio/vmc-playground/tools/build/options/WITH_LDNS_UTILS Fri Feb 15 16:11:30 2013 (r246842, copy of r246841, user/attilio/vmcontention/tools/build/options/WITH_LDNS_UTILS)
@@ -0,0 +1,5 @@
+.\" $FreeBSD$
+Setting this variable will enable the LDNS-based versions of
+.Xr dig 1
+and
+.Xr host 1 .
Modified: user/attilio/vmc-playground/usr.bin/csup/csup.1
==============================================================================
--- user/attilio/vmc-playground/usr.bin/csup/csup.1 Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/usr.bin/csup/csup.1 Fri Feb 15 16:11:30 2013 (r246842)
@@ -24,7 +24,7 @@
.\" $Id: cvsup.1,v 1.70 2003/03/04 18:23:46 jdp Exp $
.\" $FreeBSD$
.\"
-.Dd Feburary 8, 2013
+.Dd February 8, 2013
.Dt CSUP 1
.Os FreeBSD
.Sh NAME
Modified: user/attilio/vmc-playground/usr.sbin/bhyvectl/bhyvectl.c
==============================================================================
--- user/attilio/vmc-playground/usr.sbin/bhyvectl/bhyvectl.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/usr.sbin/bhyvectl/bhyvectl.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -185,6 +185,7 @@ usage(void)
" [--get-vmcs-interruptibility]\n"
" [--set-x2apic-state=<state>]\n"
" [--get-x2apic-state]\n"
+ " [--unassign-pptdev=<bus/slot/func>]\n"
" [--set-lowmem=<memory below 4GB in units of MB>]\n"
" [--get-lowmem]\n"
" [--set-highmem=<memory above 4GB in units of MB>]\n"
@@ -218,6 +219,7 @@ static int set_cs, set_ds, set_es, set_f
static int get_cs, get_ds, get_es, get_fs, get_gs, get_ss, get_tr, get_ldtr;
static int set_x2apic_state, get_x2apic_state;
enum x2apic_state x2apic_state;
+static int unassign_pptdev, bus, slot, func;
static int run;
/*
@@ -376,6 +378,7 @@ enum {
SET_VMCS_ENTRY_INTERRUPTION_INFO,
SET_CAP,
CAPNAME,
+ UNASSIGN_PPTDEV,
};
int
@@ -425,6 +428,7 @@ main(int argc, char *argv[])
{ "set-vmcs-entry-interruption-info",
REQ_ARG, 0, SET_VMCS_ENTRY_INTERRUPTION_INFO },
{ "capname", REQ_ARG, 0, CAPNAME },
+ { "unassign-pptdev", REQ_ARG, 0, UNASSIGN_PPTDEV },
{ "setcap", REQ_ARG, 0, SET_CAP },
{ "getcap", NO_ARG, &getcap, 1 },
{ "get-stats", NO_ARG, &get_stats, 1 },
@@ -672,6 +676,11 @@ main(int argc, char *argv[])
case CAPNAME:
capname = optarg;
break;
+ case UNASSIGN_PPTDEV:
+ unassign_pptdev = 1;
+ if (sscanf(optarg, "%d/%d/%d", &bus, &slot, &func) != 3)
+ usage();
+ break;
default:
usage();
}
@@ -805,6 +814,9 @@ main(int argc, char *argv[])
if (!error && set_x2apic_state)
error = vm_set_x2apic_state(ctx, vcpu, x2apic_state);
+ if (!error && unassign_pptdev)
+ error = vm_unassign_pptdev(ctx, bus, slot, func);
+
if (!error && set_exception_bitmap) {
error = vm_set_vmcs_field(ctx, vcpu, VMCS_EXCEPTION_BITMAP,
exception_bitmap);
Modified: user/attilio/vmc-playground/usr.sbin/jail/command.c
==============================================================================
--- user/attilio/vmc-playground/usr.sbin/jail/command.c Fri Feb 15 16:08:08 2013 (r246841)
+++ user/attilio/vmc-playground/usr.sbin/jail/command.c Fri Feb 15 16:11:30 2013 (r246842)
@@ -66,7 +66,7 @@ int paralimit = -1;
extern char **environ;
static int run_command(struct cfjail *j);
-static void add_proc(struct cfjail *j, pid_t pid);
+static int add_proc(struct cfjail *j, pid_t pid);
static void clear_procs(struct cfjail *j);
static struct cfjail *find_proc(pid_t pid);
static int term_procs(struct cfjail *j);
@@ -542,13 +542,12 @@ run_command(struct cfjail *j)
if (pid < 0)
err(1, "fork");
if (pid > 0) {
- if (bg) {
+ if (bg || !add_proc(j, pid)) {
free(j->comline);
j->comline = NULL;
return 0;
} else {
paralimit--;
- add_proc(j, pid);
return 1;
}
}
@@ -622,7 +621,7 @@ run_command(struct cfjail *j)
/*
* Add a process to the hash, tied to a jail.
*/
-static void
+static int
add_proc(struct cfjail *j, pid_t pid)
{
struct kevent ke;
@@ -632,8 +631,11 @@ add_proc(struct cfjail *j, pid_t pid)
if (!kq && (kq = kqueue()) < 0)
err(1, "kqueue");
EV_SET(&ke, pid, EVFILT_PROC, EV_ADD, NOTE_EXIT, 0, NULL);
- if (kevent(kq, &ke, 1, NULL, 0, NULL) < 0)
+ if (kevent(kq, &ke, 1, NULL, 0, NULL) < 0) {
+ if (errno == ESRCH)
+ return 0;
err(1, "kevent");
+ }
ph = emalloc(sizeof(struct phash));
ph->j = j;
ph->pid = pid;
@@ -658,6 +660,7 @@ add_proc(struct cfjail *j, pid_t pid)
TAILQ_INSERT_TAIL(&sleeping, j, tq);
j->queue = &sleeping;
}
+ return 1;
}
/*
@@ -730,7 +733,7 @@ term_procs(struct cfjail *j)
for (i = 0; i < pcnt; i++)
if (ki[i].ki_jid == j->jid &&
kill(ki[i].ki_pid, SIGTERM) == 0) {
- add_proc(j, ki[i].ki_pid);
+ (void)add_proc(j, ki[i].ki_pid);
if (verbose > 0) {
if (!noted) {
noted = 1;
More information about the svn-src-user
mailing list