svn commit: r251060 - in user/attilio/vmcontention: . lib/libc/amd64/gen lib/libc/arm/gen lib/libc/gen lib/libc/i386/gen lib/libc/ia64/gen lib/libc/mips/gen lib/libc/powerpc/gen lib/libc/powerpc64/...
Attilio Rao
attilio at FreeBSD.org
Tue May 28 14:32:08 UTC 2013
Author: attilio
Date: Tue May 28 14:32:02 2013
New Revision: 251060
URL: http://svnweb.freebsd.org/changeset/base/251060
Log:
MFC
Modified:
user/attilio/vmcontention/Makefile.inc1
user/attilio/vmcontention/lib/libc/amd64/gen/getcontextx.c
user/attilio/vmcontention/lib/libc/arm/gen/getcontextx.c
user/attilio/vmcontention/lib/libc/gen/Symbol.map
user/attilio/vmcontention/lib/libc/i386/gen/getcontextx.c
user/attilio/vmcontention/lib/libc/ia64/gen/getcontextx.c
user/attilio/vmcontention/lib/libc/mips/gen/getcontextx.c
user/attilio/vmcontention/lib/libc/powerpc/gen/getcontextx.c
user/attilio/vmcontention/lib/libc/powerpc64/gen/getcontextx.c
user/attilio/vmcontention/lib/libc/sparc64/gen/getcontextx.c
user/attilio/vmcontention/lib/libc/sys/cap_rights_limit.2
user/attilio/vmcontention/lib/libthr/thread/thr_sig.c
user/attilio/vmcontention/lib/msun/ld80/s_exp2l.c
user/attilio/vmcontention/share/man/man4/aacraid.4
user/attilio/vmcontention/sys/amd64/amd64/exception.S
user/attilio/vmcontention/sys/amd64/amd64/machdep.c
user/attilio/vmcontention/sys/amd64/amd64/trap.c
user/attilio/vmcontention/sys/amd64/ia32/ia32_signal.c
user/attilio/vmcontention/sys/i386/i386/exception.s
user/attilio/vmcontention/sys/i386/i386/machdep.c
user/attilio/vmcontention/sys/netinet/sctputil.c
user/attilio/vmcontention/sys/sys/ucontext.h
user/attilio/vmcontention/tools/regression/lib/msun/test-cexp.c
user/attilio/vmcontention/tools/tools/makeroot/makeroot.8
user/attilio/vmcontention/usr.sbin/lpr/common_source/common.c
user/attilio/vmcontention/usr.sbin/lpr/common_source/lp.cdefs.h
user/attilio/vmcontention/usr.sbin/rtsold/rtsold.8
Directory Properties:
user/attilio/vmcontention/ (props changed)
user/attilio/vmcontention/lib/libc/ (props changed)
user/attilio/vmcontention/share/man/man4/ (props changed)
user/attilio/vmcontention/sys/ (props changed)
user/attilio/vmcontention/usr.sbin/rtsold/ (props changed)
Modified: user/attilio/vmcontention/Makefile.inc1
==============================================================================
--- user/attilio/vmcontention/Makefile.inc1 Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/Makefile.inc1 Tue May 28 14:32:02 2013 (r251060)
@@ -983,9 +983,16 @@ buildkernel:
.endif
@echo
@echo "--------------------------------------------------------------"
- @echo ">>> stage 3.2: building everything"
+ @echo ">>> stage 3.2: building the kernel"
@echo "--------------------------------------------------------------"
- cd ${KRNLOBJDIR}/${_kernel}; ${KMAKE} all -DNO_MODULES_OBJ
+ cd ${KRNLOBJDIR}/${_kernel}; ${KMAKE} kernel-all -DNO_MODULES_OBJ
+ @echo
+.if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists(${KERNSRCDIR}/modules)
+ @echo "--------------------------------------------------------------"
+ @echo ">>> stage 3.3: building the modules"
+ @echo "--------------------------------------------------------------"
+ cd ${KRNLOBJDIR}/${_kernel}; ${KMAKE} modules-all -DNO_MODULES_OBJ
+.endif
@echo "--------------------------------------------------------------"
@echo ">>> Kernel build for ${_kernel} completed on `LC_ALL=C date`"
@echo "--------------------------------------------------------------"
Modified: user/attilio/vmcontention/lib/libc/amd64/gen/getcontextx.c
==============================================================================
--- user/attilio/vmcontention/lib/libc/amd64/gen/getcontextx.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/libc/amd64/gen/getcontextx.c Tue May 28 14:32:02 2013 (r251060)
@@ -57,14 +57,12 @@ __getcontextx_size(void)
}
int
-__fillcontextx(char *ctx)
+__fillcontextx2(char *ctx)
{
struct amd64_get_xfpustate xfpu;
ucontext_t *ucp;
ucp = (ucontext_t *)ctx;
- if (getcontext(ucp) == -1)
- return (-1);
if (xstate_sz != 0) {
xfpu.addr = (char *)(ucp + 1);
xfpu.len = xstate_sz;
@@ -80,6 +78,18 @@ __fillcontextx(char *ctx)
return (0);
}
+int
+__fillcontextx(char *ctx)
+{
+ ucontext_t *ucp;
+
+ ucp = (ucontext_t *)ctx;
+ if (getcontext(ucp) == -1)
+ return (-1);
+ __fillcontextx2(ctx);
+ return (0);
+}
+
__weak_reference(__getcontextx, getcontextx);
ucontext_t *
Modified: user/attilio/vmcontention/lib/libc/arm/gen/getcontextx.c
==============================================================================
--- user/attilio/vmcontention/lib/libc/arm/gen/getcontextx.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/libc/arm/gen/getcontextx.c Tue May 28 14:32:02 2013 (r251060)
@@ -40,6 +40,13 @@ __getcontextx_size(void)
}
int
+__fillcontextx2(char *ctx)
+{
+
+ return (0);
+}
+
+int
__fillcontextx(char *ctx)
{
ucontext_t *ucp;
Modified: user/attilio/vmcontention/lib/libc/gen/Symbol.map
==============================================================================
--- user/attilio/vmcontention/lib/libc/gen/Symbol.map Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/libc/gen/Symbol.map Tue May 28 14:32:02 2013 (r251060)
@@ -529,5 +529,6 @@ FBSDprivate_1.0 {
__elf_aux_vector;
__pthread_map_stacks_exec;
__fillcontextx;
+ __fillcontextx2;
__getcontextx_size;
};
Modified: user/attilio/vmcontention/lib/libc/i386/gen/getcontextx.c
==============================================================================
--- user/attilio/vmcontention/lib/libc/i386/gen/getcontextx.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/libc/i386/gen/getcontextx.c Tue May 28 14:32:02 2013 (r251060)
@@ -89,14 +89,12 @@ __getcontextx_size(void)
}
int
-__fillcontextx(char *ctx)
+__fillcontextx2(char *ctx)
{
struct i386_get_xfpustate xfpu;
ucontext_t *ucp;
ucp = (ucontext_t *)ctx;
- if (getcontext(ucp) == -1)
- return (-1);
if (xstate_sz != 0) {
xfpu.addr = (char *)(ucp + 1);
xfpu.len = xstate_sz;
@@ -112,6 +110,18 @@ __fillcontextx(char *ctx)
return (0);
}
+int
+__fillcontextx(char *ctx)
+{
+ ucontext_t *ucp;
+
+ ucp = (ucontext_t *)ctx;
+ if (getcontext(ucp) == -1)
+ return (-1);
+ __fillcontextx2(ctx);
+ return (0);
+}
+
__weak_reference(__getcontextx, getcontextx);
ucontext_t *
Modified: user/attilio/vmcontention/lib/libc/ia64/gen/getcontextx.c
==============================================================================
--- user/attilio/vmcontention/lib/libc/ia64/gen/getcontextx.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/libc/ia64/gen/getcontextx.c Tue May 28 14:32:02 2013 (r251060)
@@ -40,6 +40,13 @@ __getcontextx_size(void)
}
int
+__fillcontextx2(char *ctx)
+{
+
+ return (0);
+}
+
+int
__fillcontextx(char *ctx)
{
ucontext_t *ucp;
Modified: user/attilio/vmcontention/lib/libc/mips/gen/getcontextx.c
==============================================================================
--- user/attilio/vmcontention/lib/libc/mips/gen/getcontextx.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/libc/mips/gen/getcontextx.c Tue May 28 14:32:02 2013 (r251060)
@@ -40,6 +40,13 @@ __getcontextx_size(void)
}
int
+__fillcontextx2(char *ctx)
+{
+
+ return (0);
+}
+
+int
__fillcontextx(char *ctx)
{
ucontext_t *ucp;
Modified: user/attilio/vmcontention/lib/libc/powerpc/gen/getcontextx.c
==============================================================================
--- user/attilio/vmcontention/lib/libc/powerpc/gen/getcontextx.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/libc/powerpc/gen/getcontextx.c Tue May 28 14:32:02 2013 (r251060)
@@ -40,6 +40,13 @@ __getcontextx_size(void)
}
int
+__fillcontextx2(char *ctx)
+{
+
+ return (0);
+}
+
+int
__fillcontextx(char *ctx)
{
ucontext_t *ucp;
Modified: user/attilio/vmcontention/lib/libc/powerpc64/gen/getcontextx.c
==============================================================================
--- user/attilio/vmcontention/lib/libc/powerpc64/gen/getcontextx.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/libc/powerpc64/gen/getcontextx.c Tue May 28 14:32:02 2013 (r251060)
@@ -40,6 +40,13 @@ __getcontextx_size(void)
}
int
+__fillcontextx2(char *ctx)
+{
+
+ return (0);
+}
+
+int
__fillcontextx(char *ctx)
{
ucontext_t *ucp;
Modified: user/attilio/vmcontention/lib/libc/sparc64/gen/getcontextx.c
==============================================================================
--- user/attilio/vmcontention/lib/libc/sparc64/gen/getcontextx.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/libc/sparc64/gen/getcontextx.c Tue May 28 14:32:02 2013 (r251060)
@@ -40,6 +40,13 @@ __getcontextx_size(void)
}
int
+__fillcontextx2(char *ctx)
+{
+
+ return (0);
+}
+
+int
__fillcontextx(char *ctx)
{
ucontext_t *ucp;
Modified: user/attilio/vmcontention/lib/libc/sys/cap_rights_limit.2
==============================================================================
--- user/attilio/vmcontention/lib/libc/sys/cap_rights_limit.2 Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/libc/sys/cap_rights_limit.2 Tue May 28 14:32:02 2013 (r251060)
@@ -77,7 +77,9 @@ The following rights may be specified in
.Bl -tag -width CAP_EXTATTR_DELETE
.It Dv CAP_ACCEPT
Permit
-.Xr accept 2 .
+.Xr accept 2
+and
+.Xr accept4 2 .
.It Dv CAP_ACL_CHECK
Permit checking of an ACL on a file descriptor; there is no cross-reference
for this system call.
Modified: user/attilio/vmcontention/lib/libthr/thread/thr_sig.c
==============================================================================
--- user/attilio/vmcontention/lib/libthr/thread/thr_sig.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/libthr/thread/thr_sig.c Tue May 28 14:32:02 2013 (r251060)
@@ -205,9 +205,9 @@ handle_signal(struct sigaction *actp, in
curthread->in_sigsuspend = 0;
/*
- * if thread is in deferred cancellation mode, disable cancellation
+ * If thread is in deferred cancellation mode, disable cancellation
* in signal handler.
- * if user signal handler calls a cancellation point function, e.g,
+ * If user signal handler calls a cancellation point function, e.g,
* it calls write() to write data to file, because write() is a
* cancellation point, the thread is immediately cancelled if
* cancellation is pending, to avoid this problem while thread is in
@@ -229,7 +229,7 @@ handle_signal(struct sigaction *actp, in
* We have already reset cancellation point flags, so if user's code
* longjmp()s out of its signal handler, wish its jmpbuf was set
* outside of a cancellation point, in most cases, this would be
- * true. however, ther is no way to save cancel_enable in jmpbuf,
+ * true. However, there is no way to save cancel_enable in jmpbuf,
* so after setjmps() returns once more, the user code may need to
* re-set cancel_enable flag by calling pthread_setcancelstate().
*/
@@ -323,8 +323,13 @@ check_deferred_signal(struct pthread *cu
return;
#if defined(__amd64__) || defined(__i386__)
- uc = alloca(__getcontextx_size());
- __fillcontextx((char *)uc);
+ int uc_len;
+ uc_len = __getcontextx_size();
+ uc = alloca(uc_len);
+ getcontext(uc);
+ if (curthread->deferred_siginfo.si_signo == 0)
+ return;
+ __fillcontextx2((char *)uc);
#else
ucontext_t ucv;
uc = &ucv;
Modified: user/attilio/vmcontention/lib/msun/ld80/s_exp2l.c
==============================================================================
--- user/attilio/vmcontention/lib/msun/ld80/s_exp2l.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/lib/msun/ld80/s_exp2l.c Tue May 28 14:32:02 2013 (r251060)
@@ -36,25 +36,31 @@ __FBSDID("$FreeBSD$");
#include "fpmath.h"
#include "math.h"
+#include "math_private.h"
#define TBLBITS 7
#define TBLSIZE (1 << TBLBITS)
#define BIAS (LDBL_MAX_EXP - 1)
-#define EXPMASK (BIAS + LDBL_MAX_EXP)
static volatile long double
huge = 0x1p10000L,
twom10000 = 0x1p-10000L;
+static const union IEEEl2bits
+P1 = LD80C(0xb17217f7d1cf79ac, -1, 6.93147180559945309429e-1L);
+
static const double
- redux = 0x1.8p63 / TBLSIZE,
- P1 = 0x1.62e42fefa39efp-1,
- P2 = 0x1.ebfbdff82c58fp-3,
- P3 = 0x1.c6b08d7049fap-5,
- P4 = 0x1.3b2ab6fba4da5p-7,
- P5 = 0x1.5d8804780a736p-10,
- P6 = 0x1.430918835e33dp-13;
+redux = 0x1.8p63 / TBLSIZE,
+/*
+ * Domain [-0.00390625, 0.00390625], range ~[-1.7079e-23, 1.7079e-23]
+ * |exp(x) - p(x)| < 2**-75.6
+ */
+P2 = 2.4022650695910072e-1, /* 0x1ebfbdff82c58f.0p-55 */
+P3 = 5.5504108664816879e-2, /* 0x1c6b08d7049e1a.0p-57 */
+P4 = 9.6181291055695180e-3, /* 0x13b2ab6fa8321a.0p-59 */
+P5 = 1.3333563089183052e-3, /* 0x15d8806f67f251.0p-62 */
+P6 = 1.5413361552277414e-4; /* 0x1433ddacff3441.0p-65 */
static const double tbl[TBLSIZE * 2] = {
0x1.6a09e667f3bcdp-1, -0x1.bdd3413b2648p-55,
@@ -187,8 +193,8 @@ static const double tbl[TBLSIZE * 2] = {
0x1.68155d44ca973p+0, 0x1.038ae44f74p-57,
};
-/*
- * exp2l(x): compute the base 2 exponential of x
+/**
+ * Compute the base 2 exponential of x for Intel 80-bit format.
*
* Accuracy: Peak error < 0.511 ulp.
*
@@ -204,7 +210,7 @@ static const double tbl[TBLSIZE * 2] = {
* with |z| <= 2**-(TBLBITS+1).
*
* We compute exp2(i/TBLSIZE) via table lookup and exp2(z) via a
- * degree-6 minimax polynomial with maximum error under 2**-69.
+ * degree-6 minimax polynomial with maximum error under 2**-75.6.
* The table entries each have 104 bits of accuracy, encoded as
* a pair of double precision values.
*/
@@ -219,30 +225,22 @@ exp2l(long double x)
/* Filter out exceptional cases. */
u.e = x;
hx = u.xbits.expsign;
- ix = hx & EXPMASK;
+ ix = hx & 0x7fff;
if (ix >= BIAS + 14) { /* |x| >= 16384 or x is NaN */
if (ix == BIAS + LDBL_MAX_EXP) {
- if (u.xbits.man != 1ULL << 63 || (hx & 0x8000) == 0)
- return (x + x); /* x is +Inf or NaN */
- else
- return (0.0); /* x is -Inf */
+ if (hx & 0x8000 && u.xbits.man == 1ULL << 63)
+ return (0.0L); /* x is -Inf */
+ return (x + x); /* x is +Inf, NaN or unsupported */
}
if (x >= 16384)
return (huge * huge); /* overflow */
if (x <= -16446)
return (twom10000 * twom10000); /* underflow */
- } else if (ix <= BIAS - 66) { /* |x| < 0x1p-66 */
- return (1.0 + x);
+ } else if (ix <= BIAS - 66) { /* |x| < 0x1p-65 (includes pseudos) */
+ return (1.0L + x); /* 1 with inexact */
}
-#ifdef __i386__
- /*
- * The default precision on i386 is 53 bits, so long doubles are
- * broken. Call exp2() to get an accurate (double precision) result.
- */
- if (fpgetprec() != FP_PE)
- return (exp2(x));
-#endif
+ ENTERI();
/*
* Reduce x, computing z, i0, and k. The low bits of x + redux
@@ -266,26 +264,25 @@ exp2l(long double x)
z = x - u.e;
v.xbits.man = 1ULL << 63;
if (k >= LDBL_MIN_EXP) {
- v.xbits.expsign = LDBL_MAX_EXP - 1 + k;
+ v.xbits.expsign = BIAS + k;
twopk = v.e;
} else {
- v.xbits.expsign = LDBL_MAX_EXP - 1 + k + 10000;
+ v.xbits.expsign = BIAS + k + 10000;
twopkp10000 = v.e;
}
/* Compute r = exp2l(y) = exp2lt[i0] * p(z). */
long double t_hi = tbl[i0];
long double t_lo = tbl[i0 + 1];
- /* XXX This gives > 1 ulp errors outside of FE_TONEAREST mode */
- r = t_lo + (t_hi + t_lo) * z * (P1 + z * (P2 + z * (P3 + z * (P4
+ r = t_lo + (t_hi + t_lo) * z * (P1.e + z * (P2 + z * (P3 + z * (P4
+ z * (P5 + z * P6))))) + t_hi;
/* Scale by 2**k. */
if (k >= LDBL_MIN_EXP) {
if (k == LDBL_MAX_EXP)
- return (r * 2.0 * 0x1p16383L);
- return (r * twopk);
+ RETURNI(r * 2.0 * 0x1p16383L);
+ RETURNI(r * twopk);
} else {
- return (r * twopkp10000 * twom10000);
+ RETURNI(r * twopkp10000 * twom10000);
}
}
Modified: user/attilio/vmcontention/share/man/man4/aacraid.4
==============================================================================
--- user/attilio/vmcontention/share/man/man4/aacraid.4 Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/share/man/man4/aacraid.4 Tue May 28 14:32:02 2013 (r251060)
@@ -53,10 +53,10 @@ The
driver provides support for the Adaptec by PMC RAID controllers,
including Series 6/7/8 and upcoming families.
.Pp
-The RAID containers are handled via the
+The RAID containers are handled via the
.Nm aacraidp0
bus.
-The physical buses are represented by the
+The physical buses are represented by the
.Nm aacraidp?
devices (beginning with aacraidp1). These devices enable the
SCSI pass-thru interface and allows devices connected
@@ -135,5 +135,4 @@ and are also queued for retrieval by a m
.An Scott Long
.Aq scottl at FreeBSD.org
.Sh BUGS
-.Pp
The controller is not actually paused on suspend/resume.
Modified: user/attilio/vmcontention/sys/amd64/amd64/exception.S
==============================================================================
--- user/attilio/vmcontention/sys/amd64/amd64/exception.S Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/sys/amd64/amd64/exception.S Tue May 28 14:32:02 2013 (r251060)
@@ -818,6 +818,10 @@ doreti_iret_fault:
.globl ds_load_fault
ds_load_fault:
movl $T_PROTFLT,TF_TRAPNO(%rsp)
+ testl $PSL_I,TF_RFLAGS(%rsp)
+ jz 1f
+ sti
+1:
movq %rsp,%rdi
call trap
movw $KUDSEL,TF_DS(%rsp)
@@ -827,6 +831,10 @@ ds_load_fault:
.globl es_load_fault
es_load_fault:
movl $T_PROTFLT,TF_TRAPNO(%rsp)
+ testl $PSL_I,TF_RFLAGS(%rsp)
+ jz 1f
+ sti
+1:
movq %rsp,%rdi
call trap
movw $KUDSEL,TF_ES(%rsp)
@@ -835,6 +843,10 @@ es_load_fault:
ALIGN_TEXT
.globl fs_load_fault
fs_load_fault:
+ testl $PSL_I,TF_RFLAGS(%rsp)
+ jz 1f
+ sti
+1:
movl $T_PROTFLT,TF_TRAPNO(%rsp)
movq %rsp,%rdi
call trap
@@ -846,6 +858,10 @@ fs_load_fault:
gs_load_fault:
popfq
movl $T_PROTFLT,TF_TRAPNO(%rsp)
+ testl $PSL_I,TF_RFLAGS(%rsp)
+ jz 1f
+ sti
+1:
movq %rsp,%rdi
call trap
movw $KUG32SEL,TF_GS(%rsp)
@@ -855,6 +871,10 @@ gs_load_fault:
.globl fsbase_load_fault
fsbase_load_fault:
movl $T_PROTFLT,TF_TRAPNO(%rsp)
+ testl $PSL_I,TF_RFLAGS(%rsp)
+ jz 1f
+ sti
+1:
movq %rsp,%rdi
call trap
movq PCPU(CURTHREAD),%r8
@@ -866,6 +886,10 @@ fsbase_load_fault:
.globl gsbase_load_fault
gsbase_load_fault:
movl $T_PROTFLT,TF_TRAPNO(%rsp)
+ testl $PSL_I,TF_RFLAGS(%rsp)
+ jz 1f
+ sti
+1:
movq %rsp,%rdi
call trap
movq PCPU(CURTHREAD),%r8
Modified: user/attilio/vmcontention/sys/amd64/amd64/machdep.c
==============================================================================
--- user/attilio/vmcontention/sys/amd64/amd64/machdep.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/sys/amd64/amd64/machdep.c Tue May 28 14:32:02 2013 (r251060)
@@ -2278,7 +2278,7 @@ get_fpcontext(struct thread *td, mcontex
size_t max_len, len;
mcp->mc_ownedfp = fpugetregs(td);
- bcopy(get_pcb_user_save_td(td), &mcp->mc_fpstate,
+ bcopy(get_pcb_user_save_td(td), &mcp->mc_fpstate[0],
sizeof(mcp->mc_fpstate));
mcp->mc_fpformat = fpuformat();
if (!use_xsave || xfpusave_len == 0)
Modified: user/attilio/vmcontention/sys/amd64/amd64/trap.c
==============================================================================
--- user/attilio/vmcontention/sys/amd64/amd64/trap.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/sys/amd64/amd64/trap.c Tue May 28 14:32:02 2013 (r251060)
@@ -617,10 +617,10 @@ trap(struct trapframe *frame)
ksi.ksi_addr = (void *)addr;
if (uprintf_signal) {
uprintf("pid %d comm %s: signal %d err %lx code %d type %d "
- "addr 0x%lx rip 0x%lx "
+ "addr 0x%lx rsp 0x%lx rip 0x%lx "
"<%02x %02x %02x %02x %02x %02x %02x %02x>\n",
p->p_pid, p->p_comm, i, frame->tf_err, ucode, type, addr,
- frame->tf_rip,
+ frame->tf_rsp, frame->tf_rip,
fubyte((void *)(frame->tf_rip + 0)),
fubyte((void *)(frame->tf_rip + 1)),
fubyte((void *)(frame->tf_rip + 2)),
Modified: user/attilio/vmcontention/sys/amd64/ia32/ia32_signal.c
==============================================================================
--- user/attilio/vmcontention/sys/amd64/ia32/ia32_signal.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/sys/amd64/ia32/ia32_signal.c Tue May 28 14:32:02 2013 (r251060)
@@ -101,7 +101,7 @@ ia32_get_fpcontext(struct thread *td, st
* for now, it should be irrelevant for most applications.
*/
mcp->mc_ownedfp = fpugetregs(td);
- bcopy(get_pcb_user_save_td(td), &mcp->mc_fpstate,
+ bcopy(get_pcb_user_save_td(td), &mcp->mc_fpstate[0],
sizeof(mcp->mc_fpstate));
mcp->mc_fpformat = fpuformat();
if (!use_xsave || xfpusave_len == 0)
@@ -112,7 +112,7 @@ ia32_get_fpcontext(struct thread *td, st
len = max_len;
bzero(xfpusave + max_len, len - max_len);
}
- mcp->mc_flags |= _MC_HASFPXSTATE;
+ mcp->mc_flags |= _MC_IA32_HASFPXSTATE;
mcp->mc_xfpustate_len = len;
bcopy(get_pcb_user_save_td(td) + 1, xfpusave, len);
}
@@ -187,7 +187,6 @@ ia32_get_mcontext(struct thread *td, str
mcp->mc_xfpustate = 0;
mcp->mc_xfpustate_len = 0;
bzero(mcp->mc_spare2, sizeof(mcp->mc_spare2));
- set_pcb_flags(pcb, PCB_FULL_IRET);
return (0);
}
Modified: user/attilio/vmcontention/sys/i386/i386/exception.s
==============================================================================
--- user/attilio/vmcontention/sys/i386/i386/exception.s Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/sys/i386/i386/exception.s Tue May 28 14:32:02 2013 (r251060)
@@ -422,6 +422,7 @@ doreti_popl_es_fault:
pushl %fs
.globl doreti_popl_fs_fault
doreti_popl_fs_fault:
+ sti
movl $0,TF_ERR(%esp) /* XXX should be the error code */
movl $T_PROTFLT,TF_TRAPNO(%esp)
jmp alltraps_with_regs_pushed
Modified: user/attilio/vmcontention/sys/i386/i386/machdep.c
==============================================================================
--- user/attilio/vmcontention/sys/i386/i386/machdep.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/sys/i386/i386/machdep.c Tue May 28 14:32:02 2013 (r251060)
@@ -3488,7 +3488,7 @@ get_fpcontext(struct thread *td, mcontex
bzero(mcp->mc_fpstate, sizeof(mcp->mc_fpstate));
#else
mcp->mc_ownedfp = npxgetregs(td);
- bcopy(&td->td_pcb->pcb_user_save, &mcp->mc_fpstate,
+ bcopy(&td->td_pcb->pcb_user_save, &mcp->mc_fpstate[0],
sizeof(mcp->mc_fpstate));
mcp->mc_fpformat = npxformat();
#endif
Modified: user/attilio/vmcontention/sys/netinet/sctputil.c
==============================================================================
--- user/attilio/vmcontention/sys/netinet/sctputil.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/sys/netinet/sctputil.c Tue May 28 14:32:02 2013 (r251060)
@@ -3536,8 +3536,8 @@ sctp_ulp_notify(uint32_t notification, s
if (stcb->sctp_socket->so_rcv.sb_state & SBS_CANTRCVMORE) {
return;
}
- if (stcb && ((stcb->asoc.state & SCTP_STATE_COOKIE_WAIT) ||
- (stcb->asoc.state & SCTP_STATE_COOKIE_ECHOED))) {
+ if ((stcb->asoc.state & SCTP_STATE_COOKIE_WAIT) ||
+ (stcb->asoc.state & SCTP_STATE_COOKIE_ECHOED)) {
if ((notification == SCTP_NOTIFY_INTERFACE_DOWN) ||
(notification == SCTP_NOTIFY_INTERFACE_UP) ||
(notification == SCTP_NOTIFY_INTERFACE_CONFIRMED)) {
@@ -3611,16 +3611,16 @@ sctp_ulp_notify(uint32_t notification, s
break;
}
case SCTP_NOTIFY_ASSOC_LOC_ABORTED:
- if ((stcb) && (((stcb->asoc.state & SCTP_STATE_MASK) == SCTP_STATE_COOKIE_WAIT) ||
- ((stcb->asoc.state & SCTP_STATE_MASK) == SCTP_STATE_COOKIE_ECHOED))) {
+ if (((stcb->asoc.state & SCTP_STATE_MASK) == SCTP_STATE_COOKIE_WAIT) ||
+ ((stcb->asoc.state & SCTP_STATE_MASK) == SCTP_STATE_COOKIE_ECHOED)) {
sctp_notify_assoc_change(SCTP_CANT_STR_ASSOC, stcb, error, data, 0, so_locked);
} else {
sctp_notify_assoc_change(SCTP_COMM_LOST, stcb, error, data, 0, so_locked);
}
break;
case SCTP_NOTIFY_ASSOC_REM_ABORTED:
- if ((stcb) && (((stcb->asoc.state & SCTP_STATE_MASK) == SCTP_STATE_COOKIE_WAIT) ||
- ((stcb->asoc.state & SCTP_STATE_MASK) == SCTP_STATE_COOKIE_ECHOED))) {
+ if (((stcb->asoc.state & SCTP_STATE_MASK) == SCTP_STATE_COOKIE_WAIT) ||
+ ((stcb->asoc.state & SCTP_STATE_MASK) == SCTP_STATE_COOKIE_ECHOED)) {
sctp_notify_assoc_change(SCTP_CANT_STR_ASSOC, stcb, error, data, 1, so_locked);
} else {
sctp_notify_assoc_change(SCTP_COMM_LOST, stcb, error, data, 1, so_locked);
Modified: user/attilio/vmcontention/sys/sys/ucontext.h
==============================================================================
--- user/attilio/vmcontention/sys/sys/ucontext.h Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/sys/sys/ucontext.h Tue May 28 14:32:02 2013 (r251060)
@@ -80,7 +80,8 @@ int swapcontext(ucontext_t *, const ucon
#if __BSD_VISIBLE
int __getcontextx_size(void);
-int __fillcontextx(char *ctx);
+int __fillcontextx(char *ctx) __returns_twice;
+int __fillcontextx2(char *ctx);
#endif
__END_DECLS
Modified: user/attilio/vmcontention/tools/regression/lib/msun/test-cexp.c
==============================================================================
--- user/attilio/vmcontention/tools/regression/lib/msun/test-cexp.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/tools/regression/lib/msun/test-cexp.c Tue May 28 14:32:02 2013 (r251060)
@@ -110,7 +110,7 @@ cpackl(long double x, long double y)
/* Various finite non-zero numbers to test. */
static const float finites[] =
-{ -42.0e20, -1.0 -1.0e-10, -0.0, 0.0, 1.0e-10, 1.0, 42.0e20 };
+{ -42.0e20, -1.0, -1.0e-10, -0.0, 0.0, 1.0e-10, 1.0, 42.0e20 };
/*
* Determine whether x and y are equal, with two special rules:
@@ -228,21 +228,35 @@ test_inf(void)
int i;
/* cexp(x + inf i) = NaN + NaNi and raises invalid */
- /* cexp(inf + yi) = 0 + 0yi */
- /* cexp(-inf + yi) = inf + inf yi (except y=0) */
for (i = 0; i < N(finites); i++) {
testall(cpackl(finites[i], INFINITY), cpackl(NAN, NAN),
ALL_STD_EXCEPT, FE_INVALID, 1);
- /* XXX shouldn't raise an inexact exception */
- testall(cpackl(-INFINITY, finites[i]),
- cpackl(0.0, 0.0 * finites[i]),
- ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1);
- if (finites[i] == 0)
- continue;
- testall(cpackl(INFINITY, finites[i]),
- cpackl(INFINITY, INFINITY * finites[i]),
- ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1);
}
+ /* cexp(-inf + yi) = 0 * (cos(y) + sin(y)i) */
+ /* XXX shouldn't raise an inexact exception */
+ testall(cpackl(-INFINITY, M_PI_4), cpackl(0.0, 0.0),
+ ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1);
+ testall(cpackl(-INFINITY, 3 * M_PI_4), cpackl(-0.0, 0.0),
+ ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1);
+ testall(cpackl(-INFINITY, 5 * M_PI_4), cpackl(-0.0, -0.0),
+ ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1);
+ testall(cpackl(-INFINITY, 7 * M_PI_4), cpackl(0.0, -0.0),
+ ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1);
+ testall(cpackl(-INFINITY, 0.0), cpackl(0.0, 0.0),
+ ALL_STD_EXCEPT, 0, 1);
+ testall(cpackl(-INFINITY, -0.0), cpackl(0.0, -0.0),
+ ALL_STD_EXCEPT, 0, 1);
+ /* cexp(inf + yi) = inf * (cos(y) + sin(y)i) (except y=0) */
+ /* XXX shouldn't raise an inexact exception */
+ testall(cpackl(INFINITY, M_PI_4), cpackl(INFINITY, INFINITY),
+ ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1);
+ testall(cpackl(INFINITY, 3 * M_PI_4), cpackl(-INFINITY, INFINITY),
+ ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1);
+ testall(cpackl(INFINITY, 5 * M_PI_4), cpackl(-INFINITY, -INFINITY),
+ ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1);
+ testall(cpackl(INFINITY, 7 * M_PI_4), cpackl(INFINITY, -INFINITY),
+ ALL_STD_EXCEPT & ~FE_INEXACT, 0, 1);
+ /* cexp(inf + 0i) = inf + 0i */
testall(cpackl(INFINITY, 0.0), cpackl(INFINITY, 0.0),
ALL_STD_EXCEPT, 0, 1);
testall(cpackl(INFINITY, -0.0), cpackl(INFINITY, -0.0),
Modified: user/attilio/vmcontention/tools/tools/makeroot/makeroot.8
==============================================================================
--- user/attilio/vmcontention/tools/tools/makeroot/makeroot.8 Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/tools/tools/makeroot/makeroot.8 Tue May 28 14:32:02 2013 (r251060)
@@ -108,8 +108,6 @@ The
argument is passed directly to
.Xr makefs 8 .
.El
-.Sh EXAMPLES
-.Dl $ makeroot.sh -k keys -K ctsrd -p extras/etc/master.passwd -g extras/etc/group -e extras/mdroot.mtree -e demo/demo.mtree -e extras/ctsrd.mtree -s 26112k -f demo.files cheribsd-demo.img /path/to/dist
.Sh FILES
.Bl -tag -width METALOG -compact
.It Pa METALOG
@@ -118,6 +116,8 @@ argument is passed directly to
directory.
This file is generated by installworld, distribution, and installkernel.
.El
+.Sh EXAMPLES
+.Dl $ makeroot.sh -k keys -K ctsrd -p extras/etc/master.passwd -g extras/etc/group -e extras/mdroot.mtree -e demo/demo.mtree -e extras/ctsrd.mtree -s 26112k -f demo.files cheribsd-demo.img /path/to/dist
.Sh SEE ALSO
.Xr mtree 5 ,
.Xr makefs 8 ,
Modified: user/attilio/vmcontention/usr.sbin/lpr/common_source/common.c
==============================================================================
--- user/attilio/vmcontention/usr.sbin/lpr/common_source/common.c Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/usr.sbin/lpr/common_source/common.c Tue May 28 14:32:02 2013 (r251060)
@@ -757,16 +757,22 @@ fatal(const struct printer *pp, const ch
/*
* Close all file descriptors from START on up.
- * This is a horrific kluge, since getdtablesize() might return
- * ``infinity'', in which case we will be spending a long time
- * closing ``files'' which were never open. Perhaps it would
- * be better to close the first N fds, for some small value of N.
*/
void
closeallfds(int start)
{
- int stop = getdtablesize();
- for (; start < stop; start++)
- close(start);
+ int stop;
+
+ if (USE_CLOSEFROM) /* The faster, modern solution */
+ closefrom(start);
+ else {
+ /* This older logic can be pretty awful on some OS's. The
+ * getdtablesize() might return ``infinity'', and then this
+ * will waste a lot of time closing file descriptors which
+ * had never been open()-ed. */
+ stop = getdtablesize();
+ for (; start < stop; start++)
+ close(start);
+ }
}
Modified: user/attilio/vmcontention/usr.sbin/lpr/common_source/lp.cdefs.h
==============================================================================
--- user/attilio/vmcontention/usr.sbin/lpr/common_source/lp.cdefs.h Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/usr.sbin/lpr/common_source/lp.cdefs.h Tue May 28 14:32:02 2013 (r251060)
@@ -1,6 +1,6 @@
/*-
* ------+---------+---------+---------+---------+---------+---------+---------*
- * Copyright (c) 2003 - Garance Alistair Drosehn <gad at FreeBSD.org>.
+ * Copyright (c) 2003,2013 - Garance Alistair Drosehn <gad at FreeBSD.org>.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -56,6 +56,21 @@
#endif
/*
+ * FreeBSD added a closefrom() routine in release 8.0. When compiling
+ * `lpr' on other platforms you might want to include bsd-closefrom.c
+ * from the portable-openssh project.
+ */
+#ifndef USE_CLOSEFROM
+# if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+# define USE_CLOSEFROM 1
+# endif
+#endif
+/* The macro USE_CLOSEFROM must be defined with a value of 0 or 1. */
+#ifndef USE_CLOSEFROM
+# define USE_CLOSEFROM 0
+#endif
+
+/*
* __unused is a compiler-specific trick which can be used to avoid
* warnings about a variable which is defined but never referenced.
* Some lpr files use this, so define a null version if it was not
Modified: user/attilio/vmcontention/usr.sbin/rtsold/rtsold.8
==============================================================================
--- user/attilio/vmcontention/usr.sbin/rtsold/rtsold.8 Tue May 28 13:54:26 2013 (r251059)
+++ user/attilio/vmcontention/usr.sbin/rtsold/rtsold.8 Tue May 28 14:32:02 2013 (r251060)
@@ -161,9 +161,9 @@ will dump the current internal state int
The options are as follows:
.Bl -tag -width indent
.It Fl a
-Autoprobe outgoing interface.
+Autoprobe outgoing interfaces.
.Nm
-will try to find non-loopback, non-point-to-point, IPv6-capable interfaces
+will try to find any non-loopback, non-point-to-point, IPv6-capable interfaces
and send router solicitation messages on all of them.
.It Fl d
Enable debugging.
@@ -256,10 +256,10 @@ If not, it will be
.Sh FILES
.Bl -tag -width /var/run/rtsold.dump -compact
.It Pa /var/run/rtsold.pid
-the pid of the currently running
+The PID of the currently running
.Nm .
.It Pa /var/run/rtsold.dump
-dumps internal state on.
+Internal state dump file.
.El
.\"
.Sh EXIT STATUS
More information about the svn-src-user
mailing list