From owner-svn-src-projects@FreeBSD.ORG Sun Apr 24 15:59:55 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66E63106566C; Sun, 24 Apr 2011 15:59:55 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 56CAB8FC12; Sun, 24 Apr 2011 15:59:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3OFxt1o038013; Sun, 24 Apr 2011 15:59:55 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3OFxtOm038005; Sun, 24 Apr 2011 15:59:55 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104241559.p3OFxtOm038005@svn.freebsd.org> From: Florent Thoumie Date: Sun, 24 Apr 2011 15:59:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r220991 - in projects/portbuild: qmanager scripts sources X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2011 15:59:55 -0000 Author: flz Date: Sun Apr 24 15:59:54 2011 New Revision: 220991 URL: http://svn.freebsd.org/changeset/base/220991 Log: Cleanup: - allgohans.safe is a superset of allgohans, so rename it. - reportload.sh is obsolete as reportload is called via inetd. - checkmachines' loop is now part of pollmachine. - retcode belongs to qmanager. - dopackages2 is abandoned. - move pnohang and ptimeout sources to a separate directory. - make prunebad and zexpire executable. Added: projects/portbuild/qmanager/retcodes - copied, changed from r220976, projects/portbuild/scripts/retcodes projects/portbuild/sources/ projects/portbuild/sources/pnohang.c - copied, changed from r220976, projects/portbuild/scripts/pnohang.c projects/portbuild/sources/ptimeout.c - copied, changed from r220976, projects/portbuild/scripts/ptimeout.c Deleted: projects/portbuild/scripts/allgohans.safe projects/portbuild/scripts/checkmachines projects/portbuild/scripts/checkmachines.sh projects/portbuild/scripts/dopackages2 projects/portbuild/scripts/pnohang.c projects/portbuild/scripts/ptimeout.c projects/portbuild/scripts/reportload.sh projects/portbuild/scripts/retcodes projects/portbuild/scripts/showrunning Modified: projects/portbuild/scripts/allgohans projects/portbuild/scripts/do-cleanup-chroots projects/portbuild/scripts/prunebad (contents, props changed) projects/portbuild/scripts/zexpire (contents, props changed) Copied and modified: projects/portbuild/qmanager/retcodes (from r220976, projects/portbuild/scripts/retcodes) ============================================================================== Modified: projects/portbuild/scripts/allgohans ============================================================================== --- projects/portbuild/scripts/allgohans Sun Apr 24 15:53:57 2011 (r220990) +++ projects/portbuild/scripts/allgohans Sun Apr 24 15:59:54 2011 (r220991) @@ -21,7 +21,11 @@ doarch() { if [ ${quiet} -eq 0 ]; then echo "[$i]" fi - su ports-${arch} -c "ssh ${client_user}@$i ${sudo_cmd} $@" + lockf -t 60 ${pb}/${arch}/lockfiles/lock.$i su ports-${arch} -c "ssh ${client_user}@$i ${sudo_cmd} $@" + result=$? + if [ $result -ne 0 ]; then + echo "could not execute command $@ on $i: $result" + fi done } Modified: projects/portbuild/scripts/do-cleanup-chroots ============================================================================== --- projects/portbuild/scripts/do-cleanup-chroots Sun Apr 24 15:53:57 2011 (r220990) +++ projects/portbuild/scripts/do-cleanup-chroots Sun Apr 24 15:59:54 2011 (r220991) @@ -2,10 +2,4 @@ # # clean up stale chroots on all client machines. MCL 20081216. # -# original version from root crontab: -# -#/var/portbuild/scripts/allgohans all -q /var/portbuild/scripts/cleanup-chroots -# -# new code: -# -/var/portbuild/scripts/allgohans.safe all -q /var/portbuild/scripts/cleanup-chroots +/var/portbuild/scripts/allgohans all -q /var/portbuild/scripts/cleanup-chroots Modified: projects/portbuild/scripts/prunebad ============================================================================== Modified: projects/portbuild/scripts/zexpire ============================================================================== Copied and modified: projects/portbuild/sources/pnohang.c (from r220976, projects/portbuild/scripts/pnohang.c) ============================================================================== Copied and modified: projects/portbuild/sources/ptimeout.c (from r220976, projects/portbuild/scripts/ptimeout.c) ============================================================================== From owner-svn-src-projects@FreeBSD.ORG Sun Apr 24 16:33:42 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47DDB1065675; Sun, 24 Apr 2011 16:33:42 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1E3F18FC17; Sun, 24 Apr 2011 16:33:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3OGXg2J039005; Sun, 24 Apr 2011 16:33:42 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3OGXfPD039004; Sun, 24 Apr 2011 16:33:42 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104241633.p3OGXfPD039004@svn.freebsd.org> From: Florent Thoumie Date: Sun, 24 Apr 2011 16:33:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r220992 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2011 16:33:42 -0000 Author: flz Date: Sun Apr 24 16:33:41 2011 New Revision: 220992 URL: http://svn.freebsd.org/changeset/base/220992 Log: Remove scripts/packagebuild. Packagebuild now lives under qmanager/. Deleted: projects/portbuild/scripts/packagebuild From owner-svn-src-projects@FreeBSD.ORG Sun Apr 24 16:56:35 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 16188106566B; Sun, 24 Apr 2011 16:56:35 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DFCB88FC14; Sun, 24 Apr 2011 16:56:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3OGuYAH039721; Sun, 24 Apr 2011 16:56:34 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3OGuYhW039718; Sun, 24 Apr 2011 16:56:34 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104241656.p3OGuYhW039718@svn.freebsd.org> From: Marcel Moolenaar Date: Sun, 24 Apr 2011 16:56:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r220993 - projects/altix/sys/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2011 16:56:35 -0000 Author: marcel Date: Sun Apr 24 16:56:34 2011 New Revision: 220993 URL: http://svn.freebsd.org/changeset/base/220993 Log: Revert changes to support relocatable kernels and modules for ia64. We can replace R/O segments without problems with PBVM. Modified: projects/altix/sys/conf/kern.pre.mk projects/altix/sys/conf/kmod.mk Modified: projects/altix/sys/conf/kern.pre.mk ============================================================================== --- projects/altix/sys/conf/kern.pre.mk Sun Apr 24 16:33:41 2011 (r220992) +++ projects/altix/sys/conf/kern.pre.mk Sun Apr 24 16:56:34 2011 (r220993) @@ -8,10 +8,6 @@ # backwards compat option for older systems. MACHINE_CPUARCH?=${MACHINE_ARCH:C/mipse[lb]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} -# Support for building relocatable kernels on some architectures. -REL_KERNEL_ARCHS= # Altix TODO -LINK_REL_KERNEL= ${REL_KERNEL_ARCHS:S/${MACHINE_ARCH}/yes/g:Myes} - # Can be overridden by makeoptions or /etc/make.conf KERNEL_KO?= kernel KERNEL?= kernel @@ -159,17 +155,10 @@ SYSTEM_CFILES= config.c env.c hints.c vn SYSTEM_DEP= Makefile ${SYSTEM_OBJS} SYSTEM_OBJS= locore.o ${MDOBJS} ${OBJS} SYSTEM_OBJS+= ${SYSTEM_CFILES:.c=.o} -SYSTEM_CTFMERGE= [ -z "${CTFMERGE}" -o -n "${NO_CTF}" ] || ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${SYSTEM_OBJS} vers.o - -.if ${LINK_REL_KERNEL} == yes -SYSTEM_LDFLAGS= -r -e __start -.else SYSTEM_OBJS+= hack.So -SYSTEM_LDFLAGS= -Bdynamic -T ${LDSCRIPT} -export-dynamic \ - -dynamic-linker /red/herring -.endif - -SYSTEM_LD= @${LD} ${SYSTEM_LDFLAGS} -warn-common \ +SYSTEM_CTFMERGE= [ -z "${CTFMERGE}" -o -n "${NO_CTF}" ] || ${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${SYSTEM_OBJS} vers.o +SYSTEM_LD= @${LD} -Bdynamic -T ${LDSCRIPT} \ + -warn-common -export-dynamic -dynamic-linker /red/herring \ -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o SYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \ ${SIZE} ${.TARGET} ; chmod 755 ${.TARGET} Modified: projects/altix/sys/conf/kmod.mk ============================================================================== --- projects/altix/sys/conf/kmod.mk Sun Apr 24 16:33:41 2011 (r220992) +++ projects/altix/sys/conf/kmod.mk Sun Apr 24 16:56:34 2011 (r220993) @@ -82,9 +82,7 @@ OBJCOPY?= objcopy .SUFFIXES: .out .o .c .cc .cxx .C .y .l .s .S # amd64 and mips use direct linking for kmod, all others use shared binaries -.if ${MACHINE_CPUARCH} != amd64 && \ - ${MACHINE_CPUARCH} != ia64 && \ - ${MACHINE_CPUARCH} != mips +.if ${MACHINE_CPUARCH} != amd64 && ${MACHINE_CPUARCH} != mips __KLD_SHARED=yes .else __KLD_SHARED=no From owner-svn-src-projects@FreeBSD.ORG Sun Apr 24 17:13:42 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B2B9106564A; Sun, 24 Apr 2011 17:13:42 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 68BFE8FC0C; Sun, 24 Apr 2011 17:13:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3OHDg2u040258; Sun, 24 Apr 2011 17:13:42 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3OHDgXh040252; Sun, 24 Apr 2011 17:13:42 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104241713.p3OHDgXh040252@svn.freebsd.org> From: Marcel Moolenaar Date: Sun, 24 Apr 2011 17:13:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r220994 - in projects/altix/sys: conf dev/uart ia64/sgisn X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2011 17:13:42 -0000 Author: marcel Date: Sun Apr 24 17:13:42 2011 New Revision: 220994 URL: http://svn.freebsd.org/changeset/base/220994 Log: Use a seperate driver for the SAL-based console on Altix. While initially uart(4) seemed like a good idea (and for the low-level console it wasn't a bad idea), the fact that the SAL-based console doesn't have any I/O port or memory mapped I/O resources and uart(4) expects and needs that means that uart(4) is simply not a good idea. The new driver in its current form is almost functional complete. It only lacks proper interrupt handling. The reason for that is that interrupts aren't exactly working on Altix, so it's a bit hard to test. Also, SAL only allows us to have receive interrupts, not transmit interrupts. As such, a bit more effort is required to make sure the TX path doesn't stall (read: polling and/or timeouts are needed). The uart(4) driver changes are reverted. Added: projects/altix/sys/ia64/sgisn/sgisn_console.c (contents, props changed) Deleted: projects/altix/sys/dev/uart/uart_dev_sgisn.c Modified: projects/altix/sys/conf/files.ia64 projects/altix/sys/dev/uart/uart.h projects/altix/sys/dev/uart/uart_cpu_ia64.c projects/altix/sys/dev/uart/uart_subr.c Modified: projects/altix/sys/conf/files.ia64 ============================================================================== --- projects/altix/sys/conf/files.ia64 Sun Apr 24 16:56:34 2011 (r220993) +++ projects/altix/sys/conf/files.ia64 Sun Apr 24 17:13:42 2011 (r220994) @@ -60,7 +60,6 @@ dev/syscons/scterm-teken.c optional sc dev/syscons/scvgarndr.c optional sc vga dev/syscons/scvtb.c optional sc dev/uart/uart_cpu_ia64.c optional uart -dev/uart/uart_dev_sgisn.c optional uart dev/acpica/acpi_if.m standard ia64/acpica/OsdEnvironment.c optional acpi ia64/acpica/acpi_machdep.c optional acpi @@ -117,6 +116,7 @@ ia64/ia64/vm_machdep.c standard ia64/isa/isa.c optional isa ia64/isa/isa_dma.c optional isa ia64/pci/pci_cfgreg.c optional pci +ia64/sgisn/sgisn_console.c standard ia64/sgisn/sgisn_pcib.c standard ia64/sgisn/sgisn_shub.c standard isa/syscons_isa.c optional sc Modified: projects/altix/sys/dev/uart/uart.h ============================================================================== --- projects/altix/sys/dev/uart/uart.h Sun Apr 24 16:56:34 2011 (r220993) +++ projects/altix/sys/dev/uart/uart.h Sun Apr 24 17:13:42 2011 (r220994) @@ -68,7 +68,6 @@ extern struct uart_class uart_ns8250_cla extern struct uart_class uart_quicc_class __attribute__((weak)); extern struct uart_class uart_sab82532_class __attribute__((weak)); extern struct uart_class uart_sbbc_class __attribute__((weak)); -extern struct uart_class uart_sgisn_class __attribute__((weak)); extern struct uart_class uart_z8530_class __attribute__((weak)); #ifdef PC98 Modified: projects/altix/sys/dev/uart/uart_cpu_ia64.c ============================================================================== --- projects/altix/sys/dev/uart/uart_cpu_ia64.c Sun Apr 24 16:56:34 2011 (r220993) +++ projects/altix/sys/dev/uart/uart_cpu_ia64.c Sun Apr 24 17:13:42 2011 (r220994) @@ -66,8 +66,6 @@ uart_cpu_getdev(int devtype, struct uart class = &uart_ns8250_class; if (class == NULL) - class = &uart_sgisn_class; - if (class == NULL) return (ENXIO); /* Modified: projects/altix/sys/dev/uart/uart_subr.c ============================================================================== --- projects/altix/sys/dev/uart/uart_subr.c Sun Apr 24 16:56:34 2011 (r220993) +++ projects/altix/sys/dev/uart/uart_subr.c Sun Apr 24 17:13:42 2011 (r220994) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); static struct uart_class *uart_classes[] = { &uart_ns8250_class, &uart_sab82532_class, - &uart_sgisn_class, &uart_z8530_class, }; static size_t uart_nclasses = sizeof(uart_classes) / sizeof(uart_classes[0]); @@ -195,7 +194,7 @@ uart_getenv(int devtype, struct uart_dev { __const char *spec; bus_addr_t addr = ~0U; - int error, range; + int error; /* * All uart_class references are weak. Make sure the default @@ -273,25 +272,13 @@ uart_getenv(int devtype, struct uart_dev spec++; } - di->ops = uart_getops(class); - range = uart_getrange(class); - /* * If we still have an invalid address, the specification must be - * missing an I/O port or memory address. We don't like that if - * the class expects an I/O port or memory range. + * missing an I/O port or memory address. We don't like that. */ - if (addr == ~0U && range != 0) + if (addr == ~0U) return (EINVAL); - /* Create a bus space handle if applicable. */ - if (addr != ~0U && range != 0) { - error = bus_space_map(di->bas.bst, addr, range, 0, - &di->bas.bsh); - if (error) - return (error); - } - /* * Accept only the well-known baudrates. Any invalid baudrate * is silently replaced with a 0-valued baudrate. The 0 baudrate @@ -311,5 +298,9 @@ uart_getenv(int devtype, struct uart_dev } else di->baudrate = 0; - return (0); + /* Set the ops and create a bus space handle. */ + di->ops = uart_getops(class); + error = bus_space_map(di->bas.bst, addr, uart_getrange(class), 0, + &di->bas.bsh); + return (error); } Added: projects/altix/sys/ia64/sgisn/sgisn_console.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/altix/sys/ia64/sgisn/sgisn_console.c Sun Apr 24 17:13:42 2011 (r220994) @@ -0,0 +1,325 @@ +/*- + * Copyright (c) 2011 Marcel Moolenaar + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct sncon_softc { + device_t sc_dev; + struct tty *sc_tp; + struct resource *sc_ires; + void *sc_icookie; + void *sc_softih; + int sc_irid; +}; + +static char sncon_name[] = "sncon"; +static int sncon_is_console = 0; + +/* + * Low-level console section. + */ + +static int sncon_cngetc(struct consdev *); +static void sncon_cninit(struct consdev *); +static void sncon_cnprobe(struct consdev *); +static void sncon_cnputc(struct consdev *, int); +static void sncon_cnterm(struct consdev *); + +CONSOLE_DRIVER(sncon); + +static int +sncon_cngetc(struct consdev *cp) +{ + struct ia64_sal_result r; + + r = ia64_sal_entry(SAL_SGISN_POLL, 0, 0, 0, 0, 0, 0, 0); + if (r.sal_status || r.sal_result[0] == 0) + return (-1); + + r = ia64_sal_entry(SAL_SGISN_GETC, 0, 0, 0, 0, 0, 0, 0); + return ((!r.sal_status) ? r.sal_result[0] : -1); +} + +static void +sncon_cninit(struct consdev *cp) +{ + + sncon_is_console = 1; +} + +static void +sncon_cnprobe(struct consdev *cp) +{ + struct ia64_sal_result r; + + r = ia64_sal_entry(SAL_SGISN_SN_INFO, 0, 0, 0, 0, 0, 0, 0); + if (r.sal_status != 0) + return; + + strcpy(cp->cn_name, "sncon0"); + cp->cn_pri = CN_INTERNAL; +} + +static void +sncon_cnputc(struct consdev *cp, int c) +{ + struct ia64_sal_result r; + char buf[1]; + + buf[0] = c; + r = ia64_sal_entry(SAL_SGISN_TXBUF, (uintptr_t)buf, 1, 0, 0, 0, 0, 0); +} + +static void +sncon_cnterm(struct consdev *cp) +{ + + sncon_is_console = 0; +} + +/* + * TTY section. + */ + +static void sncon_tty_close(struct tty *); +static void sncon_tty_free(void *); +static void sncon_tty_inwakeup(struct tty *); +static int sncon_tty_ioctl(struct tty *, u_long, caddr_t, struct thread *); +static int sncon_tty_modem(struct tty *, int, int); +static int sncon_tty_open(struct tty *); +static void sncon_tty_outwakeup(struct tty *); +static int sncon_tty_param(struct tty *, struct termios *); + +static struct ttydevsw sncon_tty_class = { + .tsw_flags = TF_INITLOCK|TF_CALLOUT, + .tsw_open = sncon_tty_open, + .tsw_close = sncon_tty_close, + .tsw_outwakeup = sncon_tty_outwakeup, + .tsw_inwakeup = sncon_tty_inwakeup, + .tsw_ioctl = sncon_tty_ioctl, + .tsw_param = sncon_tty_param, + .tsw_modem = sncon_tty_modem, + .tsw_free = sncon_tty_free, +}; + +static void +sncon_tty_close(struct tty *tp) +{ +} + +static void +sncon_tty_free(void *arg) +{ +} + +static void +sncon_tty_inwakeup(struct tty *tp) +{ + struct sncon_softc *sc; + + sc = tty_softc(tp); + /* + * Re-start reception. + */ +} + +static int +sncon_tty_ioctl(struct tty *tp, u_long cmd, caddr_t data, struct thread *td) +{ + + return (ENOTTY); +} + +static int +sncon_tty_modem(struct tty *tp, int biton, int bitoff) +{ + + return (0); +} + +static int +sncon_tty_open(struct tty *tp) +{ + + return (0); +} + +static void +sncon_tty_outwakeup(struct tty *tp) +{ + struct sncon_softc *sc; + + sc = tty_softc(tp); + /* + * Re-start transmission. + */ +} + +static int +sncon_tty_param(struct tty *tp, struct termios *t) +{ + + t->c_ispeed = t->c_ospeed = 9600; + t->c_cflag |= CLOCAL; + t->c_cflag &= ~HUPCL; + return (0); +} + +/* + * Device section. + */ + +static int sncon_attach(device_t); +static int sncon_detach(device_t); +static int sncon_probe(device_t); + +static device_method_t sncon_methods[] = { + DEVMETHOD(device_attach, sncon_attach), + DEVMETHOD(device_detach, sncon_detach), + DEVMETHOD(device_probe, sncon_probe), + { 0, 0 } +}; + +static driver_t sncon_driver = { + sncon_name, + sncon_methods, + sizeof(struct sncon_softc), +}; + +static devclass_t sncon_devclass; + +DRIVER_MODULE(sncon, shub, sncon_driver, sncon_devclass, 0, 0); + +static void +sncon_rx_intr(void *arg) +{ +} + +static void +sncon_tx_intr(void *arg) +{ +} + +static int +sncon_attach(device_t dev) +{ + struct ia64_sal_result r; + struct sncon_softc *sc; + int error; + + sc = device_get_softc(dev); + sc->sc_dev = dev; + + do { + /* Enable RX interrupts. */ + r = ia64_sal_entry(SAL_SGISN_CON_INTR, 2, 1, 0, 0, 0, 0, 0); + if (r.sal_status != 0) + break; + + sc->sc_irid = 0; + sc->sc_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, + &sc->sc_irid, RF_ACTIVE | RF_SHAREABLE); + if (sc->sc_ires == NULL) + break; + + error = bus_setup_intr(dev, sc->sc_ires, + INTR_TYPE_TTY | INTR_MPSAFE, NULL, sncon_rx_intr, sc, + &sc->sc_icookie); + if (error) { + device_printf(dev, "could not activate interrupt\n"); + bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irid, + sc->sc_ires); + sc->sc_ires = NULL; + } + } while (0); + + if (sc->sc_ires == NULL) { + /* Disable RX interrupts. */ + r = ia64_sal_entry(SAL_SGISN_CON_INTR, 2, 0, 0, 0, 0, 0, 0); + } + + swi_add(&tty_intr_event, sncon_name, sncon_tx_intr, sc, SWI_TTY, + INTR_TYPE_TTY, &sc->sc_softih); + + sc->sc_tp = tty_alloc(&sncon_tty_class, sc); + if (sncon_is_console) + tty_init_console(sc->sc_tp, 0); + tty_makedev(sc->sc_tp, NULL, "s0"); + return (0); +} + +static int +sncon_detach(device_t dev) +{ + struct ia64_sal_result r; + struct sncon_softc *sc; + struct tty *tp; + + sc = device_get_softc(dev); + tp = sc->sc_tp; + + tty_lock(tp); + swi_remove(sc->sc_softih); + tty_rel_gone(tp); + + if (sc->sc_ires != NULL) { + bus_teardown_intr(dev, sc->sc_ires, sc->sc_icookie); + bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irid, + sc->sc_ires); + } + + /* Disable Tx & Rx interrupts. */ + r = ia64_sal_entry(SAL_SGISN_CON_INTR, 2, 0, 0, 0, 0, 0, 0); + return (0); +} + +static int +sncon_probe(device_t dev) +{ + struct ia64_sal_result r; + + r = ia64_sal_entry(SAL_SGISN_SN_INFO, 0, 0, 0, 0, 0, 0, 0); + if (r.sal_status != 0) + return (ENXIO); + + bus_set_resource(dev, SYS_RES_IRQ, 0, 0xe9, 1); + device_set_desc_copy(dev, "SGI L1 console"); + return (0); +} From owner-svn-src-projects@FreeBSD.ORG Sun Apr 24 17:25:50 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7C8501065670; Sun, 24 Apr 2011 17:25:50 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6A0FA8FC19; Sun, 24 Apr 2011 17:25:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3OHPo3n040657; Sun, 24 Apr 2011 17:25:50 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3OHPoIP040651; Sun, 24 Apr 2011 17:25:50 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104241725.p3OHPoIP040651@svn.freebsd.org> From: Marcel Moolenaar Date: Sun, 24 Apr 2011 17:25:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r220995 - in projects/altix/sys/ia64: include sgisn X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2011 17:25:50 -0000 Author: marcel Date: Sun Apr 24 17:25:50 2011 New Revision: 220995 URL: http://svn.freebsd.org/changeset/base/220995 Log: Commit WIP: o Create a console device (sncon) as a child of shub. We query SAL for the NASID of the node to which all console output is routed and map that onto the shub instance. In short: the sncon child exists only for the shub instance that corresponds to the master L1 node. o Define the registers of the PCI bridge and SHub controller and create tags and handles for accessing them. More power to us... Added: projects/altix/sys/ia64/sgisn/sgisn_pcib.h (contents, props changed) projects/altix/sys/ia64/sgisn/sgisn_shub.h (contents, props changed) Modified: projects/altix/sys/ia64/include/sgisn.h projects/altix/sys/ia64/sgisn/sgisn_pcib.c (contents, props changed) projects/altix/sys/ia64/sgisn/sgisn_shub.c (contents, props changed) Modified: projects/altix/sys/ia64/include/sgisn.h ============================================================================== --- projects/altix/sys/ia64/include/sgisn.h Sun Apr 24 17:13:42 2011 (r220994) +++ projects/altix/sys/ia64/include/sgisn.h Sun Apr 24 17:25:50 2011 (r220995) @@ -29,19 +29,21 @@ #define _MACHINE_SGISN_H_ /* SAL functions */ +#define SAL_SGISN_MASTER_NASID 0x02000004 #define SAL_SGISN_KLCFG_ADDR 0x02000005 #define SAL_SGISN_SAPIC_INFO 0x0200001d #define SAL_SGISN_SN_INFO 0x0200001e #define SAL_SGISN_PUTC 0x02000021 #define SAL_SGISN_GETC 0x02000022 #define SAL_SGISN_POLL 0x02000026 +#define SAL_SGISN_CON_INTR 0x02000027 #define SAL_SGISN_TXBUF 0x02000028 #define SAL_SGISN_IOHUB_INFO 0x02000055 #define SAL_SGISN_IOBUS_INFO 0x02000056 #define SAL_SGISN_IODEV_INFO 0x02000057 #define SAL_SGISN_FEATURE_GET_PROM 0x02000065 #define SAL_SGISN_FEATURE_SET_OS 0x02000066 - +#define SAL_SGISN_SET_CPUID 0x02000068 #define SGISN_HUB_NITTES 8 #define SGISN_HUB_NWIDGETS 16 @@ -77,6 +79,7 @@ struct sgisn_geoid { } sg_u; }; +struct sgisn_fwdev; struct sgisn_fwhub; struct sgisn_widget { @@ -101,12 +104,34 @@ struct sgisn_fwbus { struct sgisn_widget *bus_wgt_info; }; +struct sgisn_fwflush_dev { + uint32_t fld_bus; + uint32_t fld_slot; + uint32_t fld_pin; + uint32_t _pad; + struct { + uint64_t start; + uint64_t end; + } fld_bar[6]; + uint64_t *fld_intr; + uint64_t fld_value; + uint64_t *fld_flush; + uint32_t fld_pci_bus; + uint32_t fld_pci_segment; + struct sgisn_fwbus *fld_parent; + uint64_t fld_xxx; +}; + +struct sgisn_fwflush_widget { + struct sgisn_fwflush_dev flw_dev[32]; +}; + struct sgisn_fwhub { struct sgisn_geoid hub_geoid; uint16_t hub_nasid; uint16_t hub_peer_nasid; uint32_t _pad; - void *hub_widgets; + struct sgisn_fwflush_widget *hub_flush; uint64_t hub_dma_itte[SGISN_HUB_NITTES]; struct sgisn_widget hub_widget[SGISN_HUB_NWIDGETS]; @@ -119,17 +144,18 @@ struct sgisn_fwhub { struct sgisn_fwirq { uint64_t _obsolete; - uint16_t irq_tgt_nasid; + uint16_t irq_nasid; uint16_t _pad1; - uint32_t irq_tgt_slice; + uint32_t irq_slice; uint32_t irq_cpuid; uint32_t irq_nr; uint32_t irq_pin; - uint64_t irq_tgt_xtaddr; - uint32_t irq_br_type; uint32_t _pad2; + uint64_t irq_xtaddr; + uint32_t irq_br_type; + uint32_t _pad3; void *irq_bridge; /* Originating */ - void *irq_io_info; + struct sgisn_fwdev *irq_dev; uint32_t irq_last; uint32_t irq_cookie; uint32_t irq_flags; @@ -140,7 +166,8 @@ struct sgisn_fwdev { uint64_t dev_bar[6]; uint64_t dev_romaddr; uint64_t dev_handle; - uint64_t dev_os_private[3]; + struct sgisn_fwbus *dev_parent; + uint64_t dev_os_private[2]; struct sgisn_fwirq *dev_irq; uint64_t dev_xxx[4]; }; Modified: projects/altix/sys/ia64/sgisn/sgisn_pcib.c ============================================================================== --- projects/altix/sys/ia64/sgisn/sgisn_pcib.c Sun Apr 24 17:13:42 2011 (r220994) +++ projects/altix/sys/ia64/sgisn/sgisn_pcib.c Sun Apr 24 17:25:50 2011 (r220995) @@ -50,12 +50,17 @@ __FBSDID("$FreeBSD$"); #include #include +#include + static struct sgisn_fwdev sgisn_dev; static struct sgisn_fwirq sgisn_irq; struct sgisn_pcib_softc { device_t sc_dev; - void *sc_promaddr; + struct sgisn_fwbus *sc_fwbus; + bus_addr_t sc_ioaddr; + bus_space_tag_t sc_tag; + bus_space_handle_t sc_hndl; u_int sc_domain; u_int sc_busnr; }; @@ -185,22 +190,36 @@ sgisn_pcib_activate_resource(device_t de device_printf(dev, "interrupt mismatch: (actual=%u)\n", sgisn_irq.irq_nr); - printf("XXX: %s: %u, %u, %u, %u, %u, %#lx\n", __func__, - sgisn_irq.irq_tgt_nasid, sgisn_irq.irq_tgt_slice, - sgisn_irq.irq_cpuid, sgisn_irq.irq_nr, sgisn_irq.irq_pin, - sgisn_irq.irq_tgt_xtaddr); - printf("\t%u, %p, %p, %u, %#x, %#x, %u\n", sgisn_irq.irq_br_type, - sgisn_irq.irq_bridge, sgisn_irq.irq_io_info, sgisn_irq.irq_last, - sgisn_irq.irq_cookie, sgisn_irq.irq_flags, sgisn_irq.irq_refcnt); + printf("XXX: nasid=%u, slice=%u, cpuid=%u, irq=%u, pin=%u, " + "xtaddr=%#lx\n", sgisn_irq.irq_nasid, sgisn_irq.irq_slice, + sgisn_irq.irq_cpuid, sgisn_irq.irq_nr, sgisn_irq.irq_pin, + sgisn_irq.irq_xtaddr); + printf("XXX: brt=%u, br=%p, dev=%p, last=%u, cookie=%#x, " + "flags=%#x, refcnt=%u\n", sgisn_irq.irq_br_type, + sgisn_irq.irq_bridge, sgisn_irq.irq_dev, + sgisn_irq.irq_last, sgisn_irq.irq_cookie, + sgisn_irq.irq_flags, sgisn_irq.irq_refcnt); #if 0 + intrs = bus_space_read_8(sc->sc_tag, sc->sc_hndl, + PIC_REG_INT_ENABLE); + intrs |= 1 << sgisn_irq.irq_pin; + bus_space_write_8(sc->sc_tag, sc->sc_hndl, PIC_REG_INT_ENABLE, + intrs); + + bus_space_write_8(sc->sc_tag, sc->sc_hndl, + PIC_REG_INT_PIN(sgisn_irq.irq_pin), 1); + + sgisn_dev.dev_parent = sc->sc_fwbus; + sgisn_dev.dev_irq = &sgisn_irq; + sgisn_irq.irq_dev = &sgisn_dev; + r = ia64_sal_entry(SAL_SGISN_INTERRUPT, 1 /*alloc*/, - sgisn_irq.irq_tgt_nasid, - (sgisn_irq.irq_bridge >> 24) & 15 + sgisn_irq.irq_nasid, (sgisn_irq.irq_bridge >> 24) & 15, ia64_tpa((uintptr_t)&sgisn_irq), paddr, - sgisn_irq.irq_tgt_nasid, - sgisn_irq.irq_tgt_slice); + sgisn_irq.irq_nasid, + sgisn_irq.irq_slice); if (r.status != 0) return (ENXIO); #endif @@ -250,7 +269,8 @@ sgisn_pcib_attach(device_t dev) { struct sgisn_pcib_softc *sc; device_t parent; - uintptr_t bus, seg; + uintptr_t addr, bus, seg; + u_int i; sc = device_get_softc(dev); sc->sc_dev = dev; @@ -261,6 +281,27 @@ sgisn_pcib_attach(device_t dev) BUS_READ_IVAR(parent, dev, SHUB_IVAR_PCISEG, &seg); sc->sc_domain = seg; + (void)ia64_sal_entry(SAL_SGISN_IOBUS_INFO, seg, bus, + ia64_tpa((uintptr_t)&addr), 0, 0, 0, 0); + sc->sc_fwbus = (void *)IA64_PHYS_TO_RR7(addr); + sc->sc_ioaddr = IA64_RR_MASK(sc->sc_fwbus->bus_base); + sc->sc_tag = IA64_BUS_SPACE_MEM; + bus_space_map(sc->sc_tag, sc->sc_ioaddr, PIC_REG_SIZE, 0, + &sc->sc_hndl); + + device_printf(dev, "ASIC=%x, XID=%u\n", sc->sc_fwbus->bus_asic, + sc->sc_fwbus->bus_xid); + + device_printf(dev, "INTR status=%lx\n", + bus_space_read_8(sc->sc_tag, sc->sc_hndl, PIC_REG_INT_STATUS)); + device_printf(dev, "INTR enable=%lx\n", + bus_space_read_8(sc->sc_tag, sc->sc_hndl, PIC_REG_INT_ENABLE)); + device_printf(dev, "INTR addrs:"); + for (i = 0; i < 8; i++) + printf(" %lx", bus_space_read_8(sc->sc_tag, sc->sc_hndl, + PIC_REG_INT_ADDR(i))); + printf("\n"); + #if 0 sgisn_pcib_scan(sc, sc->sc_busnr, sgisn_pcib_maxslots(dev)); #endif Added: projects/altix/sys/ia64/sgisn/sgisn_pcib.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/altix/sys/ia64/sgisn/sgisn_pcib.h Sun Apr 24 17:25:50 2011 (r220995) @@ -0,0 +1,76 @@ +/*- + * Copyright (c) 2011 Marcel Moolenaar + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _IA64_SGISN_PCIB_H_ +#define _IA64_SGISN_PCIB_H_ + +#define PIC_REG_SIZE (512 * 1024) + +#define PIC_REG_WGT_ID 0x00000 +#define PIC_REG_WGT_STAT 0x00008 +#define PIC_REG_WGT_ERR_H 0x00010 +#define PIC_REG_WGT_ERR 0x00018 +#define PIC_REG_WGT_CTRL 0x00020 +#define PIC_REG_WGT_REQ_TOUT 0x00028 +#define PIC_REG_WGT_INT_H 0x00030 +#define PIC_REG_WGT_INT 0x00038 +#define PIC_REG_WGT_ERRCMD 0x00040 +#define PIC_REG_WGT_LLP 0x00048 +#define PIC_REG_WGT_TFLUSH 0x00050 +#define PIC_REG_WGT_AUX_ERR 0x00058 +#define PIC_REG_WGT_RSP_H 0x00060 +#define PIC_REG_WGT_RSP 0x00068 +#define PIC_REG_WGT_TSTPIN_CTL 0x00070 +#define PIC_REG_WGT_ADDR_LKERR 0x00078 + +#define PIC_REG_DIR_MAP 0x00080 +#define PIC_REG_MAP_FAULT 0x00090 +#define PIC_REG_ARBITRATION 0x000a0 +#define PIC_REG_ATE_PARERR 0x000b0 +#define PIC_REG_BUS_TOUT 0x000c0 +#define PIC_REG_PCI_CFG 0x000c8 +#define PIC_REG_PCI_ERR_H 0x000d0 +#define PIC_REG_PCI_ERR 0x000d8 + +#define PIC_REG_INT_STATUS 0x00100 +#define PIC_REG_INT_ENABLE 0x00108 +#define PIC_REG_INT_RSTSTAT 0x00110 +#define PIC_REG_INT_MODE 0x00118 +#define PIC_REG_INT_DEVICE 0x00120 +#define PIC_REG_INT_HOSTERR 0x00128 +#define PIC_REG_INT_ADDR(x) (0x00130 + (x << 3)) +#define PIC_REG_INT_ERRVIEW 0x00170 +#define PIC_REG_INT_MULTI 0x00178 +#define PIC_REG_INT_FORCE(x) (0x00180 + (x << 3)) +#define PIC_REG_INT_PIN(x) (0x001c0 + (x << 3)) + +#define PIC_REG_DEVICE(x) (0x00200 + (x << 3)) +#define PIC_REG_WR_REQ(x) (0x00240 + (x << 3)) +#define PIC_REG_RRB_MAP(x) (0x00280 + (x << 3)) + +#endif /* _IA64_SGISN_PCIB_H_ */ Modified: projects/altix/sys/ia64/sgisn/sgisn_shub.c ============================================================================== --- projects/altix/sys/ia64/sgisn/sgisn_shub.c Sun Apr 24 17:13:42 2011 (r220994) +++ projects/altix/sys/ia64/sgisn/sgisn_shub.c Sun Apr 24 17:25:50 2011 (r220995) @@ -49,11 +49,16 @@ __FBSDID("$FreeBSD$"); #include #include +#include + struct sgisn_shub_softc { struct sgisn_fwhub *sc_fwhub; device_t sc_dev; vm_paddr_t sc_membase; vm_size_t sc_memsize; + bus_addr_t sc_mmraddr; + bus_space_tag_t sc_tag; + bus_space_handle_t sc_hndl; u_int sc_domain; u_int sc_hubtype; /* SHub type (0=SHub1, 1=SHub2) */ u_int sc_nasid_mask; @@ -69,6 +74,8 @@ static int sgisn_shub_activate_resource( struct resource *); static int sgisn_shub_read_ivar(device_t, device_t, int, uintptr_t *); static int sgisn_shub_write_ivar(device_t, device_t, int, uintptr_t); +static struct resource *sgisn_shub_alloc_resource(device_t, device_t, int, + int *, u_long, u_long, u_long, u_int); /* * Bus interface definitions. @@ -83,7 +90,7 @@ static device_method_t sgisn_shub_method DEVMETHOD(bus_read_ivar, sgisn_shub_read_ivar), DEVMETHOD(bus_write_ivar, sgisn_shub_write_ivar), DEVMETHOD(bus_print_child, bus_generic_print_child), - DEVMETHOD(bus_alloc_resource, bus_generic_alloc_resource), + DEVMETHOD(bus_alloc_resource, sgisn_shub_alloc_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, sgisn_shub_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), @@ -186,6 +193,7 @@ sgisn_shub_activate_resource(device_t de return (EDOOFUS); } +#if 0 static void sgisn_shub_dump_sn_info(struct ia64_sal_result *r) { @@ -205,6 +213,7 @@ sgisn_shub_dump_sn_info(struct ia64_sal_ (r->sal_result[1] >> 16) & 0xff); } +#endif static void sgisn_shub_identify_srat_cb(ACPI_SUBTABLE_HEADER *entry, void *arg) @@ -274,8 +283,10 @@ sgisn_shub_identify(driver_t *drv, devic if (r.sal_status != 0) return; +#if 0 if (bootverbose) sgisn_shub_dump_sn_info(&r); +#endif /* * The number of SHub ASICs is determined by the number of nodes @@ -388,6 +399,12 @@ sgisn_shub_attach(device_t dev) sc->sc_nasid = (sc->sc_membase >> sc->sc_nasid_shft) & sc->sc_nasid_mask; + sc->sc_mmraddr = (sc->sc_nasid << sc->sc_nasid_shft) | + (1UL << (sc->sc_nasid_shft - 3)) | + (((sc->sc_hubtype == 0) ? 1UL : 0UL) << 32); + sc->sc_tag = IA64_BUS_SPACE_MEM; + bus_space_map(sc->sc_tag, sc->sc_mmraddr, 1UL << 32, 0, &sc->sc_hndl); + if (bootverbose) device_printf(dev, "NASID=%#x\n", sc->sc_nasid); @@ -411,6 +428,13 @@ sgisn_shub_attach(device_t dev) for (wdgt = 0; wdgt < SGISN_HUB_NWIDGETS; wdgt++) sc->sc_fwhub->hub_widget[wdgt].wgt_hub = sc->sc_fwhub; + /* Create a child for the SAL-based console. */ + r = ia64_sal_entry(SAL_SGISN_MASTER_NASID, 0, 0, 0, 0, 0, 0, 0); + if (r.sal_status == 0 && r.sal_result[0] == sc->sc_nasid) { + child = device_add_child(dev, "sncon", -1); + device_set_ivars(child, (void *)(uintptr_t)~0UL); + } + for (seg = 0; seg <= sc->sc_fwhub->hub_pci_maxseg; seg++) { for (bus = 0; bus <= sc->sc_fwhub->hub_pci_maxbus; bus++) { r = ia64_sal_entry(SAL_SGISN_IOBUS_INFO, seg, bus, @@ -456,3 +480,13 @@ sgisn_shub_write_ivar(device_t dev, devi return (ENOENT); } + +static struct resource * +sgisn_shub_alloc_resource(device_t dev, device_t child, int type, int *rid, + u_long start, u_long end, u_long count, u_int flags) +{ + struct resource *res; + + res = bus_alloc_resource(dev, type, rid, start, end, count, flags); + return (res); +} Added: projects/altix/sys/ia64/sgisn/sgisn_shub.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/altix/sys/ia64/sgisn/sgisn_shub.h Sun Apr 24 17:25:50 2011 (r220995) @@ -0,0 +1,51 @@ +/*- + * Copyright (c) 2011 Marcel Moolenaar + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _IA64_SGISN_SHUB_H_ +#define _IA64_SGISN_SHUB_H_ + +#define SHUB_MMR_SIZE (1 << 32) + +#define SHUB_MMR_IPI 0x10000380 +#define SHUB_MMR_RTC1_ICFG 0x10001480 +#define SHUB_MMR_RTC1_IENA 0x10001500 +#define SHUB_MMR_RTC2_ICFG 0x10001580 +#define SHUB_MMR_RTC2_IENA 0x10001600 +#define SHUB_MMR_RTC3_ICFG 0x10001680 +#define SHUB_MMR_RTC3_IENA 0x10001700 +#define SHUB_MMR_EVENT 0x10010000 +#define SHUB_MMR_IPI_ACC 0x10060480 +#define SHUB_MMR_ID 0x10060580 +#define SHUB_MMR_PTC_CFG0 0x101a0000 +#define SHUB_MMR_PTC_CFG1 0x101a0080 +#define SHUB_MMR_RTC 0x101c0000 +#define SHUB_MMR_PIO_WSTAT0 0x20070200 +#define SHUB_MMR_PIO_WSTAT1 0x20070280 +#define SHUB_MMR_PTC 0x70000000 + +#endif /* _IA64_SGISN_SHUB_H_ */ From owner-svn-src-projects@FreeBSD.ORG Sun Apr 24 17:28:27 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C158E106566B; Sun, 24 Apr 2011 17:28:27 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B04CA8FC13; Sun, 24 Apr 2011 17:28:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3OHSROd040770; Sun, 24 Apr 2011 17:28:27 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3OHSRMF040768; Sun, 24 Apr 2011 17:28:27 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104241728.p3OHSRMF040768@svn.freebsd.org> From: Marcel Moolenaar Date: Sun, 24 Apr 2011 17:28:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r220996 - projects/altix/sys/ia64/include X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2011 17:28:27 -0000 Author: marcel Date: Sun Apr 24 17:28:27 2011 New Revision: 220996 URL: http://svn.freebsd.org/changeset/base/220996 Log: We now have 8-byte wide bus-space accesses. Consequently, the lack of 8-byte wide I/O port access support was causing build breakages. Just drop support for 8-byte wide I/O port accesses. Modified: projects/altix/sys/ia64/include/bus.h Modified: projects/altix/sys/ia64/include/bus.h ============================================================================== --- projects/altix/sys/ia64/include/bus.h Sun Apr 24 17:25:50 2011 (r220995) +++ projects/altix/sys/ia64/include/bus.h Sun Apr 24 17:28:27 2011 (r220996) @@ -222,9 +222,8 @@ bus_space_read_8(bus_space_tag_t bst, bu { uint64_t val; - val = (__predict_false(bst == IA64_BUS_SPACE_IO)) - ? bus_space_read_io_8(bsh + ofs) - : ia64_ld8((void *)(bsh + ofs)); + val = (__predict_false(bst == IA64_BUS_SPACE_IO)) ? ~0 : + ia64_ld8((void *)(bsh + ofs)); return (val); } @@ -277,9 +276,7 @@ bus_space_write_8(bus_space_tag_t bst, b uint64_t val) { - if (__predict_false(bst == IA64_BUS_SPACE_IO)) - bus_space_write_io_8(bsh + ofs, val); - else + if (__predict_true(bst != IA64_BUS_SPACE_IO)) ia64_st8((void *)(bsh + ofs), val); } From owner-svn-src-projects@FreeBSD.ORG Sun Apr 24 22:28:28 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2394E1065674; Sun, 24 Apr 2011 22:28:28 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 108ED8FC13; Sun, 24 Apr 2011 22:28:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3OMSSbg049752; Sun, 24 Apr 2011 22:28:28 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3OMSRlb049729; Sun, 24 Apr 2011 22:28:27 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <201104242228.p3OMSRlb049729@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Sun, 24 Apr 2011 22:28:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221001 - in projects/pf/pf45: . bin/ps bin/setfacl bin/sh cddl/contrib/opensolaris/lib/libzfs/common contrib/bsnmp/snmpd contrib/dialog contrib/dialog/package contrib/dialog/po contrib... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2011 22:28:28 -0000 Author: bz Date: Sun Apr 24 22:28:26 2011 New Revision: 221001 URL: http://svn.freebsd.org/changeset/base/221001 Log: IFC @221000 Added: projects/pf/pf45/contrib/dialog/package/ - copied from r221000, head/contrib/dialog/package/ projects/pf/pf45/lib/libedit/edit/ - copied from r221000, head/lib/libedit/edit/ projects/pf/pf45/sbin/geom/class/raid/ - copied from r221000, head/sbin/geom/class/raid/ projects/pf/pf45/share/doc/smm/07.lpd/ - copied from r221000, head/share/doc/smm/07.lpd/ projects/pf/pf45/sys/contrib/dev/acpica/compiler/dtparser.l - copied unchanged from r221000, head/sys/contrib/dev/acpica/compiler/dtparser.l projects/pf/pf45/sys/contrib/dev/acpica/compiler/dtparser.y - copied unchanged from r221000, head/sys/contrib/dev/acpica/compiler/dtparser.y projects/pf/pf45/sys/contrib/dev/acpica/events/evglock.c - copied unchanged from r221000, head/sys/contrib/dev/acpica/events/evglock.c projects/pf/pf45/sys/contrib/dev/iwn/iwlwifi-1000-39.31.5.1.fw.uu - copied unchanged from r221000, head/sys/contrib/dev/iwn/iwlwifi-1000-39.31.5.1.fw.uu projects/pf/pf45/sys/contrib/dev/iwn/iwlwifi-5000-8.83.5.1.fw.uu - copied unchanged from r221000, head/sys/contrib/dev/iwn/iwlwifi-5000-8.83.5.1.fw.uu projects/pf/pf45/sys/contrib/dev/iwn/iwlwifi-6000g2a-17.168.5.2.fw.uu - copied unchanged from r221000, head/sys/contrib/dev/iwn/iwlwifi-6000g2a-17.168.5.2.fw.uu projects/pf/pf45/sys/contrib/dev/iwn/iwlwifi-6000g2b-17.168.5.2.fw.uu - copied unchanged from r221000, head/sys/contrib/dev/iwn/iwlwifi-6000g2b-17.168.5.2.fw.uu projects/pf/pf45/sys/contrib/dev/iwn/iwlwifi-6050-41.28.5.1.fw.uu - copied unchanged from r221000, head/sys/contrib/dev/iwn/iwlwifi-6050-41.28.5.1.fw.uu projects/pf/pf45/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.c - copied unchanged from r221000, head/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.c projects/pf/pf45/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.h - copied unchanged from r221000, head/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.h projects/pf/pf45/sys/dev/ath/ath_hal/ar9002/ar9285_phy.c - copied unchanged from r221000, head/sys/dev/ath/ath_hal/ar9002/ar9285_phy.c projects/pf/pf45/sys/dev/ath/ath_hal/ar9002/ar9285_phy.h - copied unchanged from r221000, head/sys/dev/ath/ath_hal/ar9002/ar9285_phy.h projects/pf/pf45/sys/dev/ath/if_ath_ahb.c - copied unchanged from r221000, head/sys/dev/ath/if_ath_ahb.c projects/pf/pf45/sys/dev/nvram2env/ - copied from r221000, head/sys/dev/nvram2env/ projects/pf/pf45/sys/geom/eli/g_eli_key_cache.c - copied unchanged from r221000, head/sys/geom/eli/g_eli_key_cache.c projects/pf/pf45/sys/geom/geom_map.c - copied unchanged from r221000, head/sys/geom/geom_map.c projects/pf/pf45/sys/geom/raid/ - copied from r221000, head/sys/geom/raid/ projects/pf/pf45/sys/mips/conf/AR91XX_BASE - copied unchanged from r221000, head/sys/mips/conf/AR91XX_BASE projects/pf/pf45/sys/mips/conf/AR91XX_BASE.hints - copied unchanged from r221000, head/sys/mips/conf/AR91XX_BASE.hints projects/pf/pf45/sys/mips/conf/RT305X - copied unchanged from r221000, head/sys/mips/conf/RT305X projects/pf/pf45/sys/mips/conf/RT305X.hints - copied unchanged from r221000, head/sys/mips/conf/RT305X.hints projects/pf/pf45/sys/mips/conf/TP-WN1043ND - copied unchanged from r221000, head/sys/mips/conf/TP-WN1043ND projects/pf/pf45/sys/mips/conf/TP-WN1043ND.hints - copied unchanged from r221000, head/sys/mips/conf/TP-WN1043ND.hints projects/pf/pf45/sys/mips/rt305x/ - copied from r221000, head/sys/mips/rt305x/ projects/pf/pf45/sys/modules/ath_ahb/ - copied from r221000, head/sys/modules/ath_ahb/ projects/pf/pf45/sys/modules/ath_pci/ - copied from r221000, head/sys/modules/ath_pci/ projects/pf/pf45/sys/modules/cxgbe/if_cxgbe/ - copied from r221000, head/sys/modules/cxgbe/if_cxgbe/ projects/pf/pf45/sys/modules/geom/geom_raid/ - copied from r221000, head/sys/modules/geom/geom_raid/ projects/pf/pf45/sys/modules/iwnfw/iwn6000g2a/ - copied from r221000, head/sys/modules/iwnfw/iwn6000g2a/ projects/pf/pf45/sys/modules/iwnfw/iwn6000g2b/ - copied from r221000, head/sys/modules/iwnfw/iwn6000g2b/ projects/pf/pf45/sys/net80211/ieee80211_alq.c - copied unchanged from r221000, head/sys/net80211/ieee80211_alq.c projects/pf/pf45/sys/net80211/ieee80211_alq.h - copied unchanged from r221000, head/sys/net80211/ieee80211_alq.h projects/pf/pf45/sys/sys/racct.h - copied unchanged from r221000, head/sys/sys/racct.h projects/pf/pf45/sys/sys/rctl.h - copied unchanged from r221000, head/sys/sys/rctl.h projects/pf/pf45/tools/tools/ath/arcode/ - copied from r221000, head/tools/tools/ath/arcode/ projects/pf/pf45/usr.bin/rctl/ - copied from r221000, head/usr.bin/rctl/ Replaced: projects/pf/pf45/sys/modules/cxgbe/Makefile - copied unchanged from r221000, head/sys/modules/cxgbe/Makefile Deleted: projects/pf/pf45/contrib/gcc/doc/objc.texi projects/pf/pf45/contrib/gcc/objc/ projects/pf/pf45/contrib/libobjc/ projects/pf/pf45/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/BugReporter/ projects/pf/pf45/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/PathSensitive/ projects/pf/pf45/gnu/lib/libobjc/ projects/pf/pf45/gnu/usr.bin/cc/cc1obj/ projects/pf/pf45/gnu/usr.bin/man/ projects/pf/pf45/include/histedit.h projects/pf/pf45/share/doc/smm/07.lpr/ projects/pf/pf45/share/examples/kld/firmware/fwimage/firmware.img projects/pf/pf45/sys/contrib/dev/iwn/iwlwifi-1000-128.50.3.1.fw.uu projects/pf/pf45/sys/contrib/dev/iwn/iwlwifi-5000-8.24.2.12.fw.uu projects/pf/pf45/sys/contrib/dev/iwn/iwlwifi-6050-9.201.4.1.fw.uu Modified: projects/pf/pf45/Makefile projects/pf/pf45/Makefile.inc1 projects/pf/pf45/ObsoleteFiles.inc projects/pf/pf45/UPDATING projects/pf/pf45/bin/ps/extern.h projects/pf/pf45/bin/ps/keyword.c projects/pf/pf45/bin/ps/print.c projects/pf/pf45/bin/ps/ps.1 projects/pf/pf45/bin/ps/ps.c projects/pf/pf45/bin/ps/ps.h projects/pf/pf45/bin/setfacl/setfacl.1 projects/pf/pf45/bin/sh/error.h projects/pf/pf45/bin/sh/eval.c projects/pf/pf45/bin/sh/main.c projects/pf/pf45/bin/sh/parser.c projects/pf/pf45/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c projects/pf/pf45/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c projects/pf/pf45/contrib/bsnmp/snmpd/main.c projects/pf/pf45/contrib/dialog/CHANGES projects/pf/pf45/contrib/dialog/VERSION projects/pf/pf45/contrib/dialog/aclocal.m4 projects/pf/pf45/contrib/dialog/arrows.c projects/pf/pf45/contrib/dialog/buttons.c projects/pf/pf45/contrib/dialog/calendar.c projects/pf/pf45/contrib/dialog/checklist.c projects/pf/pf45/contrib/dialog/columns.c projects/pf/pf45/contrib/dialog/config.guess projects/pf/pf45/contrib/dialog/config.sub projects/pf/pf45/contrib/dialog/configure projects/pf/pf45/contrib/dialog/configure.in projects/pf/pf45/contrib/dialog/dialog-config.in projects/pf/pf45/contrib/dialog/dialog.1 projects/pf/pf45/contrib/dialog/dialog.3 projects/pf/pf45/contrib/dialog/dialog.c projects/pf/pf45/contrib/dialog/dialog.h projects/pf/pf45/contrib/dialog/dlg_colors.h projects/pf/pf45/contrib/dialog/fselect.c projects/pf/pf45/contrib/dialog/guage.c projects/pf/pf45/contrib/dialog/headers-sh.in projects/pf/pf45/contrib/dialog/inputstr.c projects/pf/pf45/contrib/dialog/makefile.in projects/pf/pf45/contrib/dialog/menubox.c projects/pf/pf45/contrib/dialog/mixedgauge.c projects/pf/pf45/contrib/dialog/pause.c projects/pf/pf45/contrib/dialog/po/ar.po projects/pf/pf45/contrib/dialog/po/bg.po projects/pf/pf45/contrib/dialog/po/ca.po projects/pf/pf45/contrib/dialog/po/cy.po projects/pf/pf45/contrib/dialog/po/da.po projects/pf/pf45/contrib/dialog/po/de.po projects/pf/pf45/contrib/dialog/po/dialog.pot projects/pf/pf45/contrib/dialog/po/eo.po projects/pf/pf45/contrib/dialog/po/es.po projects/pf/pf45/contrib/dialog/po/eu.po projects/pf/pf45/contrib/dialog/po/fi.po projects/pf/pf45/contrib/dialog/po/fr.po projects/pf/pf45/contrib/dialog/po/ga.po projects/pf/pf45/contrib/dialog/po/gl.po projects/pf/pf45/contrib/dialog/po/hr.po projects/pf/pf45/contrib/dialog/po/id.po projects/pf/pf45/contrib/dialog/po/is.po projects/pf/pf45/contrib/dialog/po/it.po projects/pf/pf45/contrib/dialog/po/ja.po projects/pf/pf45/contrib/dialog/po/ku.po projects/pf/pf45/contrib/dialog/po/lt.po projects/pf/pf45/contrib/dialog/po/lv.po projects/pf/pf45/contrib/dialog/po/makefile.inn projects/pf/pf45/contrib/dialog/po/ms.po projects/pf/pf45/contrib/dialog/po/nl.po projects/pf/pf45/contrib/dialog/po/pl.po projects/pf/pf45/contrib/dialog/po/pt_BR.po projects/pf/pf45/contrib/dialog/po/ru.po projects/pf/pf45/contrib/dialog/po/sq.po projects/pf/pf45/contrib/dialog/po/sv.po projects/pf/pf45/contrib/dialog/po/sw.po projects/pf/pf45/contrib/dialog/po/th.po projects/pf/pf45/contrib/dialog/po/zh_CN.po projects/pf/pf45/contrib/dialog/po/zh_TW.po projects/pf/pf45/contrib/dialog/progressbox.c projects/pf/pf45/contrib/dialog/samples/debian.rc projects/pf/pf45/contrib/dialog/samples/infobox5 projects/pf/pf45/contrib/dialog/samples/infobox6 projects/pf/pf45/contrib/dialog/samples/setup-vars projects/pf/pf45/contrib/dialog/samples/slackware.rc projects/pf/pf45/contrib/dialog/samples/sourcemage.rc projects/pf/pf45/contrib/dialog/samples/suse.rc projects/pf/pf45/contrib/dialog/samples/whiptail.rc projects/pf/pf45/contrib/dialog/tailbox.c projects/pf/pf45/contrib/dialog/textbox.c projects/pf/pf45/contrib/dialog/timebox.c projects/pf/pf45/contrib/dialog/trace.c projects/pf/pf45/contrib/dialog/ui_getc.c projects/pf/pf45/contrib/dialog/util.c projects/pf/pf45/contrib/gcc/BASE-VER projects/pf/pf45/contrib/gcc/ChangeLog projects/pf/pf45/contrib/gcc/DATESTAMP projects/pf/pf45/contrib/gcc/DEV-PHASE projects/pf/pf45/contrib/gcc/config/mips/predicates.md projects/pf/pf45/contrib/gcc/config/rs6000/rs6000.c projects/pf/pf45/contrib/gcc/config/s390/s390.md projects/pf/pf45/contrib/gcc/cp/ChangeLog projects/pf/pf45/contrib/gcc/cp/call.c projects/pf/pf45/contrib/gcc/cp/cp-tree.h projects/pf/pf45/contrib/gcc/cp/cxx-pretty-print.c projects/pf/pf45/contrib/gcc/cp/decl.c projects/pf/pf45/contrib/gcc/cp/decl2.c projects/pf/pf45/contrib/gcc/cp/error.c projects/pf/pf45/contrib/gcc/cp/lex.c projects/pf/pf45/contrib/gcc/cp/name-lookup.c projects/pf/pf45/contrib/gcc/cp/pt.c projects/pf/pf45/contrib/gcc/cp/semantics.c projects/pf/pf45/contrib/gcc/cp/typeck.c projects/pf/pf45/contrib/gcc/doc/contrib.texi projects/pf/pf45/contrib/gcc/doc/cpp.1 projects/pf/pf45/contrib/gcc/doc/cpp.texi projects/pf/pf45/contrib/gcc/doc/cppenv.texi projects/pf/pf45/contrib/gcc/doc/cppinternals.texi projects/pf/pf45/contrib/gcc/doc/cppopts.texi projects/pf/pf45/contrib/gcc/doc/extend.texi projects/pf/pf45/contrib/gcc/doc/frontends.texi projects/pf/pf45/contrib/gcc/doc/gcc.1 projects/pf/pf45/contrib/gcc/doc/gcc.texi projects/pf/pf45/contrib/gcc/doc/invoke.texi projects/pf/pf45/contrib/gcc/doc/sourcebuild.texi projects/pf/pf45/contrib/gcc/doc/standards.texi projects/pf/pf45/contrib/gcc/doc/tm.texi projects/pf/pf45/contrib/gcc/dwarf2out.c projects/pf/pf45/contrib/gcc/expr.c projects/pf/pf45/contrib/gcc/fold-const.c projects/pf/pf45/contrib/gcc/gimplify.c projects/pf/pf45/contrib/gcc/reload1.c projects/pf/pf45/contrib/gcc/simplify-rtx.c projects/pf/pf45/contrib/gcc/target-def.h projects/pf/pf45/contrib/gcc/target.h projects/pf/pf45/contrib/gcc/targhooks.c projects/pf/pf45/contrib/gcc/targhooks.h projects/pf/pf45/contrib/gcc/tree-if-conv.c projects/pf/pf45/contrib/gcc/tree-ssa-structalias.c projects/pf/pf45/contrib/gcc/tree-vect-analyze.c projects/pf/pf45/contrib/gcc/tree-vect-patterns.c projects/pf/pf45/contrib/gcc/tree.c projects/pf/pf45/contrib/gcc/tree.h projects/pf/pf45/contrib/libstdc++/ChangeLog projects/pf/pf45/contrib/libstdc++/include/std/std_valarray.h projects/pf/pf45/contrib/libstdc++/include/tr1/random projects/pf/pf45/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/pf/pf45/contrib/traceroute/traceroute.c projects/pf/pf45/contrib/tzdata/africa projects/pf/pf45/contrib/tzdata/asia projects/pf/pf45/contrib/tzdata/europe projects/pf/pf45/contrib/tzdata/southamerica projects/pf/pf45/contrib/tzdata/zone.tab projects/pf/pf45/etc/defaults/periodic.conf projects/pf/pf45/etc/defaults/rc.conf projects/pf/pf45/etc/devd.conf projects/pf/pf45/etc/etc.amd64/ttys projects/pf/pf45/etc/etc.arm/ttys projects/pf/pf45/etc/etc.i386/ttys projects/pf/pf45/etc/etc.ia64/ttys projects/pf/pf45/etc/etc.mips/ttys projects/pf/pf45/etc/etc.pc98/ttys projects/pf/pf45/etc/etc.powerpc/ttys projects/pf/pf45/etc/etc.sparc64/ttys projects/pf/pf45/etc/mtree/BSD.include.dist projects/pf/pf45/etc/periodic/daily/Makefile projects/pf/pf45/etc/periodic/security/Makefile projects/pf/pf45/etc/rc.d/Makefile projects/pf/pf45/etc/rc.d/devd projects/pf/pf45/etc/rc.d/faith projects/pf/pf45/etc/rc.d/hostid projects/pf/pf45/etc/rc.d/initrandom projects/pf/pf45/etc/rc.d/ipfw projects/pf/pf45/etc/rc.d/jail projects/pf/pf45/etc/rc.d/named projects/pf/pf45/etc/rc.d/netoptions projects/pf/pf45/etc/rc.d/routing projects/pf/pf45/etc/rc.d/securelevel projects/pf/pf45/etc/rc.subr projects/pf/pf45/gnu/lib/Makefile projects/pf/pf45/gnu/lib/libdialog/Makefile projects/pf/pf45/gnu/usr.bin/cc/Makefile projects/pf/pf45/gnu/usr.bin/cc/cc_tools/Makefile projects/pf/pf45/gnu/usr.bin/cc/doc/Makefile projects/pf/pf45/gnu/usr.bin/cc/include/Makefile projects/pf/pf45/gnu/usr.bin/gdb/libgdb/fbsd-threads.c projects/pf/pf45/include/Makefile projects/pf/pf45/lib/libc/gen/directory.3 projects/pf/pf45/lib/libc/gen/errlst.c projects/pf/pf45/lib/libc/gen/getdiskbyname.3 projects/pf/pf45/lib/libc/gen/syslog.c projects/pf/pf45/lib/libc/posix1e/acl_support_nfs4.c projects/pf/pf45/lib/libc/rpc/svc_vc.c projects/pf/pf45/lib/libc/string/strerror.3 projects/pf/pf45/lib/libc/string/strerror.c projects/pf/pf45/lib/libc/sys/Makefile.inc projects/pf/pf45/lib/libc/sys/Symbol.map projects/pf/pf45/lib/libc/sys/getfh.2 projects/pf/pf45/lib/libc/sys/kldstat.2 projects/pf/pf45/lib/libc/sys/open.2 projects/pf/pf45/lib/libcrypt/Makefile projects/pf/pf45/lib/libcrypt/crypt.3 projects/pf/pf45/lib/libcrypt/crypt.c projects/pf/pf45/lib/libcrypt/crypt.h projects/pf/pf45/lib/libcrypt/misc.c projects/pf/pf45/lib/libdevstat/devstat.c projects/pf/pf45/lib/libedit/Makefile projects/pf/pf45/lib/libedit/read.c projects/pf/pf45/lib/libmd/Makefile projects/pf/pf45/lib/libmd/mddriver.c projects/pf/pf45/lib/libmd/rmddriver.c projects/pf/pf45/lib/libmd/shadriver.c projects/pf/pf45/lib/libthr/thread/thr_once.c projects/pf/pf45/lib/libutil/humanize_number.3 projects/pf/pf45/lib/libutil/humanize_number.c projects/pf/pf45/lib/libutil/libutil.h projects/pf/pf45/lib/libutil/login_class.3 projects/pf/pf45/libexec/rtld-elf/rtld.c projects/pf/pf45/release/Makefile projects/pf/pf45/release/generate-release.sh projects/pf/pf45/release/rc.local projects/pf/pf45/sbin/camcontrol/camcontrol.c projects/pf/pf45/sbin/conscontrol/conscontrol.8 projects/pf/pf45/sbin/conscontrol/conscontrol.c projects/pf/pf45/sbin/geom/class/Makefile projects/pf/pf45/sbin/geom/core/geom.8 projects/pf/pf45/sbin/geom/core/geom.c projects/pf/pf45/sbin/ggate/ggatel/ggatel.8 projects/pf/pf45/sbin/ggate/ggatel/ggatel.c projects/pf/pf45/sbin/gvinum/Makefile projects/pf/pf45/sbin/gvinum/gvinum.c projects/pf/pf45/sbin/hastctl/hastctl.8 projects/pf/pf45/sbin/hastctl/hastctl.c projects/pf/pf45/sbin/hastd/activemap.c projects/pf/pf45/sbin/hastd/hast.conf.5 projects/pf/pf45/sbin/hastd/hast.h projects/pf/pf45/sbin/hastd/hast_proto.c projects/pf/pf45/sbin/hastd/hast_proto.h projects/pf/pf45/sbin/hastd/hastd.c projects/pf/pf45/sbin/hastd/parse.y projects/pf/pf45/sbin/hastd/primary.c projects/pf/pf45/sbin/hastd/proto_common.c projects/pf/pf45/sbin/hastd/secondary.c projects/pf/pf45/sbin/ifconfig/ifconfig.8 projects/pf/pf45/sbin/ipfw/altq.c projects/pf/pf45/sbin/ipfw/dummynet.c projects/pf/pf45/sbin/ipfw/ipfw2.c projects/pf/pf45/sbin/ipfw/ipfw2.h projects/pf/pf45/sbin/ipfw/ipv6.c projects/pf/pf45/sbin/ipfw/main.c projects/pf/pf45/sbin/ipfw/nat.c projects/pf/pf45/sbin/natd/natd.c projects/pf/pf45/sbin/reboot/boot_i386.8 projects/pf/pf45/sbin/umount/umount.8 projects/pf/pf45/sbin/umount/umount.c projects/pf/pf45/share/doc/smm/Makefile projects/pf/pf45/share/examples/Makefile projects/pf/pf45/share/examples/kld/firmware/fwimage/Makefile projects/pf/pf45/share/man/man4/Makefile projects/pf/pf45/share/man/man4/ada.4 projects/pf/pf45/share/man/man4/ath_hal.4 projects/pf/pf45/share/man/man4/cc.4 projects/pf/pf45/share/man/man4/cc_chd.4 projects/pf/pf45/share/man/man4/cc_cubic.4 projects/pf/pf45/share/man/man4/cc_hd.4 projects/pf/pf45/share/man/man4/cc_htcp.4 projects/pf/pf45/share/man/man4/cc_newreno.4 projects/pf/pf45/share/man/man4/cc_vegas.4 projects/pf/pf45/share/man/man4/cd.4 projects/pf/pf45/share/man/man4/cxgbe.4 projects/pf/pf45/share/man/man4/h_ertt.4 projects/pf/pf45/share/man/man4/iwnfw.4 projects/pf/pf45/share/man/man4/man4.i386/ep.4 projects/pf/pf45/share/man/man4/md.4 projects/pf/pf45/share/man/man4/siftr.4 projects/pf/pf45/share/man/man4/siis.4 projects/pf/pf45/share/man/man4/u3g.4 projects/pf/pf45/share/man/man4/vinum.4 projects/pf/pf45/share/man/man5/Makefile projects/pf/pf45/share/man/man5/disktab.5 projects/pf/pf45/share/man/man5/rc.conf.5 projects/pf/pf45/share/man/man5/src.conf.5 projects/pf/pf45/share/man/man7/release.7 projects/pf/pf45/share/man/man9/cc.9 projects/pf/pf45/share/man/man9/hhook.9 projects/pf/pf45/share/man/man9/khelp.9 projects/pf/pf45/share/man/man9/mbuf.9 projects/pf/pf45/share/man/man9/sbuf.9 projects/pf/pf45/share/misc/committers-ports.dot projects/pf/pf45/share/misc/committers-src.dot projects/pf/pf45/share/mk/bsd.cpu.mk projects/pf/pf45/share/mk/bsd.dep.mk projects/pf/pf45/share/mk/bsd.lib.mk projects/pf/pf45/share/mk/bsd.libnames.mk projects/pf/pf45/share/mk/bsd.own.mk projects/pf/pf45/share/mk/bsd.prog.mk projects/pf/pf45/share/mk/bsd.sys.mk projects/pf/pf45/sys/amd64/amd64/exception.S projects/pf/pf45/sys/amd64/amd64/identcpu.c projects/pf/pf45/sys/amd64/amd64/initcpu.c projects/pf/pf45/sys/amd64/amd64/legacy.c projects/pf/pf45/sys/amd64/amd64/machdep.c projects/pf/pf45/sys/amd64/amd64/minidump_machdep.c projects/pf/pf45/sys/amd64/amd64/mp_machdep.c projects/pf/pf45/sys/amd64/amd64/pmap.c projects/pf/pf45/sys/amd64/amd64/prof_machdep.c projects/pf/pf45/sys/amd64/amd64/sys_machdep.c projects/pf/pf45/sys/amd64/amd64/trap.c projects/pf/pf45/sys/amd64/conf/GENERIC projects/pf/pf45/sys/amd64/ia32/ia32_exception.S projects/pf/pf45/sys/amd64/ia32/ia32_misc.c projects/pf/pf45/sys/amd64/ia32/ia32_signal.c projects/pf/pf45/sys/amd64/ia32/ia32_sigtramp.S projects/pf/pf45/sys/amd64/ia32/ia32_syscall.c projects/pf/pf45/sys/amd64/include/clock.h projects/pf/pf45/sys/amd64/include/cpufunc.h projects/pf/pf45/sys/amd64/include/pmap.h projects/pf/pf45/sys/amd64/include/smp.h projects/pf/pf45/sys/amd64/include/specialreg.h projects/pf/pf45/sys/amd64/linux32/linux32_dummy.c projects/pf/pf45/sys/amd64/linux32/linux32_proto.h projects/pf/pf45/sys/amd64/linux32/linux32_syscall.h projects/pf/pf45/sys/amd64/linux32/linux32_syscalls.c projects/pf/pf45/sys/amd64/linux32/linux32_sysent.c projects/pf/pf45/sys/amd64/linux32/linux32_systrace_args.c projects/pf/pf45/sys/amd64/linux32/linux32_sysvec.c projects/pf/pf45/sys/amd64/linux32/syscalls.master projects/pf/pf45/sys/arm/conf/AVILA projects/pf/pf45/sys/arm/conf/CAMBRIA projects/pf/pf45/sys/arm/conf/CRB projects/pf/pf45/sys/arm/conf/DB-78XXX projects/pf/pf45/sys/arm/conf/DB-88F5XXX projects/pf/pf45/sys/arm/conf/DB-88F6XXX projects/pf/pf45/sys/arm/conf/EP80219 projects/pf/pf45/sys/arm/conf/IQ31244 projects/pf/pf45/sys/arm/econa/ehci_ebus.c projects/pf/pf45/sys/arm/xscale/i8134x/crb_machdep.c projects/pf/pf45/sys/boot/common/bootstrap.h projects/pf/pf45/sys/boot/common/load_elf.c projects/pf/pf45/sys/boot/common/load_elf_obj.c projects/pf/pf45/sys/boot/common/module.c projects/pf/pf45/sys/boot/forth/loader.conf projects/pf/pf45/sys/boot/i386/boot2/Makefile projects/pf/pf45/sys/boot/i386/boot2/boot2.c projects/pf/pf45/sys/boot/i386/boot2/lib.h projects/pf/pf45/sys/boot/i386/boot2/sio.S projects/pf/pf45/sys/boot/i386/gptzfsboot/Makefile projects/pf/pf45/sys/boot/i386/zfsboot/Makefile projects/pf/pf45/sys/boot/ia64/common/copy.c projects/pf/pf45/sys/boot/ia64/common/exec.c projects/pf/pf45/sys/boot/ia64/common/libia64.h projects/pf/pf45/sys/boot/ia64/efi/main.c projects/pf/pf45/sys/boot/ia64/ski/efi_stub.c projects/pf/pf45/sys/boot/ia64/ski/main.c projects/pf/pf45/sys/boot/ia64/ski/skimd.c projects/pf/pf45/sys/boot/pc98/boot2/Makefile projects/pf/pf45/sys/boot/pc98/boot2/boot2.c projects/pf/pf45/sys/boot/pc98/loader/main.c projects/pf/pf45/sys/boot/sparc64/loader/main.c projects/pf/pf45/sys/cam/ata/ata_all.c projects/pf/pf45/sys/cam/ata/ata_all.h projects/pf/pf45/sys/cam/ata/ata_da.c projects/pf/pf45/sys/cam/ata/ata_pmp.c projects/pf/pf45/sys/cam/ata/ata_xpt.c projects/pf/pf45/sys/cam/cam_ccb.h projects/pf/pf45/sys/cam/cam_periph.c projects/pf/pf45/sys/cam/cam_xpt.c projects/pf/pf45/sys/cam/scsi/scsi_cd.c projects/pf/pf45/sys/cam/scsi/scsi_ch.c projects/pf/pf45/sys/cam/scsi/scsi_da.c projects/pf/pf45/sys/cam/scsi/scsi_pass.c projects/pf/pf45/sys/cam/scsi/scsi_pt.c projects/pf/pf45/sys/cam/scsi/scsi_sa.c projects/pf/pf45/sys/cam/scsi/scsi_sg.c projects/pf/pf45/sys/cddl/compat/opensolaris/sys/sunddi.h projects/pf/pf45/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c projects/pf/pf45/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/pf/pf45/sys/cddl/dev/dtrace/amd64/dtrace_subr.c projects/pf/pf45/sys/cddl/dev/dtrace/i386/dtrace_subr.c projects/pf/pf45/sys/cddl/dev/systrace/systrace.c projects/pf/pf45/sys/compat/freebsd32/freebsd32.h projects/pf/pf45/sys/compat/freebsd32/freebsd32_ioctl.c projects/pf/pf45/sys/compat/freebsd32/freebsd32_ioctl.h projects/pf/pf45/sys/compat/freebsd32/freebsd32_misc.c projects/pf/pf45/sys/compat/freebsd32/freebsd32_proto.h projects/pf/pf45/sys/compat/freebsd32/freebsd32_syscall.h projects/pf/pf45/sys/compat/freebsd32/freebsd32_syscalls.c projects/pf/pf45/sys/compat/freebsd32/freebsd32_sysent.c projects/pf/pf45/sys/compat/freebsd32/freebsd32_systrace_args.c projects/pf/pf45/sys/compat/freebsd32/syscalls.master projects/pf/pf45/sys/compat/ia32/ia32_genassym.c projects/pf/pf45/sys/compat/ia32/ia32_signal.h projects/pf/pf45/sys/compat/ia32/ia32_sysvec.c projects/pf/pf45/sys/compat/ia32/ia32_util.h projects/pf/pf45/sys/compat/linprocfs/linprocfs.c projects/pf/pf45/sys/compat/linux/linux_misc.c projects/pf/pf45/sys/compat/linux/linux_misc.h projects/pf/pf45/sys/compat/linux/linux_socket.c projects/pf/pf45/sys/compat/linux/linux_socket.h projects/pf/pf45/sys/compat/svr4/imgact_svr4.c projects/pf/pf45/sys/conf/NOTES projects/pf/pf45/sys/conf/files projects/pf/pf45/sys/conf/files.amd64 projects/pf/pf45/sys/conf/files.arm projects/pf/pf45/sys/conf/files.i386 projects/pf/pf45/sys/conf/files.ia64 projects/pf/pf45/sys/conf/files.mips projects/pf/pf45/sys/conf/files.pc98 projects/pf/pf45/sys/conf/files.powerpc projects/pf/pf45/sys/conf/files.sparc64 projects/pf/pf45/sys/conf/files.sun4v projects/pf/pf45/sys/conf/kern.mk projects/pf/pf45/sys/conf/kern.pre.mk projects/pf/pf45/sys/conf/kmod.mk projects/pf/pf45/sys/conf/ldscript.amd64 projects/pf/pf45/sys/conf/options projects/pf/pf45/sys/conf/options.mips projects/pf/pf45/sys/contrib/altq/altq/altq_subr.c projects/pf/pf45/sys/contrib/dev/acpica/acpica_prep.sh projects/pf/pf45/sys/contrib/dev/acpica/changes.txt projects/pf/pf45/sys/contrib/dev/acpica/common/dmtable.c projects/pf/pf45/sys/contrib/dev/acpica/common/dmtbdump.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/aslanalyze.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/aslcompiler.h projects/pf/pf45/sys/contrib/dev/acpica/compiler/aslcompiler.y projects/pf/pf45/sys/contrib/dev/acpica/compiler/asldefine.h projects/pf/pf45/sys/contrib/dev/acpica/compiler/aslglobal.h projects/pf/pf45/sys/contrib/dev/acpica/compiler/asllookup.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/aslmain.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/aslmap.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/aslmessages.h projects/pf/pf45/sys/contrib/dev/acpica/compiler/aslpredef.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/asltypes.h projects/pf/pf45/sys/contrib/dev/acpica/compiler/aslutils.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/aslwalks.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/dtcompile.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/dtcompiler.h projects/pf/pf45/sys/contrib/dev/acpica/compiler/dtexpress.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/dtfield.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/dtio.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/dtsubtable.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/dttable.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/dttemplate.c projects/pf/pf45/sys/contrib/dev/acpica/compiler/dttemplate.h projects/pf/pf45/sys/contrib/dev/acpica/compiler/dtutils.c projects/pf/pf45/sys/contrib/dev/acpica/debugger/dbdisply.c projects/pf/pf45/sys/contrib/dev/acpica/dispatcher/dswload.c projects/pf/pf45/sys/contrib/dev/acpica/dispatcher/dswload2.c projects/pf/pf45/sys/contrib/dev/acpica/events/evmisc.c projects/pf/pf45/sys/contrib/dev/acpica/events/evregion.c projects/pf/pf45/sys/contrib/dev/acpica/events/evrgnini.c projects/pf/pf45/sys/contrib/dev/acpica/events/evxfregn.c projects/pf/pf45/sys/contrib/dev/acpica/executer/excreate.c projects/pf/pf45/sys/contrib/dev/acpica/include/acconfig.h projects/pf/pf45/sys/contrib/dev/acpica/include/acevents.h projects/pf/pf45/sys/contrib/dev/acpica/include/acpixf.h projects/pf/pf45/sys/contrib/dev/acpica/include/actypes.h projects/pf/pf45/sys/contrib/dev/acpica/include/amlcode.h projects/pf/pf45/sys/contrib/dev/acpica/namespace/nsrepair.c projects/pf/pf45/sys/contrib/dev/acpica/utilities/utdecode.c projects/pf/pf45/sys/ddb/db_command.c projects/pf/pf45/sys/dev/acpica/acpi.c projects/pf/pf45/sys/dev/acpica/acpi_cpu.c projects/pf/pf45/sys/dev/acpica/acpi_thermal.c projects/pf/pf45/sys/dev/acpica/acpi_timer.c projects/pf/pf45/sys/dev/acpica/acpivar.h projects/pf/pf45/sys/dev/age/if_age.c projects/pf/pf45/sys/dev/ahci/ahci.c projects/pf/pf45/sys/dev/ahci/ahci.h projects/pf/pf45/sys/dev/aic7xxx/aicasm/Makefile projects/pf/pf45/sys/dev/arcmsr/arcmsr.c projects/pf/pf45/sys/dev/arcmsr/arcmsr.h projects/pf/pf45/sys/dev/ata/ata-all.c projects/pf/pf45/sys/dev/ata/ata-all.h projects/pf/pf45/sys/dev/ata/ata-lowlevel.c projects/pf/pf45/sys/dev/ata/ata-pci.h projects/pf/pf45/sys/dev/ata/chipsets/ata-intel.c projects/pf/pf45/sys/dev/ath/ah_osdep.c projects/pf/pf45/sys/dev/ath/ath_hal/ah.c projects/pf/pf45/sys/dev/ath/ath_hal/ah.h projects/pf/pf45/sys/dev/ath/ath_hal/ah_debug.h projects/pf/pf45/sys/dev/ath/ath_hal/ah_decode.h projects/pf/pf45/sys/dev/ath/ath_hal/ah_desc.h projects/pf/pf45/sys/dev/ath/ath_hal/ah_eeprom_v14.c projects/pf/pf45/sys/dev/ath/ath_hal/ah_eeprom_v14.h projects/pf/pf45/sys/dev/ath/ath_hal/ah_eeprom_v4k.h projects/pf/pf45/sys/dev/ath/ath_hal/ah_internal.h projects/pf/pf45/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/pf/pf45/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/pf/pf45/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/pf/pf45/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c projects/pf/pf45/sys/dev/ath/ath_hal/ar5416/ar2133.c projects/pf/pf45/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/pf/pf45/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/pf/pf45/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c projects/pf/pf45/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c projects/pf/pf45/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c projects/pf/pf45/sys/dev/ath/ath_hal/ar5416/ar5416_recv.c projects/pf/pf45/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/pf/pf45/sys/dev/ath/ath_hal/ar5416/ar5416reg.h projects/pf/pf45/sys/dev/ath/ath_hal/ar9001/ar9160.ini projects/pf/pf45/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c projects/pf/pf45/sys/dev/ath/ath_hal/ar9002/ar9002phy.h projects/pf/pf45/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c projects/pf/pf45/sys/dev/ath/ath_hal/ar9002/ar9285.h projects/pf/pf45/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c projects/pf/pf45/sys/dev/ath/ath_hal/ar9002/ar9285_reset.c projects/pf/pf45/sys/dev/ath/ath_rate/sample/sample.c projects/pf/pf45/sys/dev/ath/if_ath.c projects/pf/pf45/sys/dev/ath/if_ath_pci.c projects/pf/pf45/sys/dev/ath/if_ath_sysctl.c projects/pf/pf45/sys/dev/ath/if_ath_tx.c projects/pf/pf45/sys/dev/ath/if_ath_tx_ht.c projects/pf/pf45/sys/dev/ath/if_athioctl.h projects/pf/pf45/sys/dev/ath/if_athvar.h projects/pf/pf45/sys/dev/bge/if_bge.c projects/pf/pf45/sys/dev/bge/if_bgereg.h projects/pf/pf45/sys/dev/bxe/bxe_debug.h projects/pf/pf45/sys/dev/bxe/bxe_include.h projects/pf/pf45/sys/dev/bxe/if_bxe.c projects/pf/pf45/sys/dev/bxe/if_bxe.h projects/pf/pf45/sys/dev/cas/if_cas.c projects/pf/pf45/sys/dev/cxgb/common/cxgb_common.h projects/pf/pf45/sys/dev/cxgb/common/cxgb_t3_hw.c projects/pf/pf45/sys/dev/cxgb/cxgb_adapter.h projects/pf/pf45/sys/dev/cxgb/cxgb_main.c projects/pf/pf45/sys/dev/cxgb/cxgb_sge.c projects/pf/pf45/sys/dev/cxgb/cxgb_t3fw.h projects/pf/pf45/sys/dev/cxgbe/adapter.h projects/pf/pf45/sys/dev/cxgbe/common/common.h projects/pf/pf45/sys/dev/cxgbe/common/t4_hw.c projects/pf/pf45/sys/dev/cxgbe/common/t4fw_interface.h projects/pf/pf45/sys/dev/cxgbe/osdep.h projects/pf/pf45/sys/dev/cxgbe/t4_ioctl.h projects/pf/pf45/sys/dev/cxgbe/t4_main.c projects/pf/pf45/sys/dev/cxgbe/t4_sge.c projects/pf/pf45/sys/dev/dc/if_dc.c projects/pf/pf45/sys/dev/drm/drm_sysctl.c projects/pf/pf45/sys/dev/e1000/if_em.c projects/pf/pf45/sys/dev/e1000/if_em.h projects/pf/pf45/sys/dev/e1000/if_igb.c projects/pf/pf45/sys/dev/e1000/if_igb.h projects/pf/pf45/sys/dev/esp/ncr53c9x.c projects/pf/pf45/sys/dev/fxp/if_fxp.c projects/pf/pf45/sys/dev/gem/if_gem.c projects/pf/pf45/sys/dev/hme/if_hme.c projects/pf/pf45/sys/dev/hme/if_hmereg.h projects/pf/pf45/sys/dev/ichwd/ichwd.h projects/pf/pf45/sys/dev/ipmi/ipmi.c projects/pf/pf45/sys/dev/iwn/if_iwn.c projects/pf/pf45/sys/dev/iwn/if_iwnreg.h projects/pf/pf45/sys/dev/iwn/if_iwnvar.h projects/pf/pf45/sys/dev/ksyms/ksyms.c projects/pf/pf45/sys/dev/led/led.c projects/pf/pf45/sys/dev/led/led.h projects/pf/pf45/sys/dev/mii/brgphyreg.h projects/pf/pf45/sys/dev/mii/ciphyreg.h projects/pf/pf45/sys/dev/mii/e1000phy.c projects/pf/pf45/sys/dev/mii/e1000phyreg.h projects/pf/pf45/sys/dev/mii/mii_physubr.c projects/pf/pf45/sys/dev/mii/miivar.h projects/pf/pf45/sys/dev/mii/rgephyreg.h projects/pf/pf45/sys/dev/mii/xmphyreg.h projects/pf/pf45/sys/dev/mpt/mpt.c projects/pf/pf45/sys/dev/mpt/mpt.h projects/pf/pf45/sys/dev/mpt/mpt_cam.c projects/pf/pf45/sys/dev/mpt/mpt_debug.c projects/pf/pf45/sys/dev/mpt/mpt_pci.c projects/pf/pf45/sys/dev/mvs/mvs.c projects/pf/pf45/sys/dev/mvs/mvs.h projects/pf/pf45/sys/dev/mvs/mvs_soc.c projects/pf/pf45/sys/dev/mxge/if_mxge.c projects/pf/pf45/sys/dev/mxge/mxge_lro.c projects/pf/pf45/sys/dev/pci/pci.c projects/pf/pf45/sys/dev/pci/pci_user.c projects/pf/pf45/sys/dev/pci/pcireg.h projects/pf/pf45/sys/dev/pci/pcivar.h projects/pf/pf45/sys/dev/ral/rt2560.c projects/pf/pf45/sys/dev/ral/rt2661.c projects/pf/pf45/sys/dev/siis/siis.c projects/pf/pf45/sys/dev/siis/siis.h projects/pf/pf45/sys/dev/sound/usb/uaudio.c projects/pf/pf45/sys/dev/streams/streams.c projects/pf/pf45/sys/dev/sym/README.sym projects/pf/pf45/sys/dev/sym/sym_fw1.h projects/pf/pf45/sys/dev/sym/sym_fw2.h projects/pf/pf45/sys/dev/sym/sym_hipd.c projects/pf/pf45/sys/dev/usb/controller/ehci.c projects/pf/pf45/sys/dev/usb/controller/ehci_ixp4xx.c projects/pf/pf45/sys/dev/usb/controller/ehci_mv.c projects/pf/pf45/sys/dev/usb/controller/ehci_pci.c projects/pf/pf45/sys/dev/usb/storage/umass.c projects/pf/pf45/sys/dev/usb/usb_generic.c projects/pf/pf45/sys/dev/usb/usb_pf.c projects/pf/pf45/sys/dev/usb/usb_pf.h projects/pf/pf45/sys/dev/usb/usb_transfer.c projects/pf/pf45/sys/dev/usb/usbdi.h projects/pf/pf45/sys/dev/usb/wlan/if_run.c projects/pf/pf45/sys/dev/usb/wlan/if_zyd.c projects/pf/pf45/sys/fs/fdescfs/fdesc_vfsops.c projects/pf/pf45/sys/fs/fdescfs/fdesc_vnops.c projects/pf/pf45/sys/fs/msdosfs/msdosfs_lookup.c projects/pf/pf45/sys/fs/nfs/nfs.h projects/pf/pf45/sys/fs/nfs/nfs_commonacl.c projects/pf/pf45/sys/fs/nfs/nfs_commonkrpc.c projects/pf/pf45/sys/fs/nfs/nfs_commonport.c projects/pf/pf45/sys/fs/nfs/nfs_commonsubs.c projects/pf/pf45/sys/fs/nfs/nfs_var.h projects/pf/pf45/sys/fs/nfs/nfsport.h projects/pf/pf45/sys/fs/nfsclient/nfs.h projects/pf/pf45/sys/fs/nfsclient/nfs_clbio.c projects/pf/pf45/sys/fs/nfsclient/nfs_clcomsubs.c projects/pf/pf45/sys/fs/nfsclient/nfs_clnfsiod.c projects/pf/pf45/sys/fs/nfsclient/nfs_clnode.c projects/pf/pf45/sys/fs/nfsclient/nfs_clport.c projects/pf/pf45/sys/fs/nfsclient/nfs_clrpcops.c projects/pf/pf45/sys/fs/nfsclient/nfs_clstate.c projects/pf/pf45/sys/fs/nfsclient/nfs_clsubs.c projects/pf/pf45/sys/fs/nfsclient/nfs_clvfsops.c projects/pf/pf45/sys/fs/nfsclient/nfs_clvnops.c projects/pf/pf45/sys/fs/nfsclient/nfsnode.h projects/pf/pf45/sys/fs/nfsserver/nfs_nfsdport.c projects/pf/pf45/sys/fs/nfsserver/nfs_nfsdserv.c projects/pf/pf45/sys/fs/nfsserver/nfs_nfsdstate.c projects/pf/pf45/sys/geom/eli/g_eli.c projects/pf/pf45/sys/geom/eli/g_eli.h projects/pf/pf45/sys/geom/eli/g_eli_ctl.c projects/pf/pf45/sys/geom/eli/g_eli_integrity.c projects/pf/pf45/sys/geom/eli/g_eli_key.c projects/pf/pf45/sys/geom/eli/g_eli_privacy.c projects/pf/pf45/sys/geom/gate/g_gate.c projects/pf/pf45/sys/geom/gate/g_gate.h projects/pf/pf45/sys/geom/geom.h projects/pf/pf45/sys/geom/geom_dev.c projects/pf/pf45/sys/geom/geom_disk.c projects/pf/pf45/sys/geom/nop/g_nop.c projects/pf/pf45/sys/geom/part/g_part_apm.c projects/pf/pf45/sys/i386/bios/apm.c projects/pf/pf45/sys/i386/conf/GENERIC projects/pf/pf45/sys/i386/conf/PAE projects/pf/pf45/sys/i386/conf/XBOX projects/pf/pf45/sys/i386/i386/identcpu.c projects/pf/pf45/sys/i386/i386/initcpu.c projects/pf/pf45/sys/i386/i386/legacy.c projects/pf/pf45/sys/i386/i386/machdep.c projects/pf/pf45/sys/i386/i386/perfmon.c projects/pf/pf45/sys/i386/i386/pmap.c projects/pf/pf45/sys/i386/i386/trap.c projects/pf/pf45/sys/i386/include/atomic.h projects/pf/pf45/sys/i386/include/clock.h projects/pf/pf45/sys/i386/include/cpu.h projects/pf/pf45/sys/i386/include/cpufunc.h projects/pf/pf45/sys/i386/include/pmap.h projects/pf/pf45/sys/i386/include/specialreg.h projects/pf/pf45/sys/i386/isa/prof_machdep.c projects/pf/pf45/sys/i386/linux/imgact_linux.c projects/pf/pf45/sys/i386/linux/linux_dummy.c projects/pf/pf45/sys/i386/linux/linux_proto.h projects/pf/pf45/sys/i386/linux/linux_syscall.h projects/pf/pf45/sys/i386/linux/linux_syscalls.c projects/pf/pf45/sys/i386/linux/linux_sysent.c projects/pf/pf45/sys/i386/linux/linux_systrace_args.c projects/pf/pf45/sys/i386/linux/linux_sysvec.c projects/pf/pf45/sys/i386/linux/syscalls.master projects/pf/pf45/sys/ia64/conf/GENERIC projects/pf/pf45/sys/ia64/ia32/ia32_misc.c projects/pf/pf45/sys/ia64/ia32/ia32_signal.c projects/pf/pf45/sys/ia64/include/bootinfo.h projects/pf/pf45/sys/ia64/include/pmap.h projects/pf/pf45/sys/isa/pnp.c projects/pf/pf45/sys/kern/imgact_aout.c projects/pf/pf45/sys/kern/imgact_elf.c projects/pf/pf45/sys/kern/imgact_gzip.c projects/pf/pf45/sys/kern/init_main.c projects/pf/pf45/sys/kern/init_sysent.c projects/pf/pf45/sys/kern/kern_clock.c projects/pf/pf45/sys/kern/kern_descrip.c projects/pf/pf45/sys/kern/kern_event.c projects/pf/pf45/sys/kern/kern_exit.c projects/pf/pf45/sys/kern/kern_fork.c projects/pf/pf45/sys/kern/kern_hhook.c projects/pf/pf45/sys/kern/kern_jail.c projects/pf/pf45/sys/kern/kern_khelp.c projects/pf/pf45/sys/kern/kern_ktrace.c projects/pf/pf45/sys/kern/kern_linker.c projects/pf/pf45/sys/kern/kern_loginclass.c projects/pf/pf45/sys/kern/kern_proc.c projects/pf/pf45/sys/kern/kern_prot.c projects/pf/pf45/sys/kern/kern_resource.c projects/pf/pf45/sys/kern/kern_sig.c projects/pf/pf45/sys/kern/kern_thr.c projects/pf/pf45/sys/kern/kern_thread.c projects/pf/pf45/sys/kern/kern_timeout.c projects/pf/pf45/sys/kern/link_elf.c projects/pf/pf45/sys/kern/link_elf_obj.c projects/pf/pf45/sys/kern/sched_4bsd.c projects/pf/pf45/sys/kern/sched_ule.c projects/pf/pf45/sys/kern/subr_rman.c projects/pf/pf45/sys/kern/subr_uio.c projects/pf/pf45/sys/kern/sys_pipe.c projects/pf/pf45/sys/kern/syscalls.c projects/pf/pf45/sys/kern/syscalls.master projects/pf/pf45/sys/kern/systrace_args.c projects/pf/pf45/sys/kern/sysv_msg.c projects/pf/pf45/sys/kern/sysv_sem.c projects/pf/pf45/sys/kern/sysv_shm.c projects/pf/pf45/sys/kern/tty_pts.c projects/pf/pf45/sys/kern/uipc_mqueue.c projects/pf/pf45/sys/kern/uipc_sem.c projects/pf/pf45/sys/kern/uipc_shm.c projects/pf/pf45/sys/kern/uipc_sockbuf.c projects/pf/pf45/sys/kern/uipc_syscalls.c projects/pf/pf45/sys/kern/vfs_default.c projects/pf/pf45/sys/kern/vfs_mount.c projects/pf/pf45/sys/kern/vfs_subr.c projects/pf/pf45/sys/kern/vfs_syscalls.c projects/pf/pf45/sys/kern/vnode_if.src projects/pf/pf45/sys/mips/atheros/ar71xx_ehci.c projects/pf/pf45/sys/mips/atheros/ar71xx_machdep.c projects/pf/pf45/sys/mips/atheros/ar724x_chip.c projects/pf/pf45/sys/mips/atheros/ar724xreg.h projects/pf/pf45/sys/mips/atheros/if_arge.c projects/pf/pf45/sys/mips/atheros/if_argevar.h projects/pf/pf45/sys/mips/conf/AR71XX projects/pf/pf45/sys/mips/conf/IDT projects/pf/pf45/sys/mips/conf/MALTA projects/pf/pf45/sys/mips/conf/MALTA64 projects/pf/pf45/sys/mips/conf/OCTEON1 projects/pf/pf45/sys/mips/conf/SENTRY5 projects/pf/pf45/sys/mips/conf/std.SWARM projects/pf/pf45/sys/mips/malta/std.malta projects/pf/pf45/sys/mips/rmi/xls_ehci.c projects/pf/pf45/sys/modules/Makefile projects/pf/pf45/sys/modules/acpi/acpi/Makefile projects/pf/pf45/sys/modules/arcnet/Makefile projects/pf/pf45/sys/modules/ath/Makefile projects/pf/pf45/sys/modules/bxe/Makefile projects/pf/pf45/sys/modules/cam/Makefile projects/pf/pf45/sys/modules/dtrace/dtraceall/Makefile projects/pf/pf45/sys/modules/dtrace/systrace_linux32/Makefile projects/pf/pf45/sys/modules/firewire/fwip/Makefile projects/pf/pf45/sys/modules/geom/Makefile projects/pf/pf45/sys/modules/geom/geom_eli/Makefile projects/pf/pf45/sys/modules/ipfw/Makefile projects/pf/pf45/sys/modules/iwnfw/Makefile projects/pf/pf45/sys/modules/iwnfw/iwn1000/Makefile projects/pf/pf45/sys/modules/iwnfw/iwn5000/Makefile projects/pf/pf45/sys/modules/iwnfw/iwn6050/Makefile projects/pf/pf45/sys/modules/netgraph/atm/ccatm/Makefile projects/pf/pf45/sys/net/if.c projects/pf/pf45/sys/net80211/_ieee80211.h projects/pf/pf45/sys/net80211/ieee80211_input.c projects/pf/pf45/sys/net80211/ieee80211_node.c projects/pf/pf45/sys/net80211/ieee80211_node.h projects/pf/pf45/sys/net80211/ieee80211_proto.c projects/pf/pf45/sys/net80211/ieee80211_proto.h projects/pf/pf45/sys/netgraph/atm/ccatm/ng_ccatm.c projects/pf/pf45/sys/netgraph/atm/sscfu/ng_sscfu.c projects/pf/pf45/sys/netgraph/atm/sscop/ng_sscop.c projects/pf/pf45/sys/netgraph/atm/uni/ng_uni.c projects/pf/pf45/sys/netgraph/bluetooth/hci/ng_hci_main.c projects/pf/pf45/sys/netgraph/bluetooth/l2cap/ng_l2cap_main.c projects/pf/pf45/sys/netgraph/netflow/netflow.c projects/pf/pf45/sys/netgraph/netflow/ng_netflow.c projects/pf/pf45/sys/netgraph/netflow/ng_netflow.h projects/pf/pf45/sys/netgraph/ng_UI.c projects/pf/pf45/sys/netgraph/ng_async.c projects/pf/pf45/sys/netgraph/ng_atmllc.c projects/pf/pf45/sys/netgraph/ng_base.c projects/pf/pf45/sys/netgraph/ng_bridge.c projects/pf/pf45/sys/netgraph/ng_car.c projects/pf/pf45/sys/netgraph/ng_cisco.c projects/pf/pf45/sys/netgraph/ng_device.c projects/pf/pf45/sys/netgraph/ng_eiface.c projects/pf/pf45/sys/netgraph/ng_etf.c projects/pf/pf45/sys/netgraph/ng_fec.c projects/pf/pf45/sys/netgraph/ng_frame_relay.c projects/pf/pf45/sys/netgraph/ng_gif_demux.c projects/pf/pf45/sys/netgraph/ng_hub.c projects/pf/pf45/sys/netgraph/ng_iface.c projects/pf/pf45/sys/netgraph/ng_ksocket.c projects/pf/pf45/sys/netgraph/ng_l2tp.c projects/pf/pf45/sys/netgraph/ng_lmi.c projects/pf/pf45/sys/netgraph/ng_mppc.c projects/pf/pf45/sys/netgraph/ng_nat.c projects/pf/pf45/sys/netgraph/ng_one2many.c projects/pf/pf45/sys/netgraph/ng_patch.c projects/pf/pf45/sys/netgraph/ng_pipe.c projects/pf/pf45/sys/netgraph/ng_ppp.c projects/pf/pf45/sys/netgraph/ng_pppoe.c projects/pf/pf45/sys/netgraph/ng_pptpgre.c projects/pf/pf45/sys/netgraph/ng_rfc1490.c projects/pf/pf45/sys/netgraph/ng_sample.c projects/pf/pf45/sys/netgraph/ng_source.c projects/pf/pf45/sys/netgraph/ng_split.c projects/pf/pf45/sys/netgraph/ng_sppp.c projects/pf/pf45/sys/netgraph/ng_tee.c projects/pf/pf45/sys/netgraph/ng_tty.c projects/pf/pf45/sys/netgraph/ng_vjc.c projects/pf/pf45/sys/netgraph/ng_vlan.c projects/pf/pf45/sys/netinet/cc.h projects/pf/pf45/sys/netinet/cc/cc.c projects/pf/pf45/sys/netinet/cc/cc_chd.c projects/pf/pf45/sys/netinet/cc/cc_cubic.c projects/pf/pf45/sys/netinet/cc/cc_cubic.h projects/pf/pf45/sys/netinet/cc/cc_hd.c projects/pf/pf45/sys/netinet/cc/cc_htcp.c projects/pf/pf45/sys/netinet/cc/cc_module.h projects/pf/pf45/sys/netinet/cc/cc_newreno.c projects/pf/pf45/sys/netinet/cc/cc_vegas.c projects/pf/pf45/sys/netinet/in_pcb.c projects/pf/pf45/sys/netinet/in_pcb.h projects/pf/pf45/sys/netinet/in_proto.c projects/pf/pf45/sys/netinet/ip_fw.h projects/pf/pf45/sys/netinet/ip_input.c projects/pf/pf45/sys/netinet/ip_output.c projects/pf/pf45/sys/netinet/ip_var.h projects/pf/pf45/sys/netinet/ipfw/ip_dn_glue.c projects/pf/pf45/sys/netinet/ipfw/ip_dn_io.c projects/pf/pf45/sys/netinet/ipfw/ip_dummynet.c projects/pf/pf45/sys/netinet/ipfw/ip_fw2.c projects/pf/pf45/sys/netinet/ipfw/ip_fw_nat.c projects/pf/pf45/sys/netinet/ipfw/ip_fw_private.h projects/pf/pf45/sys/netinet/khelp/h_ertt.c projects/pf/pf45/sys/netinet/khelp/h_ertt.h projects/pf/pf45/sys/netinet/libalias/alias_db.c projects/pf/pf45/sys/netinet/raw_ip.c projects/pf/pf45/sys/netinet/siftr.c projects/pf/pf45/sys/netinet/tcp_input.c projects/pf/pf45/sys/netinet/tcp_lro.c projects/pf/pf45/sys/netinet/tcp_output.c projects/pf/pf45/sys/netinet/tcp_sack.c projects/pf/pf45/sys/netinet/udp_usrreq.c projects/pf/pf45/sys/netinet6/in6_proto.c projects/pf/pf45/sys/netinet6/nd6_nbr.c projects/pf/pf45/sys/netinet6/udp6_usrreq.c projects/pf/pf45/sys/netipsec/ipsec.h projects/pf/pf45/sys/netipsec/ipsec_output.c projects/pf/pf45/sys/netipsec/key.c projects/pf/pf45/sys/netipsec/key.h projects/pf/pf45/sys/netipsec/xform.h projects/pf/pf45/sys/netipsec/xform_ah.c projects/pf/pf45/sys/netipsec/xform_esp.c projects/pf/pf45/sys/netipsec/xform_ipcomp.c projects/pf/pf45/sys/nfsclient/nfs_subs.c projects/pf/pf45/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c projects/pf/pf45/sys/ofed/drivers/net/mlx4/en_ethtool.c projects/pf/pf45/sys/ofed/drivers/net/mlx4/en_netdev.c projects/pf/pf45/sys/ofed/drivers/net/mlx4/fw.c projects/pf/pf45/sys/ofed/drivers/net/mlx4/fw.h projects/pf/pf45/sys/ofed/drivers/net/mlx4/main.c projects/pf/pf45/sys/ofed/drivers/net/mlx4/mlx4_en.h projects/pf/pf45/sys/ofed/include/linux/mlx4/device.h projects/pf/pf45/sys/opencrypto/cryptodev.c projects/pf/pf45/sys/pc98/conf/GENERIC projects/pf/pf45/sys/pc98/pc98/machdep.c projects/pf/pf45/sys/powerpc/aim/machdep.c projects/pf/pf45/sys/powerpc/aim/mmu_oea.c projects/pf/pf45/sys/powerpc/aim/mmu_oea64.c projects/pf/pf45/sys/powerpc/conf/GENERIC projects/pf/pf45/sys/powerpc/conf/GENERIC64 projects/pf/pf45/sys/powerpc/conf/MPC85XX projects/pf/pf45/sys/powerpc/powerpc/exec_machdep.c projects/pf/pf45/sys/powerpc/powerpc/mp_machdep.c projects/pf/pf45/sys/rpc/clnt_dg.c projects/pf/pf45/sys/rpc/clnt_vc.c projects/pf/pf45/sys/sparc64/conf/GENERIC projects/pf/pf45/sys/sparc64/include/cpufunc.h projects/pf/pf45/sys/sparc64/pci/ofw_pci.h projects/pf/pf45/sys/sparc64/pci/ofw_pci_if.m projects/pf/pf45/sys/sparc64/pci/ofw_pcibus.c projects/pf/pf45/sys/sparc64/pci/psycho.c projects/pf/pf45/sys/sparc64/pci/psychovar.h projects/pf/pf45/sys/sparc64/pci/schizo.c projects/pf/pf45/sys/sparc64/pci/schizoreg.h projects/pf/pf45/sys/sparc64/pci/schizovar.h projects/pf/pf45/sys/sparc64/sbus/lsi64854.c projects/pf/pf45/sys/sparc64/sbus/ofw_sbus.h projects/pf/pf45/sys/sparc64/sparc64/exception.S projects/pf/pf45/sys/sparc64/sparc64/iommu.c projects/pf/pf45/sys/sparc64/sparc64/machdep.c projects/pf/pf45/sys/sparc64/sparc64/pmap.c projects/pf/pf45/sys/sun4v/conf/GENERIC projects/pf/pf45/sys/sun4v/include/cddl/mdesc_impl.h projects/pf/pf45/sys/sun4v/include/cpufunc.h projects/pf/pf45/sys/sun4v/sun4v/tte_hash.c projects/pf/pf45/sys/sys/acl.h projects/pf/pf45/sys/sys/ata.h projects/pf/pf45/sys/sys/errno.h projects/pf/pf45/sys/sys/eventhandler.h projects/pf/pf45/sys/sys/fcntl.h projects/pf/pf45/sys/sys/filedesc.h projects/pf/pf45/sys/sys/hhook.h projects/pf/pf45/sys/sys/jail.h projects/pf/pf45/sys/sys/kernel.h projects/pf/pf45/sys/sys/khelp.h projects/pf/pf45/sys/sys/loginclass.h projects/pf/pf45/sys/sys/module_khelp.h projects/pf/pf45/sys/sys/msg.h projects/pf/pf45/sys/sys/param.h projects/pf/pf45/sys/sys/priv.h projects/pf/pf45/sys/sys/proc.h projects/pf/pf45/sys/sys/resourcevar.h projects/pf/pf45/sys/sys/sem.h projects/pf/pf45/sys/sys/shm.h projects/pf/pf45/sys/sys/socket.h projects/pf/pf45/sys/sys/syscall.h projects/pf/pf45/sys/sys/syscall.mk projects/pf/pf45/sys/sys/syscallsubr.h projects/pf/pf45/sys/sys/sysproto.h projects/pf/pf45/sys/sys/systm.h projects/pf/pf45/sys/sys/uio.h projects/pf/pf45/sys/sys/vnode.h projects/pf/pf45/sys/tools/fw_stub.awk projects/pf/pf45/sys/ufs/ffs/ffs_alloc.c projects/pf/pf45/sys/ufs/ffs/ffs_extern.h projects/pf/pf45/sys/ufs/ffs/ffs_softdep.c projects/pf/pf45/sys/ufs/ffs/softdep.h projects/pf/pf45/sys/ufs/ufs/ufs_extern.h projects/pf/pf45/sys/ufs/ufs/ufs_inode.c projects/pf/pf45/sys/vm/swap_pager.c projects/pf/pf45/sys/vm/vm_fault.c projects/pf/pf45/sys/vm/vm_glue.c projects/pf/pf45/sys/vm/vm_map.c projects/pf/pf45/sys/vm/vm_meter.c projects/pf/pf45/sys/vm/vm_mmap.c projects/pf/pf45/sys/vm/vm_object.c projects/pf/pf45/sys/vm/vm_pageout.c projects/pf/pf45/sys/vm/vm_unix.c projects/pf/pf45/sys/x86/cpufreq/est.c projects/pf/pf45/sys/x86/isa/clock.c projects/pf/pf45/sys/x86/x86/tsc.c projects/pf/pf45/tools/build/mk/OptionalObsoleteFiles.inc projects/pf/pf45/tools/build/options/WITHOUT_CXX projects/pf/pf45/tools/regression/lib/libc/string/test-strerror.c projects/pf/pf45/tools/regression/usr.sbin/newsyslog/regress.sh projects/pf/pf45/tools/tools/ath/Makefile projects/pf/pf45/tools/tools/ath/athdecode/Makefile projects/pf/pf45/tools/tools/ath/athkey/Makefile projects/pf/pf45/tools/tools/ath/athpoke/Makefile projects/pf/pf45/tools/tools/ath/athprom/Makefile projects/pf/pf45/tools/tools/ath/athregs/Makefile projects/pf/pf45/tools/tools/nanobsd/nanobsd.sh projects/pf/pf45/usr.bin/Makefile projects/pf/pf45/usr.bin/calendar/calendars/calendar.freebsd projects/pf/pf45/usr.bin/compress/doc/revision.log projects/pf/pf45/usr.bin/finger/finger.c projects/pf/pf45/usr.bin/grep/Makefile projects/pf/pf45/usr.bin/grep/fastgrep.c projects/pf/pf45/usr.bin/grep/file.c projects/pf/pf45/usr.bin/grep/grep.1 projects/pf/pf45/usr.bin/grep/grep.c projects/pf/pf45/usr.bin/grep/grep.h projects/pf/pf45/usr.bin/grep/queue.c projects/pf/pf45/usr.bin/grep/util.c projects/pf/pf45/usr.bin/kdump/kdump.c projects/pf/pf45/usr.bin/limits/limits.1 projects/pf/pf45/usr.bin/logger/logger.1 projects/pf/pf45/usr.bin/logger/logger.c projects/pf/pf45/usr.bin/man/man.sh projects/pf/pf45/usr.bin/netstat/inet.c projects/pf/pf45/usr.bin/nfsstat/nfsstat.c projects/pf/pf45/usr.bin/su/su.c projects/pf/pf45/usr.bin/xargs/xargs.1 projects/pf/pf45/usr.sbin/Makefile projects/pf/pf45/usr.sbin/acpi/acpidb/Makefile projects/pf/pf45/usr.sbin/acpi/iasl/Makefile projects/pf/pf45/usr.sbin/bluetooth/l2control/l2control.8 projects/pf/pf45/usr.sbin/bluetooth/l2control/l2control.c projects/pf/pf45/usr.sbin/bluetooth/l2ping/l2ping.8 projects/pf/pf45/usr.sbin/bluetooth/l2ping/l2ping.c projects/pf/pf45/usr.sbin/bsdinstall/bsdinstall projects/pf/pf45/usr.sbin/bsdinstall/scripts/Makefile projects/pf/pf45/usr.sbin/bsdinstall/scripts/auto projects/pf/pf45/usr.sbin/bsdinstall/scripts/jail projects/pf/pf45/usr.sbin/bsdinstall/scripts/keymap projects/pf/pf45/usr.sbin/bsdinstall/scripts/wlanconfig projects/pf/pf45/usr.sbin/lpr/common_source/ctlinfo.c projects/pf/pf45/usr.sbin/lpr/common_source/ctlinfo.h projects/pf/pf45/usr.sbin/lpr/common_source/matchjobs.c projects/pf/pf45/usr.sbin/makefs/cd9660/cd9660_strings.c projects/pf/pf45/usr.sbin/mfiutil/mfi_volume.c projects/pf/pf45/usr.sbin/mfiutil/mfiutil.8 projects/pf/pf45/usr.sbin/mountd/mountd.8 projects/pf/pf45/usr.sbin/mountd/mountd.c projects/pf/pf45/usr.sbin/newsyslog/newsyslog.c projects/pf/pf45/usr.sbin/newsyslog/newsyslog.conf.5 projects/pf/pf45/usr.sbin/nfsd/nfsd.8 projects/pf/pf45/usr.sbin/nfsd/nfsd.c projects/pf/pf45/usr.sbin/nfsd/nfsv4.4 projects/pf/pf45/usr.sbin/nfsd/stablerestart.5 projects/pf/pf45/usr.sbin/ntp/ntpdc/Makefile projects/pf/pf45/usr.sbin/ntp/ntpq/Makefile projects/pf/pf45/usr.sbin/pc-sysinstall/backend-partmanager/create-part.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend-partmanager/delete-part.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend-query/update-part-list.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-cleanup.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-disk.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-extractimage.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-ftp.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-installcomponents.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-installpackages.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-localize.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-mountdisk.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-mountoptical.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-networking.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-newfs.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-packages.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-parse.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-runcommands.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-unmount.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-upgrade.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions-users.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/functions.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/parseconfig.sh projects/pf/pf45/usr.sbin/pc-sysinstall/backend/startautoinstall.sh projects/pf/pf45/usr.sbin/pkg_install/tkpkg projects/pf/pf45/usr.sbin/rwhod/rwhod.c projects/pf/pf45/usr.sbin/tcpdrop/tcpdrop.8 projects/pf/pf45/usr.sbin/timed/timedc/timedc.c projects/pf/pf45/usr.sbin/tzsetup/tzsetup.c projects/pf/pf45/usr.sbin/usbdump/Makefile projects/pf/pf45/usr.sbin/usbdump/usbdump.c projects/pf/pf45/usr.sbin/wpa/wpa_cli/Makefile Directory Properties: projects/pf/pf45/ (props changed) projects/pf/pf45/cddl/contrib/opensolaris/ (props changed) projects/pf/pf45/contrib/bind9/ (props changed) projects/pf/pf45/contrib/binutils/ (props changed) projects/pf/pf45/contrib/bzip2/ (props changed) projects/pf/pf45/contrib/dialog/ (props changed) projects/pf/pf45/contrib/ee/ (props changed) projects/pf/pf45/contrib/expat/ (props changed) projects/pf/pf45/contrib/file/ (props changed) projects/pf/pf45/contrib/gcc/ (props changed) projects/pf/pf45/contrib/gdb/ (props changed) projects/pf/pf45/contrib/gdtoa/ (props changed) projects/pf/pf45/contrib/gnu-sort/ (props changed) projects/pf/pf45/contrib/groff/ (props changed) projects/pf/pf45/contrib/less/ (props changed) projects/pf/pf45/contrib/libpcap/ (props changed) projects/pf/pf45/contrib/libstdc++/ (props changed) projects/pf/pf45/contrib/llvm/ (props changed) projects/pf/pf45/contrib/llvm/tools/clang/ (props changed) projects/pf/pf45/contrib/ncurses/ (props changed) projects/pf/pf45/contrib/netcat/ (props changed) projects/pf/pf45/contrib/ntp/ (props changed) projects/pf/pf45/contrib/one-true-awk/ (props changed) projects/pf/pf45/contrib/openbsm/ (props changed) projects/pf/pf45/contrib/openpam/ (props changed) projects/pf/pf45/contrib/pf/ (props changed) projects/pf/pf45/contrib/sendmail/ (props changed) projects/pf/pf45/contrib/tcpdump/ (props changed) projects/pf/pf45/contrib/tcsh/ (props changed) projects/pf/pf45/contrib/top/ (props changed) projects/pf/pf45/contrib/top/install-sh (props changed) projects/pf/pf45/contrib/tzcode/stdtime/ (props changed) projects/pf/pf45/contrib/tzcode/zic/ (props changed) projects/pf/pf45/contrib/tzdata/ (props changed) projects/pf/pf45/contrib/wpa/ (props changed) projects/pf/pf45/contrib/xz/ (props changed) projects/pf/pf45/crypto/openssh/ (props changed) projects/pf/pf45/crypto/openssl/ (props changed) projects/pf/pf45/etc/periodic/daily/404.status-zfs (props changed) projects/pf/pf45/etc/periodic/daily/405.status-ata-raid (props changed) projects/pf/pf45/etc/periodic/daily/406.status-gmirror (props changed) projects/pf/pf45/etc/periodic/daily/407.status-graid3 (props changed) projects/pf/pf45/etc/periodic/daily/408.status-gstripe (props changed) projects/pf/pf45/etc/periodic/daily/409.status-gconcat (props changed) projects/pf/pf45/etc/periodic/daily/480.status-ntpd (props changed) projects/pf/pf45/etc/periodic/security/410.logincheck (props changed) projects/pf/pf45/etc/periodic/security/460.chkportsum (props changed) projects/pf/pf45/etc/periodic/security/510.ipfdenied (props changed) projects/pf/pf45/etc/periodic/security/520.pfdenied (props changed) projects/pf/pf45/etc/periodic/security/610.ipf6denied (props changed) projects/pf/pf45/etc/periodic/weekly/340.noid (props changed) projects/pf/pf45/gnu/lib/ (props changed) projects/pf/pf45/gnu/usr.bin/binutils/ (props changed) projects/pf/pf45/gnu/usr.bin/cc/cc_tools/ (props changed) projects/pf/pf45/gnu/usr.bin/gdb/ (props changed) projects/pf/pf45/lib/libc/ (props changed) projects/pf/pf45/lib/libc/stdtime/ (props changed) projects/pf/pf45/lib/libutil/ (props changed) projects/pf/pf45/lib/libz/ (props changed) projects/pf/pf45/sbin/ (props changed) projects/pf/pf45/sbin/ipfw/ (props changed) projects/pf/pf45/share/mk/bsd.arch.inc.mk (props changed) projects/pf/pf45/share/zoneinfo/ (props changed) projects/pf/pf45/sys/ (props changed) projects/pf/pf45/sys/amd64/include/xen/ (props changed) projects/pf/pf45/sys/boot/ (props changed) projects/pf/pf45/sys/boot/i386/efi/ (props changed) projects/pf/pf45/sys/boot/ia64/efi/ (props changed) projects/pf/pf45/sys/boot/ia64/ski/ (props changed) projects/pf/pf45/sys/boot/powerpc/boot1.chrp/ (props changed) projects/pf/pf45/sys/boot/powerpc/ofw/ (props changed) projects/pf/pf45/sys/cddl/contrib/opensolaris/ (props changed) projects/pf/pf45/sys/conf/ (props changed) projects/pf/pf45/sys/contrib/dev/acpica/ (props changed) projects/pf/pf45/sys/contrib/octeon-sdk/ (props changed) projects/pf/pf45/sys/contrib/pf/ (props changed) projects/pf/pf45/sys/contrib/x86emu/ (props changed) projects/pf/pf45/usr.bin/calendar/ (props changed) projects/pf/pf45/usr.bin/csup/ (props changed) projects/pf/pf45/usr.bin/procstat/ (props changed) projects/pf/pf45/usr.sbin/ndiscvt/ (props changed) projects/pf/pf45/usr.sbin/zic/ (props changed) Modified: projects/pf/pf45/Makefile ============================================================================== --- projects/pf/pf45/Makefile Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/Makefile Sun Apr 24 22:28:26 2011 (r221001) @@ -65,7 +65,7 @@ # 6. `mergemaster -p' # 7. `make installworld' # 8. `make delete-old' -# 9. `mergemaster' (you may wish to use -U or -ai). +# 9. `mergemaster' (you may wish to use -i, along with -U or -F). # 10. `reboot' # 11. `make delete-old-libs' (in case no 3rd party program uses them anymore) # @@ -214,7 +214,7 @@ ${TGTS}: .MAIN: all STARTTIME!= LC_ALL=C date -CHECK_TIME!= find ${.CURDIR}/sys/sys/param.h -mtime -0 +CHECK_TIME!= find ${.CURDIR}/sys/sys/param.h -mtime -0s .if !empty(CHECK_TIME) .error check your date/time: ${STARTTIME} .endif Modified: projects/pf/pf45/Makefile.inc1 ============================================================================== --- projects/pf/pf45/Makefile.inc1 Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/Makefile.inc1 Sun Apr 24 22:28:26 2011 (r221001) @@ -306,7 +306,6 @@ LIB32WMAKEENV+= MAKEOBJDIRPREFIX=${OBJTR PATH=${TMPPATH} \ CC="${CC} ${LIB32FLAGS}" \ CXX="${CXX} ${LIB32FLAGS}" \ - OBJC="${OBJC} ${LIB32FLAGS}" \ LIBDIR=/usr/lib32 \ SHLIBDIR=/usr/lib32 @@ -869,7 +868,7 @@ reinstallkernel reinstallkernel.debug: i false .endif @echo "--------------------------------------------------------------" - @echo ">>> Installing kernel" + @echo ">>> Installing kernel ${KERNCONF}" @echo "--------------------------------------------------------------" cd ${KRNLOBJDIR}/${INSTALLKERNEL}; \ ${CROSSENV} PATH=${TMPPATH} \ @@ -1019,11 +1018,11 @@ _gensnmptree= usr.sbin/bsnmpd/gensnmptre _crunchgen= usr.sbin/crunch/crunchgen .endif -# XXX: There is no way to specify bootstrap tools depending on MK-flags -# with different per-architecture default values. Always build tblgen. +.if ${MK_CLANG} != "no" _clang_tblgen= \ lib/clang/libllvmsupport \ usr.bin/clang/tblgen +.endif .if ${MK_CDDL} != "no" _dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf lib/libelf \ @@ -1127,10 +1126,12 @@ _kgzip= usr.sbin/kgzip .endif .endif +.if ${MK_CLANG} != "no" .if ${CC:T:Mclang} == "clang" _clang= usr.bin/clang _clang_libs= lib/clang .endif +.endif cross-tools: .for _tool in \ @@ -1355,10 +1356,16 @@ delete-old-files: @echo ">>> Removing old files (only deletes safe to delete libs)" # Ask for every old file if the user really wants to remove it. # It's annoying, but better safe than sorry. - @for file in ${OLD_FILES} ${OLD_FILES:Musr/share/*.gz:R}; do \ +# NB: We cannot pass the list of OLD_FILES as a parameter because the +# argument list will get too long. Using .for/.endfor make "loops" will make +# the Makefile parser segfault. + @exec 3<&0; \ + ${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \ + -V OLD_FILES -V "OLD_FILES:Musr/share/*.gz:R" | xargs -n1 | \ + while read file; do \ if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ chflags noschg "${DESTDIR}/$${file}" 2>/dev/null || true; \ - rm ${RM_I} "${DESTDIR}/$${file}"; \ + rm ${RM_I} "${DESTDIR}/$${file}" <&3; \ fi; \ done # Remove catpages without corresponding manpages. @@ -1368,14 +1375,16 @@ delete-old-files: while read catpage; do \ read manpage; \ if [ ! -e "$${manpage}" ]; then \ - rm ${RM_I} $${catpage} <&3 ; \ + rm ${RM_I} $${catpage} <&3; \ fi; \ done @echo ">>> Old files removed" check-old-files: @echo ">>> Checking for old files" - @for file in ${OLD_FILES} ${OLD_FILES:Musr/share/*.gz:R}; do \ + @${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \ + -V OLD_FILES -V "OLD_FILES:Musr/share/*.gz:R" | xargs -n1 | \ + while read file; do \ if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ echo "${DESTDIR}/$${file}"; \ fi; \ @@ -1386,24 +1395,29 @@ check-old-files: while read catpage; do \ read manpage; \ if [ ! -e "$${manpage}" ]; then \ - echo $${catpage} ; \ + echo $${catpage}; \ fi; \ done delete-old-libs: @echo ">>> Removing old libraries" @echo "${OLD_LIBS_MESSAGE}" | fmt - @for file in ${OLD_LIBS}; do \ + @exec 3<&0; \ + ${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \ + -V OLD_LIBS | xargs -n1 | \ + while read file; do \ if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ chflags noschg "${DESTDIR}/$${file}" 2>/dev/null || true; \ - rm ${RM_I} "${DESTDIR}/$${file}"; \ + rm ${RM_I} "${DESTDIR}/$${file}" <&3; \ fi; \ done @echo ">>> Old libraries removed" check-old-libs: @echo ">>> Checking for old libraries" - @for file in ${OLD_LIBS}; do \ + @${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \ + -V OLD_LIBS | xargs -n1 | \ + while read file; do \ if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ echo "${DESTDIR}/$${file}"; \ fi; \ @@ -1411,7 +1425,9 @@ check-old-libs: delete-old-dirs: @echo ">>> Removing old directories" - @for dir in ${OLD_DIRS}; do \ + @${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \ + -V OLD_DIRS | xargs -n1 | \ + while read dir; do \ if [ -d "${DESTDIR}/$${dir}" ]; then \ rmdir -v "${DESTDIR}/$${dir}" || true; \ elif [ -L "${DESTDIR}/$${dir}" ]; then \ @@ -1422,7 +1438,9 @@ delete-old-dirs: check-old-dirs: @echo ">>> Checking for old directories" - @for dir in ${OLD_DIRS}; do \ + @${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \ + -V OLD_DIRS | xargs -n1 | \ + while read dir; do \ if [ -d "${DESTDIR}/$${dir}" ]; then \ echo "${DESTDIR}/$${dir}"; \ elif [ -L "${DESTDIR}/$${dir}" ]; then \ Modified: projects/pf/pf45/ObsoleteFiles.inc ============================================================================== --- projects/pf/pf45/ObsoleteFiles.inc Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/ObsoleteFiles.inc Sun Apr 24 22:28:26 2011 (r221001) @@ -38,6 +38,26 @@ # xargs -n1 | sort | uniq -d; # done +# 20110417: removal of Objective-C support +OLD_FILES+=usr/include/objc/encoding.h +OLD_FILES+=usr/include/objc/hash.h +OLD_FILES+=usr/include/objc/NXConstStr.h +OLD_FILES+=usr/include/objc/objc-api.h +OLD_FILES+=usr/include/objc/objc-decls.h +OLD_FILES+=usr/include/objc/objc-list.h +OLD_FILES+=usr/include/objc/objc.h +OLD_FILES+=usr/include/objc/Object.h +OLD_FILES+=usr/include/objc/Protocol.h +OLD_FILES+=usr/include/objc/runtime.h +OLD_FILES+=usr/include/objc/sarray.h +OLD_FILES+=usr/include/objc/thr.h +OLD_FILES+=usr/include/objc/typedstream.h +OLD_FILES+=usr/lib/libobjc.a +OLD_FILES+=usr/lib/libobjc.so +OLD_FILES+=usr/lib/libobjc_p.a +OLD_FILES+=usr/libexec/cc1obj +OLD_LIBS+=usr/lib/libobjc.so.4 +OLD_DIRS+=usr/include/objc # 20110224: sticky.8 -> sticky.7 OLD_FILES+=usr/share/man/man8/sticky.8.gz # 20110220: new clang import which bumps version from 2.8 to 2.9 Modified: projects/pf/pf45/UPDATING ============================================================================== --- projects/pf/pf45/UPDATING Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/UPDATING Sun Apr 24 22:28:26 2011 (r221001) @@ -22,6 +22,63 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9. machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20110424: + The GENERIC kernels for all architectures now default to the new + CAM-based ATA stack. It means that all legacy ATA drivers were + removed and replaced by respective CAM drivers. If you are using + ATA device names in /etc/fstab or other places, make sure to update + them respectively (adX -> adaY, acdX -> cdY, afdX -> daY, astX -> saY, + where 'Y's are the sequential numbers starting from zero for each type + in order of detection, unless configured otherwise with tunables, + see cam(4)). + + ataraid(4) functionality is now supported by the RAID GEOM class. + To use it you can load geom_raid kernel module and use graid(8) tool + for management. Instead of /dev/arX device names, use /dev/raid/rX. + + No kernel config options or code have been removed, so if a problem + arises, please report it and optionally revert to the old ATA stack. + In order to do it you can remove from the kernel config: + options ATA_CAM + device ahci + device mvs + device siis + , and instead add back: + device atadisk # ATA disk drives + device ataraid # ATA RAID drives + device atapicd # ATAPI CDROM drives + device atapifd # ATAPI floppy drives + device atapist # ATAPI tape drives + options ATA_STATIC_ID # Static device numbering + +20110423: + The default NFS server has been changed to the new server, which + was referred to as the experimental server. If you need to switch + back to the old NFS server, you must now put the "-o" option on + both the mountd and nfsd commands. This can be done using the + mountd_flags and nfs_server_flags rc.conf variables until an + update to the rc scripts is committed, which is coming soon. + +20110418: + The GNU Objective-C runtime library (libobjc), and other Objective-C + related components have been removed from the base system. If you + require an Objective-C library, please use one of the available ports. + +20110331: + ath(4) has been split into bus- and device- modules. if_ath contains + the HAL, the TX rate control and the network device code. if_ath_pci + contains the PCI bus glue. For Atheros MIPS embedded systems, if_ath_ahb + contains the AHB glue. Users need to load both if_ath_pci and if_ath + in order to use ath on everything else. + + TO REPEAT: if_ath_ahb is not needed for normal users. Normal users only + need to load if_ath and if_ath_pci for ath(4) operation. + +20110314: + As part of the replacement of sysinstall, the process of building + release media has changed significantly. For details, please re-read + release(7), which has been updated to reflect the new build process. + 20110218: GNU binutils 2.17.50 (as of 2007-07-03) has been merged to -HEAD. This is the last available version under GPLv2. It brings a number of new Modified: projects/pf/pf45/bin/ps/extern.h ============================================================================== --- projects/pf/pf45/bin/ps/extern.h Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/bin/ps/extern.h Sun Apr 24 22:28:26 2011 (r221001) @@ -74,10 +74,15 @@ void rgroupname(KINFO *, VARENT *); void runame(KINFO *, VARENT *); void rvar(KINFO *, VARENT *); int s_comm(KINFO *); +int s_cputime(KINFO *); int s_label(KINFO *); +int s_loginclass(KINFO *); +int s_logname(KINFO *); int s_rgroupname(KINFO *); int s_runame(KINFO *); +int s_systime(KINFO *); int s_uname(KINFO *); +int s_usertime(KINFO *); void showkey(void); void started(KINFO *, VARENT *); void state(KINFO *, VARENT *); Modified: projects/pf/pf45/bin/ps/keyword.c ============================================================================== --- projects/pf/pf45/bin/ps/keyword.c Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/bin/ps/keyword.c Sun Apr 24 22:28:26 2011 (r221001) @@ -79,9 +79,9 @@ static VAR var[] = { CHAR, NULL, 0}, {"blocked", "", "sigmask", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, {"caught", "", "sigcatch", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, - {"class", "CLASS", NULL, LJUST, loginclass, NULL, MAXLOGNAME-1, 0, - CHAR, NULL, 0}, - {"comm", "COMMAND", NULL, LJUST|DSIZ, ucomm, s_comm, + {"class", "CLASS", NULL, LJUST, loginclass, s_loginclass, + MAXLOGNAME-1, 0, CHAR, NULL, 0}, + {"comm", "COMMAND", NULL, LJUST, ucomm, s_comm, COMMLEN + OCOMMLEN + 1, 0, CHAR, NULL, 0}, {"command", "COMMAND", NULL, COMM|LJUST|USER, command, NULL, 16, 0, CHAR, NULL, 0}, @@ -103,13 +103,13 @@ static VAR var[] = { 0}, {"ktrace", "KTRACE", NULL, 0, kvar, NULL, 8, KOFF(ki_traceflag), INT, "x", 0}, - {"label", "LABEL", NULL, LJUST|DSIZ, label, s_label, SHRT_MAX, 0, CHAR, + {"label", "LABEL", NULL, LJUST, label, s_label, SHRT_MAX, 0, CHAR, NULL, 0}, {"lim", "LIM", NULL, 0, maxrss, NULL, 5, 0, CHAR, NULL, 0}, {"lockname", "LOCK", NULL, LJUST, lockname, NULL, 6, 0, CHAR, NULL, 0}, - {"login", "LOGIN", NULL, LJUST, logname, NULL, MAXLOGNAME-1, 0, CHAR, - NULL, 0}, + {"login", "LOGIN", NULL, LJUST, logname, s_logname, MAXLOGNAME-1, + 0, CHAR, NULL, 0}, {"logname", "", "login", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, {"lstart", "STARTED", NULL, LJUST|USER, lstarted, NULL, 28, 0, CHAR, NULL, 0}, @@ -160,14 +160,14 @@ static VAR var[] = { 0}, {"rgid", "RGID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_rgid), UINT, UIDFMT, 0}, - {"rgroup", "RGROUP", NULL, LJUST|DSIZ, rgroupname, s_rgroupname, + {"rgroup", "RGROUP", NULL, LJUST, rgroupname, s_rgroupname, USERLEN, 0, CHAR, NULL, 0}, {"rss", "RSS", NULL, 0, kvar, NULL, 6, KOFF(ki_rssize), PGTOK, "ld", 0}, {"rtprio", "RTPRIO", NULL, 0, priorityr, NULL, 7, KOFF(ki_pri), CHAR, NULL, 0}, {"ruid", "RUID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_ruid), UINT, UIDFMT, 0}, - {"ruser", "RUSER", NULL, LJUST|DSIZ, runame, s_runame, USERLEN, + {"ruser", "RUSER", NULL, LJUST, runame, s_runame, USERLEN, 0, CHAR, NULL, 0}, {"sid", "SID", NULL, 0, kvar, NULL, PIDLEN, KOFF(ki_sid), UINT, PIDFMT, 0}, @@ -189,12 +189,14 @@ static VAR var[] = { UINT, UIDFMT, 0}, {"svuid", "SVUID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_svuid), UINT, UIDFMT, 0}, - {"systime", "SYSTIME", NULL, USER, systime, NULL, 9, 0, CHAR, NULL, 0}, + {"systime", "SYSTIME", NULL, USER, systime, s_systime, 15, 0, CHAR, + NULL, 0}, {"tdaddr", "TDADDR", NULL, 0, kvar, NULL, sizeof(void *) * 2, KOFF(ki_tdaddr), KPTR, "lx", 0}, {"tdev", "TDEV", NULL, 0, tdev, NULL, 5, 0, CHAR, NULL, 0}, {"tdnam", "TDNAM", NULL, LJUST, tdnam, NULL, COMMLEN, 0, CHAR, NULL, 0}, - {"time", "TIME", NULL, USER, cputime, NULL, 9, 0, CHAR, NULL, 0}, + {"time", "TIME", NULL, USER, cputime, s_cputime, 15, 0, CHAR, + NULL, 0}, {"tpgid", "TPGID", NULL, 0, kvar, NULL, 4, KOFF(ki_tpgid), UINT, PIDFMT, 0}, {"tsid", "TSID", NULL, 0, kvar, NULL, PIDLEN, KOFF(ki_tsid), UINT, @@ -202,17 +204,17 @@ static VAR var[] = { {"tsiz", "TSIZ", NULL, 0, kvar, NULL, 4, KOFF(ki_tsize), PGTOK, "ld", 0}, {"tt", "TT ", NULL, 0, tname, NULL, 4, 0, CHAR, NULL, 0}, {"tty", "TTY", NULL, LJUST, longtname, NULL, 8, 0, CHAR, NULL, 0}, - {"ucomm", "UCOMM", NULL, LJUST|DSIZ, ucomm, s_comm, + {"ucomm", "UCOMM", NULL, LJUST, ucomm, s_comm, COMMLEN + OCOMMLEN + 1, 0, CHAR, NULL, 0}, {"uid", "UID", NULL, 0, kvar, NULL, UIDLEN, KOFF(ki_uid), UINT, UIDFMT, 0}, {"upr", "UPR", NULL, 0, upr, NULL, 3, 0, CHAR, NULL, 0}, {"uprocp", "UPROCP", NULL, 0, kvar, NULL, sizeof(void *) * 2, KOFF(ki_paddr), KPTR, "lx", 0}, - {"user", "USER", NULL, LJUST|DSIZ, uname, s_uname, USERLEN, 0, CHAR, + {"user", "USER", NULL, LJUST, uname, s_uname, USERLEN, 0, CHAR, NULL, 0}, - {"usertime", "USERTIME", NULL, USER, usertime, NULL, 9, 0, CHAR, NULL, - 0}, + {"usertime", "USERTIME", NULL, USER, usertime, s_usertime, 15, 0, + CHAR, NULL, 0}, {"usrpri", "", "upr", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, {"vsize", "", "vsz", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, {"vsz", "VSZ", NULL, 0, vsize, NULL, 6, 0, CHAR, NULL, 0}, Modified: projects/pf/pf45/bin/ps/print.c ============================================================================== --- projects/pf/pf45/bin/ps/print.c Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/bin/ps/print.c Sun Apr 24 22:28:26 2011 (r221001) @@ -570,11 +570,20 @@ printtime(KINFO *k, VARENT *ve, long sec secs += psecs / 100; psecs = psecs % 100; } - (void)snprintf(obuff, sizeof(obuff), "%3ld:%02ld%c%02ld", + (void)snprintf(obuff, sizeof(obuff), "%ld:%02ld%c%02ld", secs / 60, secs % 60, decimal_point, psecs); (void)printf("%*s", v->width, obuff); } +static int +sizetime(long secs) +{ + + if (secs < 60) + return (7); + return (log10(secs / 60) + 7); +} + void cputime(KINFO *k, VARENT *ve) { @@ -908,7 +917,7 @@ loginclass(KINFO *k, VARENT *ve) * and limits don't apply to system processes. */ if (k->ki_p->ki_flag & P_SYSTEM) { - (void)printf("%-*s", v->width, " -"); + (void)printf("%-*s", v->width, "-"); return; } s = k->ki_p->ki_loginclass; @@ -930,6 +939,17 @@ s_comm(KINFO *k) } int +s_cputime(KINFO *k) +{ + long secs; + + secs = k->ki_p->ki_runtime / 1000000; + if (sumrusage) + secs += k->ki_p->ki_childtime.tv_sec; + return (sizetime(secs)); +} + +int s_label(KINFO *k) { char *string = NULL; @@ -948,3 +968,52 @@ s_label(KINFO *k) mac_free(proclabel); return (size); } + +int +s_loginclass(KINFO *k) +{ + char *s; + + if (k->ki_p->ki_flag & P_SYSTEM) + return (1); + + s = k->ki_p->ki_loginclass; + if (s == NULL) + return (1); + + return (strlen(s)); +} + +int +s_logname(KINFO *k) +{ + char *s; + + s = k->ki_p->ki_login; + if (s == NULL) + return (1); + + return (strlen(s)); +} + +int +s_systime(KINFO *k) +{ + long secs; + + secs = k->ki_p->ki_rusage.ru_stime.tv_sec; + if (sumrusage) + secs += k->ki_p->ki_childstime.tv_sec; + return (sizetime(secs)); +} + +int +s_usertime(KINFO *k) +{ + long secs; + + secs = k->ki_p->ki_rusage.ru_utime.tv_sec; + if (sumrusage) + secs += k->ki_p->ki_childutime.tv_sec; + return (sizetime(secs)); +} Modified: projects/pf/pf45/bin/ps/ps.1 ============================================================================== --- projects/pf/pf45/bin/ps/ps.1 Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/bin/ps/ps.1 Sun Apr 24 22:28:26 2011 (r221001) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd March 16, 2011 +.Dd April 18, 2011 .Dt PS 1 .Os .Sh NAME @@ -130,7 +130,10 @@ If either of the and .Fl r options are also used, they control how sibling processes are sorted -relative to eachother. +relative to each other. +Note that this option has no effect if the +.Dq command +column is not the last column displayed. .It Fl e Display the environment as well. .It Fl f @@ -244,9 +247,13 @@ If the option is specified more than once, .Nm will use as many columns as necessary without regard for your window size. +Note that this option has no effect if the +.Dq command +column is not the last column displayed. .It Fl X When displaying processes matched by other options, skip any processes which do not have a controlling terminal. +This is the default behaviour. .It Fl x When displaying processes matched by other options, include processes which do not have a controlling terminal. Modified: projects/pf/pf45/bin/ps/ps.c ============================================================================== --- projects/pf/pf45/bin/ps/ps.c Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/bin/ps/ps.c Sun Apr 24 22:28:26 2011 (r221001) @@ -1078,7 +1078,7 @@ scanvars(void) STAILQ_FOREACH(vent, &varlist, next_ve) { v = vent->var; - if (v->flag & DSIZ) { + if (v->sproc != NULL) { v->dwidth = v->width; v->width = 0; } @@ -1098,9 +1098,9 @@ dynsizevars(KINFO *ki) STAILQ_FOREACH(vent, &varlist, next_ve) { v = vent->var; - if (!(v->flag & DSIZ)) + if (v->sproc == NULL) continue; - i = (v->sproc)( ki); + i = (v->sproc)(ki); if (v->width < i) v->width = i; if (v->width > v->dwidth) Modified: projects/pf/pf45/bin/ps/ps.h ============================================================================== --- projects/pf/pf45/bin/ps/ps.h Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/bin/ps/ps.h Sun Apr 24 22:28:26 2011 (r221001) @@ -62,12 +62,11 @@ typedef struct var { #define COMM 0x01 /* needs exec arguments and environment (XXX) */ #define LJUST 0x02 /* left adjust on output (trailing blanks) */ #define USER 0x04 /* needs user structure */ -#define DSIZ 0x08 /* field size is dynamic*/ #define INF127 0x10 /* values >127 displayed as 127 */ u_int flag; /* output routine */ void (*oproc)(struct kinfo *, struct varent *); - /* sizing routine*/ + /* sizing routine */ int (*sproc)(struct kinfo *); short width; /* printing width */ /* Modified: projects/pf/pf45/bin/setfacl/setfacl.1 ============================================================================== --- projects/pf/pf45/bin/setfacl/setfacl.1 Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/bin/setfacl/setfacl.1 Sun Apr 24 22:28:26 2011 (r221001) @@ -1,5 +1,6 @@ .\"- .\" Copyright (c) 2001 Chris D. Faulhaber +.\" Copyright (c) 2011 Edward Tomasz Napierała .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -25,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 27, 2010 +.Dd April 9, 2011 .Dt SETFACL 1 .Os .Sh NAME @@ -307,7 +308,7 @@ Permissions in long form are separated b .Ql / character; in short form, they are concatenated together. Valid permissions are: -.Bl -tag -width ".Dv short" +.Bl -tag -width ".Dv modify_set" .It Short Long .It r @@ -339,6 +340,20 @@ write_owner .It S synchronize .El +.Pp +In addition, the following permission sets may be used: +.Bl -tag -width ".Dv modify_set" +.It Set +Permissions +.It full_set +all permissions, as shown above +.It modify_set +all permissions except write_acl and write_owner +.It read_set +read_data, read_attributes, read_xattr and read_acl +.It write_set +write_data, append_data, write_attributes and write_xattr +.El .It Ar "ACL inheritance flags" Inheritance flags may be specified in either short or long form. Short and long forms may not be mixed. Modified: projects/pf/pf45/bin/sh/error.h ============================================================================== --- projects/pf/pf45/bin/sh/error.h Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/bin/sh/error.h Sun Apr 24 22:28:26 2011 (r221001) @@ -57,6 +57,7 @@ extern volatile sig_atomic_t exception; #define EXINT 0 /* SIGINT received */ #define EXERROR 1 /* a generic error */ #define EXEXEC 2 /* command execution failed */ +#define EXEXIT 3 /* call exitshell(exitstatus) */ /* Modified: projects/pf/pf45/bin/sh/eval.c ============================================================================== --- projects/pf/pf45/bin/sh/eval.c Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/bin/sh/eval.c Sun Apr 24 22:28:26 2011 (r221001) @@ -179,7 +179,7 @@ evalstring(char *s, int flags) if (!any) exitstatus = 0; if (flags_exit) - exitshell(exitstatus); + exraise(EXEXIT); } @@ -285,8 +285,10 @@ evaltree(union node *n, int flags) out: if (pendingsigs) dotrap(); - if ((flags & EV_EXIT) || (eflag && exitstatus != 0 && do_etest)) + if (eflag && exitstatus != 0 && do_etest) exitshell(exitstatus); + if (flags & EV_EXIT) + exraise(EXEXIT); } @@ -440,8 +442,8 @@ evalredir(union node *n, int flags) handler = savehandler; e = exception; + popredir(); if (e == EXERROR || e == EXEXEC) { - popredir(); if (in_redirect) { exitstatus = 2; return; @@ -927,8 +929,7 @@ evalcommand(union node *cmd, int flags, if (setjmp(jmploc.loc)) { freeparam(&shellparam); shellparam = saveparam; - if (exception == EXERROR || exception == EXEXEC) - popredir(); + popredir(); unreffunc(cmdentry.u.func); poplocalvars(); localvars = savelocalvars; @@ -943,10 +944,8 @@ evalcommand(union node *cmd, int flags, for (sp = varlist.list ; sp ; sp = sp->next) mklocal(sp->text); exitstatus = oexitstatus; - if (flags & EV_TESTED) - evaltree(getfuncnode(cmdentry.u.func), EV_TESTED); - else - evaltree(getfuncnode(cmdentry.u.func), 0); + evaltree(getfuncnode(cmdentry.u.func), + flags & (EV_TESTED | EV_EXIT)); INTOFF; unreffunc(cmdentry.u.func); poplocalvars(); @@ -982,7 +981,10 @@ evalcommand(union node *cmd, int flags, savehandler = handler; if (setjmp(jmploc.loc)) { e = exception; - exitstatus = (e == EXINT)? SIGINT+128 : 2; + if (e == EXINT) + exitstatus = SIGINT+128; + else if (e != EXEXIT) + exitstatus = 2; goto cmddone; } handler = &jmploc; @@ -1018,8 +1020,7 @@ cmddone: backcmd->nleft = memout.nextc - memout.buf; memout.buf = NULL; } - if (cmdentry.u.index != EXECCMD && - (e == -1 || e == EXERROR || e == EXEXEC)) + if (cmdentry.u.index != EXECCMD) popredir(); if (e != -1) { if ((e != EXERROR && e != EXEXEC) Modified: projects/pf/pf45/bin/sh/main.c ============================================================================== --- projects/pf/pf45/bin/sh/main.c Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/bin/sh/main.c Sun Apr 24 22:28:26 2011 (r221001) @@ -111,7 +111,8 @@ main(int argc, char *argv[]) break; } - if (state == 0 || iflag == 0 || ! rootshell) + if (state == 0 || iflag == 0 || ! rootshell || + exception == EXEXIT) exitshell(exitstatus); reset(); if (exception == EXINT) Modified: projects/pf/pf45/bin/sh/parser.c ============================================================================== --- projects/pf/pf45/bin/sh/parser.c Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/bin/sh/parser.c Sun Apr 24 22:28:26 2011 (r221001) @@ -1572,8 +1572,8 @@ varname: pungetc(); } STPUTC('=', out); - if (subtype != VSLENGTH && (state[level].syntax == DQSYNTAX || - state[level].syntax == ARISYNTAX)) + if (state[level].syntax == DQSYNTAX || + state[level].syntax == ARISYNTAX) flags |= VSQUOTE; *(stackblock() + typeloc) = subtype | flags; if (subtype != VSNORMAL) { Modified: projects/pf/pf45/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c ============================================================================== --- projects/pf/pf45/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_diff.c Sun Apr 24 22:28:26 2011 (r221001) @@ -138,8 +138,10 @@ stream_bytes(FILE *fp, const char *strin while (*string) { if (*string > ' ' && *string != '\\' && *string < '\177') (void) fprintf(fp, "%c", *string++); - else - (void) fprintf(fp, "\\%03o", *string++); + else { + (void) fprintf(fp, "\\%03hho", + (unsigned char)*string++); + } } } Modified: projects/pf/pf45/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c ============================================================================== --- projects/pf/pf45/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Sun Apr 24 22:28:26 2011 (r221001) @@ -734,12 +734,13 @@ zfs_path_to_zhandle(libzfs_handle_t *hdl { struct statfs sfs; - if (statfs(path, &sfs) != 0) { + ret = statfs(path, &sfs); + if (ret == 0) + statfs2mnttab(&sfs, &entry); + else { (void) fprintf(stderr, "%s: %s\n", path, strerror(errno)); - ret = -1; } - statfs2mnttab(&sfs, &entry); } #endif /* sun */ if (ret != 0) { Modified: projects/pf/pf45/contrib/bsnmp/snmpd/main.c ============================================================================== --- projects/pf/pf45/contrib/bsnmp/snmpd/main.c Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/contrib/bsnmp/snmpd/main.c Sun Apr 24 22:28:26 2011 (r221001) @@ -1214,7 +1214,8 @@ snmpd_input(struct port_input *pi, struc /* * In case of AF_INET{6} peer, do hosts_access(5) check. */ - if (inet_ntop(pi->peer->sa_family, + if (pi->peer->sa_family != AF_LOCAL && + inet_ntop(pi->peer->sa_family, &((const struct sockaddr_in *)(const void *)pi->peer)->sin_addr, client, sizeof(client)) != NULL) { request_set(&req, RQ_CLIENT_ADDR, client, 0); @@ -1223,7 +1224,7 @@ snmpd_input(struct port_input *pi, struc eval_client(&req)); return (-1); } - } else + } else if (pi->peer->sa_family != AF_LOCAL) syslog(LOG_ERR, "inet_ntop(): %m"); #endif Modified: projects/pf/pf45/contrib/dialog/CHANGES ============================================================================== --- projects/pf/pf45/contrib/dialog/CHANGES Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/contrib/dialog/CHANGES Sun Apr 24 22:28:26 2011 (r221001) @@ -1,9 +1,77 @@ --- $Id: CHANGES,v 1.300 2010/04/28 21:27:22 tom Exp $ +-- $Id: CHANGES,v 1.333 2011/03/02 10:06:37 tom Exp $ -- Thomas E. Dickey This version of dialog was originally from a Debian snapshot. I've done this to it: +2011/03/02 + + add --prgbox and --programbox (adapted from patch by David Boyd). + + add sl.po from + http://translationproject.org/latest/dialog/ + + fix timeouts from 2011/01/18, which were being interpreted as + milliseconds rather than seconds (report by Luis Moreira). + +2011/01/18 + + fix inconsistency in return-codes for textbox when help-button is + used by making dlg_exit_buttoncode() a wrapper for + dlg_ok_buttoncode(). + + modify pause widget to use dlg_ok_buttoncode(), so help-button works. + + correct two infobox sample scripts, which did not pass extra + command-line parameters due to quoting problems. + + add a limit-check to the timebox widget (patch by Garrett Cooper). + + modify --trace option to also trace the command-line parameters. + + account for combining characters when wrapping text (Debian #570634). + + correct handling of SIGWINCH in gauge widget (Debian #305705). + + add gauge_color, to make guage's progress-bar distinct from + title_color (request by Dominic Derdau). + + update fi.po from + http://translationproject.org/latest/dialog/ + as well as resync line-numbers in the other po-files. + + modify configure script and dialog program to build with NetBSD's + wide-character curses functions, including workarounds for its + incorrect WACS_xxx definitions. Some of the UTF-8 examples work. + + add back-tab for traversal of tailboxbg widgets, for symmetry with + tab-traversal. + + reduce flicker in tailboxbg by checking if the input file size has + changed. + + modify internals of callbacks to avoid blocking reads of their + associated files by keyboard input. + + add command-line option --no-mouse, to suppress use of mouse. + + add configure option --enable-header-subdir to allow the header files + to be installed into a subdirectory named for the package. + + modify dlg_restore_vars() to retain the updated values of + input_result and input_length, eliminating the need for a caller to + provide their own user buffer (prompted by report by Thiago Bimbatti + Felicio). + + add a null-pointer check in show_result() for + dialog_vars.input_result, and ensure it is set to null after freeing + (prompted by report by Thiago Bimbatti Felicio). + + change order of -I options in CPPFLAGS (report by Michel Feldheim) + + modify pause-widget so that it no longer exits when an unrecognized + key is pressed (patch by Creidieki M Crouch). + + add --with-package option to configure script to allow renaming + of the dialog program and library, to support the package scripts. + + add Debian and RPM package scripts for test-builds. + + several improvements to configure script: + + quote params of ifelse() + + change obsolete ${name-value} to standard ${name:-value} + + use new macros CF_ADD_LIB/CF_ADD_LIBS to enforce consistency. + + AM_GNU_GETTEXT, drop $MKINSTALLDIRS, use "mkdir -p" consistently. + + CF_ADD_SUBDIR_PATH, workaround - if $prefix was not mkdir'd yet, no + directories were added. + + CF_BUNDLED_INTL, add --with-textdomain option, to use with lynx-dev + package + + CF_FIND_LINKAGE, simplify save/restore of $LIBS + + CF_GCC_WARNINGS, fix for Mac OS X (compiler makes conftest.dSYM + directory) + + CF_HEADER_PATH, don't search for variations of everything in the + current include-path + + CF_WITH_CURSES_DIR, move the calls to CF_ADD_INCDIR and + CF_ADD_LIBDIR for the curses-directory here, from + CF_NCURSES_CPPFLAGS and CF_NCURSES_LDFLAGS, so it will work even + with the default checking, e.g., no --with-ncurses, etc. + + updated config.guess, config.sub + 2010/04/28 + several improvements to configure script: + modify CF_CURSES_TERM_H to handle cases such as cygwin where @@ -278,7 +346,7 @@ to it: + make --program-prefix, etc., work in configure script, e.g., to make program install as "cdialog". This does not alter the library name. + add install-bin, install-man (and uninstall) rules to makefile. - + updates for configure script macros (originally vile, lynx, xterm): + + updates for configure script macros (originally vile, lynx, xterm): AM_PATH_PROG_WITH_TEST, AM_WITH_NLS, CF_CURSES_CPPFLAGS, CF_CURSES_LIBS, CF_INCLUDE_DIRS, CF_LARGEFILE, CF_MAKEFLAGS, CF_PATH_SYNTAX, CF_SUBDIR_PATH, CF_SUBST, CF_WITH_DBMALLOC, @@ -407,7 +475,7 @@ to it: + fix marker in textbox.c to make it disappear at the top of the file (report by Patrick J. Volkerding). + fix marker shown in arrows.c for checklists, etc., which was "(+)" - where it should have been "(-)" (report/patch by Patrick J. + where it should have been "(-)" (report/patch by Patrick J. Volkerding). + fix --input-fd (changes in glibc since 2003 made dialog hang on exit due to the way dialog updated stdin). Modified: projects/pf/pf45/contrib/dialog/VERSION ============================================================================== --- projects/pf/pf45/contrib/dialog/VERSION Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/contrib/dialog/VERSION Sun Apr 24 22:28:26 2011 (r221001) @@ -1 +1 @@ -7:1:0 1.1 20100428 +9:0:0 1.1 20110302 Modified: projects/pf/pf45/contrib/dialog/aclocal.m4 ============================================================================== --- projects/pf/pf45/contrib/dialog/aclocal.m4 Sun Apr 24 22:12:00 2011 (r221000) +++ projects/pf/pf45/contrib/dialog/aclocal.m4 Sun Apr 24 22:28:26 2011 (r221001) @@ -1,13 +1,37 @@ dnl macros used for DIALOG configure script -dnl Copyright 1999-2009,2010 -- Thomas E. Dickey +dnl $Id: aclocal.m4,v 1.80 2011/01/18 23:17:01 tom Exp $ +dnl --------------------------------------------------------------------------- +dnl Copyright 1999-2010,2011 -- Thomas E. Dickey +dnl +dnl Permission is hereby granted, free of charge, to any person obtaining a +dnl copy of this software and associated documentation files (the +dnl "Software"), to deal in the Software without restriction, including +dnl without limitation the rights to use, copy, modify, merge, publish, +dnl distribute, distribute with modifications, sublicense, and/or sell +dnl copies of the Software, and to permit persons to whom the Software is +dnl furnished to do so, subject to the following conditions: +dnl +dnl The above copyright notice and this permission notice shall be included +dnl in all copies or portions of the Software. +dnl +dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. +dnl +dnl Except as contained in this notice, the name(s) of the above copyright +dnl holders shall not be used in advertising or otherwise to promote the +dnl sale, use or other dealings in this Software without prior written +dnl authorization. dnl dnl see dnl http://invisible-island.net/autoconf/ -dnl -dnl $Id: aclocal.m4,v 1.75 2010/04/28 20:36:28 tom Exp $ dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- -dnl AM_GNU_GETTEXT version: 11 updated: 2004/01/26 20:58:40 +dnl AM_GNU_GETTEXT version: 12 updated: 2010/06/19 07:02:11 dnl -------------- dnl Usage: Just like AM_WITH_NLS, which see. AC_DEFUN([AM_GNU_GETTEXT], @@ -68,25 +92,6 @@ strdup strtoul tsearch __argz_count __ar fi fi - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly - dnl find the mkinstalldirs script in another subdir but ($top_srcdir). - dnl Try to locate it. - dnl changed mkinstalldirs to mkdirs.sh for Lynx /je spath 1998-Aug-21 - dnl added check for separate locations of scripts -mirabile 2004-Jan-18 - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkdirs.sh" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkdirs.sh" - fi - if test -n "$GNUSYSTEM_AUX_DIR" ; then - if test -e "${GNUSYSTEM_AUX_DIR}/mkinstalldirs"; then - MKINSTALLDIRS="${GNUSYSTEM_AUX_DIR}/mkinstalldirs" - fi - fi - AC_SUBST(MKINSTALLDIRS) - dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], []) AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) @@ -277,7 +282,7 @@ fi AC_SUBST($1)dnl ])dnl dnl --------------------------------------------------------------------------- -dnl AM_WITH_NLS version: 23 updated: 2009/01/11 19:52:42 +dnl AM_WITH_NLS version: 24 updated: 2010/06/20 09:24:28 dnl ----------- dnl Inserted as requested by gettext 0.10.40 dnl File from /usr/share/aclocal @@ -369,7 +374,7 @@ AC_DEFUN([AM_WITH_NLS], CATOBJEXT=NONE cf_save_LIBS_1="$LIBS" - LIBS="$LIBICONV $LIBS" + CF_ADD_LIBS($LIBICONV) AC_CACHE_CHECK([for libintl.h and gettext()], cf_cv_func_gettext,[ CF_FIND_LINKAGE(CF__INTL_HEAD, CF__INTL_BODY, @@ -597,7 +602,7 @@ define(CF_AC_PREREQ, AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])), [$1], [$2], [$3])])dnl dnl --------------------------------------------------------------------------- -dnl CF_ADD_CFLAGS version: 9 updated: 2010/01/09 11:05:50 +dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42 dnl ------------- dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS dnl The second parameter if given makes this macro verbose. @@ -667,17 +672,17 @@ esac done if test -n "$cf_new_cflags" ; then - ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)]) + ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)]) CFLAGS="$CFLAGS $cf_new_cflags" fi if test -n "$cf_new_cppflags" ; then - ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)]) + ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)]) CPPFLAGS="$CPPFLAGS $cf_new_cppflags" fi if test -n "$cf_new_extra_cppflags" ; then - ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)]) + ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)]) EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" fi @@ -685,7 +690,7 @@ AC_SUBST(EXTRA_CPPFLAGS) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_ADD_INCDIR version: 12 updated: 2009/01/18 10:00:47 +dnl CF_ADD_INCDIR version: 13 updated: 2010/05/26 16:44:57 dnl ------------- dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's dnl redundant. We don't normally need to add -I/usr/local/include for gcc, @@ -728,7 +733,7 @@ if test -n "$1" ; then if test "$cf_have_incdir" = no ; then CF_VERBOSE(adding $cf_add_incdir to include-path) - ifelse($2,,CPPFLAGS,$2)="$ifelse($2,,CPPFLAGS,$2) -I$cf_add_incdir" + ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir" cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'` test "$cf_top_incdir" = "$cf_add_incdir" && break @@ -742,7 +747,15 @@ if test -n "$1" ; then fi ])dnl *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Apr 25 17:34:10 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EBF001065672; Mon, 25 Apr 2011 17:34:10 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C14CB8FC13; Mon, 25 Apr 2011 17:34:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3PHYArH085694; Mon, 25 Apr 2011 17:34:10 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3PHYAxe085692; Mon, 25 Apr 2011 17:34:10 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104251734.p3PHYAxe085692@svn.freebsd.org> From: Marcel Moolenaar Date: Mon, 25 Apr 2011 17:34:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221024 - projects/altix/sys/ia64/ia64 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2011 17:34:11 -0000 Author: marcel Date: Mon Apr 25 17:34:10 2011 New Revision: 221024 URL: http://svn.freebsd.org/changeset/base/221024 Log: Hack the SAPIC interaction. Eventually this will become a KOBJ interface. For now, since I'm not getting any H/W interrupts at all, just make things visible. Modified: projects/altix/sys/ia64/ia64/interrupt.c Modified: projects/altix/sys/ia64/ia64/interrupt.c ============================================================================== --- projects/altix/sys/ia64/ia64/interrupt.c Mon Apr 25 17:13:40 2011 (r221023) +++ projects/altix/sys/ia64/ia64/interrupt.c Mon Apr 25 17:34:10 2011 (r221024) @@ -164,7 +164,10 @@ ia64_intr_eoi(void *arg) i = ia64_intrs[xiv]; KASSERT(i != NULL, ("%s", __func__)); - sapic_eoi(i->sapic, xiv); + if (i->sapic != NULL) + sapic_eoi(i->sapic, xiv); + else + printf("XXX-INTR: %s: XIV=%u\n", __func__, xiv); } static void @@ -175,8 +178,11 @@ ia64_intr_mask(void *arg) i = ia64_intrs[xiv]; KASSERT(i != NULL, ("%s", __func__)); - sapic_mask(i->sapic, i->irq); - sapic_eoi(i->sapic, xiv); + if (i->sapic != NULL) { + sapic_mask(i->sapic, i->irq); + sapic_eoi(i->sapic, xiv); + } else + printf("XXX-INTR: %s: XIV=%u\n", __func__, xiv); } static void @@ -187,7 +193,10 @@ ia64_intr_unmask(void *arg) i = ia64_intrs[xiv]; KASSERT(i != NULL, ("%s", __func__)); - sapic_unmask(i->sapic, i->irq); + if (i->sapic != NULL) + sapic_unmask(i->sapic, i->irq); + else + printf("XXX-INTR: %s: XIV=%u\n", __func__, xiv); } static int @@ -350,7 +359,8 @@ ia64_bind_intr(void) cpu = (cpu == 0) ? MAXCPU - 1 : cpu - 1; pc = cpuid_to_pcpu[cpu]; } while (pc == NULL || !pc->pc_md.awake); - sapic_bind_intr(i->irq, pc); + if (i->sapic != NULL) + sapic_bind_intr(i->irq, pc); } } @@ -378,8 +388,6 @@ ia64_handle_intr(struct trapframe *tf) critical_enter(); do { - CTR2(KTR_INTR, "INTR: ITC=%u, XIV=%u", - (u_int)tf->tf_special.ifa, xiv); (ia64_handler[xiv])(td, xiv, tf); ia64_set_eoi(0); ia64_srlz_d(); @@ -415,6 +423,8 @@ ia64_ih_irq(struct thread *td, u_int xiv PCPU_INC(md.stats.pcs_nhwints); + printf("INTR: ITC=%u, XIV=%u", (u_int)tf->tf_special.ifa, xiv); + /* Find the interrupt thread for this XIV. */ i = ia64_intrs[xiv]; KASSERT(i != NULL, ("%s: unassigned XIV", __func__)); @@ -442,7 +452,10 @@ db_print_xiv(u_int xiv, int always) i = ia64_intrs[xiv]; if (i != NULL) { db_printf("XIV %u (%p): ", xiv, i); - sapic_print(i->sapic, i->irq); + if (i->sapic != NULL) + sapic_print(i->sapic, i->irq); + else + db_printf("\n"); } else if (always) db_printf("XIV %u: unassigned\n", xiv); } From owner-svn-src-projects@FreeBSD.ORG Mon Apr 25 22:32:10 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EEF8D106564A; Mon, 25 Apr 2011 22:32:10 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DE79F8FC12; Mon, 25 Apr 2011 22:32:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3PMWAvI095172; Mon, 25 Apr 2011 22:32:10 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3PMWAnn095170; Mon, 25 Apr 2011 22:32:10 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201104252232.p3PMWAnn095170@svn.freebsd.org> From: Mark Linimon Date: Mon, 25 Apr 2011 22:32:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221033 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2011 22:32:11 -0000 Author: linimon (doc,ports committer) Date: Mon Apr 25 22:32:10 2011 New Revision: 221033 URL: http://svn.freebsd.org/changeset/base/221033 Log: Generalize path to qmanager. This is copied from production on -west. Modified: projects/portbuild/scripts/dopackages Modified: projects/portbuild/scripts/dopackages ============================================================================== --- projects/portbuild/scripts/dopackages Mon Apr 25 22:22:51 2011 (r221032) +++ projects/portbuild/scripts/dopackages Mon Apr 25 22:32:10 2011 (r221033) @@ -237,7 +237,7 @@ dobuild() { echo "================================================" echo "started at $(date)" start=$(date +%s) - ${pb}/qmanager/packagebuild ${arch} ${branch} ${buildid} > ${builddir}/${journalname} 2>&1 < /dev/null + ${QMANAGER_PATH}/packagebuild ${arch} ${branch} ${buildid} > ${builddir}/${journalname} 2>&1 < /dev/null result=$? if [ $result -ne 0 ]; then echo "ERROR: packagebuild ${arch} ${branch} ${buildid} failed: see ${builddir}/${journalname} for details" From owner-svn-src-projects@FreeBSD.ORG Mon Apr 25 22:36:43 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9F2C01065680; Mon, 25 Apr 2011 22:36:43 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 74B888FC17; Mon, 25 Apr 2011 22:36:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3PMahXV095337; Mon, 25 Apr 2011 22:36:43 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3PMahSh095336; Mon, 25 Apr 2011 22:36:43 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201104252236.p3PMahSh095336@svn.freebsd.org> From: Mark Linimon Date: Mon, 25 Apr 2011 22:36:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221034 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2011 22:36:43 -0000 Author: linimon (doc,ports committer) Date: Mon Apr 25 22:36:43 2011 New Revision: 221034 URL: http://svn.freebsd.org/changeset/base/221034 Log: This is long obsolete. Deleted: projects/portbuild/scripts/releasemachine From owner-svn-src-projects@FreeBSD.ORG Mon Apr 25 22:38:28 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 693E910657C3; Mon, 25 Apr 2011 22:38:28 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3EC818FC1A; Mon, 25 Apr 2011 22:38:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3PMcSBX095458; Mon, 25 Apr 2011 22:38:28 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3PMcSxj095457; Mon, 25 Apr 2011 22:38:28 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201104252238.p3PMcSxj095457@svn.freebsd.org> From: Mark Linimon Date: Mon, 25 Apr 2011 22:38:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221036 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2011 22:38:28 -0000 Author: linimon (doc,ports committer) Date: Mon Apr 25 22:38:27 2011 New Revision: 221036 URL: http://svn.freebsd.org/changeset/base/221036 Log: This has not been used for quite some time. Deleted: projects/portbuild/scripts/prunebad From owner-svn-src-projects@FreeBSD.ORG Mon Apr 25 22:39:59 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4987B1065675; Mon, 25 Apr 2011 22:39:59 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 395018FC13; Mon, 25 Apr 2011 22:39:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3PMdx9t095533; Mon, 25 Apr 2011 22:39:59 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3PMdxRA095531; Mon, 25 Apr 2011 22:39:59 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201104252239.p3PMdxRA095531@svn.freebsd.org> From: Mark Linimon Date: Mon, 25 Apr 2011 22:39:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221037 - projects/portbuild/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2011 22:39:59 -0000 Author: linimon (doc,ports committer) Date: Mon Apr 25 22:39:58 2011 New Revision: 221037 URL: http://svn.freebsd.org/changeset/base/221037 Log: Add path to qmanager. Has been running in production on -west for quite some time. Modified: projects/portbuild/conf/server.conf Modified: projects/portbuild/conf/server.conf ============================================================================== --- projects/portbuild/conf/server.conf Mon Apr 25 22:38:27 2011 (r221036) +++ projects/portbuild/conf/server.conf Mon Apr 25 22:39:58 2011 (r221037) @@ -72,6 +72,7 @@ PDISPATCH_TIMEOUT=360000 # qmanager definitions (note: Python script, so avoid {}) # +QMANAGER_PATH=/var/portbuild/evil/qmanager QMANAGER_DATABASE_FILE=qdb.sl3 QMANAGER_SOCKET_FILE=/tmp/.qmgr From owner-svn-src-projects@FreeBSD.ORG Mon Apr 25 22:53:55 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 09A23106566B; Mon, 25 Apr 2011 22:53:55 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D30DC8FC19; Mon, 25 Apr 2011 22:53:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3PMrskI095963; Mon, 25 Apr 2011 22:53:54 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3PMrsTw095962; Mon, 25 Apr 2011 22:53:54 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201104252253.p3PMrsTw095962@svn.freebsd.org> From: Mark Linimon Date: Mon, 25 Apr 2011 22:53:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221038 - projects/portbuild/crontabs X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2011 22:53:55 -0000 Author: linimon (doc,ports committer) Date: Mon Apr 25 22:53:54 2011 New Revision: 221038 URL: http://svn.freebsd.org/changeset/base/221038 Log: Sample crontabs on pointyhat instances. Added: projects/portbuild/crontabs/ projects/portbuild/crontabs/root Added: projects/portbuild/crontabs/root ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/crontabs/root Mon Apr 25 22:53:54 2011 (r221038) @@ -0,0 +1,33 @@ +PATH=/root/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/var/portbuild/scripts +TERM=xterm + +# +# Update logs +# +2,12,22,32,42,52 * * * * su ports-i386 -c "lockf -k -t 0 /var/portbuild/errorlogs/lock /var/portbuild/scripts/dologs i386" > /dev/null 2>&1 +5,15,25,35,45,55 * * * * su ports-sparc64 -c "lockf -k -t 0 /var/portbuild/errorlogs/lock /var/portbuild/scripts/dologs sparc64" > /dev/null 2>&1 +6,16,26,36,46,56 * * * * su ports-ia64 -c "lockf -k -t 0 /var/portbuild/errorlogs/lock /var/portbuild/scripts/dologs ia64" > /dev/null 2>&1 +8,18,28,38,48,58 * * * * su ports-amd64 -c "lockf -k -t 0 /var/portbuild/errorlogs/lock /var/portbuild/scripts/dologs amd64" > /dev/null 2>&1 +0,10,20,30,40,50 * * * * su ports-powerpc -c "lockf -k -t 0 /var/portbuild/errorlogs/lock /var/portbuild/scripts/dologs powerpc" > /dev/null 2>&1 +# +# Compress old logs to save space +# +# XXX MCL this is totally naive and livelocks the machine. XXX TODO +50 5 * * * lockf -t 0 -k /var/run/busybusybusy.lock find /var/portbuild/*/archive/ -name \*.log -mtime +7 | xargs bzip2 -9f +# +# Clean up old chroots on client machines +30 * * * * /var/portbuild/scripts/do-cleanup-chroots + +# Backup ZFS filesystems +# XXX MCL script not yet converted +#50 4 * * * lockf -t 0 -k /var/run/busybusybusy.lock /var/portbuild/scripts/zbackup + +# Expire old ZFS snapshots +# XXX MCL script not yet converted +#50 3 * * * lockf -t 0 -k /var/run/busybusybusy.lock /var/portbuild/scripts/zexpire + +# CVS update of ports +0 */3 * * * lockf -t 0 -k /var/run/updatesnap.ports.lock /var/portbuild/scripts/updatesnap.ports +# CVS update of src +# NOTE: temporarily halt this whenever RELENG_X is being tagged +0 2 * * * lockf -t 0 -k /var/run/updatesnap.lock /var/portbuild/scripts/updatesnap From owner-svn-src-projects@FreeBSD.ORG Mon Apr 25 22:56:54 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 43C7E106564A; Mon, 25 Apr 2011 22:56:54 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 338E18FC12; Mon, 25 Apr 2011 22:56:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3PMusbg096088; Mon, 25 Apr 2011 22:56:54 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3PMusYn096086; Mon, 25 Apr 2011 22:56:54 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201104252256.p3PMusYn096086@svn.freebsd.org> From: Mark Linimon Date: Mon, 25 Apr 2011 22:56:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221039 - projects/portbuild/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2011 22:56:54 -0000 Author: linimon (doc,ports committer) Date: Mon Apr 25 22:56:53 2011 New Revision: 221039 URL: http://svn.freebsd.org/changeset/base/221039 Log: Another minor comment change from production. Modified: projects/portbuild/conf/README.dotunnel Modified: projects/portbuild/conf/README.dotunnel ============================================================================== --- projects/portbuild/conf/README.dotunnel Mon Apr 25 22:53:54 2011 (r221038) +++ projects/portbuild/conf/README.dotunnel Mon Apr 25 22:56:53 2011 (r221039) @@ -7,8 +7,7 @@ do ; done". Oth there's a problem with this. When the tunnel command exits, such as if the host suddenly becoming unreachable, it doesn't send mail -- instead it just accumulates a huge file in /var/spool/clientmqueue which never -gets sent. To add insult to injury, /var is on the root partition on -pointyhat. +gets sent. To add insult to injury, /var is on our root partition. To cure these problems, we now have From owner-svn-src-projects@FreeBSD.ORG Mon Apr 25 23:38:52 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EC1CD106566C; Mon, 25 Apr 2011 23:38:52 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D92C38FC13; Mon, 25 Apr 2011 23:38:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3PNcqLD097431; Mon, 25 Apr 2011 23:38:52 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3PNcqWx097429; Mon, 25 Apr 2011 23:38:52 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104252338.p3PNcqWx097429@svn.freebsd.org> From: Marcel Moolenaar Date: Mon, 25 Apr 2011 23:38:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221042 - projects/altix/sys/ia64/include X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2011 23:38:53 -0000 Author: marcel Date: Mon Apr 25 23:38:52 2011 New Revision: 221042 URL: http://svn.freebsd.org/changeset/base/221042 Log: Add an IVAR for acknowledging/clearing an Shub event. This should eventually be replaced by having the SHub driver also be a PIC and have events acknowledged/cleared using EOI handshaking. Modified: projects/altix/sys/ia64/include/sgisn.h Modified: projects/altix/sys/ia64/include/sgisn.h ============================================================================== --- projects/altix/sys/ia64/include/sgisn.h Mon Apr 25 23:34:21 2011 (r221041) +++ projects/altix/sys/ia64/include/sgisn.h Mon Apr 25 23:38:52 2011 (r221042) @@ -50,6 +50,9 @@ #define SHUB_IVAR_PCIBUS 1 #define SHUB_IVAR_PCISEG 2 +#define SHUB_IVAR_EVENT 3 + +#define SHUB_EVENT_CONSOLE 0x100000 struct sgisn_geoid { uint32_t sg_module; From owner-svn-src-projects@FreeBSD.ORG Mon Apr 25 23:51:27 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2DBFD106564A; Mon, 25 Apr 2011 23:51:27 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 12C478FC18; Mon, 25 Apr 2011 23:51:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3PNpQWk097830; Mon, 25 Apr 2011 23:51:26 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3PNpQHF097825; Mon, 25 Apr 2011 23:51:26 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104252351.p3PNpQHF097825@svn.freebsd.org> From: Marcel Moolenaar Date: Mon, 25 Apr 2011 23:51:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221043 - projects/altix/sys/ia64/sgisn X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2011 23:51:27 -0000 Author: marcel Date: Mon Apr 25 23:51:26 2011 New Revision: 221043 URL: http://svn.freebsd.org/changeset/base/221043 Log: More WIP dumping: o In sgisn_pcib.c setup a timeout to monitor the value of the int. status register and print its value when it has changed. Print the values of the IRR registers to see if there's a discrepancy between the I/O controller and the CPU. o In sgisn_shub.c, intercept resource related methods and pass them up to nexus as if coming from the shub controller. This avoids panics and makes bus_set_resource() work for the console driver. It's kinda klugy, but has a good bang-for-the-buck ratio. o Implement sgisn_shub_write_ivar for SHUB_IVAR_EVENT and clear the event bits given by value. o In sgisn_console.c, implement the RX interrupt. This actually works. We can type the alternate break sequence and break into the kernel debugger. Yay! Modified: projects/altix/sys/ia64/sgisn/sgisn_console.c projects/altix/sys/ia64/sgisn/sgisn_pcib.c projects/altix/sys/ia64/sgisn/sgisn_shub.c projects/altix/sys/ia64/sgisn/sgisn_shub.h Modified: projects/altix/sys/ia64/sgisn/sgisn_console.c ============================================================================== --- projects/altix/sys/ia64/sgisn/sgisn_console.c Mon Apr 25 23:38:52 2011 (r221042) +++ projects/altix/sys/ia64/sgisn/sgisn_console.c Mon Apr 25 23:51:26 2011 (r221043) @@ -27,12 +27,15 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_comconsole.h" + #include #include #include #include #include #include +#include #include #include #include @@ -47,6 +50,7 @@ struct sncon_softc { void *sc_icookie; void *sc_softih; int sc_irid; + int sc_altbrk; }; static char sncon_name[] = "sncon"; @@ -206,9 +210,9 @@ sncon_tty_param(struct tty *tp, struct t * Device section. */ -static int sncon_attach(device_t); -static int sncon_detach(device_t); -static int sncon_probe(device_t); +static int sncon_attach(device_t); +static int sncon_detach(device_t); +static int sncon_probe(device_t); static device_method_t sncon_methods[] = { DEVMETHOD(device_attach, sncon_attach), @@ -230,6 +234,56 @@ DRIVER_MODULE(sncon, shub, sncon_driver, static void sncon_rx_intr(void *arg) { + struct sncon_softc *sc = arg; + struct ia64_sal_result r; + struct tty *tp; + int ch, count; + + count = 0; + tp = sc->sc_tp; + tty_lock(tp); + do { + r = ia64_sal_entry(SAL_SGISN_POLL, 0, 0, 0, 0, 0, 0, 0); + if (r.sal_status || r.sal_result[0] == 0) + break; + + r = ia64_sal_entry(SAL_SGISN_GETC, 0, 0, 0, 0, 0, 0, 0); + if (r.sal_status != 0) + break; + + ch = r.sal_result[0]; + +#if defined(KDB) && defined(ALT_BREAK_TO_DEBUGGER) + do { + int kdb; + kdb = kdb_alt_break(ch, &sc->sc_altbrk); + if (kdb != 0) { + switch (kdb) { + case KDB_REQ_DEBUGGER: + kdb_enter(KDB_WHY_BREAK, + "Break sequence on console"); + break; + case KDB_REQ_PANIC: + kdb_panic("Panic sequence on console"); + break; + case KDB_REQ_REBOOT: + kdb_reboot(); + break; + } + } + } while (0); +#endif + + ttydisc_rint(tp, ch, 0); + count++; + } while (count < 128); + if (count > 0) + ttydisc_rint_done(tp); + tty_unlock(tp); + + /* Acknowledge handling of Shub event. */ + BUS_WRITE_IVAR(device_get_parent(sc->sc_dev), sc->sc_dev, + SHUB_IVAR_EVENT, SHUB_EVENT_CONSOLE); } static void @@ -248,11 +302,6 @@ sncon_attach(device_t dev) sc->sc_dev = dev; do { - /* Enable RX interrupts. */ - r = ia64_sal_entry(SAL_SGISN_CON_INTR, 2, 1, 0, 0, 0, 0, 0); - if (r.sal_status != 0) - break; - sc->sc_irid = 0; sc->sc_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, &sc->sc_irid, RF_ACTIVE | RF_SHAREABLE); @@ -270,10 +319,9 @@ sncon_attach(device_t dev) } } while (0); - if (sc->sc_ires == NULL) { - /* Disable RX interrupts. */ - r = ia64_sal_entry(SAL_SGISN_CON_INTR, 2, 0, 0, 0, 0, 0, 0); - } + /* Enable or disable RX interrupts appropriately. */ + r = ia64_sal_entry(SAL_SGISN_CON_INTR, 2, + (sc->sc_ires != NULL) ? 1 : 0, 0, 0, 0, 0, 0); swi_add(&tty_intr_event, sncon_name, sncon_tx_intr, sc, SWI_TTY, INTR_TYPE_TTY, &sc->sc_softih); @@ -300,13 +348,13 @@ sncon_detach(device_t dev) tty_rel_gone(tp); if (sc->sc_ires != NULL) { + /* Disable RX interrupts. */ + r = ia64_sal_entry(SAL_SGISN_CON_INTR, 2, 0, 0, 0, 0, 0, 0); + bus_teardown_intr(dev, sc->sc_ires, sc->sc_icookie); bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irid, sc->sc_ires); } - - /* Disable Tx & Rx interrupts. */ - r = ia64_sal_entry(SAL_SGISN_CON_INTR, 2, 0, 0, 0, 0, 0, 0); return (0); } @@ -314,12 +362,17 @@ static int sncon_probe(device_t dev) { struct ia64_sal_result r; + int error; r = ia64_sal_entry(SAL_SGISN_SN_INFO, 0, 0, 0, 0, 0, 0, 0); if (r.sal_status != 0) return (ENXIO); - bus_set_resource(dev, SYS_RES_IRQ, 0, 0xe9, 1); + error = bus_set_resource(dev, SYS_RES_IRQ, 0, 0xe9, 1); + if (error) { + device_printf(dev, "Can't set IRQ (error=%d)\n", error); + return (error); + } device_set_desc_copy(dev, "SGI L1 console"); return (0); } Modified: projects/altix/sys/ia64/sgisn/sgisn_pcib.c ============================================================================== --- projects/altix/sys/ia64/sgisn/sgisn_pcib.c Mon Apr 25 23:38:52 2011 (r221042) +++ projects/altix/sys/ia64/sgisn/sgisn_pcib.c Mon Apr 25 23:51:26 2011 (r221043) @@ -264,6 +264,24 @@ sgisn_pcib_probe(device_t dev) return (BUS_PROBE_DEFAULT); } +static void +sgisn_pcib_callout(void *arg) +{ + static u_long islast = ~0UL; + struct sgisn_pcib_softc *sc = arg; + u_long is; + + is = bus_space_read_8(sc->sc_tag, sc->sc_hndl, PIC_REG_INT_STATUS); + if (is != islast) { + islast = is; + printf("XXX: %s: INTR status = %lu, IRR=%#lx:%#lx:%#lx:%#lx\n", + __func__, is, ia64_get_irr0(), ia64_get_irr1(), + ia64_get_irr2(), ia64_get_irr3()); + } + + timeout(sgisn_pcib_callout, sc, hz); +} + static int sgisn_pcib_attach(device_t dev) { @@ -306,6 +324,8 @@ sgisn_pcib_attach(device_t dev) sgisn_pcib_scan(sc, sc->sc_busnr, sgisn_pcib_maxslots(dev)); #endif + timeout(sgisn_pcib_callout, sc, hz); + device_add_child(dev, "pci", -1); return (bus_generic_attach(dev)); } Modified: projects/altix/sys/ia64/sgisn/sgisn_shub.c ============================================================================== --- projects/altix/sys/ia64/sgisn/sgisn_shub.c Mon Apr 25 23:38:52 2011 (r221042) +++ projects/altix/sys/ia64/sgisn/sgisn_shub.c Mon Apr 25 23:51:26 2011 (r221043) @@ -72,28 +72,38 @@ static int sgisn_shub_probe(device_t); static int sgisn_shub_activate_resource(device_t, device_t, int, int, struct resource *); -static int sgisn_shub_read_ivar(device_t, device_t, int, uintptr_t *); -static int sgisn_shub_write_ivar(device_t, device_t, int, uintptr_t); static struct resource *sgisn_shub_alloc_resource(device_t, device_t, int, int *, u_long, u_long, u_long, u_int); +static void sgisn_shub_delete_resource(device_t, device_t, int, int); +static int sgisn_shub_get_resource(device_t, device_t, int, int, u_long *, + u_long *); +static int sgisn_shub_read_ivar(device_t, device_t, int, uintptr_t *); +static int sgisn_shub_release_resource(device_t, device_t, int, int, + struct resource *); +static int sgisn_shub_set_resource(device_t, device_t, int, int, u_long, + u_long); +static int sgisn_shub_write_ivar(device_t, device_t, int, uintptr_t); /* * Bus interface definitions. */ static device_method_t sgisn_shub_methods[] = { /* Device interface */ + DEVMETHOD(device_attach, sgisn_shub_attach), DEVMETHOD(device_identify, sgisn_shub_identify), DEVMETHOD(device_probe, sgisn_shub_probe), - DEVMETHOD(device_attach, sgisn_shub_attach), /* Bus interface */ - DEVMETHOD(bus_read_ivar, sgisn_shub_read_ivar), - DEVMETHOD(bus_write_ivar, sgisn_shub_write_ivar), + DEVMETHOD(bus_read_ivar, sgisn_shub_read_ivar), + DEVMETHOD(bus_write_ivar, sgisn_shub_write_ivar), DEVMETHOD(bus_print_child, bus_generic_print_child), - DEVMETHOD(bus_alloc_resource, sgisn_shub_alloc_resource), - DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, sgisn_shub_activate_resource), + DEVMETHOD(bus_alloc_resource, sgisn_shub_alloc_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), + DEVMETHOD(bus_delete_resource, sgisn_shub_delete_resource), + DEVMETHOD(bus_get_resource, sgisn_shub_get_resource), + DEVMETHOD(bus_release_resource, sgisn_shub_release_resource), + DEVMETHOD(bus_set_resource, sgisn_shub_set_resource), DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), @@ -193,6 +203,53 @@ sgisn_shub_activate_resource(device_t de return (EDOOFUS); } +static struct resource * +sgisn_shub_alloc_resource(device_t dev, device_t child, int type, int *rid, + u_long start, u_long end, u_long count, u_int flags) +{ + struct resource *res; + + res = bus_alloc_resource(dev, type, rid, start, end, count, flags); + return (res); +} + +static void +sgisn_shub_delete_resource(device_t dev, device_t child, int type, int rid) +{ + + bus_delete_resource(dev, type, rid); +} + +static int +sgisn_shub_get_resource(device_t dev, device_t child, int type, int rid, + u_long *startp, u_long *countp) +{ + int error; + + error = bus_get_resource(dev, type, rid, startp, countp); + return (error); +} + +static int +sgisn_shub_release_resource(device_t dev, device_t child, int type, int rid, + struct resource *r) +{ + int error; + + error = bus_release_resource(dev, type, rid, r); + return (error); +} + +static int +sgisn_shub_set_resource(device_t dev, device_t child, int type, int rid, + u_long start, u_long count) +{ + int error; + + error = bus_set_resource(dev, type, rid, start, count); + return (error); +} + #if 0 static void sgisn_shub_dump_sn_info(struct ia64_sal_result *r) @@ -476,17 +533,17 @@ sgisn_shub_read_ivar(device_t dev, devic static int sgisn_shub_write_ivar(device_t dev, device_t child, int which, uintptr_t value) { -// XXX struct sgisn_shub_softc *sc = device_get_softc(dev); - - return (ENOENT); -} + struct sgisn_shub_softc *sc = device_get_softc(dev); + uint64_t ev; -static struct resource * -sgisn_shub_alloc_resource(device_t dev, device_t child, int type, int *rid, - u_long start, u_long end, u_long count, u_int flags) -{ - struct resource *res; + if (which != SHUB_IVAR_EVENT) + return (ENOENT); - res = bus_alloc_resource(dev, type, rid, start, end, count, flags); - return (res); + ev = bus_space_read_8(sc->sc_tag, sc->sc_hndl, SHUB_MMR_EVENT); + if (ev & value) + bus_space_write_8(sc->sc_tag, sc->sc_hndl, SHUB_MMR_EVENT_WR, + value); + device_printf(dev, "XXX: %s: child=%p, event=%lx, mask=%lx\n", + __func__, child, ev, value); + return (0); } Modified: projects/altix/sys/ia64/sgisn/sgisn_shub.h ============================================================================== --- projects/altix/sys/ia64/sgisn/sgisn_shub.h Mon Apr 25 23:38:52 2011 (r221042) +++ projects/altix/sys/ia64/sgisn/sgisn_shub.h Mon Apr 25 23:51:26 2011 (r221043) @@ -39,6 +39,7 @@ #define SHUB_MMR_RTC3_ICFG 0x10001680 #define SHUB_MMR_RTC3_IENA 0x10001700 #define SHUB_MMR_EVENT 0x10010000 +#define SHUB_MMR_EVENT_WR 0x10010008 #define SHUB_MMR_IPI_ACC 0x10060480 #define SHUB_MMR_ID 0x10060580 #define SHUB_MMR_PTC_CFG0 0x101a0000 From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 00:08:51 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 305EA106566B; Tue, 26 Apr 2011 00:08:51 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 20A908FC13; Tue, 26 Apr 2011 00:08:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3Q08pZI098385; Tue, 26 Apr 2011 00:08:51 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3Q08pGf098383; Tue, 26 Apr 2011 00:08:51 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104260008.p3Q08pGf098383@svn.freebsd.org> From: Marcel Moolenaar Date: Tue, 26 Apr 2011 00:08:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221044 - projects/altix/sys/ia64/ia64 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 00:08:51 -0000 Author: marcel Date: Tue Apr 26 00:08:50 2011 New Revision: 221044 URL: http://svn.freebsd.org/changeset/base/221044 Log: Add missing newline in debugging output. Modified: projects/altix/sys/ia64/ia64/interrupt.c Modified: projects/altix/sys/ia64/ia64/interrupt.c ============================================================================== --- projects/altix/sys/ia64/ia64/interrupt.c Mon Apr 25 23:51:26 2011 (r221043) +++ projects/altix/sys/ia64/ia64/interrupt.c Tue Apr 26 00:08:50 2011 (r221044) @@ -423,7 +423,7 @@ ia64_ih_irq(struct thread *td, u_int xiv PCPU_INC(md.stats.pcs_nhwints); - printf("INTR: ITC=%u, XIV=%u", (u_int)tf->tf_special.ifa, xiv); + printf("INTR: ITC=%u, XIV=%u\n", (u_int)tf->tf_special.ifa, xiv); /* Find the interrupt thread for this XIV. */ i = ia64_intrs[xiv]; From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 00:20:05 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6061F1065675; Tue, 26 Apr 2011 00:20:05 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3D5EB8FC0A; Tue, 26 Apr 2011 00:20:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3Q0K5FZ098832; Tue, 26 Apr 2011 00:20:05 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3Q0K4bM098805; Tue, 26 Apr 2011 00:20:04 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104260020.p3Q0K4bM098805@svn.freebsd.org> From: Marcel Moolenaar Date: Tue, 26 Apr 2011 00:20:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221045 - in projects/altix/sys: amd64/amd64 amd64/conf amd64/include arm/at91 arm/conf arm/econa arm/mv/orion arm/xscale/i8134x boot/fdt/dts boot/forth boot/i386/gptzfsboot boot/i386/z... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 00:20:05 -0000 Author: marcel Date: Tue Apr 26 00:20:04 2011 New Revision: 221045 URL: http://svn.freebsd.org/changeset/base/221045 Log: Merge svn+ssh://svn.freebsd.org/base/head@221044 Added: projects/altix/sys/arm/conf/TS7800 - copied unchanged from r221044, head/sys/arm/conf/TS7800 projects/altix/sys/arm/mv/orion/files.ts7800 - copied unchanged from r221044, head/sys/arm/mv/orion/files.ts7800 projects/altix/sys/arm/mv/orion/std.ts7800 - copied unchanged from r221044, head/sys/arm/mv/orion/std.ts7800 projects/altix/sys/boot/fdt/dts/ts7800.dts - copied unchanged from r221044, head/sys/boot/fdt/dts/ts7800.dts projects/altix/sys/contrib/dev/acpica/compiler/dtparser.l - copied unchanged from r221044, head/sys/contrib/dev/acpica/compiler/dtparser.l projects/altix/sys/contrib/dev/acpica/compiler/dtparser.y - copied unchanged from r221044, head/sys/contrib/dev/acpica/compiler/dtparser.y projects/altix/sys/contrib/dev/acpica/events/evglock.c - copied unchanged from r221044, head/sys/contrib/dev/acpica/events/evglock.c projects/altix/sys/contrib/dev/iwn/iwlwifi-1000-39.31.5.1.fw.uu - copied unchanged from r221044, head/sys/contrib/dev/iwn/iwlwifi-1000-39.31.5.1.fw.uu projects/altix/sys/contrib/dev/iwn/iwlwifi-5000-8.83.5.1.fw.uu - copied unchanged from r221044, head/sys/contrib/dev/iwn/iwlwifi-5000-8.83.5.1.fw.uu projects/altix/sys/contrib/dev/iwn/iwlwifi-6000g2a-17.168.5.2.fw.uu - copied unchanged from r221044, head/sys/contrib/dev/iwn/iwlwifi-6000g2a-17.168.5.2.fw.uu projects/altix/sys/contrib/dev/iwn/iwlwifi-6000g2b-17.168.5.2.fw.uu - copied unchanged from r221044, head/sys/contrib/dev/iwn/iwlwifi-6000g2b-17.168.5.2.fw.uu projects/altix/sys/contrib/dev/iwn/iwlwifi-6050-41.28.5.1.fw.uu - copied unchanged from r221044, head/sys/contrib/dev/iwn/iwlwifi-6050-41.28.5.1.fw.uu projects/altix/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.c - copied unchanged from r221044, head/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.c projects/altix/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.h - copied unchanged from r221044, head/sys/dev/ath/ath_hal/ar9002/ar9285_diversity.h projects/altix/sys/dev/ath/ath_hal/ar9002/ar9285_phy.c - copied unchanged from r221044, head/sys/dev/ath/ath_hal/ar9002/ar9285_phy.c projects/altix/sys/dev/ath/ath_hal/ar9002/ar9285_phy.h - copied unchanged from r221044, head/sys/dev/ath/ath_hal/ar9002/ar9285_phy.h projects/altix/sys/geom/eli/g_eli_key_cache.c - copied unchanged from r221044, head/sys/geom/eli/g_eli_key_cache.c projects/altix/sys/geom/geom_map.c - copied unchanged from r221044, head/sys/geom/geom_map.c projects/altix/sys/modules/iwnfw/iwn6000g2a/ - copied from r221044, head/sys/modules/iwnfw/iwn6000g2a/ projects/altix/sys/modules/iwnfw/iwn6000g2b/ - copied from r221044, head/sys/modules/iwnfw/iwn6000g2b/ projects/altix/sys/net80211/ieee80211_alq.c - copied unchanged from r221044, head/sys/net80211/ieee80211_alq.c projects/altix/sys/net80211/ieee80211_alq.h - copied unchanged from r221044, head/sys/net80211/ieee80211_alq.h projects/altix/sys/nfs/bootp_subr.c - copied unchanged from r221044, head/sys/nfs/bootp_subr.c projects/altix/sys/nfs/krpc.h - copied unchanged from r221044, head/sys/nfs/krpc.h projects/altix/sys/nfs/krpc_subr.c - copied unchanged from r221044, head/sys/nfs/krpc_subr.c projects/altix/sys/nfs/nfs_diskless.c - copied unchanged from r221044, head/sys/nfs/nfs_diskless.c projects/altix/sys/nfs/nfsdiskless.h - copied unchanged from r221044, head/sys/nfs/nfsdiskless.h Deleted: projects/altix/sys/contrib/dev/iwn/iwlwifi-1000-128.50.3.1.fw.uu projects/altix/sys/contrib/dev/iwn/iwlwifi-5000-8.24.2.12.fw.uu projects/altix/sys/contrib/dev/iwn/iwlwifi-6050-9.201.4.1.fw.uu projects/altix/sys/fs/nfsclient/nfsargs.h projects/altix/sys/fs/nfsclient/nfsdiskless.h projects/altix/sys/nfsclient/bootp_subr.c projects/altix/sys/nfsclient/krpc.h projects/altix/sys/nfsclient/krpc_subr.c projects/altix/sys/nfsclient/nfs_diskless.c projects/altix/sys/nfsclient/nfsdiskless.h Modified: projects/altix/sys/amd64/amd64/genassym.c projects/altix/sys/amd64/amd64/identcpu.c projects/altix/sys/amd64/amd64/machdep.c projects/altix/sys/amd64/amd64/pmap.c projects/altix/sys/amd64/conf/GENERIC projects/altix/sys/amd64/include/clock.h projects/altix/sys/amd64/include/cpufunc.h projects/altix/sys/amd64/include/pmap.h projects/altix/sys/amd64/include/specialreg.h projects/altix/sys/arm/at91/at91_wdt.c projects/altix/sys/arm/conf/AVILA projects/altix/sys/arm/conf/CAMBRIA projects/altix/sys/arm/conf/CRB projects/altix/sys/arm/conf/DB-78XXX projects/altix/sys/arm/conf/DB-88F5XXX projects/altix/sys/arm/conf/DB-88F6XXX projects/altix/sys/arm/conf/EP80219 projects/altix/sys/arm/conf/IQ31244 projects/altix/sys/arm/econa/ehci_ebus.c projects/altix/sys/arm/xscale/i8134x/crb_machdep.c projects/altix/sys/boot/forth/loader.conf projects/altix/sys/boot/i386/gptzfsboot/Makefile projects/altix/sys/boot/i386/zfsboot/Makefile projects/altix/sys/boot/pc98/boot2/boot2.c projects/altix/sys/cam/ata/ata_all.c projects/altix/sys/cam/ata/ata_all.h projects/altix/sys/cam/ata/ata_da.c projects/altix/sys/cam/ata/ata_pmp.c projects/altix/sys/cam/ata/ata_xpt.c projects/altix/sys/cam/cam_ccb.h projects/altix/sys/cam/cam_periph.c projects/altix/sys/cam/cam_xpt.c projects/altix/sys/cam/scsi/scsi_cd.c projects/altix/sys/cam/scsi/scsi_ch.c projects/altix/sys/cam/scsi/scsi_da.c projects/altix/sys/cam/scsi/scsi_pass.c projects/altix/sys/cam/scsi/scsi_pt.c projects/altix/sys/cam/scsi/scsi_sa.c projects/altix/sys/cam/scsi/scsi_sg.c projects/altix/sys/compat/freebsd32/freebsd32_misc.c projects/altix/sys/compat/freebsd32/freebsd32_proto.h projects/altix/sys/compat/freebsd32/freebsd32_syscall.h projects/altix/sys/compat/freebsd32/freebsd32_syscalls.c projects/altix/sys/compat/freebsd32/freebsd32_sysent.c projects/altix/sys/compat/freebsd32/freebsd32_systrace_args.c projects/altix/sys/compat/freebsd32/syscalls.master projects/altix/sys/conf/NOTES projects/altix/sys/conf/files projects/altix/sys/conf/files.amd64 projects/altix/sys/conf/files.arm projects/altix/sys/conf/files.i386 projects/altix/sys/conf/files.ia64 projects/altix/sys/conf/files.mips projects/altix/sys/conf/files.pc98 projects/altix/sys/conf/files.powerpc projects/altix/sys/conf/files.sparc64 projects/altix/sys/conf/files.sun4v projects/altix/sys/conf/kern.mk projects/altix/sys/conf/kern.pre.mk projects/altix/sys/conf/kmod.mk projects/altix/sys/conf/options projects/altix/sys/contrib/dev/acpica/acpica_prep.sh projects/altix/sys/contrib/dev/acpica/changes.txt projects/altix/sys/contrib/dev/acpica/common/dmtable.c projects/altix/sys/contrib/dev/acpica/common/dmtbdump.c projects/altix/sys/contrib/dev/acpica/compiler/aslanalyze.c projects/altix/sys/contrib/dev/acpica/compiler/aslcompiler.h projects/altix/sys/contrib/dev/acpica/compiler/aslcompiler.y projects/altix/sys/contrib/dev/acpica/compiler/asldefine.h projects/altix/sys/contrib/dev/acpica/compiler/aslglobal.h projects/altix/sys/contrib/dev/acpica/compiler/asllookup.c projects/altix/sys/contrib/dev/acpica/compiler/aslmain.c projects/altix/sys/contrib/dev/acpica/compiler/aslmap.c projects/altix/sys/contrib/dev/acpica/compiler/aslmessages.h projects/altix/sys/contrib/dev/acpica/compiler/aslpredef.c projects/altix/sys/contrib/dev/acpica/compiler/asltypes.h projects/altix/sys/contrib/dev/acpica/compiler/aslutils.c projects/altix/sys/contrib/dev/acpica/compiler/aslwalks.c projects/altix/sys/contrib/dev/acpica/compiler/dtcompile.c projects/altix/sys/contrib/dev/acpica/compiler/dtcompiler.h projects/altix/sys/contrib/dev/acpica/compiler/dtexpress.c projects/altix/sys/contrib/dev/acpica/compiler/dtfield.c projects/altix/sys/contrib/dev/acpica/compiler/dtio.c projects/altix/sys/contrib/dev/acpica/compiler/dtsubtable.c projects/altix/sys/contrib/dev/acpica/compiler/dttable.c projects/altix/sys/contrib/dev/acpica/compiler/dttemplate.c projects/altix/sys/contrib/dev/acpica/compiler/dttemplate.h projects/altix/sys/contrib/dev/acpica/compiler/dtutils.c projects/altix/sys/contrib/dev/acpica/debugger/dbdisply.c projects/altix/sys/contrib/dev/acpica/dispatcher/dswload.c projects/altix/sys/contrib/dev/acpica/dispatcher/dswload2.c projects/altix/sys/contrib/dev/acpica/events/evmisc.c projects/altix/sys/contrib/dev/acpica/events/evregion.c projects/altix/sys/contrib/dev/acpica/events/evrgnini.c projects/altix/sys/contrib/dev/acpica/events/evxfregn.c projects/altix/sys/contrib/dev/acpica/executer/excreate.c projects/altix/sys/contrib/dev/acpica/include/acconfig.h projects/altix/sys/contrib/dev/acpica/include/acevents.h projects/altix/sys/contrib/dev/acpica/include/acpixf.h projects/altix/sys/contrib/dev/acpica/include/actypes.h projects/altix/sys/contrib/dev/acpica/include/amlcode.h projects/altix/sys/contrib/dev/acpica/namespace/nsrepair.c projects/altix/sys/contrib/dev/acpica/utilities/utdecode.c projects/altix/sys/dev/acpica/acpi.c projects/altix/sys/dev/acpica/acpi_thermal.c projects/altix/sys/dev/acpica/acpi_timer.c projects/altix/sys/dev/ahci/ahci.c projects/altix/sys/dev/ahci/ahci.h projects/altix/sys/dev/aic7xxx/aicasm/Makefile projects/altix/sys/dev/ata/ata-all.c projects/altix/sys/dev/ata/ata-all.h projects/altix/sys/dev/ata/ata-lowlevel.c projects/altix/sys/dev/ata/ata-pci.h projects/altix/sys/dev/ata/chipsets/ata-intel.c projects/altix/sys/dev/ath/ath_hal/ah.c projects/altix/sys/dev/ath/ath_hal/ah.h projects/altix/sys/dev/ath/ath_hal/ah_debug.h projects/altix/sys/dev/ath/ath_hal/ah_eeprom_v14.h projects/altix/sys/dev/ath/ath_hal/ah_eeprom_v4k.h projects/altix/sys/dev/ath/ath_hal/ah_internal.h projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/altix/sys/dev/ath/ath_hal/ar9002/ar9002phy.h projects/altix/sys/dev/ath/ath_hal/ar9002/ar9285.h projects/altix/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c projects/altix/sys/dev/ath/ath_hal/ar9002/ar9285_reset.c projects/altix/sys/dev/ath/if_ath.c projects/altix/sys/dev/ath/if_ath_sysctl.c projects/altix/sys/dev/ath/if_athioctl.h projects/altix/sys/dev/ath/if_athvar.h projects/altix/sys/dev/bxe/bxe_debug.h projects/altix/sys/dev/bxe/bxe_include.h projects/altix/sys/dev/bxe/if_bxe.c projects/altix/sys/dev/bxe/if_bxe.h projects/altix/sys/dev/cas/if_cas.c projects/altix/sys/dev/cxgbe/adapter.h projects/altix/sys/dev/cxgbe/common/t4_hw.c projects/altix/sys/dev/cxgbe/osdep.h projects/altix/sys/dev/cxgbe/t4_main.c projects/altix/sys/dev/cxgbe/t4_sge.c projects/altix/sys/dev/drm/drm_sysctl.c projects/altix/sys/dev/esp/ncr53c9x.c projects/altix/sys/dev/gem/if_gem.c projects/altix/sys/dev/hme/if_hme.c projects/altix/sys/dev/hme/if_hmereg.h projects/altix/sys/dev/ichwd/ichwd.c projects/altix/sys/dev/ichwd/ichwd.h projects/altix/sys/dev/ipmi/ipmi.c projects/altix/sys/dev/iwn/if_iwn.c projects/altix/sys/dev/iwn/if_iwnreg.h projects/altix/sys/dev/iwn/if_iwnvar.h projects/altix/sys/dev/ixgbe/ixgbe.c projects/altix/sys/dev/ixgbe/ixgbe.h projects/altix/sys/dev/mii/brgphyreg.h projects/altix/sys/dev/mii/ciphyreg.h projects/altix/sys/dev/mii/e1000phy.c projects/altix/sys/dev/mii/e1000phyreg.h projects/altix/sys/dev/mii/mii_physubr.c projects/altix/sys/dev/mii/miivar.h projects/altix/sys/dev/mii/rgephyreg.h projects/altix/sys/dev/mii/xmphyreg.h projects/altix/sys/dev/mpt/mpt.c projects/altix/sys/dev/mpt/mpt.h projects/altix/sys/dev/mpt/mpt_cam.c projects/altix/sys/dev/mpt/mpt_debug.c projects/altix/sys/dev/mpt/mpt_pci.c projects/altix/sys/dev/msk/if_msk.c projects/altix/sys/dev/mvs/mvs.c projects/altix/sys/dev/mvs/mvs.h projects/altix/sys/dev/siis/siis.c projects/altix/sys/dev/siis/siis.h projects/altix/sys/dev/sound/usb/uaudio.c projects/altix/sys/dev/sym/README.sym projects/altix/sys/dev/sym/sym_fw1.h projects/altix/sys/dev/sym/sym_fw2.h projects/altix/sys/dev/sym/sym_hipd.c projects/altix/sys/dev/usb/controller/ehci_ixp4xx.c projects/altix/sys/dev/usb/controller/ehci_mv.c projects/altix/sys/dev/usb/controller/ehci_pci.c projects/altix/sys/fs/nfs/nfs.h projects/altix/sys/fs/nfs/nfs_commonacl.c projects/altix/sys/fs/nfs/nfs_commonkrpc.c projects/altix/sys/fs/nfs/nfs_commonport.c projects/altix/sys/fs/nfs/nfs_commonsubs.c projects/altix/sys/fs/nfs/nfs_var.h projects/altix/sys/fs/nfs/nfsport.h projects/altix/sys/fs/nfsclient/nfs.h projects/altix/sys/fs/nfsclient/nfs_clbio.c projects/altix/sys/fs/nfsclient/nfs_clnfsiod.c projects/altix/sys/fs/nfsclient/nfs_clnode.c projects/altix/sys/fs/nfsclient/nfs_clport.c projects/altix/sys/fs/nfsclient/nfs_clrpcops.c projects/altix/sys/fs/nfsclient/nfs_clstate.c projects/altix/sys/fs/nfsclient/nfs_clsubs.c projects/altix/sys/fs/nfsclient/nfs_clvfsops.c projects/altix/sys/fs/nfsclient/nfs_clvnops.c projects/altix/sys/fs/nfsclient/nfsnode.h projects/altix/sys/fs/nfsserver/nfs_nfsdport.c projects/altix/sys/fs/nfsserver/nfs_nfsdserv.c projects/altix/sys/geom/eli/g_eli.c projects/altix/sys/geom/eli/g_eli.h projects/altix/sys/geom/eli/g_eli_ctl.c projects/altix/sys/geom/eli/g_eli_integrity.c projects/altix/sys/geom/eli/g_eli_key.c projects/altix/sys/geom/eli/g_eli_privacy.c projects/altix/sys/geom/part/g_part_apm.c projects/altix/sys/geom/raid/g_raid.c projects/altix/sys/i386/bios/apm.c projects/altix/sys/i386/conf/GENERIC projects/altix/sys/i386/conf/XBOX projects/altix/sys/i386/i386/genassym.c projects/altix/sys/i386/i386/identcpu.c projects/altix/sys/i386/i386/machdep.c projects/altix/sys/i386/i386/pmap.c projects/altix/sys/i386/include/clock.h projects/altix/sys/i386/include/cpufunc.h projects/altix/sys/i386/include/pmap.h projects/altix/sys/i386/include/specialreg.h projects/altix/sys/ia64/conf/GENERIC projects/altix/sys/ia64/include/pmap.h projects/altix/sys/kern/init_sysent.c projects/altix/sys/kern/kern_exit.c projects/altix/sys/kern/kern_hhook.c projects/altix/sys/kern/kern_khelp.c projects/altix/sys/kern/kern_sig.c projects/altix/sys/kern/link_elf.c projects/altix/sys/kern/link_elf_obj.c projects/altix/sys/kern/subr_rman.c projects/altix/sys/kern/syscalls.c projects/altix/sys/kern/syscalls.master projects/altix/sys/kern/systrace_args.c projects/altix/sys/kern/uipc_sockbuf.c projects/altix/sys/kern/vfs_default.c projects/altix/sys/kern/vfs_mount.c projects/altix/sys/kern/vfs_subr.c projects/altix/sys/kern/vfs_syscalls.c projects/altix/sys/kern/vnode_if.src projects/altix/sys/mips/atheros/ar71xx_ehci.c projects/altix/sys/mips/conf/MALTA projects/altix/sys/mips/conf/MALTA64 projects/altix/sys/mips/conf/OCTEON1 projects/altix/sys/mips/conf/std.SWARM projects/altix/sys/mips/malta/std.malta projects/altix/sys/mips/rmi/xls_ehci.c projects/altix/sys/modules/Makefile projects/altix/sys/modules/acpi/acpi/Makefile projects/altix/sys/modules/ath/Makefile projects/altix/sys/modules/bxe/Makefile projects/altix/sys/modules/cam/Makefile projects/altix/sys/modules/geom/geom_eli/Makefile projects/altix/sys/modules/iwnfw/Makefile projects/altix/sys/modules/iwnfw/iwn1000/Makefile projects/altix/sys/modules/iwnfw/iwn5000/Makefile projects/altix/sys/modules/iwnfw/iwn6050/Makefile projects/altix/sys/modules/netgraph/atm/ccatm/Makefile projects/altix/sys/modules/nfscl/Makefile projects/altix/sys/modules/nfsclient/Makefile projects/altix/sys/net80211/ieee80211_output.c projects/altix/sys/netgraph/atm/ccatm/ng_ccatm.c projects/altix/sys/netgraph/atm/sscfu/ng_sscfu.c projects/altix/sys/netgraph/atm/sscop/ng_sscop.c projects/altix/sys/netgraph/atm/uni/ng_uni.c projects/altix/sys/netgraph/bluetooth/hci/ng_hci_main.c projects/altix/sys/netgraph/bluetooth/l2cap/ng_l2cap_main.c projects/altix/sys/netgraph/netflow/netflow.c projects/altix/sys/netgraph/netflow/ng_netflow.c projects/altix/sys/netgraph/netflow/ng_netflow.h projects/altix/sys/netgraph/ng_UI.c projects/altix/sys/netgraph/ng_async.c projects/altix/sys/netgraph/ng_atmllc.c projects/altix/sys/netgraph/ng_base.c projects/altix/sys/netgraph/ng_bridge.c projects/altix/sys/netgraph/ng_car.c projects/altix/sys/netgraph/ng_cisco.c projects/altix/sys/netgraph/ng_device.c projects/altix/sys/netgraph/ng_eiface.c projects/altix/sys/netgraph/ng_etf.c projects/altix/sys/netgraph/ng_fec.c projects/altix/sys/netgraph/ng_frame_relay.c projects/altix/sys/netgraph/ng_gif_demux.c projects/altix/sys/netgraph/ng_hub.c projects/altix/sys/netgraph/ng_iface.c projects/altix/sys/netgraph/ng_ksocket.c projects/altix/sys/netgraph/ng_l2tp.c projects/altix/sys/netgraph/ng_lmi.c projects/altix/sys/netgraph/ng_mppc.c projects/altix/sys/netgraph/ng_nat.c projects/altix/sys/netgraph/ng_one2many.c projects/altix/sys/netgraph/ng_patch.c projects/altix/sys/netgraph/ng_pipe.c projects/altix/sys/netgraph/ng_ppp.c projects/altix/sys/netgraph/ng_pppoe.c projects/altix/sys/netgraph/ng_pptpgre.c projects/altix/sys/netgraph/ng_rfc1490.c projects/altix/sys/netgraph/ng_sample.c projects/altix/sys/netgraph/ng_source.c projects/altix/sys/netgraph/ng_split.c projects/altix/sys/netgraph/ng_sppp.c projects/altix/sys/netgraph/ng_tee.c projects/altix/sys/netgraph/ng_tty.c projects/altix/sys/netgraph/ng_vjc.c projects/altix/sys/netgraph/ng_vlan.c projects/altix/sys/netinet/cc.h projects/altix/sys/netinet/cc/cc.c projects/altix/sys/netinet/cc/cc_chd.c projects/altix/sys/netinet/cc/cc_cubic.c projects/altix/sys/netinet/cc/cc_cubic.h projects/altix/sys/netinet/cc/cc_hd.c projects/altix/sys/netinet/cc/cc_htcp.c projects/altix/sys/netinet/cc/cc_module.h projects/altix/sys/netinet/cc/cc_newreno.c projects/altix/sys/netinet/cc/cc_vegas.c projects/altix/sys/netinet/in_pcb.c projects/altix/sys/netinet/in_pcb.h projects/altix/sys/netinet/in_proto.c projects/altix/sys/netinet/ip_fw.h projects/altix/sys/netinet/ip_input.c projects/altix/sys/netinet/ip_output.c projects/altix/sys/netinet/ip_var.h projects/altix/sys/netinet/ipfw/ip_dn_io.c projects/altix/sys/netinet/ipfw/ip_dummynet.c projects/altix/sys/netinet/ipfw/ip_fw2.c projects/altix/sys/netinet/ipfw/ip_fw_nat.c projects/altix/sys/netinet/ipfw/ip_fw_private.h projects/altix/sys/netinet/khelp/h_ertt.c projects/altix/sys/netinet/khelp/h_ertt.h projects/altix/sys/netinet/libalias/alias_db.c projects/altix/sys/netinet/raw_ip.c projects/altix/sys/netinet/siftr.c projects/altix/sys/netinet/tcp_input.c projects/altix/sys/netinet/tcp_output.c projects/altix/sys/netinet/tcp_subr.c projects/altix/sys/netinet/tcp_syncache.c projects/altix/sys/netinet/tcp_var.h projects/altix/sys/netinet/udp_usrreq.c projects/altix/sys/netinet6/in6.h projects/altix/sys/netinet6/in6_proto.c projects/altix/sys/netinet6/nd6_nbr.c projects/altix/sys/nfsclient/nfs_subs.c projects/altix/sys/nfsclient/nfs_vfsops.c projects/altix/sys/nfsclient/nfsargs.h projects/altix/sys/pc98/conf/GENERIC projects/altix/sys/pc98/pc98/machdep.c projects/altix/sys/powerpc/aim/machdep.c projects/altix/sys/powerpc/aim/mmu_oea.c projects/altix/sys/powerpc/aim/mmu_oea64.c projects/altix/sys/powerpc/conf/GENERIC projects/altix/sys/powerpc/conf/GENERIC64 projects/altix/sys/powerpc/conf/MPC85XX projects/altix/sys/powerpc/powerpc/exec_machdep.c projects/altix/sys/powerpc/powerpc/mp_machdep.c projects/altix/sys/rpc/clnt_dg.c projects/altix/sys/rpc/clnt_vc.c projects/altix/sys/sparc64/conf/GENERIC projects/altix/sys/sparc64/include/cpufunc.h projects/altix/sys/sparc64/sbus/lsi64854.c projects/altix/sys/sparc64/sbus/ofw_sbus.h projects/altix/sys/sparc64/sparc64/exception.S projects/altix/sys/sparc64/sparc64/iommu.c projects/altix/sys/sparc64/sparc64/machdep.c projects/altix/sys/sparc64/sparc64/pmap.c projects/altix/sys/sun4v/conf/GENERIC projects/altix/sys/sun4v/include/cddl/mdesc_impl.h projects/altix/sys/sun4v/include/cpufunc.h projects/altix/sys/sun4v/sun4v/tte_hash.c projects/altix/sys/sys/ata.h projects/altix/sys/sys/eventhandler.h projects/altix/sys/sys/fcntl.h projects/altix/sys/sys/hhook.h projects/altix/sys/sys/khelp.h projects/altix/sys/sys/module_khelp.h projects/altix/sys/sys/param.h projects/altix/sys/sys/proc.h projects/altix/sys/sys/socket.h projects/altix/sys/sys/syscall.h projects/altix/sys/sys/syscall.mk projects/altix/sys/sys/sysproto.h projects/altix/sys/sys/systm.h projects/altix/sys/sys/vnode.h projects/altix/sys/ufs/ffs/ffs_alloc.c projects/altix/sys/ufs/ufs/ufs_extern.h projects/altix/sys/ufs/ufs/ufs_inode.c projects/altix/sys/vm/vm_object.c projects/altix/sys/x86/isa/clock.c projects/altix/sys/x86/x86/tsc.c Directory Properties: projects/altix/lib/libstand/ (props changed) projects/altix/sys/ (props changed) projects/altix/sys/amd64/include/xen/ (props changed) projects/altix/sys/boot/i386/efi/ (props changed) projects/altix/sys/boot/ia64/efi/ (props changed) projects/altix/sys/boot/ia64/ski/ (props changed) projects/altix/sys/boot/powerpc/boot1.chrp/ (props changed) projects/altix/sys/boot/powerpc/ofw/ (props changed) projects/altix/sys/cddl/contrib/opensolaris/ (props changed) projects/altix/sys/conf/ (props changed) projects/altix/sys/contrib/dev/acpica/ (props changed) projects/altix/sys/contrib/octeon-sdk/ (props changed) projects/altix/sys/contrib/pf/ (props changed) projects/altix/sys/contrib/x86emu/ (props changed) projects/altix/sys/kern/subr_busdma.c (props changed) Modified: projects/altix/sys/amd64/amd64/genassym.c ============================================================================== --- projects/altix/sys/amd64/amd64/genassym.c Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/amd64/amd64/genassym.c Tue Apr 26 00:20:04 2011 (r221045) @@ -65,7 +65,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include Modified: projects/altix/sys/amd64/amd64/identcpu.c ============================================================================== --- projects/altix/sys/amd64/amd64/identcpu.c Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/amd64/amd64/identcpu.c Tue Apr 26 00:20:04 2011 (r221045) @@ -396,8 +396,11 @@ printcpuinfo(void) * If this CPU supports P-state invariant TSC then * mention the capability. */ - if (tsc_is_invariant) + if (tsc_is_invariant) { printf("\n TSC: P-state invariant"); + if (tsc_perf_stat) + printf(", performance statistics"); + } } } Modified: projects/altix/sys/amd64/amd64/machdep.c ============================================================================== --- projects/altix/sys/amd64/amd64/machdep.c Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/amd64/amd64/machdep.c Tue Apr 26 00:20:04 2011 (r221045) @@ -545,23 +545,20 @@ cpu_flush_dcache(void *ptr, size_t len) int cpu_est_clockrate(int cpu_id, uint64_t *rate) { + uint64_t tsc1, tsc2; + uint64_t acnt, mcnt, perf; register_t reg; - uint64_t freq, tsc1, tsc2; if (pcpu_find(cpu_id) == NULL || rate == NULL) return (EINVAL); - freq = atomic_load_acq_64(&tsc_freq); - /* If TSC is P-state invariant, DELAY(9) based logic fails. */ - if (tsc_is_invariant && freq != 0) + /* + * If TSC is P-state invariant and APERF/MPERF MSRs do not exist, + * DELAY(9) based logic fails. + */ + if (tsc_is_invariant && !tsc_perf_stat) return (EOPNOTSUPP); - /* If we're booting, trust the rate calibrated moments ago. */ - if (cold && freq != 0) { - *rate = freq; - return (0); - } - #ifdef SMP if (smp_cpus > 1) { /* Schedule ourselves on the indicated cpu. */ @@ -573,10 +570,24 @@ cpu_est_clockrate(int cpu_id, uint64_t * /* Calibrate by measuring a short delay. */ reg = intr_disable(); - tsc1 = rdtsc(); - DELAY(1000); - tsc2 = rdtsc(); - intr_restore(reg); + if (tsc_is_invariant) { + wrmsr(MSR_MPERF, 0); + wrmsr(MSR_APERF, 0); + tsc1 = rdtsc(); + DELAY(1000); + mcnt = rdmsr(MSR_MPERF); + acnt = rdmsr(MSR_APERF); + tsc2 = rdtsc(); + intr_restore(reg); + perf = 1000 * acnt / mcnt; + *rate = (tsc2 - tsc1) * perf; + } else { + tsc1 = rdtsc(); + DELAY(1000); + tsc2 = rdtsc(); + intr_restore(reg); + *rate = (tsc2 - tsc1) * 1000; + } #ifdef SMP if (smp_cpus > 1) { @@ -586,17 +597,6 @@ cpu_est_clockrate(int cpu_id, uint64_t * } #endif - tsc2 -= tsc1; - if (freq != 0) { - *rate = tsc2 * 1000; - return (0); - } - - /* - * Subtract 0.5% of the total. Empirical testing has shown that - * overhead in DELAY() works out to approximately this value. - */ - *rate = tsc2 * 1000 - tsc2 * 5; return (0); } Modified: projects/altix/sys/amd64/amd64/pmap.c ============================================================================== --- projects/altix/sys/amd64/amd64/pmap.c Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/amd64/amd64/pmap.c Tue Apr 26 00:20:04 2011 (r221045) @@ -239,7 +239,6 @@ static vm_page_t pmap_enter_quick_locked vm_page_t m, vm_prot_t prot, vm_page_t mpte); static void pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte); static void pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte); -static void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva); static boolean_t pmap_is_modified_pvh(struct md_page *pvh); static boolean_t pmap_is_referenced_pvh(struct md_page *pvh); static void pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mode); @@ -1105,7 +1104,9 @@ pmap_update_pde(pmap_t pmap, vm_offset_t } #endif /* !SMP */ -static void +#define PMAP_CLFLUSH_THRESHOLD (2 * 1024 * 1024) + +void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva) { @@ -1117,7 +1118,7 @@ pmap_invalidate_cache_range(vm_offset_t if (cpu_feature & CPUID_SS) ; /* If "Self Snoop" is supported, do nothing. */ else if ((cpu_feature & CPUID_CLFSH) != 0 && - eva - sva < 2 * 1024 * 1024) { + eva - sva < PMAP_CLFLUSH_THRESHOLD) { /* * Otherwise, do per-cache line flush. Use the mfence @@ -1142,6 +1143,34 @@ pmap_invalidate_cache_range(vm_offset_t } /* + * Remove the specified set of pages from the data and instruction caches. + * + * In contrast to pmap_invalidate_cache_range(), this function does not + * rely on the CPU's self-snoop feature, because it is intended for use + * when moving pages into a different cache domain. + */ +void +pmap_invalidate_cache_pages(vm_page_t *pages, int count) +{ + vm_offset_t daddr, eva; + int i; + + if (count >= PMAP_CLFLUSH_THRESHOLD / PAGE_SIZE || + (cpu_feature & CPUID_CLFSH) == 0) + pmap_invalidate_cache(); + else { + mfence(); + for (i = 0; i < count; i++) { + daddr = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pages[i])); + eva = daddr + PAGE_SIZE; + for (; daddr < eva; daddr += cpu_clflush_line_size) + clflush(daddr); + } + mfence(); + } +} + +/* * Are we current address space or kernel? */ static __inline int Modified: projects/altix/sys/amd64/conf/GENERIC ============================================================================== --- projects/altix/sys/amd64/conf/GENERIC Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/amd64/conf/GENERIC Tue Apr 26 00:20:04 2011 (r221045) @@ -89,14 +89,12 @@ device pci # Floppy drives device fdc -# ATA and ATAPI devices -device ata -device atadisk # ATA disk drives -device ataraid # ATA RAID drives -device atapicd # ATAPI CDROM drives -device atapifd # ATAPI floppy drives -device atapist # ATAPI tape drives -options ATA_STATIC_ID # Static device numbering +# ATA controllers +device ahci # AHCI-compatible SATA controllers +device ata # Legacy ATA/SATA controllers +options ATA_CAM # Handle legacy controllers with CAM +device mvs # Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA +device siis # SiliconImage SiI3124/SiI3132/SiI3531 SATA # SCSI Controllers device ahc # AHA2940 and onboard AIC7xxx devices @@ -120,13 +118,13 @@ device adw # Advansys wide SCSI adapte device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters -# SCSI peripherals -device scbus # SCSI bus (required for SCSI) +# ATA/SCSI peripherals +device scbus # SCSI bus (required for ATA/SCSI) device ch # SCSI media changers device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD -device pass # Passthrough device (direct SCSI access) +device pass # Passthrough device (direct ATA/SCSI access) device ses # SCSI Environmental Services (and SAF-TE) # RAID controllers interfaced to the SCSI subsystem Modified: projects/altix/sys/amd64/include/clock.h ============================================================================== --- projects/altix/sys/amd64/include/clock.h Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/amd64/include/clock.h Tue Apr 26 00:20:04 2011 (r221045) @@ -19,6 +19,7 @@ extern u_int i8254_freq; extern int i8254_max_count; extern uint64_t tsc_freq; extern int tsc_is_invariant; +extern int tsc_perf_stat; void i8254_init(void); Modified: projects/altix/sys/amd64/include/cpufunc.h ============================================================================== --- projects/altix/sys/amd64/include/cpufunc.h Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/amd64/include/cpufunc.h Tue Apr 26 00:20:04 2011 (r221045) @@ -45,15 +45,15 @@ struct region_descriptor; -#define readb(va) (*(volatile u_int8_t *) (va)) -#define readw(va) (*(volatile u_int16_t *) (va)) -#define readl(va) (*(volatile u_int32_t *) (va)) -#define readq(va) (*(volatile u_int64_t *) (va)) - -#define writeb(va, d) (*(volatile u_int8_t *) (va) = (d)) -#define writew(va, d) (*(volatile u_int16_t *) (va) = (d)) -#define writel(va, d) (*(volatile u_int32_t *) (va) = (d)) -#define writeq(va, d) (*(volatile u_int64_t *) (va) = (d)) +#define readb(va) (*(volatile uint8_t *) (va)) +#define readw(va) (*(volatile uint16_t *) (va)) +#define readl(va) (*(volatile uint32_t *) (va)) +#define readq(va) (*(volatile uint64_t *) (va)) + +#define writeb(va, d) (*(volatile uint8_t *) (va) = (d)) +#define writew(va, d) (*(volatile uint16_t *) (va) = (d)) +#define writel(va, d) (*(volatile uint32_t *) (va) = (d)) +#define writeq(va, d) (*(volatile uint64_t *) (va) = (d)) #if defined(__GNUCLIKE_ASM) && defined(__CC_SUPPORTS___INLINE) @@ -176,7 +176,7 @@ inb(u_int port) { u_char data; - __asm volatile("inb %w1, %0" : "=a" (data) : "Nd" (port)); + __asm __volatile("inb %w1, %0" : "=a" (data) : "Nd" (port)); return (data); } @@ -185,7 +185,7 @@ inl(u_int port) { u_int data; - __asm volatile("inl %w1, %0" : "=a" (data) : "Nd" (port)); + __asm __volatile("inl %w1, %0" : "=a" (data) : "Nd" (port)); return (data); } @@ -227,20 +227,20 @@ inw(u_int port) { u_short data; - __asm volatile("inw %w1, %0" : "=a" (data) : "Nd" (port)); + __asm __volatile("inw %w1, %0" : "=a" (data) : "Nd" (port)); return (data); } static __inline void outb(u_int port, u_char data) { - __asm volatile("outb %0, %w1" : : "a" (data), "Nd" (port)); + __asm __volatile("outb %0, %w1" : : "a" (data), "Nd" (port)); } static __inline void outl(u_int port, u_int data) { - __asm volatile("outl %0, %w1" : : "a" (data), "Nd" (port)); + __asm __volatile("outl %0, %w1" : : "a" (data), "Nd" (port)); } static __inline void @@ -270,7 +270,7 @@ outsl(u_int port, const void *addr, size static __inline void outw(u_int port, u_short data) { - __asm volatile("outw %0, %w1" : : "a" (data), "Nd" (port)); + __asm __volatile("outw %0, %w1" : : "a" (data), "Nd" (port)); } static __inline void @@ -295,31 +295,40 @@ read_rflags(void) return (rf); } -static __inline u_int64_t +static __inline uint64_t rdmsr(u_int msr) { - u_int32_t low, high; + uint32_t low, high; __asm __volatile("rdmsr" : "=a" (low), "=d" (high) : "c" (msr)); - return (low | ((u_int64_t)high << 32)); + return (low | ((uint64_t)high << 32)); } -static __inline u_int64_t +static __inline uint64_t rdpmc(u_int pmc) { - u_int32_t low, high; + uint32_t low, high; __asm __volatile("rdpmc" : "=a" (low), "=d" (high) : "c" (pmc)); - return (low | ((u_int64_t)high << 32)); + return (low | ((uint64_t)high << 32)); } -static __inline u_int64_t +static __inline uint64_t rdtsc(void) { - u_int32_t low, high; + uint32_t low, high; __asm __volatile("rdtsc" : "=a" (low), "=d" (high)); - return (low | ((u_int64_t)high << 32)); + return (low | ((uint64_t)high << 32)); +} + +static __inline uint32_t +rdtsc32(void) +{ + uint32_t rv; + + __asm __volatile("rdtsc" : "=a" (rv) : : "edx"); + return (rv); } static __inline void @@ -335,9 +344,9 @@ write_rflags(u_long rf) } static __inline void -wrmsr(u_int msr, u_int64_t newval) +wrmsr(u_int msr, uint64_t newval) { - u_int32_t low, high; + uint32_t low, high; low = newval; high = newval >> 32; @@ -530,114 +539,114 @@ ltr(u_short sel) __asm __volatile("ltr %0" : : "r" (sel)); } -static __inline u_int64_t +static __inline uint64_t rdr0(void) { - u_int64_t data; + uint64_t data; __asm __volatile("movq %%dr0,%0" : "=r" (data)); return (data); } static __inline void -load_dr0(u_int64_t dr0) +load_dr0(uint64_t dr0) { __asm __volatile("movq %0,%%dr0" : : "r" (dr0)); } -static __inline u_int64_t +static __inline uint64_t rdr1(void) { - u_int64_t data; + uint64_t data; __asm __volatile("movq %%dr1,%0" : "=r" (data)); return (data); } static __inline void -load_dr1(u_int64_t dr1) +load_dr1(uint64_t dr1) { __asm __volatile("movq %0,%%dr1" : : "r" (dr1)); } -static __inline u_int64_t +static __inline uint64_t rdr2(void) { - u_int64_t data; + uint64_t data; __asm __volatile("movq %%dr2,%0" : "=r" (data)); return (data); } static __inline void -load_dr2(u_int64_t dr2) +load_dr2(uint64_t dr2) { __asm __volatile("movq %0,%%dr2" : : "r" (dr2)); } -static __inline u_int64_t +static __inline uint64_t rdr3(void) { - u_int64_t data; + uint64_t data; __asm __volatile("movq %%dr3,%0" : "=r" (data)); return (data); } static __inline void -load_dr3(u_int64_t dr3) +load_dr3(uint64_t dr3) { __asm __volatile("movq %0,%%dr3" : : "r" (dr3)); } -static __inline u_int64_t +static __inline uint64_t rdr4(void) { - u_int64_t data; + uint64_t data; __asm __volatile("movq %%dr4,%0" : "=r" (data)); return (data); } static __inline void -load_dr4(u_int64_t dr4) +load_dr4(uint64_t dr4) { __asm __volatile("movq %0,%%dr4" : : "r" (dr4)); } -static __inline u_int64_t +static __inline uint64_t rdr5(void) { - u_int64_t data; + uint64_t data; __asm __volatile("movq %%dr5,%0" : "=r" (data)); return (data); } static __inline void -load_dr5(u_int64_t dr5) +load_dr5(uint64_t dr5) { __asm __volatile("movq %0,%%dr5" : : "r" (dr5)); } -static __inline u_int64_t +static __inline uint64_t rdr6(void) { - u_int64_t data; + uint64_t data; __asm __volatile("movq %%dr6,%0" : "=r" (data)); return (data); } static __inline void -load_dr6(u_int64_t dr6) +load_dr6(uint64_t dr6) { __asm __volatile("movq %0,%%dr6" : : "r" (dr6)); } -static __inline u_int64_t +static __inline uint64_t rdr7(void) { - u_int64_t data; + uint64_t data; __asm __volatile("movq %%dr7,%0" : "=r" (data)); return (data); } static __inline void -load_dr7(u_int64_t dr7) +load_dr7(uint64_t dr7) { __asm __volatile("movq %0,%%dr7" : : "r" (dr7)); } @@ -684,14 +693,14 @@ void lldt(u_short sel); void load_cr0(u_long cr0); void load_cr3(u_long cr3); void load_cr4(u_long cr4); -void load_dr0(u_int64_t dr0); -void load_dr1(u_int64_t dr1); -void load_dr2(u_int64_t dr2); -void load_dr3(u_int64_t dr3); -void load_dr4(u_int64_t dr4); -void load_dr5(u_int64_t dr5); -void load_dr6(u_int64_t dr6); -void load_dr7(u_int64_t dr7); +void load_dr0(uint64_t dr0); +void load_dr1(uint64_t dr1); +void load_dr2(uint64_t dr2); +void load_dr3(uint64_t dr3); +void load_dr4(uint64_t dr4); +void load_dr5(uint64_t dr5); +void load_dr6(uint64_t dr6); +void load_dr7(uint64_t dr7); void load_fs(u_short sel); void load_gs(u_short sel); void ltr(u_short sel); @@ -705,23 +714,23 @@ u_long rcr0(void); u_long rcr2(void); u_long rcr3(void); u_long rcr4(void); -u_int64_t rdmsr(u_int msr); -u_int64_t rdpmc(u_int pmc); -u_int64_t rdr0(void); -u_int64_t rdr1(void); -u_int64_t rdr2(void); -u_int64_t rdr3(void); -u_int64_t rdr4(void); -u_int64_t rdr5(void); -u_int64_t rdr6(void); -u_int64_t rdr7(void); -u_int64_t rdtsc(void); +uint64_t rdmsr(u_int msr); +uint64_t rdpmc(u_int pmc); +uint64_t rdr0(void); +uint64_t rdr1(void); +uint64_t rdr2(void); +uint64_t rdr3(void); +uint64_t rdr4(void); +uint64_t rdr5(void); +uint64_t rdr6(void); +uint64_t rdr7(void); +uint64_t rdtsc(void); u_int read_rflags(void); u_int rfs(void); u_int rgs(void); void wbinvd(void); void write_rflags(u_int rf); -void wrmsr(u_int msr, u_int64_t newval); +void wrmsr(u_int msr, uint64_t newval); #endif /* __GNUCLIKE_ASM && __CC_SUPPORTS___INLINE */ Modified: projects/altix/sys/amd64/include/pmap.h ============================================================================== --- projects/altix/sys/amd64/include/pmap.h Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/amd64/include/pmap.h Tue Apr 26 00:20:04 2011 (r221045) @@ -328,6 +328,8 @@ void pmap_invalidate_page(pmap_t, vm_off void pmap_invalidate_range(pmap_t, vm_offset_t, vm_offset_t); void pmap_invalidate_all(pmap_t); void pmap_invalidate_cache(void); +void pmap_invalidate_cache_pages(vm_page_t *pages, int count); +void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva); #endif /* _KERNEL */ Modified: projects/altix/sys/amd64/include/specialreg.h ============================================================================== --- projects/altix/sys/amd64/include/specialreg.h Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/amd64/include/specialreg.h Tue Apr 26 00:20:04 2011 (r221045) @@ -196,6 +196,12 @@ #define CPUID_HTT_CORES 0x00ff0000 #define CPUID_LOCAL_APIC_ID 0xff000000 +/* + * CPUID instruction 6 ecx info + */ +#define CPUID_PERF_STAT 0x00000001 +#define CPUID_PERF_BIAS 0x00000008 + /* * CPUID instruction 0xb ebx info. */ Modified: projects/altix/sys/arm/at91/at91_wdt.c ============================================================================== --- projects/altix/sys/arm/at91/at91_wdt.c Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/arm/at91/at91_wdt.c Tue Apr 26 00:20:04 2011 (r221045) @@ -102,7 +102,7 @@ wdt_watchdog(void *argp, u_int cmd, int else if (interval > 0) sc->cmd = interval | WD_ACTIVE; - /* We cannot turn of our watchdog so if user + /* We cannot turn off our watchdog so if user * fails to turn us on go to passive mode. */ if ((sc->cmd & WD_ACTIVE) == 0) sc->cmd = WD_PASSIVE; Modified: projects/altix/sys/arm/conf/AVILA ============================================================================== --- projects/altix/sys/arm/conf/AVILA Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/arm/conf/AVILA Tue Apr 26 00:20:04 2011 (r221045) @@ -92,8 +92,8 @@ device gpioled device avila_gpio # GPIO pins on J8 device ata -device atadisk # ATA disk drives device avila_ata # Gateworks CF/IDE support +options ATA_CAM device npe # Network Processing Engine device npe_fw @@ -149,8 +149,9 @@ device usb device ohci device ehci device umass -device scbus # SCSI bus (required for SCSI) +device scbus # SCSI bus (required for ATA/SCSI) device da # Direct Access (disks) +device pass # Passthrough device (direct ATA/SCSI access) #device ural #device zyd Modified: projects/altix/sys/arm/conf/CAMBRIA ============================================================================== --- projects/altix/sys/arm/conf/CAMBRIA Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/arm/conf/CAMBRIA Tue Apr 26 00:20:04 2011 (r221045) @@ -95,8 +95,8 @@ device gpioled device cambria_gpio # GPIO pins on J11 device ata -device atadisk # ATA disk drives device avila_ata # Gateworks CF/IDE support +options ATA_CAM device npe # Network Processing Engine device npe_fw @@ -154,8 +154,9 @@ options USB_EHCI_BIG_ENDIAN_DESC # hand #options USB_DEBUG device ehci device umass -device scbus # SCSI bus (required for SCSI) +device scbus # SCSI bus (required for ATA/SCSI) device da # Direct Access (disks) +device pass # Passthrough device (direct ATA/SCSI access) #device ural #device zyd Modified: projects/altix/sys/arm/conf/CRB ============================================================================== --- projects/altix/sys/arm/conf/CRB Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/arm/conf/CRB Tue Apr 26 00:20:04 2011 (r221045) @@ -73,12 +73,12 @@ device uart device pci device ata -device atadisk # ATA disk drives -device ataraid # ATA RAID drives -device atapicd # ATAPI CDROM drives -device atapifd # ATAPI floppy drives -device atapist # ATAPI tape drives -options ATA_STATIC_ID # Static device numbering +options ATA_CAM + +device scbus # SCSI bus (required for ATA/SCSI) +device cd # CD +device da # Direct Access (disks) +device pass # Passthrough device (direct ATA/SCSI access) device "7seg" Modified: projects/altix/sys/arm/conf/DB-78XXX ============================================================================== --- projects/altix/sys/arm/conf/DB-78XXX Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/arm/conf/DB-78XXX Tue Apr 26 00:20:04 2011 (r221045) @@ -81,8 +81,7 @@ device iicbus device ds133x # SATA -device ata -device atadisk +device mvs # Flattened Device Tree options FDT Modified: projects/altix/sys/arm/conf/DB-88F5XXX ============================================================================== --- projects/altix/sys/arm/conf/DB-88F5XXX Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/arm/conf/DB-88F5XXX Tue Apr 26 00:20:04 2011 (r221045) @@ -83,8 +83,7 @@ device pass device da # SATA -device ata -device atadisk +device mvs # Flattened Device Tree options FDT Modified: projects/altix/sys/arm/conf/DB-88F6XXX ============================================================================== --- projects/altix/sys/arm/conf/DB-88F6XXX Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/arm/conf/DB-88F6XXX Tue Apr 26 00:20:04 2011 (r221045) @@ -80,8 +80,7 @@ device iic device iicbus # SATA -device ata -device atadisk +device mvs # Flattened Device Tree options FDT Modified: projects/altix/sys/arm/conf/EP80219 ============================================================================== --- projects/altix/sys/arm/conf/EP80219 Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/arm/conf/EP80219 Tue Apr 26 00:20:04 2011 (r221045) @@ -73,12 +73,12 @@ device uart device pci device ata -device atadisk # ATA disk drives -device ataraid # ATA RAID drives -device atapicd # ATAPI CDROM drives -device atapifd # ATAPI floppy drives -device atapist # ATAPI tape drives -options ATA_STATIC_ID # Static device numbering +options ATA_CAM + +device scbus # SCSI bus (required for ATA/SCSI) +device cd # CD +device da # Direct Access (disks) +device pass # Passthrough device (direct ATA/SCSI access) # SCSI Controllers @@ -111,4 +111,4 @@ options INCLUDE_CONFIG_FILE # Inclu options VERBOSE_INIT_ARM device bpf -#options ROOTDEVNAME=\"ufs:ad4s1a\" +#options ROOTDEVNAME=\"ufs:ada0s1a\" Modified: projects/altix/sys/arm/conf/IQ31244 ============================================================================== --- projects/altix/sys/arm/conf/IQ31244 Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/arm/conf/IQ31244 Tue Apr 26 00:20:04 2011 (r221045) @@ -72,12 +72,12 @@ device uart device pci device ata -device atadisk # ATA disk drives -device ataraid # ATA RAID drives -device atapicd # ATAPI CDROM drives -device atapifd # ATAPI floppy drives -device atapist # ATAPI tape drives -options ATA_STATIC_ID # Static device numbering +options ATA_CAM + +device scbus # SCSI bus (required for ATA/SCSI) +device cd # CD +device da # Direct Access (disks) +device pass # Passthrough device (direct ATA/SCSI access) # SCSI Controllers Copied: projects/altix/sys/arm/conf/TS7800 (from r221044, head/sys/arm/conf/TS7800) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/altix/sys/arm/conf/TS7800 Tue Apr 26 00:20:04 2011 (r221045, copy of r221044, head/sys/arm/conf/TS7800) @@ -0,0 +1,80 @@ +# +# Custom kernel for the TS-7800 board. +# +# $FreeBSD$ +# + +ident TS7800 +include "../mv/orion/std.ts7800" + +options SOC_MV_ORION +makeoptions MODULES_OVERRIDE="" + +#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols +makeoptions WERROR="-Werror" + +options SCHED_4BSD #4BSD scheduler +options INET #InterNETworking +options INET6 #IPv6 communications protocols +options FFS #Berkeley Fast Filesystem +options SOFTUPDATES # Enable FFS soft updates support +options NFSCLIENT #Network Filesystem Client +options NFSLOCKD #Network Lock Manager +options NFS_ROOT #NFS usable as /, requires NFSCLIENT +options BOOTP +options BOOTP_NFSROOT +options BOOTP_NFSV3 +options BOOTP_WIRED_TO=mge0 + +options SYSVSHM #SYSV-style shared memory +options SYSVMSG #SYSV-style message queues +options SYSVSEM #SYSV-style semaphores +options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions +options MUTEX_NOINLINE +options RWLOCK_NOINLINE +options NO_FFS_SNAPSHOT +options NO_SWAPPING + +# Debugging +options ALT_BREAK_TO_DEBUGGER +options DDB +options KDB +options GDB # Support remote GDB. + +device mvs +device pci + +# Pseudo devices +device md +device loop +device pty +device random + +# Serial ports +device uart + +# Networking +device ether +device mge # Marvell Gigabit Ethernet controller +device mii +device e1000phy +device bpf +options HZ=1000 + +# USB +device usb +device ehci +device umass +device scbus +device pass +device da + +# SATA +device ata +options ATA_CAM + +# Flattened Device Tree +options FDT +options FDT_DTB_STATIC +makeoptions FDT_DTS_FILE=ts7800.dts + Modified: projects/altix/sys/arm/econa/ehci_ebus.c ============================================================================== --- projects/altix/sys/arm/econa/ehci_ebus.c Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/arm/econa/ehci_ebus.c Tue Apr 26 00:20:04 2011 (r221045) @@ -238,10 +238,10 @@ ehci_ebus_detach(device_t self) device_delete_all_children(self); /* - * disable interrupts that might have been switched on in ehci_init + * disable interrupts that might have been switched on in + * ehci_ebus_attach() */ if (sc->sc_io_res) { - EOWRITE4(sc, EHCI_USBINTR, 0); EWRITE4(sc, USB_BRIDGE_INTR_MASK, 0); } if (sc->sc_irq_res && sc->sc_intr_hdl) { Copied: projects/altix/sys/arm/mv/orion/files.ts7800 (from r221044, head/sys/arm/mv/orion/files.ts7800) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/altix/sys/arm/mv/orion/files.ts7800 Tue Apr 26 00:20:04 2011 (r221045, copy of r221044, head/sys/arm/mv/orion/files.ts7800) @@ -0,0 +1,4 @@ +# $FreeBSD$ + +arm/mv/orion/orion.c standard + Copied: projects/altix/sys/arm/mv/orion/std.ts7800 (from r221044, head/sys/arm/mv/orion/std.ts7800) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/altix/sys/arm/mv/orion/std.ts7800 Tue Apr 26 00:20:04 2011 (r221045, copy of r221044, head/sys/arm/mv/orion/std.ts7800) @@ -0,0 +1,15 @@ +# $FreeBSD$ + +include "../mv/std.mv" +files "../mv/orion/files.ts7800" + +makeoptions KERNPHYSADDR=0x00900000 +makeoptions KERNVIRTADDR=0xc0900000 + +options KERNPHYSADDR=0x00900000 +options KERNVIRTADDR=0xc0900000 +options PHYSADDR=0x00000000 +options STARTUP_PAGETABLE_ADDR=0x00100000 +options LOADERRAMADDR=0x00000000 +options FLASHADDR=0x00008000 + Modified: projects/altix/sys/arm/xscale/i8134x/crb_machdep.c ============================================================================== --- projects/altix/sys/arm/xscale/i8134x/crb_machdep.c Tue Apr 26 00:08:50 2011 (r221044) +++ projects/altix/sys/arm/xscale/i8134x/crb_machdep.c Tue Apr 26 00:20:04 2011 (r221045) @@ -196,6 +196,9 @@ initarm(void *arg, void *arg2) pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); + /* Do basic tuning, hz etc */ + init_param1(); + freemempos = 0x00200000; /* Define a macro to simplify memory allocation */ #define valloc_pages(var, np) \ @@ -389,8 +392,6 @@ initarm(void *arg, void *arg2) phys_avail[i++] = 0; phys_avail[i] = 0; - /* Do basic tuning, hz etc */ - init_param1(); init_param2(physmem); kdb_init(); return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - Copied: projects/altix/sys/boot/fdt/dts/ts7800.dts (from r221044, head/sys/boot/fdt/dts/ts7800.dts) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/altix/sys/boot/fdt/dts/ts7800.dts Tue Apr 26 00:20:04 2011 (r221045, copy of r221044, head/sys/boot/fdt/dts/ts7800.dts) @@ -0,0 +1,161 @@ +/* + * Copyright (c) 2010 The FreeBSD Foundation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Technologic Systems TS-7800 Device Tree Source. + * + * $FreeBSD$ + */ + +/dts-v1/; + +/ { + model = "mrvl,TS-7800"; + compatible = "DB-88F5182-BP", "DB-88F5182-BP-A"; + #address-cells = <1>; + #size-cells = <1>; + + aliases { + ethernet0 = &mge0; + serial0 = &serial0; + serial1 = &serial1; + mpp = &MPP; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + device_type = "cpu"; + compatible = "ARM,88FR531"; + reg = <0x0>; + d-cache-line-size = <32>; // 32 bytes + i-cache-line-size = <32>; // 32 bytes + d-cache-size = <0x8000>; // L1, 32K + i-cache-size = <0x8000>; // L1, 32K + timebase-frequency = <0>; + bus-frequency = <0>; + clock-frequency = <0>; + }; + }; + + memory { + device_type = "memory"; + reg = <0x0 0x08000000>; // 128M at 0x0 + }; + + localbus@f1000000 { + #address-cells = <2>; + #size-cells = <1>; + compatible = "mrvl,lbc"; + + /* This reflects CPU decode windows setup. */ + ranges = <0x0 0x0f 0xf9300000 0x00100000 + 0x1 0x1e 0xfa000000 0x00100000 + 0x2 0x1d 0xfa100000 0x02000000>; + }; + + soc88f5182@f1000000 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "simple-bus"; + ranges = <0x0 0xf1000000 0x00100000>; + bus-frequency = <0>; + + PIC: pic@20200 { + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + reg = <0x20200 0x3c>; + compatible = "mrvl,pic"; + }; + + timer@20300 { + compatible = "mrvl,timer"; + reg = <0x20300 0x30>; + interrupts = <0>; + interrupt-parent = <&PIC>; + mrvl,has-wdt; + }; + + MPP: mpp@10000 { + #pin-cells = <2>; + compatible = "mrvl,mpp"; + reg = <0x10000 0x54>; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 02:58:40 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 54DB8106566B; Tue, 26 Apr 2011 02:58:40 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 443BC8FC26; Tue, 26 Apr 2011 02:58:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3Q2weTr003753; Tue, 26 Apr 2011 02:58:40 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3Q2weFB003751; Tue, 26 Apr 2011 02:58:40 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104260258.p3Q2weFB003751@svn.freebsd.org> From: Marcel Moolenaar Date: Tue, 26 Apr 2011 02:58:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221050 - projects/altix/sys/ia64/include X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 02:58:40 -0000 Author: marcel Date: Tue Apr 26 02:58:39 2011 New Revision: 221050 URL: http://svn.freebsd.org/changeset/base/221050 Log: Remove field dev_xxx. Modified: projects/altix/sys/ia64/include/sgisn.h Modified: projects/altix/sys/ia64/include/sgisn.h ============================================================================== --- projects/altix/sys/ia64/include/sgisn.h Tue Apr 26 02:06:31 2011 (r221049) +++ projects/altix/sys/ia64/include/sgisn.h Tue Apr 26 02:58:39 2011 (r221050) @@ -172,7 +172,6 @@ struct sgisn_fwdev { struct sgisn_fwbus *dev_parent; uint64_t dev_os_private[2]; struct sgisn_fwirq *dev_irq; - uint64_t dev_xxx[4]; }; /* From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 04:52:35 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9AEEE1065670; Tue, 26 Apr 2011 04:52:35 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 886ED8FC0C; Tue, 26 Apr 2011 04:52:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3Q4qZr7007610; Tue, 26 Apr 2011 04:52:35 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3Q4qZlP007608; Tue, 26 Apr 2011 04:52:35 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201104260452.p3Q4qZlP007608@svn.freebsd.org> From: Mark Linimon Date: Tue, 26 Apr 2011 04:52:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221054 - projects/portbuild/errorlogs X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 04:52:35 -0000 Author: linimon (doc,ports committer) Date: Tue Apr 26 04:52:35 2011 New Revision: 221054 URL: http://svn.freebsd.org/changeset/base/221054 Log: Sync with production on pointyhat-west. The 'full' usage was a historical artifact. Make it 'previous' which corresponds with what the scripts use. Modified: projects/portbuild/errorlogs/index.shtml Modified: projects/portbuild/errorlogs/index.shtml ============================================================================== --- projects/portbuild/errorlogs/index.shtml Tue Apr 26 04:09:20 2011 (r221053) +++ projects/portbuild/errorlogs/index.shtml Tue Apr 26 04:52:35 2011 (r221054) @@ -99,10 +99,10 @@ Error logs
* Previous run on 7.x-stable: -amd64 -i386 -ia64 -sparc64 +amd64 +i386 +ia64 +sparc64
* Current run on 7.x-stable: @@ -113,11 +113,11 @@ on 7.x-stable:
* Previous run on 8.x-stable: -amd64 -i386 -ia64 -powerpc -sparc64 +amd64 +i386 +ia64 +powerpc +sparc64
* Current run on 8.x-stable: @@ -129,11 +129,11 @@ on 8.x-stable:
* Previous run on 9.x-current: -amd64 -i386 -ia64 -powerpc -sparc64 +amd64 +i386 +ia64 +powerpc +sparc64
* Current run on 9.x-current: @@ -146,8 +146,8 @@ on 9.x-current:
* Previous run on 7.x-stable with experimental port patches: -amd64 -i386 +amd64 +i386
* Current run on 7.x-stable with experimental port patches: @@ -156,8 +156,8 @@ on 7.x-stable with experimental port pat
* Previous run on 8.x-stable with experimental port patches: -amd64 -i386 +amd64 +i386
* Current run on 8.x-stable with experimental port patches: @@ -166,8 +166,8 @@ on 8.x-stable with experimental port pat
* Previous run on 9.x-current with experimental port patches: -amd64 -i386 +amd64 +i386
* Current run on 9.x-current with experimental port patches: @@ -184,10 +184,10 @@ Build logs (errors and otherwise)
*Previous run on 7.x-stable: -amd64 -i386 -ia64 -sparc64 +amd64 +i386 +ia64 +sparc64
*Current run on 7.x-stable: @@ -198,11 +198,11 @@ on 7.x-stable:
*Previous run on 8.x-stable: -amd64 -i386 -ia64 -powerpc -sparc64 +amd64 +i386 +ia64 +powerpc +sparc64
*Current run on 8.x-stable: @@ -214,11 +214,11 @@ on 8.x-stable:
*Previous run on 9.x-current: -amd64 -i386 -ia64 -powerpc -sparc64 +amd64 +i386 +ia64 +powerpc +sparc64
*Current run on 9.x-current: @@ -231,8 +231,8 @@ on 9.x-current:
*Previous run on 7.x-stable with experimental port patches: -amd64 -i386 +amd64 +i386
*Current run on 7.x-stable with experimental port patches: @@ -241,8 +241,8 @@ on 7.x-stable with experimental port pat
*Previous run on 8.x-stable with experimental port patches: -amd64 -i386 +amd64 +i386
*Current run on 8.x-stable with experimental port patches: @@ -251,8 +251,8 @@ on 8.x-stable with experimental port pat
*Previous run on 9.x-current with experimental port patches: -amd64 -i386 +amd64 +i386
*Current run on 9.x-current with experimental port patches: From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 08:18:00 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 888E5106566B; Tue, 26 Apr 2011 08:18:00 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6C6A78FC18; Tue, 26 Apr 2011 08:18:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3Q8I0JF013703; Tue, 26 Apr 2011 08:18:00 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3Q8I0TF013696; Tue, 26 Apr 2011 08:18:00 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104260818.p3Q8I0TF013696@svn.freebsd.org> From: Florent Thoumie Date: Tue, 26 Apr 2011 08:18:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221056 - in projects/portbuild: conf scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 08:18:00 -0000 Author: flz Date: Tue Apr 26 08:18:00 2011 New Revision: 221056 URL: http://svn.freebsd.org/changeset/base/221056 Log: Don't hardcode CVS all over the place. Modified: projects/portbuild/conf/server.conf projects/portbuild/scripts/dopackages projects/portbuild/scripts/makeworld projects/portbuild/scripts/processfail projects/portbuild/scripts/processlogs projects/portbuild/scripts/processlogs2 Modified: projects/portbuild/conf/server.conf ============================================================================== --- projects/portbuild/conf/server.conf Tue Apr 26 07:30:52 2011 (r221055) +++ projects/portbuild/conf/server.conf Tue Apr 26 08:18:00 2011 (r221056) @@ -100,6 +100,18 @@ UPLOAD_USER="portmgr" MASTER_URL="pointyhat.FreeBSD.org" # +# vcs-specific definitions +# + +VCS="cvs" + +VCS_UPDATE_DATE="-Rq update -PdA -D" +VCS_UPDATE_TAG="-Rq update -PdA -r" + +VCSWEB="http://cvsweb.freebsd.org" + +# # www definitions (see processfail) # + WWW_DIRECTORY=/usr/local/www/data/ Modified: projects/portbuild/scripts/dopackages ============================================================================== --- projects/portbuild/scripts/dopackages Tue Apr 26 07:30:52 2011 (r221055) +++ projects/portbuild/scripts/dopackages Tue Apr 26 08:18:00 2011 (r221056) @@ -14,7 +14,7 @@ umask 002 journalname="journal" usage () { - echo "usage: arch branch buildid datestamp [-incremental] [-continue] [-restart] [-nofinish] [-finish] [-nocleanup] [-keep] [-nobuild] [-noindex] [-noduds] [-norestr] [-nochecksubdirs] [-nosrc] [-srccvs] [-noports] [-portscvs] [-noplistcheck] [-nodistfiles] [-fetch-original] [-cdrom] [-trybroken]" + echo "usage: arch branch buildid datestamp [-incremental] [-continue] [-restart] [-nofinish] [-finish] [-nocleanup] [-keep] [-nobuild] [-noindex] [-noduds] [-norestr] [-nochecksubdirs] [-nosrc] [-srcvcs] [-noports] [-portsvcs] [-noplistcheck] [-nodistfiles] [-fetch-original] [-cdrom] [-trybroken]" # XXX MCL I think it's going to be too hard to move the create in here, now. echo " -incremental : Start a new incremental build" echo " -continue : Restart an interrupted build, skipping failed ports" @@ -29,9 +29,9 @@ usage () { echo " -nochecksubdirs : Do not check the SUBDIRS" echo " -norestr : Do not build the restricted.sh file" echo " -nosrc : Do not update the src tree" - echo " -srccvs : Update the src tree via CVS, don't use a pre-existing snapshot" + echo " -srcvcs : Update the src tree via CVS, don't use a pre-existing snapshot" echo " -noports : Do not update the ports tree" - echo " -portscvs : Update the ports tree via CVS, don't use a pre-existing snapshot" + echo " -portsvcs : Update the ports tree via CVS, don't use a pre-existing snapshot" echo " -noplistcheck : Don't check the plist during the build" echo " -nodistfiles : Don't collect distfiles" echo " -fetch-original : Fetch from original MASTER_SITE" @@ -272,9 +272,9 @@ nobuild=0 noindex=0 noduds=0 nosrc=0 -srccvs=0 +srcvcs=0 noports=0 -portscvs=0 +portsvcs=0 norestr=0 nochecksubdirs=0 noplistcheck=0 @@ -308,14 +308,14 @@ while [ $# -gt 0 ]; do x-nosrc) nosrc=1 ;; - x-srccvs) - srccvs=1 + x-srccvs|x-srcvcs) + srcvcs=1 ;; x-noports) noports=1 ;; - x-portscvs) - portscvs=1 + x-portscvs|x-portsvcs) + portsvcs=1 ;; x-norestr) norestr=1 @@ -370,7 +370,7 @@ else skipstart=0 fi -# XXX check for conflict between -noports and -portscvs etc +# XXX check for conflict between -noports and -portsvcs etc # We have valid options, start the build @@ -447,14 +447,14 @@ if [ "$skipstart" = 0 ]; then fi if [ ${noports} -eq 0 ]; then - if [ -L ${builddir}/ports -o ${portscvs} -eq 1 ]; then + if [ -L ${builddir}/ports -o ${portsvcs} -eq 1 ]; then echo "================================================" - echo "running cvs update -PAd on ${PORTSDIR}" + echo "updating ${PORTSDIR} from ${VCS}" echo "================================================" cd ${PORTSDIR} - updated=$(date) + updated=$(date '+%Y/%m/%d %H:%M') echo ${updated} > ${builddir}/.updated - cvs -Rq update -PdA -D "${updated}" + ${VCS} ${VCS_UPDATE_DATE} "${updated}" # XXX Check for conflicts else # echo "XXX at build portsupdate portsupdate ${arch} ${branch} ${buildid} $@ " @@ -474,13 +474,13 @@ if [ "$skipstart" = 0 ]; then # Create tarballs for distributing to clients. Should not cause # much extra delay because we will do this in conjunction with # recursing over the ports tree anyway just below, and might have - # just finished cvs updating, so it is likely to be in cache. + # just finished vcs updating, so it is likely to be in cache. portstar & if [ ${nosrc} -eq 0 ]; then - if [ -L ${builddir}/src -o ${srccvs} -eq 1 ]; then + if [ -L ${builddir}/src -o ${srcvcs} -eq 1 ]; then echo "================================================" - echo "running cvs update -PAd on ${SRC_BASE}" + echo "updating ${SRC_BASE} from ${VCS}" echo "================================================" cd ${SRC_BASE} if [ -z "${updated}" ]; then @@ -488,7 +488,7 @@ if [ "$skipstart" = 0 ]; then # with the ports update updated=$(date) fi - cvs -Rq update -PdA -D "${updated}" + ${VCS} ${VCS_UPDATE_ARGS} "${updated}" # XXX Check for conflicts else build srcupdate ${arch} ${branch} ${buildid} $@ Modified: projects/portbuild/scripts/makeworld ============================================================================== --- projects/portbuild/scripts/makeworld Tue Apr 26 07:30:52 2011 (r221055) +++ projects/portbuild/scripts/makeworld Tue Apr 26 08:18:00 2011 (r221056) @@ -29,7 +29,7 @@ export TARGET_ARCH=${arch} export NO_FSCHG=1 client=0 -nocvs=0 +novcs=0 # optional arguments while [ $# -gt 0 ]; do @@ -37,8 +37,8 @@ while [ $# -gt 0 ]; do -client) client=1 ;; - -nocvs) - nocvs=1 + -nocvs|-novcs) + novcs=1 ;; *) args="$1 ${args}" @@ -57,10 +57,10 @@ else fi cd ${SRC_BASE} -if [ "$nocvs" = "0" ]; then +if [ "$novcs" = "0" ]; then echo "==> Updating source tree" eval tag=\$SRC_BRANCH_${branch}_TAG - cvs -Rq update -PdA -r ${tag} || exit $? + ${VCS} ${VCS_UPDATE_TAG} ${tag} || exit $? fi echo "==> Starting make buildworld" Modified: projects/portbuild/scripts/processfail ============================================================================== --- projects/portbuild/scripts/processfail Tue Apr 26 07:30:52 2011 (r221055) +++ projects/portbuild/scripts/processfail Tue Apr 26 08:18:00 2011 (r221056) @@ -58,7 +58,7 @@ sort -r -n -k 4 -t \| failure > newfailu IFS='|' while read dir name ver date last count; do echo "" >> $of - echo "$dir" >> $of + echo "$dir" >> $of if [ -L ${pb}/${arch}/${branch}/latest/${dir} ]; then err=$(readlink ${pb}/${arch}/${branch}/latest/${dir}) echo "$ver" >> $of @@ -67,7 +67,7 @@ while read dir name ver date last count; fi # echo "$affby$4 Kb" >> $of -# echo "$5" >> $of +# echo "$5" >> $of # echo "$6" >> $of # echo "" >> $of Modified: projects/portbuild/scripts/processlogs ============================================================================== --- projects/portbuild/scripts/processlogs Tue Apr 26 07:30:52 2011 (r221055) +++ projects/portbuild/scripts/processlogs Tue Apr 26 08:18:00 2011 (r221056) @@ -175,7 +175,7 @@ sort .logs/.all | while read line; do affby="$3" test "${affby}" = "0" -o "${affby}" = "-1" && affby=" " echo "${affby}$4 Kb" >> $of - echo "$5" >> $of + echo "$5" >> $of echo "$mailto" >> $of echo "" >> $of @@ -211,7 +211,7 @@ sort -t \| +4 .logs/.all | while read li echo "" >> $of - echo "$5" >> $of + echo "$5" >> $of affby="$3" test "${affby}" = "0" -o "${affby}" = "-1" && affby=" " @@ -258,7 +258,7 @@ sort -t \| +5 .logs/.all | while read li affby="$3" test "${affby}" = "0" -o "${affby}" = "-1" && affby=" " echo "${affby}$4 Kb" >> $of - echo "$5" >> $of + echo "$5" >> $of echo "" >> $of test "$9" = "broken" && echo "[B]" >> $of @@ -304,7 +304,7 @@ sort -t \| +7 .logs/.all | while read li affby="$3" test "${affby}" = "0" -o "${affby}" = "-1" && affby=" " echo "${affby}$4 Kb" >> $of - echo "$5" >> $of + echo "$5" >> $of echo "$mailto" >> $of date=`echo ${10} | sed -e "s/_/ /g"` @@ -343,7 +343,7 @@ sort -t \| +9 .logs/.all | while read li affby="$3" test "${affby}" = "0" -o "${affby}" = "-1" && affby=" " echo "${affby}$4 Kb" >> $of - echo "$5" >> $of + echo "$5" >> $of echo "$mailto" >> $of echo "" >> $of Modified: projects/portbuild/scripts/processlogs2 ============================================================================== --- projects/portbuild/scripts/processlogs2 Tue Apr 26 07:30:52 2011 (r221055) +++ projects/portbuild/scripts/processlogs2 Tue Apr 26 08:18:00 2011 (r221056) @@ -38,7 +38,7 @@ else echo -n "$size KB" >>$of echo -n "" >>$of dir=$(sed -n -e '5p' $log.log | awk '{print $3}' | sed -e 's,^/[^/]*/[^/]*/,,') - echo -n "$dir" >>$of + echo -n "$dir" >>$of echo -n "" >>$of maint=$(sed -n -e '4p' $log.log | awk '{print $3}') maints="$maints $maint" From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 08:18:01 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DA66A1065670; Tue, 26 Apr 2011 08:18:01 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C96B28FC19; Tue, 26 Apr 2011 08:18:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3Q8I1QS013741; Tue, 26 Apr 2011 08:18:01 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3Q8I1Vf013736; Tue, 26 Apr 2011 08:18:01 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104260818.p3Q8I1Vf013736@svn.freebsd.org> From: Florent Thoumie Date: Tue, 26 Apr 2011 08:18:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221057 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 08:18:01 -0000 Author: flz Date: Tue Apr 26 08:18:01 2011 New Revision: 221057 URL: http://svn.freebsd.org/changeset/base/221057 Log: Add support for dopackages -target , to only build a defined set of ports. Modified: projects/portbuild/scripts/dopackages projects/portbuild/scripts/makeduds projects/portbuild/scripts/makeindex projects/portbuild/scripts/makerestr Modified: projects/portbuild/scripts/dopackages ============================================================================== --- projects/portbuild/scripts/dopackages Tue Apr 26 08:18:00 2011 (r221056) +++ projects/portbuild/scripts/dopackages Tue Apr 26 08:18:01 2011 (r221057) @@ -14,7 +14,7 @@ umask 002 journalname="journal" usage () { - echo "usage: arch branch buildid datestamp [-incremental] [-continue] [-restart] [-nofinish] [-finish] [-nocleanup] [-keep] [-nobuild] [-noindex] [-noduds] [-norestr] [-nochecksubdirs] [-nosrc] [-srcvcs] [-noports] [-portsvcs] [-noplistcheck] [-nodistfiles] [-fetch-original] [-cdrom] [-trybroken]" + echo "usage: arch branch buildid datestamp [-incremental] [-continue] [-restart] [-nofinish] [-finish] [-nocleanup] [-keep] [-nobuild] [-noindex] [-noduds] [-norestr] [-nochecksubdirs] [-nosrc] [-srcvcs] [-noports] [-portsvcs] [-noplistcheck] [-nodistfiles] [-fetch-original] [-cdrom] [-trybroken] [-target ]" # XXX MCL I think it's going to be too hard to move the create in here, now. echo " -incremental : Start a new incremental build" echo " -continue : Restart an interrupted build, skipping failed ports" @@ -37,6 +37,7 @@ usage () { echo " -fetch-original : Fetch from original MASTER_SITE" echo " -cdrom : Prepare a build for distribution on CDROM " echo " -trybroken : Try to build BROKEN ports" + echo " -target : Build ports listed in file, rather than the whole ports tree" exit 1 } @@ -93,7 +94,7 @@ portstar() { md5 ${builddir}/ports-${buildid}.tbz > ${builddir}/ports-${buildid}.tbz.md5 } -# usage: makeindex pb arch branch builddir +# usage: makeindex pb arch branch builddir [target] # note: can take ~24 minutes! makeindex () { pb=$1 @@ -101,13 +102,14 @@ makeindex () { branch=$3 buildid=$4 builddir=$5 + target=$6 cd ${builddir}/ports echo "================================================" echo "generating index" echo "================================================" echo "index generation started at $(date)" - ${pb}/scripts/makeindex ${arch} ${branch} ${buildid} || return 1 + ${pb}/scripts/makeindex ${arch} ${branch} ${buildid} ${target} || return 1 echo "index generation ended at $(date)" echo $(wc -l ${INDEXFILE} | awk '{print $1}') "lines in INDEX" @@ -137,7 +139,7 @@ checkindex () { fi } -# usage: makeduds pb arch branch builddir +# usage: makeduds pb arch branch builddir [target] # note: can take ~21 minutes! makeduds () { pb=$1 @@ -145,6 +147,7 @@ makeduds () { branch=$3 buildid=$4 builddir=$5 + target=$6 cd ${builddir}/ports echo "================================================" @@ -154,7 +157,7 @@ makeduds () { if [ -e ${builddir}/duds ]; then cp -p ${builddir}/duds ${builddir}/duds.old fi - if ! ${pb}/scripts/makeduds ${arch} ${branch} ${buildid}; then + if ! ${pb}/scripts/makeduds ${arch} ${branch} ${buildid} ${target}; then echo "error(s) detected, exiting script at $(date). Failed duds list was:" cat ${builddir}/duds mailexit 1 @@ -170,7 +173,7 @@ makeduds () { cp -p ${builddir}/duds ${builddir}/duds.orig } -# usage: restrictedlist pb arch branch builddir +# usage: restrictedlist pb arch branch builddir [target] # note: can take ~25 minutes! restrictedlist () { pb=$1 @@ -178,13 +181,14 @@ restrictedlist () { branch=$3 buildid=$4 builddir=$5 + target=$6 cd ${builddir}/ports echo "================================================" echo "creating restricted list" echo "================================================" echo "restricted list generation started at $(date)" - ${pb}/scripts/makerestr ${arch} ${branch} ${buildid} || return 1 + ${pb}/scripts/makerestr ${arch} ${branch} ${buildid} ${target} || return 1 echo "restricted list generation ended at $(date)" echo $(grep -c '^#' ${builddir}/restricted.sh) "ports in ${builddir}/restricted.sh" } @@ -357,6 +361,10 @@ while [ $# -gt 0 ]; do x-nocleanup) nocleanup=1 ;; + x-target) + shift + target=$(realpath $1) + ;; *) usage ;; @@ -510,11 +518,11 @@ if [ "$skipstart" = 0 ]; then # XXX MCL could background these? # not run in background to check return status if [ "$noindex" = 0 ]; then - makeindex ${pb} ${arch} ${branch} ${buildid} ${builddir} || mailexit 1 + makeindex ${pb} ${arch} ${branch} ${buildid} ${builddir} ${target} || mailexit 1 fi checkindex ${builddir} || mailexit 1 if [ "$noduds" = 0 ]; then - makeduds ${pb} ${arch} ${branch} ${buildid} ${builddir} || mailexit 1 + makeduds ${pb} ${arch} ${branch} ${buildid} ${builddir} ${target} || mailexit 1 fi wait # for tar creation @@ -539,7 +547,7 @@ if [ "$skipstart" = 0 ]; then # XXX These can happen after build start if [ "$norestr" = 0 ]; then - restrictedlist ${pb} ${arch} ${branch} ${buildid} ${builddir} & + restrictedlist ${pb} ${arch} ${branch} ${buildid} ${builddir} ${target} & job_restrictedlist=$! fi Modified: projects/portbuild/scripts/makeduds ============================================================================== --- projects/portbuild/scripts/makeduds Tue Apr 26 08:18:00 2011 (r221056) +++ projects/portbuild/scripts/makeduds Tue Apr 26 08:18:01 2011 (r221057) @@ -1,11 +1,11 @@ #!/bin/sh usage () { - echo "usage: makeduds arch branch buildid" + echo "usage: makeduds arch branch buildid [target]" exit 1 } -if [ $# -ne 3 ]; then +if [ $# -lt 3 ]; then usage fi @@ -14,7 +14,7 @@ pb=/var/portbuild arch=$1 branch=$2 buildid=$3 -shift 3 +target=$4 builddir=${pb}/${arch}/${branch}/builds/${buildid} @@ -39,8 +39,21 @@ export LINUXBASE=/nonexistentlinux export PKG_DBDIR=/nonexistentpkg export PORT_DBDIR=/nonexistentport +DUDS_PORTS=. +if [ -n "$target" ]; then + if [ -f "$target" ]; then + DUDS_PORTS=$(cat $target | tr '\n' ' ') + else + echo "File $target doesn't exist. Exiting." + exit 1 + fi +fi + cd ${PORTSDIR} -make -j${DUDSJOBS} ignorelist-verbose ECHO_MSG=true > ${duds}.verbose 2> /dev/null || exit 1 +(for i in ${DUDS_PORTS}; do + cd ${PORTSDIR}/$i + make -j${DUDSJOBS} ignorelist-verbose ECHO_MSG=true +done) > ${duds}.verbose 2> /dev/null || exit 1 sort ${duds}.verbose > ${duds}.verbose.tmp mv -f ${duds}.verbose.tmp ${duds}.verbose cut -f 1 -d \| ${duds}.verbose > ${duds} Modified: projects/portbuild/scripts/makeindex ============================================================================== --- projects/portbuild/scripts/makeindex Tue Apr 26 08:18:00 2011 (r221056) +++ projects/portbuild/scripts/makeindex Tue Apr 26 08:18:01 2011 (r221057) @@ -16,18 +16,18 @@ export INDEX_JOBS=6 pb=/var/portbuild usage () { - echo "usage: makeindex arch branch buildid" + echo "usage: makeindex arch branch buildid [target]" exit 1 } -if [ $# -ne 3 ]; then +if [ $# -lt 3 ]; then usage fi arch=$1 branch=$2 buildid=$3 -shift 3 +target=$4 builddir=${pb}/${arch}/${branch}/builds/${buildid} @@ -44,8 +44,17 @@ unset DISPLAY # Don't pick up installed packages from the host export LOCALBASE=/nonexistentlocal +if [ -n "$target" ]; then + if [ -f "$target" ]; then + INDEX_PORTS=$(cat $target | tr '\n' ' ') + else + echo "File $target doesn't exist. Exiting." + exit 1 + fi +fi + cd ${PORTSDIR} -make index +make index INDEX_PORTS="${INDEX_PORTS}" if [ ! -e ${INDEXFILE} ]; then echo "makeindex: failed to make ${INDEXFILE}" exit 1 Modified: projects/portbuild/scripts/makerestr ============================================================================== --- projects/portbuild/scripts/makerestr Tue Apr 26 08:18:00 2011 (r221056) +++ projects/portbuild/scripts/makerestr Tue Apr 26 08:18:01 2011 (r221057) @@ -1,10 +1,10 @@ #!/bin/sh usage () { - echo "usage: makerestr arch branch buildid" + echo "usage: makerestr arch branch buildid [target]" exit 1 } -if [ $# -ne 3 ]; then +if [ $# -lt 3 ]; then usage fi @@ -13,7 +13,7 @@ pb=/var/portbuild arch=$1 branch=$2 buildid=$3 -shift +target=$4 . ${pb}/conf/server.conf . ${pb}/conf/common.conf @@ -32,8 +32,20 @@ export LINUXBASE=/nonexistentlinux export PKG_DBDIR=/nonexistentpkg export PORT_DBDIR=/nonexistentport +RESTR_PORTS=. +if [ -n "$target" ]; then + if [ -f "$target" ]; then + RESTR_PORTS=$(cat $target | tr '\n' ' ') + else + echo "File $target doesn't exist. Exiting." + exit 1 + fi +fi + cd ${PORTSDIR} -make -j4 ECHO_MSG=true clean-restricted-list \ - | sed -e "s!/usr/ports/packages/!${builddir}/packages/!g" \ - -e "s!/usr/ports/!${builddir}/ports/!g" \ - > ${builddir}/restricted.sh 2> /dev/null +(for i in ${RESTR_PORTS}; do + cd ${PORTSDIR}/$i + make -j4 ECHO_MSG=true clean-restricted-list \ + | sed -e "s!/usr/ports/packages/!${builddir}/packages/!g" \ + -e "s!/usr/ports/!${builddir}/ports/!g" +done) > ${builddir}/restricted.sh 2> /dev/null From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 12:50:26 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C99AA106567C; Tue, 26 Apr 2011 12:50:26 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A104B8FC0C; Tue, 26 Apr 2011 12:50:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QCoQm5023106; Tue, 26 Apr 2011 12:50:26 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QCoQxe023104; Tue, 26 Apr 2011 12:50:26 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104261250.p3QCoQxe023104@svn.freebsd.org> From: Florent Thoumie Date: Tue, 26 Apr 2011 12:50:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221063 - in projects/portbuild: scripts tools X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 12:50:26 -0000 Author: flz Date: Tue Apr 26 12:50:26 2011 New Revision: 221063 URL: http://svn.freebsd.org/changeset/base/221063 Log: Rename straslivy.py to showrunning.py and move to tools/. Added: projects/portbuild/tools/ projects/portbuild/tools/showrunning.py - copied, changed from r221057, projects/portbuild/scripts/straslivy.py Deleted: projects/portbuild/scripts/straslivy.py Copied and modified: projects/portbuild/tools/showrunning.py (from r221057, projects/portbuild/scripts/straslivy.py) ============================================================================== From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 15:11:12 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AA719106564A; Tue, 26 Apr 2011 15:11:12 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 98FBF8FC16; Tue, 26 Apr 2011 15:11:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QFBC3Y027452; Tue, 26 Apr 2011 15:11:12 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QFBCgR027449; Tue, 26 Apr 2011 15:11:12 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104261511.p3QFBCgR027449@svn.freebsd.org> From: Florent Thoumie Date: Tue, 26 Apr 2011 15:11:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221067 - projects/portbuild/sources X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 15:11:12 -0000 Author: flz Date: Tue Apr 26 15:11:12 2011 New Revision: 221067 URL: http://svn.freebsd.org/changeset/base/221067 Log: portbuild: cleanup ptimeout.c/pnohang.c. - Make the two scripts compile without warning (fix possible bug as well). - Replace commented printf's with DPRINTF macro. Modified: projects/portbuild/sources/pnohang.c projects/portbuild/sources/ptimeout.c Modified: projects/portbuild/sources/pnohang.c ============================================================================== --- projects/portbuild/sources/pnohang.c Tue Apr 26 13:50:11 2011 (r221066) +++ projects/portbuild/sources/pnohang.c Tue Apr 26 15:11:12 2011 (r221067) @@ -1,5 +1,5 @@ -/* pnohang: executes command ($4-) with output in file ($3) - * kills command if no output with $1 seconds with message in $2 +/* pnohang: executes command ($4-) with output in file ($2) + * kills command if no output with $1 seconds with message in $3 * usage: pnohang timeout file command args ... */ @@ -11,17 +11,23 @@ #include #include #include +#include #include #include #include #include +#if defined(DEBUG) +# define DPRINTF(fmt, ...) printf(fmt, __VA_ARGS__) +#else +# define DPRINTF(fmt, ...) +#endif + int main(int argc, char *argv[]) { int timeout, status, i, result, ofd; char *command, *outfile, *message, args[MAXPATHLEN + 1]; - char logstr[BUFSIZ + 1]; pid_t pid, pid1, pid2, child; time_t now; struct stat st; @@ -46,10 +52,10 @@ main(int argc, char *argv[]) pid = getpid(); - /*printf("timeout is %d\n", timeout); - printf("outfile is %s\n", outfile); - printf("message is %s\n", message); - printf("arguments are %s", args);*/ + DPRINTF("timeout is %d\n", timeout); + DPRINTF("outfile is %s\n", outfile); + DPRINTF("message is %s\n", message); + DPRINTF("command is %s\n", args); if ((ofd = open(outfile, O_CREAT|O_TRUNC|O_WRONLY, 0600)) == -1) err(1, "open"); @@ -68,13 +74,13 @@ main(int argc, char *argv[]) /* parent */ child = wait(&status); - /*printf("exited child is %d, status is %d\n", child, status);*/ + DPRINTF("exited child is %d, status is %d\n", child, status); - if (pid1 = child) { - /*printf("killing process %d (second child)\n", pid2);*/ + if (pid1 == child) { + DPRINTF("killing process %d (second child)\n", pid2); kill(pid2, SIGTERM); } else { - /*printf("killing process %d (first child)\n", pid1);*/ + DPRINTF("killing process %d (first child)\n", pid1); kill(pid1, SIGTERM); } /* exit status in upper 8 bits, killed signal (if any) in @@ -88,8 +94,6 @@ main(int argc, char *argv[]) now = time(NULL); stat(outfile, &st); if ((now - st.st_mtime) > timeout) { - /*snprintf(logstr, BUFSIZ, "logger -t %s killing %s %s, pid %d since no output in %d seconds", argv[0], args, message, pid, timeout); - system(logstr);*/ printf("%s: killing %s (%s, pid %d and %d) since no output in %d seconds since %s", argv[0], args, message, pid1, pid, timeout, ctime(&now)); printf("ps jgx before the signal\n"); system("ps jgxww"); @@ -105,7 +109,7 @@ main(int argc, char *argv[]) } } else { /* first child */ - /*printf("executing %s\n", args);*/ + DPRINTF("executing %s\n", args); result = execvp(command, argv + 4); if (result < 0) { printf("Failed to exec %s: %s\n", args, strerror(errno)); Modified: projects/portbuild/sources/ptimeout.c ============================================================================== --- projects/portbuild/sources/ptimeout.c Tue Apr 26 13:50:11 2011 (r221066) +++ projects/portbuild/sources/ptimeout.c Tue Apr 26 15:11:12 2011 (r221067) @@ -14,6 +14,12 @@ #include #include +#if defined(DEBUG) +# define DPRINTF(fmt, ...) printf(fmt, __VA_ARGS__) +#else +# define DPRINTF(fmt, ...) +#endif + int main(int argc, char *argv[]) { @@ -36,20 +42,20 @@ main(int argc, char *argv[]) strlcat(args, " ", MAXPATHLEN - strlen(args)); } - /*printf("timeout is %d\n", timeout); - printf("arguments are %s\n", args);*/ + DPRINTF("timeout is %d\n", timeout); + DPRINTF("arguments are %s\n", args); if ((pid1 = fork()) > 0) { if ((pid2 = fork()) > 0) { /* parent */ - /*printf("child pids are %d %d\n", pid1, pid2);*/ + DPRINTF("child pids are %d %d\n", pid1, pid2); child = wait(&status); - /*printf("exited child is %d, status is %d\n", child, status);*/ - if (pid1 = child) { - /*printf("killing process %d\n", pid2);*/ + DPRINTF("exited child is %d, status is %d\n", child, status); + if (pid1 == child) { + DPRINTF("killing process %d\n", pid2); kill(pid2, SIGKILL); } else { - /*printf("killing process %d\n", pid1);*/ + DPRINTF("killing process %d\n", pid1); kill(pid1, SIGTERM); } /* exit status in upper 8 bits, killed signal (if any) @@ -66,7 +72,7 @@ main(int argc, char *argv[]) } } else { /* first child */ - /*printf("executing %s\n", args);*/ + DPRINTF("executing %s\n", args); execvp(command, argv + 2); } From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 15:11:14 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 442051065670; Tue, 26 Apr 2011 15:11:14 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 193888FC18; Tue, 26 Apr 2011 15:11:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QFBDMX027486; Tue, 26 Apr 2011 15:11:13 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QFBD77027483; Tue, 26 Apr 2011 15:11:13 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104261511.p3QFBD77027483@svn.freebsd.org> From: Florent Thoumie Date: Tue, 26 Apr 2011 15:11:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221068 - projects/portbuild/sources X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 15:11:14 -0000 Author: flz Date: Tue Apr 26 15:11:13 2011 New Revision: 221068 URL: http://svn.freebsd.org/changeset/base/221068 Log: portbuild: use SIGKILL for ptimeout/pnohang. As requested by Pav. Modified: projects/portbuild/sources/pnohang.c projects/portbuild/sources/ptimeout.c Modified: projects/portbuild/sources/pnohang.c ============================================================================== --- projects/portbuild/sources/pnohang.c Tue Apr 26 15:11:12 2011 (r221067) +++ projects/portbuild/sources/pnohang.c Tue Apr 26 15:11:13 2011 (r221068) @@ -70,7 +70,7 @@ main(int argc, char *argv[]) sv.sa_handler = SIG_IGN; sigemptyset(&sv.sa_mask); sv.sa_flags = 0; - sigaction(SIGTERM, &sv, 0); + sigaction(SIGKILL, &sv, 0); /* parent */ child = wait(&status); @@ -78,10 +78,10 @@ main(int argc, char *argv[]) if (pid1 == child) { DPRINTF("killing process %d (second child)\n", pid2); - kill(pid2, SIGTERM); + kill(pid2, SIGKILL); } else { DPRINTF("killing process %d (first child)\n", pid1); - kill(pid1, SIGTERM); + kill(pid1, SIGKILL); } /* exit status in upper 8 bits, killed signal (if any) in * lower 8 bits @@ -98,9 +98,9 @@ main(int argc, char *argv[]) printf("ps jgx before the signal\n"); system("ps jgxww"); sleep(1); /* give it a chance to output the message */ - kill(pid1, SIGTERM); + kill(pid1, SIGKILL); sleep(1); - kill(pid, SIGTERM); + kill(pid, SIGKILL); sleep(1); system("ps jgxww"); exit(1); Modified: projects/portbuild/sources/ptimeout.c ============================================================================== --- projects/portbuild/sources/ptimeout.c Tue Apr 26 15:11:12 2011 (r221067) +++ projects/portbuild/sources/ptimeout.c Tue Apr 26 15:11:13 2011 (r221068) @@ -56,7 +56,7 @@ main(int argc, char *argv[]) kill(pid2, SIGKILL); } else { DPRINTF("killing process %d\n", pid1); - kill(pid1, SIGTERM); + kill(pid1, SIGKILL); } /* exit status in upper 8 bits, killed signal (if any) * in lower 8 bits @@ -67,7 +67,7 @@ main(int argc, char *argv[]) sleep(timeout); t = time(NULL); printf("ptimeout: killing %s (pid %d) since timeout of %d expired at %s", args, pid1, timeout, ctime(&t)); - kill(pid1, SIGTERM); + kill(pid1, SIGKILL); exit(1); } } else { From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 15:53:24 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 213BA1065672; Tue, 26 Apr 2011 15:53:24 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id 960F98FC13; Tue, 26 Apr 2011 15:53:23 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id p3QFFuc5063853 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 26 Apr 2011 18:15:57 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4) with ESMTP id p3QFFu5Z045176; Tue, 26 Apr 2011 18:15:56 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4/Submit) id p3QFFucc045175; Tue, 26 Apr 2011 18:15:56 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 26 Apr 2011 18:15:56 +0300 From: Kostik Belousov To: Florent Thoumie Message-ID: <20110426151555.GT48734@deviant.kiev.zoral.com.ua> References: <201104261511.p3QFBD77027483@svn.freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="w1WLgcEPVIWvtHEy" Content-Disposition: inline In-Reply-To: <201104261511.p3QFBD77027483@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221068 - projects/portbuild/sources X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 15:53:24 -0000 --w1WLgcEPVIWvtHEy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Apr 26, 2011 at 03:11:13PM +0000, Florent Thoumie wrote: > Author: flz > Date: Tue Apr 26 15:11:13 2011 > New Revision: 221068 > URL: http://svn.freebsd.org/changeset/base/221068 >=20 > Log: > portbuild: use SIGKILL for ptimeout/pnohang. > =20 > As requested by Pav. >=20 > Modified: > projects/portbuild/sources/pnohang.c > projects/portbuild/sources/ptimeout.c >=20 > Modified: projects/portbuild/sources/pnohang.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- projects/portbuild/sources/pnohang.c Tue Apr 26 15:11:12 2011 (r22106= 7) > +++ projects/portbuild/sources/pnohang.c Tue Apr 26 15:11:13 2011 (r22106= 8) > @@ -70,7 +70,7 @@ main(int argc, char *argv[]) > sv.sa_handler =3D SIG_IGN; > sigemptyset(&sv.sa_mask); > sv.sa_flags =3D 0; > - sigaction(SIGTERM, &sv, 0); > + sigaction(SIGKILL, &sv, 0); sigaction(SIGKILL) does not make any sense, you cannot ignore SIGKILL. > =20 > /* parent */ > child =3D wait(&status); > @@ -78,10 +78,10 @@ main(int argc, char *argv[]) > =20 > if (pid1 =3D=3D child) { > DPRINTF("killing process %d (second child)\n", pid2); > - kill(pid2, SIGTERM); > + kill(pid2, SIGKILL); > } else { > DPRINTF("killing process %d (first child)\n", pid1); > - kill(pid1, SIGTERM); > + kill(pid1, SIGKILL); > } > /* exit status in upper 8 bits, killed signal (if any) in > * lower 8 bits > @@ -98,9 +98,9 @@ main(int argc, char *argv[]) > printf("ps jgx before the signal\n"); > system("ps jgxww"); > sleep(1); /* give it a chance to output the message */ > - kill(pid1, SIGTERM); > + kill(pid1, SIGKILL); > sleep(1); > - kill(pid, SIGTERM); > + kill(pid, SIGKILL); > sleep(1); > system("ps jgxww"); > exit(1); >=20 > Modified: projects/portbuild/sources/ptimeout.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- projects/portbuild/sources/ptimeout.c Tue Apr 26 15:11:12 2011 (r2210= 67) > +++ projects/portbuild/sources/ptimeout.c Tue Apr 26 15:11:13 2011 (r2210= 68) > @@ -56,7 +56,7 @@ main(int argc, char *argv[]) > kill(pid2, SIGKILL); > } else { > DPRINTF("killing process %d\n", pid1); > - kill(pid1, SIGTERM); > + kill(pid1, SIGKILL); > } > /* exit status in upper 8 bits, killed signal (if any) > * in lower 8 bits > @@ -67,7 +67,7 @@ main(int argc, char *argv[]) > sleep(timeout); > t =3D time(NULL); > printf("ptimeout: killing %s (pid %d) since timeout of %d expired = at %s", args, pid1, timeout, ctime(&t)); > - kill(pid1, SIGTERM); > + kill(pid1, SIGKILL); > exit(1); > } > } else { --w1WLgcEPVIWvtHEy Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (FreeBSD) iEYEARECAAYFAk224asACgkQC3+MBN1Mb4jUDACfWjbI2kmrWf0wRy5t9DZj9r5B cMcAoOc7otKD9zFuVDic/haz/QEuUO6p =/VS2 -----END PGP SIGNATURE----- --w1WLgcEPVIWvtHEy-- From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 20:25:17 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 513341065676; Tue, 26 Apr 2011 20:25:17 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 413B78FC1A; Tue, 26 Apr 2011 20:25:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QKPHlT037295; Tue, 26 Apr 2011 20:25:17 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QKPHnn037284; Tue, 26 Apr 2011 20:25:17 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104262025.p3QKPHnn037284@svn.freebsd.org> From: Florent Thoumie Date: Tue, 26 Apr 2011 20:25:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221080 - in projects/portbuild: lib lib/python qmanager scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 20:25:17 -0000 Author: flz Date: Tue Apr 26 20:25:16 2011 New Revision: 221080 URL: http://svn.freebsd.org/changeset/base/221080 Log: portbuild: add homemade python modules. And adjust sys.path so we look into /var/portbuild before site-packages. Added: projects/portbuild/lib/ projects/portbuild/lib/python/ projects/portbuild/lib/python/freebsd.py projects/portbuild/lib/python/freebsd_config.py projects/portbuild/lib/python/zfs.py Modified: projects/portbuild/qmanager/dumpdb.py projects/portbuild/qmanager/packagebuild projects/portbuild/qmanager/qmanager projects/portbuild/qmanager/qmanager.py projects/portbuild/scripts/buildproxy projects/portbuild/scripts/buildproxy-client projects/portbuild/scripts/zbackup projects/portbuild/scripts/zexpire Added: projects/portbuild/lib/python/freebsd.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/lib/python/freebsd.py Tue Apr 26 20:25:16 2011 (r221080) @@ -0,0 +1,60 @@ +#!/usr/bin/env python + +# FreeBSD support modules + +import struct, pwd, grp + +def getpeerid(sock): + """ Get peer credentials on a UNIX domain socket. + + Returns a nested tuple: (uid, (gids)) """ + + LOCAL_PEERCRED = 0x001 + NGROUPS = 16 + +#struct xucred { +# u_int cr_version; /* structure layout version */ +# uid_t cr_uid; /* effective user id */ +# short cr_ngroups; /* number of groups */ +# gid_t cr_groups[NGROUPS]; /* groups */ +# void *_cr_unused1; /* compatibility with old ucred */ +#}; + + xucred_fmt = '2ih16iP' + res = tuple(struct.unpack(xucred_fmt, sock.getsockopt(0, LOCAL_PEERCRED, struct.calcsize(xucred_fmt)))) + + # Check this is the above version of the structure + if res[0] != 0: + raise OSError + + return (res[1], res[3:3+res[2]]) + +def getuidbyname(username): + if str(username).isdigit(): + return int(username) + return pwd.getpwnam(username)[2] + +def getgidbyname(grname): + if str(grname).isdigit(): + return int(grname) + return grp.getgrnam(grname)[2] + +if __name__ == "__main__": + + MYSOCK='/tmp/mysock' + import os, socket + + if os.path.exists(MYSOCK): + os.unlink(MYSOCK) + s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + s.bind(MYSOCK) + os.chmod(MYSOCK, 0666) + s.listen(10) + (conn, addr) = s.accept() + + print getpeerid(conn) + + for i in conn.makefile(): + print i.rstrip() + conn.close() + Added: projects/portbuild/lib/python/freebsd_config.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/lib/python/freebsd_config.py Tue Apr 26 20:25:16 2011 (r221080) @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +# utility to read a config file and return a dict. Author: linimon. + +# note that the config file is shared between /bin/sh scripts and +# Python programs. If we ever wanted to deal with the {} expansions, +# we would have to include that here. Note that this is NOT currently +# implemented. + +from configobj import ConfigObj +import os + +def getConfig( configDir, configSubdir, configFilename ): + + return getConfigFromFile( \ + os.path.join( \ + os.path.join( configDir, configSubdir ), \ + configFilename ) ) + + +def getConfigFromFile( configFile ): + + config = None + try: + config = ConfigObj( configFile ) + return config + except Exception, e: + printf( "getConfig: could not read config file %s", configFile ) + return None Added: projects/portbuild/lib/python/zfs.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/lib/python/zfs.py Tue Apr 26 20:25:16 2011 (r221080) @@ -0,0 +1,120 @@ +import commands, os + +class NoSuchFS(Exception): + pass + +class NoSuchSnap(Exception): + pass + +def getallfs(): + """ Get list of all filesystems """ + + (err, out) = commands.getstatusoutput("zfs list -Ht filesystem") + if err: + raise (OSError, err) + + res=[] + for i in out.split('\n'): + (fs, used, avail, refer, mountpt) = i.split() + res.append((fs, used, avail, refer, mountpt)) + + return tuple(res) + +def getfs(fs): + """ Return status of a specific filesystem """ + + (err, out) = commands.getstatusoutput("zfs list -Ht filesystem '%s'" % fs) + if err: + if "dataset does not exist" in out: + raise NoSuchFS + print "err = %s, out = %s" % (err, out) + raise (OSError, err) + + (fs, used, avail, refer, mountpt) = out.split() + return (fs, used, avail, refer, mountpt) + +def getallsnaps(fs): + + """ + Return list of all snapshots for a specific filesystem + + Entries are: (snap, used, avail, refer, mountpoint) + where snap is the snapshot name (i.e. after "@") + """ + + if len(getfs(fs)) == 0: + raise NoSuchFS + + (err, out) = commands.getstatusoutput("zfs list -Ht snapshot") + if err: + print "err = %s, out = %s" % (err, out) + raise (OSError, err) + + res = [] + for i in out.split('\n'): + (name, used, avail, refer, mountpoint) = i.split() + if name.startswith("%s@" % fs): + snap=name.partition("@")[2] + res.append((snap, used, avail, refer, mountpoint)) + + return tuple(res) + +def getsnap(fs, snap): + """ Return a specific snapshot on a specific filesystem """ + + snaps = getallsnaps(fs) + + for i in snaps: + if i[0] == snap: + return i + + raise NoSuchSnap + +def createsnap(fs, name): + (err, out) = commands.getstatusoutput("zfs snapshot %s@%s" % (fs, name)) + if err: + print "err = %s, out = %s" % (err, out) + raise (OSError, err) + +def send(fs, old, new = None): + +# if new: +# return os.popen("echo %s@%s %s@%s" % (fs, old, fs, new)) +# else: +# return os.popen("echo %s@%s" % (fs, old)) + + if new: + return os.popen("zfs send -i %s %s@%s" % (old, fs, new)) + else: + return os.popen("zfs send %s@%s" % (fs, old)) + +if __name__ == "__main__": + print getallfs() + + print getfs("a") + + + print getallsnaps("a") + + print getsnap("a", "20080531") + + try: + getsnap("b", "20080531") + except NoSuchFS: + pass + + try: + getfs("b") + except NoSuchFS: + pass + + try: + getallsnaps("b") + except NoSuchFS: + pass + + try: + getsnap("a", "foo") + except NoSuchSnap: + pass + Modified: projects/portbuild/qmanager/dumpdb.py ============================================================================== --- projects/portbuild/qmanager/dumpdb.py Tue Apr 26 20:14:29 2011 (r221079) +++ projects/portbuild/qmanager/dumpdb.py Tue Apr 26 20:25:16 2011 (r221080) @@ -1,14 +1,17 @@ # # try doing some SQL reads as a test # -from freebsd_config import * -import os, threading, socket, Queue +import sys, os, threading, socket, Queue from signal import * from sys import exc_info from itertools import chain +sys.path.insert(0, '/var/portbuild/lib/python') + +from freebsd_config import * + from qmanagerobj import * CONFIG_DIR="/var/portbuild" Modified: projects/portbuild/qmanager/packagebuild ============================================================================== --- projects/portbuild/qmanager/packagebuild Tue Apr 26 20:14:29 2011 (r221079) +++ projects/portbuild/qmanager/packagebuild Tue Apr 26 20:25:16 2011 (r221080) @@ -32,11 +32,15 @@ # * check mtime for package staleness (cf make) # * option to skip phase 2 +import sys + +sys.path.insert(0, '/var/portbuild/lib/python') + from qmanagerclient import * from freebsd_config import * -import os, string, sys, threading, time, subprocess +import os, string, threading, time, subprocess #import random from itertools import chain #import gc Modified: projects/portbuild/qmanager/qmanager ============================================================================== --- projects/portbuild/qmanager/qmanager Tue Apr 26 20:14:29 2011 (r221079) +++ projects/portbuild/qmanager/qmanager Tue Apr 26 20:25:16 2011 (r221080) @@ -49,12 +49,15 @@ # - OR, NOT job description entries # - query jobs.machine properties +import sys + +sys.path.insert(0, '/var/portbuild/lib/python') + from freebsd_config import * import os, threading, socket, Queue from signal import * -from sys import exc_info from itertools import chain from qmanagerobj import * @@ -99,7 +102,7 @@ class Worker(object): cmddict[conn.cmd](conn) except OSError, error: if error.errno != 32: - print exc_info() + print sys.exc_info() self.workq.task_done() Modified: projects/portbuild/qmanager/qmanager.py ============================================================================== --- projects/portbuild/qmanager/qmanager.py Tue Apr 26 20:14:29 2011 (r221079) +++ projects/portbuild/qmanager/qmanager.py Tue Apr 26 20:25:16 2011 (r221080) @@ -49,9 +49,13 @@ # - OR, NOT job description entries # - query jobs.machine properties +import sys + +sys.path.insert(0, '/var/portbuild/lib/python') + from freebsd_config import * -import os, socket, sys, threading, time, Queue +import os, socket, threading, time, Queue from signal import * from itertools import chain @@ -109,7 +113,7 @@ class Worker(object): # ignore EPIPE # XXX MCL why? if error.errno != 32: - print exc_info() + print sys.exc_info() else: print "EPIPE" Modified: projects/portbuild/scripts/buildproxy ============================================================================== --- projects/portbuild/scripts/buildproxy Tue Apr 26 20:14:29 2011 (r221079) +++ projects/portbuild/scripts/buildproxy Tue Apr 26 20:25:16 2011 (r221080) @@ -6,6 +6,8 @@ import sys, socket, os, commands +sys.path.insert(0, '/var/portbuild/lib/python') + from freebsd import * from freebsd_config import * Modified: projects/portbuild/scripts/buildproxy-client ============================================================================== --- projects/portbuild/scripts/buildproxy-client Tue Apr 26 20:14:29 2011 (r221079) +++ projects/portbuild/scripts/buildproxy-client Tue Apr 26 20:25:16 2011 (r221080) @@ -5,6 +5,8 @@ import sys, socket, os, commands +sys.path.insert(0, '/var/portbuild/lib/python') + from freebsd import * from freebsd_config import * Modified: projects/portbuild/scripts/zbackup ============================================================================== --- projects/portbuild/scripts/zbackup Tue Apr 26 20:14:29 2011 (r221079) +++ projects/portbuild/scripts/zbackup Tue Apr 26 20:25:16 2011 (r221080) @@ -3,10 +3,13 @@ # Back up a list of ZFS filesystems, doing a full backup periodically # and using incremental diffs in between -import zfs, commands, datetime, sys, os, bz2 - +import commands, datetime, sys, os, bz2 from signal import * +sys.path.insert(0, '/var/portbuild/lib/python') + +import zfs + # List of filesystems to backup # XXX MCL backuplist=["a", "a/nfs", "a/local", "a/portbuild", Modified: projects/portbuild/scripts/zexpire ============================================================================== --- projects/portbuild/scripts/zexpire Tue Apr 26 20:14:29 2011 (r221079) +++ projects/portbuild/scripts/zexpire Tue Apr 26 20:25:16 2011 (r221080) @@ -2,7 +2,11 @@ # # Expire old snapshots -import zfs, commands, datetime, os +import sys, commands, datetime, os + +sys.path.insert(0, '/var/portbuild/lib/python') + +import zfs # List of filesystems to expire expirelist=(("a", 14), From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 21:02:04 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4FCF81065674; Tue, 26 Apr 2011 21:02:04 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 416968FC24; Tue, 26 Apr 2011 21:02:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QL24J7038402; Tue, 26 Apr 2011 21:02:04 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QL24jE038400; Tue, 26 Apr 2011 21:02:04 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104262102.p3QL24jE038400@svn.freebsd.org> From: Florent Thoumie Date: Tue, 26 Apr 2011 21:02:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221082 - projects/portbuild/docs X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 21:02:04 -0000 Author: flz Date: Tue Apr 26 21:02:03 2011 New Revision: 221082 URL: http://svn.freebsd.org/changeset/base/221082 Log: portbuild: add some documentation. Mark wrote detailed info on how to setup a new pointyhat head node. Added: projects/portbuild/docs/ projects/portbuild/docs/mk2 projects/portbuild/docs/mkpointyhat (contents, props changed) Added: projects/portbuild/docs/mk2 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/docs/mk2 Tue Apr 26 21:02:03 2011 (r221082) @@ -0,0 +1,9 @@ +there are other notes, lost, somewhere. + +for ganglia web display, have to install: + +$ pwd +/home/pcvs/ports/sysutils/ganglia-webfrontend +$ make -D WITHOUT_X11 install + +bring over changes to /usr/local/www/ganglia/conf.php Added: projects/portbuild/docs/mkpointyhat ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/portbuild/docs/mkpointyhat Tue Apr 26 21:02:03 2011 (r221082) @@ -0,0 +1,181 @@ +#!/bin/sh +# +# how to set up a new pointyhat. +# +# NOTE: wasn't done exactly this way, but should work. +# +# copy /etc/make.conf from pointyhat, modify to taste +# but add SENDMAIL_MC=/etc/mail/.mc +# +# create /etc/mail/.mc, with the following additions just before +# the MAILER lines: +# +# define(`SMART_HOST', `hub.FreeBSD.org') +# MASQUERADE_AS(`FreeBSD.org') +# FEATURE(`masquerade_envelope') +# +# in /etc/mail: make all;make install +# +# install the following packages, or their successors: +# +# apache-2.2.15_9 +# with EXT_FILTER +# with THREADS +# bonnie++-1.96 +# ccache-2.4_9 +# ganglia-monitor-core-3.1.1_6 +# without GMETAD (otherwise you get all of x11!) +# nc-1.0.1_1 +# pkg_cutleaves-20090810 +# pkg_tree-1.1_2 +# portaudit-0.5.15 +# py26-pysqlite-2.3.5 +# py26-setuptools-0.6c11 +# py26-sqlalchemy-0.5.7 +# rsync-3.0.7 +# screen-4.0.3_7 +# smartmontools-5.39.1 +# subversion-freebsd-1.6.11_2 +# sudo-1.7.2.6 +# unzip-6.0 +# +# the following will probably come over with them: +# +# libtool-2.2.6b +# perl-5.10.1_1 +# pkg-config-0.23_1 +# python26-2.6.5 +# sqlite3-3.6.23.1_1 +# +# mkdir -p /a/pointyhat +# +# mkdir /a/pointyhat/amd64 +# mkdir /a/pointyhat/i386 +# mkdir /a/pointyhat/ia64 +# mkdir /a/pointyhat/powerpc +# mkdir /a/pointyhat/sparc64 +# mkdir /a/pointyhat/sun4v +# +# cd /a/pointyhat +# +# chmod 775 . +# +# chown ports-amd64:portmgr amd64 +# chown ports-i386:portmgr i386 +# chown ports-ia64:portmgr ia64 +# chown ports-powerpc:portmgr powerpc +# chown ports-sparc64:portmgr sparc64 +# chown ports-sun4v:portmgr sun4v +# +# chmod 775 * +# +# create an amd64/.profile that is just +# export PATH=${PATH}:/var/portbuild/scripts:/var/portbuild/evil/qmanager +# copy it to all the other dirs, chown ports-:portmgr, chmod g+w +# +# zfs create -o mountpoint=/a/portbuild a/portbuild +# zfs create -o mountpoint=/a/portbuild/amd64 a/portbuild/amd64 +# zfs create -o mountpoint=/a/portbuild/i386 a/portbuild/i386 +# zfs create -o mountpoint=/a/portbuild/ia64 a/portbuild/ia64 +# zfs create -o mountpoint=/a/portbuild/powerpc a/portbuild/powerpc +# zfs create -o mountpoint=/a/portbuild/sparc64 a/portbuild/sparc64 +# zfs create -o mountpoint=/a/portbuild/sun4v a/portbuild/sun4v +# +# at this point you want to bring over conf/, ecvs/, clinet.conf, /.ssh, +# mlist, and /portbuild.* +# +. /a/portbuild/conf/server.conf +# +#pb=/var/portbuild +#cd ${pb} +# +#for arch in $SUPPORTED_ARCHS sun4v; do +# echo $arch +# cd ${pb}/${arch} +# mkdir -p clients +# mkdir -p loads +# mkdir -p lockfiles +# if [ ! -e make.conf ]; then +# ln -s ../conf/make.conf make.conf +# fi +# ln -s ../conf/client.conf client.conf +# chown ports-$arch:portmgr * +#done +# +# compiled pnohang.* copied over manually to save time XXX +# +# mkdir -p /var/portbuild/evil +# chown -R portmgr:portmgr /var/portbuild/evil +# chmod -R g+w /var/portbuild/evil +# cd /var/portbuild +# cvs -d /var/portbuild/ecvs co evil/qmanager +# rm evil/qmanager/qmgr +# +# XXX MCL QMANAGER ITSELF IS NOT CHECKED IN!!!!!!!!!! +# +# copy stupid freebsd.py over manually to save time; put it in site-packages +# copy stupid freebsd_config.py over manually to save time; put it in site-packages +# copy stupid zfs.py over manually to save time; put it in site-packages +# +# for arch in $SUPPORTED_ARCHS sun4v; do +# python /var/portbuild/evil/qmanager/qclient add_acl name=ports-$arch uidlist=ports-$arch gidlist=portmgr sense=1 +# done +# +# zfs create ${ZFS_VOLUME}/${SNAP_DIRECTORY} +# zfs create ${ZFS_VOLUME}/${SNAP_PORTS_DIRECTORY} +# zfs create ${ZFS_VOLUME}/${SNAP_PORTS_DIRECTORY}/ports +# for branch in $SRC_BRANCHES; do +# zfs create ${ZFS_VOLUME}/${SNAP_SRC_DIRECTORY_PREFIX}$branch +# zfs create ${ZFS_VOLUME}/${SNAP_SRC_DIRECTORY_PREFIX}$branch/src +# done +# chown -R portmgr:portmgr ${ZFS_VOLUME}/${SNAP_DIRECTORY} +# chmod -R g+w ${ZFS_VOLUME}/${SNAP_DIRECTORY} +# +## XXX MCL this does not work. +## XXX MCL convert to svn! +## +##echo ${SRC_BRANCH_$branch_TAG} +##cvs -Rq -d $NCVS_DIRECTORY co -r RELENG-$branch +## +##branch=8 +##fake_releng_tag=RELENG_8_0 +##cvs -Rq -d $NCVS_DIRECTORY co -r $fake_releng_tag +# +# XXX MCL TODO /a/obj? +# +# python /var/portbuild/scripts/pollmachine -daemon amd64 i386 ia64 powerpc sparc64 & +# python /var/portbuild/scripts/buildproxy & +# python /var/portbuild/evil/qmanager/qmanager & +# +# now start initializing the database +# +# python /var/portbuild/evil/qmanager/qclient add_acl name=deny_all uidlist= gidlist= sense=0 +# for arch in amd64 ia64 i386 powerpc sparc64 sun4v; do +# python /var/portbuild/evil/qmanager/qclient add_acl name=ports-${arch} uidlist=ports-${arch} gidlist=portmgr sense=1 +# done +# +# now add machines, e.g.: +# +# python /var/portbuild/evil/qmanager/qclient add name=poweredge6650_1.lonesome.com arch=i386 osversion=800073 numcpus=4 haszfs=0 online=0 domain=lonesome.com primarypool=package pools="package all" maxjobs=1 acl="ports-i386,deny_all" +# +# ~linimon/bin/online poweredge6650_1.lonesome.com +# +# modify httpd.conf XXX MCL to document +# cd /usr/local/www +# ln -s apache22/data data +# cd apache22/data +# ln -s /var/portbuild/errorlogs errorlogs +# bring over robots.txt and favicon.ico +# mkdir /var/portbuild/errorlogs +# cd /var/portbuild/errorlogs +# chown portmgr:portmgr . +# chmod 775 . +# bring over index.shtml images/ +# chown portmgr:portmgr * +# chmod 775 * +# make the appropriate links: +# ~linimon/bin/mklinks +# +# bring over linimon crontab from pointyhat and install it +# install root crontab and uncomment things if necessary +# XXX MCL except zbackup and zexpire because they aren't done yet. From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 21:03:08 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3B2FB1065678; Tue, 26 Apr 2011 21:03:08 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 134748FC1A; Tue, 26 Apr 2011 21:03:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QL37xn038475; Tue, 26 Apr 2011 21:03:07 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QL37QW038474; Tue, 26 Apr 2011 21:03:07 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104262103.p3QL37QW038474@svn.freebsd.org> From: Florent Thoumie Date: Tue, 26 Apr 2011 21:03:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221083 - in projects/portbuild: . conf errorlogs scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 21:03:08 -0000 Author: flz Date: Tue Apr 26 21:03:07 2011 New Revision: 221083 URL: http://svn.freebsd.org/changeset/base/221083 Log: portbuild: set svn:ignore property to ignore local data. Modified: Directory Properties: projects/portbuild/ (props changed) projects/portbuild/conf/ (props changed) projects/portbuild/errorlogs/ (props changed) projects/portbuild/scripts/ (props changed) From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 21:06:05 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B909C106566B; Tue, 26 Apr 2011 21:06:05 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AB6478FC19; Tue, 26 Apr 2011 21:06:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QL65VD038589; Tue, 26 Apr 2011 21:06:05 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QL655Q038587; Tue, 26 Apr 2011 21:06:05 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104262106.p3QL655Q038587@svn.freebsd.org> From: Florent Thoumie Date: Tue, 26 Apr 2011 21:06:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221084 - projects/portbuild/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 21:06:05 -0000 Author: flz Date: Tue Apr 26 21:06:05 2011 New Revision: 221084 URL: http://svn.freebsd.org/changeset/base/221084 Log: portbuild: the evil directory is gone. I got rid of the extra evil directory, adjust QMANAGER_PATH accordingly. Modified: projects/portbuild/conf/server.conf Modified: projects/portbuild/conf/server.conf ============================================================================== --- projects/portbuild/conf/server.conf Tue Apr 26 21:03:07 2011 (r221083) +++ projects/portbuild/conf/server.conf Tue Apr 26 21:06:05 2011 (r221084) @@ -72,7 +72,7 @@ PDISPATCH_TIMEOUT=360000 # qmanager definitions (note: Python script, so avoid {}) # -QMANAGER_PATH=/var/portbuild/evil/qmanager +QMANAGER_PATH=/var/portbuild/qmanager QMANAGER_DATABASE_FILE=qdb.sl3 QMANAGER_SOCKET_FILE=/tmp/.qmgr From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 21:06:57 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 14B58106566C; Tue, 26 Apr 2011 21:06:57 +0000 (UTC) (envelope-from eri@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 051D58FC16; Tue, 26 Apr 2011 21:06:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QL6vVf038648; Tue, 26 Apr 2011 21:06:57 GMT (envelope-from eri@svn.freebsd.org) Received: (from eri@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QL6uwi038643; Tue, 26 Apr 2011 21:06:56 GMT (envelope-from eri@svn.freebsd.org) Message-Id: <201104262106.p3QL6uwi038643@svn.freebsd.org> From: Ermal Luçi Date: Tue, 26 Apr 2011 21:06:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221085 - projects/pf/pf45/contrib/pf/ftp-proxy X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 21:06:57 -0000 Author: eri Date: Tue Apr 26 21:06:56 2011 New Revision: 221085 URL: http://svn.freebsd.org/changeset/base/221085 Log: Bring ftp-proxy up to date with OpenBSD 4.5. Also make it compile with WARNS= 6 Modified: projects/pf/pf45/contrib/pf/ftp-proxy/filter.c projects/pf/pf45/contrib/pf/ftp-proxy/filter.h projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.8 projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.c Modified: projects/pf/pf45/contrib/pf/ftp-proxy/filter.c ============================================================================== --- projects/pf/pf45/contrib/pf/ftp-proxy/filter.c Tue Apr 26 21:06:05 2011 (r221084) +++ projects/pf/pf45/contrib/pf/ftp-proxy/filter.c Tue Apr 26 21:06:56 2011 (r221085) @@ -1,4 +1,4 @@ -/* $OpenBSD: filter.c,v 1.5 2006/12/01 07:31:21 camield Exp $ */ +/* $OpenBSD: filter.c,v 1.8 2008/06/13 07:25:26 claudio Exp $ */ /* * Copyright (c) 2004, 2005 Camiel Dobbelaar, @@ -53,7 +53,7 @@ static struct pfioc_rule pfr; static struct pfioc_trans pft; static struct pfioc_trans_e pfte[TRANS_SIZE]; static int dev, rule_log; -static char *qname; +static const char *qname, *tagname; int add_filter(u_int32_t id, u_int8_t dir, struct sockaddr *src, @@ -159,11 +159,12 @@ do_rollback(void) } void -init_filter(char *opt_qname, int opt_verbose) +init_filter(const char *opt_qname, const char *opt_tagname, int opt_verbose) { struct pf_status status; qname = opt_qname; + tagname = opt_tagname; if (opt_verbose == 1) rule_log = PF_LOG; @@ -172,7 +173,7 @@ init_filter(char *opt_qname, int opt_ver dev = open("/dev/pf", O_RDWR); if (dev == -1) - err(1, "/dev/pf"); + err(1, "open /dev/pf"); if (ioctl(dev, DIOCGETSTATUS, &status) == -1) err(1, "DIOCGETSTATUS"); if (!status.running) @@ -280,9 +281,9 @@ prepare_rule(u_int32_t id, int rs_num, s switch (rs_num) { case PF_RULESET_FILTER: /* - * pass quick [log] inet[6] proto tcp \ + * pass [quick] [log] inet[6] proto tcp \ * from $src to $dst port = $d_port flags S/SA keep state - * (max 1) [queue qname] + * (max 1) [queue qname] [tag tagname] */ pfr.rule.action = PF_PASS; pfr.rule.quick = 1; @@ -293,6 +294,11 @@ prepare_rule(u_int32_t id, int rs_num, s pfr.rule.max_states = 1; if (qname != NULL) strlcpy(pfr.rule.qname, qname, sizeof pfr.rule.qname); + if (tagname != NULL) { + pfr.rule.quick = 0; + strlcpy(pfr.rule.tagname, tagname, + sizeof pfr.rule.tagname); + } break; case PF_RULESET_NAT: /* Modified: projects/pf/pf45/contrib/pf/ftp-proxy/filter.h ============================================================================== --- projects/pf/pf45/contrib/pf/ftp-proxy/filter.h Tue Apr 26 21:06:05 2011 (r221084) +++ projects/pf/pf45/contrib/pf/ftp-proxy/filter.h Tue Apr 26 21:06:56 2011 (r221085) @@ -1,4 +1,4 @@ -/* $OpenBSD: filter.h,v 1.3 2005/06/07 14:12:07 camield Exp $ */ +/* $OpenBSD: filter.h,v 1.4 2007/08/01 09:31:41 henning Exp $ */ /* * Copyright (c) 2004, 2005 Camiel Dobbelaar, @@ -26,6 +26,6 @@ int add_rdr(u_int32_t, struct sockaddr * struct sockaddr *, u_int16_t); int do_commit(void); int do_rollback(void); -void init_filter(char *, int); +void init_filter(const char *, const char *, int); int prepare_commit(u_int32_t); int server_lookup(struct sockaddr *, struct sockaddr *, struct sockaddr *); Modified: projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.8 ============================================================================== --- projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.8 Tue Apr 26 21:06:05 2011 (r221084) +++ projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.8 Tue Apr 26 21:06:56 2011 (r221085) @@ -1,4 +1,4 @@ -.\" $OpenBSD: ftp-proxy.8,v 1.7 2006/12/30 13:01:54 camield Exp $ +.\" $OpenBSD: ftp-proxy.8,v 1.11 2008/02/26 18:52:53 henning Exp $ .\" .\" Copyright (c) 2004, 2005 Camiel Dobbelaar, .\" @@ -14,16 +14,15 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.\" $FreeBSD$ -.\" -.Dd November 28, 2004 +.Dd $Mdocdate: February 26 2008 $ .Dt FTP-PROXY 8 .Os .Sh NAME .Nm ftp-proxy .Nd Internet File Transfer Protocol proxy daemon .Sh SYNOPSIS -.Nm ftp-proxy +.Nm +.Bk -words .Op Fl 6Adrv .Op Fl a Ar address .Op Fl b Ar address @@ -33,7 +32,9 @@ .Op Fl p Ar port .Op Fl q Ar queue .Op Fl R Ar address +.Op Fl T Ar tag .Op Fl t Ar timeout +.Ek .Sh DESCRIPTION .Nm is a proxy for the Internet File Transfer Protocol. @@ -58,7 +59,7 @@ facility for this. Assuming the FTP control connection is from $client to $server, the proxy connected to the server using the $proxy source address, and $port is negotiated, then -.Nm ftp-proxy +.Nm adds the following rules to the various anchors. (These example rules use inet, but the proxy also supports inet6.) .Pp @@ -130,6 +131,20 @@ connections to another proxy. .It Fl r Rewrite sourceport to 20 in active mode to suit ancient clients that insist on this RFC property. +.It Fl T Ar tag +The filter rules will add tag +.Ar tag +to data connections, and not match quick. +This way alternative rules that use the +.Ar tagged +keyword can be implemented following the +.Nm +anchor. +These rules can use special +.Xr pf 4 +features like route-to, reply-to, label, rtable, overload, etc. that +.Nm +does not implement itself. .It Fl t Ar timeout Number of seconds that the control connection can be idle, before the proxy will disconnect. @@ -172,7 +187,7 @@ does not allow the ruleset to be modifie .Xr securelevel 7 higher than 1. At that level -.Nm ftp-proxy +.Nm cannot add rules to the anchors and FTP data connections may get blocked. .Pp Negotiated data connection ports below 1024 are not allowed. @@ -181,5 +196,5 @@ The negotiated IP address for active mod reasons. This makes third party file transfers impossible. .Pp -.Nm ftp-proxy +.Nm chroots to "/var/empty" and changes to user "proxy" to drop privileges. Modified: projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.c ============================================================================== --- projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.c Tue Apr 26 21:06:05 2011 (r221084) +++ projects/pf/pf45/contrib/pf/ftp-proxy/ftp-proxy.c Tue Apr 26 21:06:56 2011 (r221085) @@ -1,4 +1,4 @@ -/* $OpenBSD: ftp-proxy.c,v 1.13 2006/12/30 13:24:00 camield Exp $ */ +/* $OpenBSD: ftp-proxy.c,v 1.19 2008/06/13 07:25:26 claudio Exp $ */ /* * Copyright (c) 2004, 2005 Camiel Dobbelaar, @@ -16,9 +16,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include -__FBSDID("$FreeBSD$"); - #include #include #include @@ -61,6 +58,14 @@ __FBSDID("$FreeBSD$"); #define PF_NAT_PROXY_PORT_LOW 50001 #define PF_NAT_PROXY_PORT_HIGH 65535 +#ifndef LIST_END +#define LIST_END(a) NULL +#endif + +#ifndef getrtable +#define getrtable(a) 0 +#endif + #define sstosa(ss) ((struct sockaddr *)(ss)) enum { CMD_NONE = 0, CMD_PORT, CMD_EPRT, CMD_PASV, CMD_EPSV }; @@ -94,7 +99,7 @@ int client_parse_cmd(struct session *s); void client_read(struct bufferevent *, void *); int drop_privs(void); void end_session(struct session *); -int exit_daemon(void); +void exit_daemon(void); int getline(char *, size_t *); void handle_connection(const int, short, void *); void handle_signal(int, short, void *); @@ -105,6 +110,7 @@ u_int16_t pick_proxy_port(void); void proxy_reply(int, struct sockaddr *, u_int16_t); void server_error(struct bufferevent *, short, void *); int server_parse(struct session *s); +int allow_data_connection(struct session *s); void server_read(struct bufferevent *, void *); const char *sock_ntop(struct sockaddr *); void usage(void); @@ -115,14 +121,14 @@ size_t linelen; char ntop_buf[NTOP_BUFS][INET6_ADDRSTRLEN]; struct sockaddr_storage fixed_server_ss, fixed_proxy_ss; -char *fixed_server, *fixed_server_port, *fixed_proxy, *listen_ip, *listen_port, - *qname; +const char *fixed_server, *fixed_server_port, *fixed_proxy, *listen_ip, *listen_port, + *qname, *tagname; int anonymous_only, daemonize, id_count, ipv6_mode, loglevel, max_sessions, rfc_mode, session_count, timeout, verbose; extern char *__progname; void -client_error(struct bufferevent *bufev, short what, void *arg) +client_error(struct bufferevent *bufev __unused, short what, void *arg) { struct session *s = arg; @@ -152,8 +158,19 @@ client_parse(struct session *s) return (1); if (linebuf[0] == 'P' || linebuf[0] == 'p' || - linebuf[0] == 'E' || linebuf[0] == 'e') - return (client_parse_cmd(s)); + linebuf[0] == 'E' || linebuf[0] == 'e') { + if (!client_parse_cmd(s)) + return (0); + + /* + * Allow active mode connections immediately, instead of + * waiting for a positive reply from the server. Some + * rare servers/proxies try to probe or setup the data + * connection before an actual transfer request. + */ + if (s->cmd == CMD_PORT || s->cmd == CMD_EPRT) + return (allow_data_connection(s)); + } if (anonymous_only && (linebuf[0] == 'U' || linebuf[0] == 'u')) return (client_parse_anon(s)); @@ -220,14 +237,14 @@ void client_read(struct bufferevent *bufev, void *arg) { struct session *s = arg; - size_t buf_avail, read; + size_t buf_avail, clientread; int n; do { buf_avail = sizeof s->cbuf - s->cbuf_valid; - read = bufferevent_read(bufev, s->cbuf + s->cbuf_valid, + clientread = bufferevent_read(bufev, s->cbuf + s->cbuf_valid, buf_avail); - s->cbuf_valid += read; + s->cbuf_valid += clientread; while ((n = getline(s->cbuf, &s->cbuf_valid)) > 0) { logmsg(LOG_DEBUG, "#%d client: %s", s->id, linebuf); @@ -244,7 +261,7 @@ client_read(struct bufferevent *bufev, v end_session(s); return; } - } while (read == buf_avail); + } while (clientread == buf_avail); } int @@ -269,10 +286,16 @@ drop_privs(void) void end_session(struct session *s) { - int err; + int serr; logmsg(LOG_INFO, "#%d ending session", s->id); + /* Flush output buffers. */ + if (s->client_bufev && s->client_fd != -1) + evbuffer_write(s->client_bufev->output, s->client_fd); + if (s->server_bufev && s->server_fd != -1) + evbuffer_write(s->server_bufev->output, s->server_fd); + if (s->client_fd != -1) close(s->client_fd); if (s->server_fd != -1) @@ -284,33 +307,29 @@ end_session(struct session *s) bufferevent_free(s->server_bufev); /* Remove rulesets by commiting empty ones. */ - err = 0; + serr = 0; if (prepare_commit(s->id) == -1) - err = errno; + serr = errno; else if (do_commit() == -1) { - err = errno; + serr = errno; do_rollback(); } - if (err) + if (serr) logmsg(LOG_ERR, "#%d pf rule removal failed: %s", s->id, - strerror(err)); + strerror(serr)); LIST_REMOVE(s, entry); free(s); session_count--; } -int +void exit_daemon(void) { struct session *s, *next; -#ifdef __FreeBSD__ - LIST_FOREACH_SAFE(s, &sessions, entry, next) { -#else for (s = LIST_FIRST(&sessions); s != LIST_END(&sessions); s = next) { next = LIST_NEXT(s, entry); -#endif end_session(s); } @@ -318,9 +337,6 @@ exit_daemon(void) closelog(); exit(0); - - /* NOTREACHED */ - return (-1); } int @@ -361,7 +377,7 @@ getline(char *buf, size_t *valid) } void -handle_connection(const int listen_fd, short event, void *ev) +handle_connection(const int listen_fd, short event __unused, void *ev __unused) { struct sockaddr_storage tmp_ss; struct sockaddr *client_sa, *server_sa, *fixed_server_sa; @@ -508,13 +524,13 @@ handle_connection(const int listen_fd, s } void -handle_signal(int sig, short event, void *arg) +handle_signal(int sig, short event __unused, void *arg __unused) { /* * Signal handler rules don't apply, libevent decouples for us. */ - logmsg(LOG_ERR, "%s exiting on signal %d", __progname, sig); + logmsg(LOG_ERR, "exiting on signal %d", sig); exit_daemon(); } @@ -567,10 +583,7 @@ logmsg(int pri, const char *message, ... /* We don't care about truncation. */ vsnprintf(buf, sizeof buf, message, ap); #ifdef __FreeBSD__ - /* XXX: strnvis might be nice to have */ - strvisx(visbuf, buf, - MIN((sizeof(visbuf) / 4) - 1, strlen(buf)), - VIS_CSTYLE | VIS_NL); + strvis(visbuf, buf, VIS_CSTYLE | VIS_NL); #else strnvis(visbuf, buf, sizeof visbuf, VIS_CSTYLE | VIS_NL); #endif @@ -602,6 +615,7 @@ main(int argc, char *argv[]) max_sessions = 100; qname = NULL; rfc_mode = 0; + tagname = NULL; timeout = 24 * 3600; verbose = 0; @@ -609,7 +623,7 @@ main(int argc, char *argv[]) id_count = 1; session_count = 0; - while ((ch = getopt(argc, argv, "6Aa:b:D:dm:P:p:q:R:rt:v")) != -1) { + while ((ch = getopt(argc, argv, "6Aa:b:D:dm:P:p:q:R:rT:t:v")) != -1) { switch (ch) { case '6': ipv6_mode = 1; @@ -654,6 +668,11 @@ main(int argc, char *argv[]) case 'r': rfc_mode = 1; break; + case 'T': + if (strlen(optarg) >= PF_TAG_NAME_SIZE) + errx(1, "tagname too long"); + tagname = optarg; + break; case 't': timeout = strtonum(optarg, 0, 86400, &errstr); if (errstr) @@ -734,7 +753,7 @@ main(int argc, char *argv[]) freeaddrinfo(res); /* Initialize pf. */ - init_filter(qname, verbose); + init_filter(qname, tagname, verbose); if (daemonize) { if (daemon(0, 0) == -1) @@ -830,14 +849,15 @@ u_int16_t pick_proxy_port(void) { /* Random should be good enough for avoiding port collisions. */ - return (IPPORT_HIFIRSTAUTO + (arc4random() % - (IPPORT_HILASTAUTO - IPPORT_HIFIRSTAUTO))); + return (IPPORT_HIFIRSTAUTO + + arc4random_uniform(IPPORT_HILASTAUTO - IPPORT_HIFIRSTAUTO)); } void proxy_reply(int cmd, struct sockaddr *sa, u_int16_t port) { - int i, r; + u_int i; + int r = 0; switch (cmd) { case CMD_PORT: @@ -864,7 +884,7 @@ proxy_reply(int cmd, struct sockaddr *sa break; } - if (r < 0 || r >= sizeof linebuf) { + if (r < 0 || ((u_int)r) >= sizeof linebuf) { logmsg(LOG_ERR, "proxy_reply failed: %d", r); linebuf[0] = '\0'; linelen = 0; @@ -881,7 +901,7 @@ proxy_reply(int cmd, struct sockaddr *sa } void -server_error(struct bufferevent *bufev, short what, void *arg) +server_error(struct bufferevent *bufev __unused, short what, void *arg) { struct session *s = arg; @@ -902,12 +922,26 @@ server_error(struct bufferevent *bufev, int server_parse(struct session *s) { - struct sockaddr *client_sa, *orig_sa, *proxy_sa, *server_sa; - int prepared = 0; - if (s->cmd == CMD_NONE || linelen < 4 || linebuf[0] != '2') goto out; + if ((s->cmd == CMD_PASV && strncmp("227 ", linebuf, 4) == 0) || + (s->cmd == CMD_EPSV && strncmp("229 ", linebuf, 4) == 0)) + return (allow_data_connection(s)); + + out: + s->cmd = CMD_NONE; + s->port = 0; + + return (1); +} + +int +allow_data_connection(struct session *s) +{ + struct sockaddr *client_sa, *orig_sa, *proxy_sa, *server_sa; + int prepared = 0; + /* * The pf rules below do quite some NAT rewriting, to keep up * appearances. Points to keep in mind: @@ -932,8 +966,7 @@ server_parse(struct session *s) orig_sa = sstosa(&s->server_ss); /* Passive modes. */ - if ((s->cmd == CMD_PASV && strncmp("227 ", linebuf, 4) == 0) || - (s->cmd == CMD_EPSV && strncmp("229 ", linebuf, 4) == 0)) { + if (s->cmd == CMD_PASV || s->cmd == CMD_EPSV) { s->port = parse_port(s->cmd); if (s->port < MIN_PORT) { logmsg(LOG_CRIT, "#%d bad port in '%s'", s->id, @@ -974,8 +1007,7 @@ server_parse(struct session *s) } /* Active modes. */ - if ((s->cmd == CMD_PORT || s->cmd == CMD_EPRT) && - strncmp("200 ", linebuf, 4) == 0) { + if (s->cmd == CMD_PORT || s->cmd == CMD_EPRT) { logmsg(LOG_INFO, "#%d active: server to client port %d" " via port %d", s->id, s->port, s->proxy_port); @@ -1025,7 +1057,6 @@ server_parse(struct session *s) goto fail; } - out: s->cmd = CMD_NONE; s->port = 0; @@ -1042,16 +1073,16 @@ void server_read(struct bufferevent *bufev, void *arg) { struct session *s = arg; - size_t buf_avail, read; + size_t buf_avail, srvread; int n; bufferevent_settimeout(bufev, timeout, 0); do { buf_avail = sizeof s->sbuf - s->sbuf_valid; - read = bufferevent_read(bufev, s->sbuf + s->sbuf_valid, + srvread = bufferevent_read(bufev, s->sbuf + s->sbuf_valid, buf_avail); - s->sbuf_valid += read; + s->sbuf_valid += srvread; while ((n = getline(s->sbuf, &s->sbuf_valid)) > 0) { logmsg(LOG_DEBUG, "#%d server: %s", s->id, linebuf); @@ -1068,7 +1099,7 @@ server_read(struct bufferevent *bufev, v end_session(s); return; } - } while (read == buf_avail); + } while (srvread == buf_avail); } const char * @@ -1102,6 +1133,7 @@ usage(void) { fprintf(stderr, "usage: %s [-6Adrv] [-a address] [-b address]" " [-D level] [-m maxsessions]\n [-P port]" - " [-p port] [-q queue] [-R address] [-t timeout]\n", __progname); + " [-p port] [-q queue] [-R address] [-T tag]\n" + " [-t timeout]\n", __progname); exit(1); } From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 21:08:12 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2EC7C106564A; Tue, 26 Apr 2011 21:08:12 +0000 (UTC) (envelope-from eri@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 20D368FC08; Tue, 26 Apr 2011 21:08:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QL8CJ4038733; Tue, 26 Apr 2011 21:08:12 GMT (envelope-from eri@svn.freebsd.org) Received: (from eri@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QL8COv038731; Tue, 26 Apr 2011 21:08:12 GMT (envelope-from eri@svn.freebsd.org) Message-Id: <201104262108.p3QL8COv038731@svn.freebsd.org> From: Ermal Luçi Date: Tue, 26 Apr 2011 21:08:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221086 - projects/pf/pf45/usr.sbin/ftp-proxy/ftp-proxy X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 21:08:12 -0000 Author: eri Date: Tue Apr 26 21:08:11 2011 New Revision: 221086 URL: http://svn.freebsd.org/changeset/base/221086 Log: Make WARNS= 7 for ftp-proxy. Modified: projects/pf/pf45/usr.sbin/ftp-proxy/ftp-proxy/Makefile Modified: projects/pf/pf45/usr.sbin/ftp-proxy/ftp-proxy/Makefile ============================================================================== --- projects/pf/pf45/usr.sbin/ftp-proxy/ftp-proxy/Makefile Tue Apr 26 21:06:56 2011 (r221085) +++ projects/pf/pf45/usr.sbin/ftp-proxy/ftp-proxy/Makefile Tue Apr 26 21:08:11 2011 (r221086) @@ -5,14 +5,14 @@ PROG= ftp-proxy MAN= ftp-proxy.8 -SRCS= ftp-proxy.c filter.c +SRCS= ftp-proxy.c filter.c CFLAGS+= -I${.CURDIR}/../../../contrib/pf/libevent CFLAGS+= -I${.CURDIR}/../../../sys/contrib/pf -DPADD= ${LIBEVENT} -LDADD= ${LIBEVENT} +LDADD+= ${LIBEVENT} +DPADD+= ${LIBEVENT} -WARNS?= 2 +WARNS?= 7 .include From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 21:47:38 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F25E7106564A; Tue, 26 Apr 2011 21:47:38 +0000 (UTC) (envelope-from eri@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E2C2F8FC17; Tue, 26 Apr 2011 21:47:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QLlcvf039917; Tue, 26 Apr 2011 21:47:38 GMT (envelope-from eri@svn.freebsd.org) Received: (from eri@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QLlctv039913; Tue, 26 Apr 2011 21:47:38 GMT (envelope-from eri@svn.freebsd.org) Message-Id: <201104262147.p3QLlctv039913@svn.freebsd.org> From: Ermal Luçi Date: Tue, 26 Apr 2011 21:47:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221087 - projects/pf/pf45/contrib/pf/authpf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 21:47:39 -0000 Author: eri Date: Tue Apr 26 21:47:38 2011 New Revision: 221087 URL: http://svn.freebsd.org/changeset/base/221087 Log: Bring authpf up to date with OpenBSD 4.5. Also make it almost ready for WARNS= 6 Modified: projects/pf/pf45/contrib/pf/authpf/authpf.8 projects/pf/pf45/contrib/pf/authpf/authpf.c projects/pf/pf45/contrib/pf/authpf/pathnames.h Modified: projects/pf/pf45/contrib/pf/authpf/authpf.8 ============================================================================== --- projects/pf/pf45/contrib/pf/authpf/authpf.8 Tue Apr 26 21:08:11 2011 (r221086) +++ projects/pf/pf45/contrib/pf/authpf/authpf.8 Tue Apr 26 21:47:38 2011 (r221087) @@ -1,5 +1,5 @@ .\" $FreeBSD$ -.\" $OpenBSD: authpf.8,v 1.43 2007/02/24 17:21:04 beck Exp $ +.\" $OpenBSD: authpf.8,v 1.47 2009/01/06 03:11:50 mcbride Exp $ .\" .\" Copyright (c) 1998-2007 Bob Beck (beck@openbsd.org>. All rights reserved. .\" @@ -15,14 +15,16 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd March 28, 2006 +.Dd January 6 2009 .Dt AUTHPF 8 .Os .Sh NAME -.Nm authpf +.Nm authpf , +.Nm authpf-noip .Nd authenticating gateway user shell .Sh SYNOPSIS .Nm authpf +.Nm authpf-noip .Sh DESCRIPTION .Nm is a user shell for authenticating gateways. @@ -31,47 +33,63 @@ It is used to change rules when a user authenticates and starts a session with .Xr sshd 8 and to undo these changes when the user's session exits. -It is designed for changing filter and translation rules for an individual -source IP address as long as a user maintains an active -.Xr ssh 1 -session. Typical use would be for a gateway that authenticates users before allowing them Internet use, or a gateway that allows different users into different places. +Combined with properly set up filter rules and secure switches, .Nm -logs the successful start and end of a session to -.Xr syslogd 8 . -This, combined with properly set up filter rules and secure switches, can be used to ensure users are held accountable for their network traffic. -.Pp -.Nm -can add filter and translation rules using the syntax described in -.Xr pf.conf 5 . -.Nm -requires that the +It is meant to be used with users who can connect via +.Xr ssh 1 +only, and requires the .Xr pf 4 -system be enabled and a -.Xr fdescfs 5 -file system be mounted at -.Pa /dev/fd -before use. +subsystem to be enabled. +.Pp +.Nm authpf-noip +is a user shell +which allows multiple connections to take +place from the same IP address. +It is useful primarily in cases where connections are tunneled via +the gateway system, and can be directly associated with the user name. +It cannot ensure accountability when +classifying connections by IP address; +in this case the client's IP address +is not provided to the packet filter via the +.Ar client_ip +macro or the +.Ar authpf_users +table. +Additionally, states associated with the client IP address +are not purged when the session is ended. +.Pp +To use either .Nm -can also maintain the list of IP address of connected users -in the "authpf_users" -.Pa table . +or +.Nm authpf-noip , +the user's shell needs to be set to +.Pa /usr/sbin/authpf +or +.Pa /usr/sbin/authpf-noip . .Pp .Nm -is meant to be used with users who can connect via +uses the +.Xr pf.conf 5 +syntax to change filter and translation rules for an individual +user or client IP address as long as a user maintains an active .Xr ssh 1 -only. -On startup, +session, and logs the successful start and end of a session to +.Xr syslogd 8 . .Nm retrieves the client's connecting IP address via the .Ev SSH_CLIENT environment variable and, after performing additional access checks, reads a template file to determine what filter and translation rules -(if any) to add. -On session exit the same rules that were added at startup are removed. +(if any) to add, and +maintains the list of IP addresses of connected users in the +.Ar authpf_users +table. +On session exit the same rules and table entries that were added at startup +are removed, and all states associated with the client's IP address are purged. .Pp Each .Nm @@ -185,6 +203,9 @@ It is also possible to configure to only allow specific users access. This is done by listing their login names, one per line, in .Pa /etc/authpf/authpf.allow . +A group of users can also be indicated by prepending "%" to the group name, +and all members of a login class can be indicated by prepending "@" to the +login class name. If "*" is found on a line, then all usernames match. If .Nm @@ -297,7 +318,8 @@ They have a wireless network which they would like to protect from unauthorized use. To accomplish this, they create the file .Pa /etc/authpf/authpf.allow -which lists their login ids, one per line. +which lists their login ids, group prepended with "%", or login class +prepended with "@", one per line. At this point, even if eve could authenticate to .Xr sshd 8 , she would not be allowed to use the gateway. @@ -501,6 +523,31 @@ table persist anchor "authpf/*" from rdr-anchor "authpf/*" from .Ed +.Pp +.Sy Tunneled users +\- normally +.Nm +allows only one session per client IP address. +However in some cases, such as when connections are tunneled via +.Xr ssh 1 +or +.Xr ipsec 4 , +the connections can be authorized based on the userid of the user instead of +the client IP address. +In this case it is appropriate to use +.Nm authpf-noip +to allow multiple users behind a NAT gateway to connect. +In the +.Pa /etc/authpf/authpf.rules +example below, the remote user could tunnel a remote desktop session to their +workstation: +.Bd -literal +internal_if="bge0" +workstation_ip="10.2.3.4" + +pass out on $internal_if from (self) to $workstation_ip port 3389 \e + user $user_id +.Ed .Sh FILES .Bl -tag -width "/etc/authpf/authpf.conf" -compact .It Pa /etc/authpf/authpf.conf @@ -512,7 +559,6 @@ rdr-anchor "authpf/*" from __FBSDID("$FreeBSD$"); -#include +#include #include #include #include @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #endif #include #include +#include #include #include #include @@ -48,10 +49,11 @@ __FBSDID("$FreeBSD$"); #include "pathnames.h" static int read_config(FILE *); -static void print_message(char *); -static int allowed_luser(char *); -static int check_luser(char *, char *); +static void print_message(const char *); +static int allowed_luser(struct passwd *); +static int check_luser(const char *, char *); static int remove_stale_rulesets(void); +static int recursive_ruleset_purge(char *, char *); static int change_filter(int, const char *, const char *); static int change_table(int, const char *); static void authpf_kill_states(void); @@ -60,8 +62,10 @@ int dev; /* pf device */ char anchorname[PF_ANCHOR_NAME_SIZE] = "authpf"; char rulesetname[MAXPATHLEN - PF_ANCHOR_NAME_SIZE - 2]; char tablename[PF_TABLE_NAME_SIZE] = "authpf_users"; +int user_ip = 1; /* controls whether $user_ip is set */ FILE *pidfp; +int pidfd = -1; char luser[MAXLOGNAME]; /* username */ char ipsrc[256]; /* ip as a string */ char pidfile[MAXPATHLEN]; /* we save pid in this file. */ @@ -75,6 +79,7 @@ static __dead2 void do_death(int); #else static __dead void do_death(int); #endif +extern char *__progname; /* program name */ /* * User shell for authenticating gateways. Sole purpose is to allow @@ -83,21 +88,24 @@ static __dead void do_death(int); * up. Meant to be used only from ssh(1) connections. */ int -main(int argc, char *argv[]) +main(void) { - int lockcnt = 0, n, pidfd; + int lockcnt = 0, n; FILE *config; struct in6_addr ina; struct passwd *pw; char *cp; gid_t gid; uid_t uid; - char *shell; + const char *shell; login_cap_t *lc; + if (strcmp(__progname, "-authpf-noip") == 0) + user_ip = 0; + config = fopen(PATH_CONFFILE, "r"); if (config == NULL) { - syslog(LOG_ERR, "can not open %s (%m)", PATH_CONFFILE); + syslog(LOG_ERR, "cannot open %s (%m)", PATH_CONFFILE); exit(1); } @@ -142,23 +150,34 @@ main(int argc, char *argv[]) } if ((lc = login_getclass(pw->pw_class)) != NULL) - shell = (char *)login_getcapstr(lc, "shell", pw->pw_shell, + shell = login_getcapstr(lc, "shell", pw->pw_shell, pw->pw_shell); else shell = pw->pw_shell; +#ifndef __FreeBSD__ login_close(lc); +#endif - if (strcmp(shell, PATH_AUTHPF_SHELL)) { + if (strcmp(shell, PATH_AUTHPF_SHELL) && + strcmp(shell, PATH_AUTHPF_SHELL_NOIP)) { syslog(LOG_ERR, "wrong shell for user %s, uid %u", pw->pw_name, pw->pw_uid); +#ifdef __FreeBSD__ + login_close(lc); +#else if (shell != pw->pw_shell) free(shell); +#endif goto die; } +#ifdef __FreeBSD__ + login_close(lc); +#else if (shell != pw->pw_shell) free(shell); +#endif /* * Paranoia, but this data _does_ come from outside authpf, and @@ -181,13 +200,22 @@ main(int argc, char *argv[]) } - /* Make our entry in /var/authpf as /var/authpf/ipaddr */ - n = snprintf(pidfile, sizeof(pidfile), "%s/%s", PATH_PIDFILE, ipsrc); + /* Make our entry in /var/authpf as ipaddr or username */ + n = snprintf(pidfile, sizeof(pidfile), "%s/%s", + PATH_PIDFILE, user_ip ? ipsrc : luser); if (n < 0 || (u_int)n >= sizeof(pidfile)) { syslog(LOG_ERR, "path to pidfile too long"); goto die; } + signal(SIGTERM, need_death); + signal(SIGINT, need_death); + signal(SIGALRM, need_death); + signal(SIGPIPE, need_death); + signal(SIGHUP, need_death); + signal(SIGQUIT, need_death); + signal(SIGTSTP, need_death); + /* * If someone else is already using this ip, then this person * wants to switch users - so kill the old process and exit @@ -241,15 +269,17 @@ main(int argc, char *argv[]) } /* - * we try to kill the previous process and acquire the lock + * We try to kill the previous process and acquire the lock * for 10 seconds, trying once a second. if we can't after - * 10 attempts we log an error and give up + * 10 attempts we log an error and give up. */ - if (++lockcnt > 10) { - syslog(LOG_ERR, "cannot kill previous authpf (pid %d)", - otherpid); + if (want_death || ++lockcnt > 10) { + if (!want_death) + syslog(LOG_ERR, "cannot kill previous authpf (pid %d)", + otherpid); fclose(pidfp); pidfp = NULL; + pidfd = -1; goto dogdeath; } sleep(1); @@ -260,6 +290,7 @@ main(int argc, char *argv[]) */ fclose(pidfp); pidfp = NULL; + pidfd = -1; } while (1); /* whack the group list */ @@ -277,7 +308,7 @@ main(int argc, char *argv[]) } openlog("authpf", LOG_PID | LOG_NDELAY, LOG_DAEMON); - if (!check_luser(PATH_BAN_DIR, luser) || !allowed_luser(luser)) { + if (!check_luser(PATH_BAN_DIR, luser) || !allowed_luser(pw)) { syslog(LOG_INFO, "user %s prohibited", luser); do_death(0); } @@ -302,19 +333,12 @@ main(int argc, char *argv[]) printf("Unable to modify filters\r\n"); do_death(0); } - if (change_table(1, ipsrc) == -1) { + if (user_ip && change_table(1, ipsrc) == -1) { printf("Unable to modify table\r\n"); change_filter(0, luser, ipsrc); do_death(0); } - signal(SIGTERM, need_death); - signal(SIGINT, need_death); - signal(SIGALRM, need_death); - signal(SIGPIPE, need_death); - signal(SIGHUP, need_death); - signal(SIGQUIT, need_death); - signal(SIGTSTP, need_death); while (1) { printf("\r\nHello %s. ", luser); printf("You are authenticated from host \"%s\"\r\n", ipsrc); @@ -337,8 +361,6 @@ dogdeath: sleep(180); /* them lusers read reaaaaal slow */ die: do_death(0); - - /* NOTREACHED */ } /* @@ -361,6 +383,8 @@ read_config(FILE *f) } i++; len = strlen(buf); + if (len == 0) + continue; if (buf[len - 1] != '\n' && !feof(f)) { syslog(LOG_ERR, "line %d too long in %s", i, PATH_CONFFILE); @@ -413,7 +437,7 @@ parse_error: * they've been bad or we're unavailable. */ static void -print_message(char *filename) +print_message(const char *filename) { char buf[1024]; FILE *f; @@ -436,6 +460,7 @@ print_message(char *filename) * allowed_luser checks to see if user "luser" is allowed to * use this gateway by virtue of being listed in an allowed * users file, namely /etc/authpf/authpf.allow . + * Users may be listed by , %, or @. * * If /etc/authpf/authpf.allow does not exist, then we assume that * all users who are allowed in by sshd(8) are permitted to @@ -444,9 +469,9 @@ print_message(char *filename) * the session terminates in the same manner as being banned. */ static int -allowed_luser(char *luser) +allowed_luser(struct passwd *pw) { - char *buf, *lbuf; + char *buf,*lbuf; int matched; size_t len; FILE *f; @@ -476,8 +501,14 @@ allowed_luser(char *luser) * "public" gateway, such as it is, so let * everyone use it. */ + int gl_init = 0, ngroups = NGROUPS + 1; + gid_t groups[NGROUPS + 1]; + lbuf = NULL; + matched = 0; + while ((buf = fgetln(f, &len))) { + if (buf[len - 1] == '\n') buf[len - 1] = '\0'; else { @@ -488,7 +519,40 @@ allowed_luser(char *luser) buf = lbuf; } - matched = strcmp(luser, buf) == 0 || strcmp("*", buf) == 0; + if (buf[0] == '@') { + /* check login class */ + if (strcmp(pw->pw_class, buf + 1) == 0) + matched++; + } else if (buf[0] == '%') { + /* check group membership */ + int cnt; + struct group *group; + + if ((group = getgrnam(buf + 1)) == NULL) { + syslog(LOG_ERR, + "invalid group '%s' in %s (%s)", + buf + 1, PATH_ALLOWFILE, + strerror(errno)); + return (0); + } + + if (!gl_init) { + (void) getgrouplist(pw->pw_name, + pw->pw_gid, groups, &ngroups); + gl_init++; + } + + for ( cnt = 0; cnt < ngroups; cnt++) { + if (group->gr_gid == groups[cnt]) { + matched++; + break; + } + } + } else { + /* check username and wildcard */ + matched = strcmp(pw->pw_name, buf) == 0 || + strcmp("*", buf) == 0; + } if (lbuf != NULL) { free(lbuf); @@ -496,13 +560,13 @@ allowed_luser(char *luser) } if (matched) - return (1); /* matched an allowed username */ + return (1); /* matched an allowed user/group */ } syslog(LOG_INFO, "denied access to %s: not listed in %s", - luser, PATH_ALLOWFILE); + pw->pw_name, PATH_ALLOWFILE); /* reuse buf */ - buf = "\n\nSorry, you are not allowed to use this facility!\n"; + sprintf(buf, "%s", "\n\nSorry, you are not allowed to use this facility!\n"); fputs(buf, stdout); } fflush(stdout); @@ -520,13 +584,13 @@ allowed_luser(char *luser) * going to be un-banned.) */ static int -check_luser(char *luserdir, char *luser) +check_luser(const char *luserdir, char *l_user) { FILE *f; int n; char tmp[MAXPATHLEN]; - n = snprintf(tmp, sizeof(tmp), "%s/%s", luserdir, luser); + n = snprintf(tmp, sizeof(tmp), "%s/%s", luserdir, l_user); if (n < 0 || (u_int)n >= sizeof(tmp)) { syslog(LOG_ERR, "provided banned directory line too long (%s)", luserdir); @@ -555,7 +619,7 @@ check_luser(char *luserdir, char *luser) * tell what they can do and where they can go. */ syslog(LOG_INFO, "denied access to %s: %s exists", - luser, tmp); + l_user, tmp); /* reuse tmp */ strlcpy(tmp, "\n\n-**- Sorry, you have been banned! -**-\n\n", @@ -581,7 +645,7 @@ static int remove_stale_rulesets(void) { struct pfioc_ruleset prs; - u_int32_t nr, mnr; + u_int32_t nr; memset(&prs, 0, sizeof(prs)); strlcpy(prs.path, anchorname, sizeof(prs.path)); @@ -592,13 +656,12 @@ remove_stale_rulesets(void) return (1); } - mnr = prs.nr; - nr = 0; - while (nr < mnr) { + nr = prs.nr; + while (nr) { char *s, *t; pid_t pid; - prs.nr = nr; + prs.nr = nr - 1; if (ioctl(dev, DIOCGETRULESET, &prs)) return (1); errno = 0; @@ -610,119 +673,159 @@ remove_stale_rulesets(void) if (!prs.name[0] || errno || (*s && (t == prs.name || *s != ')'))) return (1); - if (kill(pid, 0) && errno != EPERM) { - int i; - struct pfioc_trans_e t_e[PF_RULESET_MAX+1]; - struct pfioc_trans t; - - bzero(&t, sizeof(t)); - bzero(t_e, sizeof(t_e)); - t.size = PF_RULESET_MAX+1; - t.esize = sizeof(t_e[0]); - t.array = t_e; - for (i = 0; i < PF_RULESET_MAX+1; ++i) { - t_e[i].rs_num = i; - snprintf(t_e[i].anchor, sizeof(t_e[i].anchor), - "%s/%s", anchorname, prs.name); - } - t_e[PF_RULESET_MAX].rs_num = PF_RULESET_TABLE; - if ((ioctl(dev, DIOCXBEGIN, &t) || - ioctl(dev, DIOCXCOMMIT, &t)) && - errno != EINVAL) + if ((kill(pid, 0) && errno != EPERM) || pid == getpid()) { + if (recursive_ruleset_purge(anchorname, prs.name)) return (1); - mnr--; - } else - nr++; + } + nr--; } return (0); } +static int +recursive_ruleset_purge(char *an, char *rs) +{ + struct pfioc_trans_e *t_e = NULL; + struct pfioc_trans *t = NULL; + struct pfioc_ruleset *prs = NULL; + int i; + + + /* purge rules */ + errno = 0; + if ((t = calloc(1, sizeof(struct pfioc_trans))) == NULL) + goto no_mem; + if ((t_e = calloc(PF_RULESET_MAX+1, + sizeof(struct pfioc_trans_e))) == NULL) + goto no_mem; + t->size = PF_RULESET_MAX+1; + t->esize = sizeof(struct pfioc_trans_e); + t->array = t_e; + for (i = 0; i < PF_RULESET_MAX+1; ++i) { + t_e[i].rs_num = i; + snprintf(t_e[i].anchor, sizeof(t_e[i].anchor), "%s/%s", an, rs); + } + t_e[PF_RULESET_MAX].rs_num = PF_RULESET_TABLE; + if ((ioctl(dev, DIOCXBEGIN, t) || + ioctl(dev, DIOCXCOMMIT, t)) && + errno != EINVAL) + goto cleanup; + + /* purge any children */ + if ((prs = calloc(1, sizeof(struct pfioc_ruleset))) == NULL) + goto no_mem; + snprintf(prs->path, sizeof(prs->path), "%s/%s", an, rs); + if (ioctl(dev, DIOCGETRULESETS, prs)) { + if (errno != EINVAL) + goto cleanup; + errno = 0; + } else { + int nr = prs->nr; + + while (nr) { + prs->nr = 0; + if (ioctl(dev, DIOCGETRULESET, prs)) + goto cleanup; + + if (recursive_ruleset_purge(prs->path, prs->name)) + goto cleanup; + nr--; + } + } + +no_mem: + if (errno == ENOMEM) + syslog(LOG_ERR, "calloc failed"); + +cleanup: + free(t); + free(t_e); + free(prs); + return (errno); +} + /* * Add/remove filter entries for user "luser" from ip "ipsrc" */ static int -change_filter(int add, const char *luser, const char *ipsrc) +change_filter(int add, const char *l_user, const char *ip_src) { - char *pargv[13] = { - "pfctl", "-p", "/dev/pf", "-q", "-a", "anchor/ruleset", - "-D", "user_ip=X", "-D", "user_id=X", "-f", - "file", NULL - }; char *fdpath = NULL, *userstr = NULL, *ipstr = NULL; char *rsn = NULL, *fn = NULL; pid_t pid; gid_t gid; int s; - if (luser == NULL || !luser[0] || ipsrc == NULL || !ipsrc[0]) { - syslog(LOG_ERR, "invalid luser/ipsrc"); - goto error; - } - - if (asprintf(&rsn, "%s/%s", anchorname, rulesetname) == -1) - goto no_mem; - if (asprintf(&fdpath, "/dev/fd/%d", dev) == -1) - goto no_mem; - if (asprintf(&ipstr, "user_ip=%s", ipsrc) == -1) - goto no_mem; - if (asprintf(&userstr, "user_id=%s", luser) == -1) - goto no_mem; - if (add) { struct stat sb; + char *pargv[13] = { + "pfctl", "-p", "/dev/pf", "-q", "-a", "anchor/ruleset", + "-D", "user_id=X", "-D", "user_ip=X", "-f", "file", NULL + }; - if (asprintf(&fn, "%s/%s/authpf.rules", PATH_USER_DIR, luser) - == -1) + if (l_user == NULL || !l_user[0] || ip_src == NULL || !ip_src[0]) { + syslog(LOG_ERR, "invalid luser/ipsrc"); + goto error; + } + + if (asprintf(&rsn, "%s/%s", anchorname, rulesetname) == -1) + goto no_mem; + if (asprintf(&fdpath, "/dev/fd/%d", dev) == -1) + goto no_mem; + if (asprintf(&ipstr, "user_ip=%s", ip_src) == -1) + goto no_mem; + if (asprintf(&userstr, "user_id=%s", l_user) == -1) + goto no_mem; + if (asprintf(&fn, "%s/%s/authpf.rules", + PATH_USER_DIR, l_user) == -1) goto no_mem; if (stat(fn, &sb) == -1) { free(fn); if ((fn = strdup(PATH_PFRULES)) == NULL) goto no_mem; } - } - pargv[2] = fdpath; - pargv[5] = rsn; - pargv[7] = userstr; - pargv[9] = ipstr; - if (!add) - pargv[11] = "/dev/null"; - else - pargv[11] = fn; + pargv[2] = fdpath; + pargv[5] = rsn; + pargv[7] = userstr; + if (user_ip) { + pargv[9] = ipstr; + pargv[11] = fn; + } else { + pargv[8] = "-f"; + pargv[9] = fn; + pargv[10] = NULL; + } - switch (pid = fork()) { - case -1: - syslog(LOG_ERR, "fork failed"); - goto error; - case 0: - /* revoke group privs before exec */ - gid = getgid(); - if (setregid(gid, gid) == -1) { - err(1, "setregid"); - } - execvp(PATH_PFCTL, pargv); - warn("exec of %s failed", PATH_PFCTL); - _exit(1); - } - - /* parent */ - waitpid(pid, &s, 0); - if (s != 0) { - syslog(LOG_ERR, "pfctl exited abnormally"); - goto error; - } + switch (pid = fork()) { + case -1: + syslog(LOG_ERR, "fork failed"); + goto error; + case 0: + /* revoke group privs before exec */ + gid = getgid(); + if (setregid(gid, gid) == -1) { + err(1, "setregid"); + } + execvp(PATH_PFCTL, pargv); + warn("exec of %s failed", PATH_PFCTL); + _exit(1); + } + + /* parent */ + waitpid(pid, &s, 0); + if (s != 0) { + syslog(LOG_ERR, "pfctl exited abnormally"); + goto error; + } - if (add) { gettimeofday(&Tstart, NULL); - syslog(LOG_INFO, "allowing %s, user %s", ipsrc, luser); + syslog(LOG_INFO, "allowing %s, user %s", ip_src, l_user); } else { + remove_stale_rulesets(); + gettimeofday(&Tend, NULL); -#ifdef __FreeBSD__ - syslog(LOG_INFO, "removed %s, user %s - duration %jd seconds", - ipsrc, luser, (intmax_t)(Tend.tv_sec - Tstart.tv_sec)); -#else - syslog(LOG_INFO, "removed %s, user %s - duration %ld seconds", - ipsrc, luser, Tend.tv_sec - Tstart.tv_sec); -#endif + syslog(LOG_INFO, "removed %s, user %s - duration %zu seconds", + ip_src, l_user, Tend.tv_sec - Tstart.tv_sec); } return (0); no_mem: @@ -740,7 +843,7 @@ error: * Add/remove this IP from the "authpf_users" table. */ static int -change_table(int add, const char *ipsrc) +change_table(int add, const char *ip_src) { struct pfioc_table io; struct pfr_addr addr; @@ -753,12 +856,12 @@ change_table(int add, const char *ipsrc) io.pfrio_size = 1; bzero(&addr, sizeof(addr)); - if (ipsrc == NULL || !ipsrc[0]) + if (ip_src == NULL || !ip_src[0]) return (-1); - if (inet_pton(AF_INET, ipsrc, &addr.pfra_ip4addr) == 1) { + if (inet_pton(AF_INET, ip_src, &addr.pfra_ip4addr) == 1) { addr.pfra_af = AF_INET; addr.pfra_net = 32; - } else if (inet_pton(AF_INET6, ipsrc, &addr.pfra_ip6addr) == 1) { + } else if (inet_pton(AF_INET6, ip_src, &addr.pfra_ip6addr) == 1) { addr.pfra_af = AF_INET6; addr.pfra_net = 128; } else { @@ -769,7 +872,7 @@ change_table(int add, const char *ipsrc) if (ioctl(dev, add ? DIOCRADDADDRS : DIOCRDELADDRS, &io) && errno != ESRCH) { syslog(LOG_ERR, "cannot %s %s from table %s: %s", - add ? "add" : "remove", ipsrc, tablename, + add ? "add" : "remove", ip_src, tablename, strerror(errno)); return (-1); } @@ -821,7 +924,7 @@ authpf_kill_states(void) /* signal handler that makes us go away properly */ static void -need_death(int signo) +need_death(int signo __unused) { want_death = 1; } @@ -840,11 +943,12 @@ do_death(int active) if (active) { change_filter(0, luser, ipsrc); - change_table(0, ipsrc); - authpf_kill_states(); - remove_stale_rulesets(); + if (user_ip) { + change_table(0, ipsrc); + authpf_kill_states(); + } } - if (pidfile[0] && (pidfp != NULL)) + if (pidfile[0] && pidfd != -1) if (unlink(pidfile) == -1) syslog(LOG_ERR, "cannot unlink %s (%m)", pidfile); exit(ret); Modified: projects/pf/pf45/contrib/pf/authpf/pathnames.h ============================================================================== --- projects/pf/pf45/contrib/pf/authpf/pathnames.h Tue Apr 26 21:08:11 2011 (r221086) +++ projects/pf/pf45/contrib/pf/authpf/pathnames.h Tue Apr 26 21:47:38 2011 (r221087) @@ -1,4 +1,4 @@ -/* $OpenBSD: pathnames.h,v 1.7 2004/04/25 18:40:42 beck Exp $ */ +/* $OpenBSD: pathnames.h,v 1.8 2008/02/14 01:49:17 mcbride Exp $ */ /* * Copyright (C) 2002 Chris Kuethe (ckuethe@ualberta.ca) @@ -35,4 +35,5 @@ #define PATH_DEVFILE "/dev/pf" #define PATH_PIDFILE "/var/authpf" #define PATH_AUTHPF_SHELL "/usr/sbin/authpf" +#define PATH_AUTHPF_SHELL_NOIP "/usr/sbin/authpf-noip" #define PATH_PFCTL "/sbin/pfctl" From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 22:13:58 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF959106566C; Tue, 26 Apr 2011 22:13:58 +0000 (UTC) (envelope-from eri@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A92418FC0C; Tue, 26 Apr 2011 22:13:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QMDwLV040898; Tue, 26 Apr 2011 22:13:58 GMT (envelope-from eri@svn.freebsd.org) Received: (from eri@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QMDwnC040892; Tue, 26 Apr 2011 22:13:58 GMT (envelope-from eri@svn.freebsd.org) Message-Id: <201104262213.p3QMDwnC040892@svn.freebsd.org> From: Ermal Luçi Date: Tue, 26 Apr 2011 22:13:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221091 - projects/pf/pf45/contrib/pf/man X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 22:13:58 -0000 Author: eri Date: Tue Apr 26 22:13:58 2011 New Revision: 221091 URL: http://svn.freebsd.org/changeset/base/221091 Log: Update man pages also to match the OpenBSD 4.5 content. Modified: projects/pf/pf45/contrib/pf/man/pf.4 projects/pf/pf45/contrib/pf/man/pf.conf.5 projects/pf/pf45/contrib/pf/man/pf.os.5 projects/pf/pf45/contrib/pf/man/pflog.4 projects/pf/pf45/contrib/pf/man/pfsync.4 Modified: projects/pf/pf45/contrib/pf/man/pf.4 ============================================================================== --- projects/pf/pf45/contrib/pf/man/pf.4 Tue Apr 26 22:11:40 2011 (r221090) +++ projects/pf/pf45/contrib/pf/man/pf.4 Tue Apr 26 22:13:58 2011 (r221091) @@ -1,4 +1,4 @@ -.\" $OpenBSD: pf.4,v 1.58 2007/02/09 11:39:06 henning Exp $ +.\" $OpenBSD: pf.4,v 1.62 2008/09/10 14:57:37 jmc Exp $ .\" .\" Copyright (C) 2001, Kjell Wooding. All rights reserved. .\" @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 7, 2005 +.Dd September 10 2008 .Dt PF 4 .Os .Sh NAME @@ -294,14 +294,17 @@ if another process is concurrently updat Add a state entry. .Bd -literal struct pfioc_state { - u_int32_t nr; - struct pf_state state; + struct pfsync_state state; }; .Ed .It Dv DIOCGETSTATE Fa "struct pfioc_state *ps" -Extract the entry with the specified number -.Va nr -from the state table. +Extract the entry identified by the +.Va id +and +.Va creatorid +fields of the +.Va state +structure from the state table. .It Dv DIOCKILLSTATES Fa "struct pfioc_state_kill *psk" Remove matching entries from the state table. This ioctl returns the number of killed states in @@ -1049,12 +1052,14 @@ internal interface description. The filtering process is the same as for .Dv DIOCIGETIFACES . .Bd -literal -#define PFI_IFLAG_SKIP 0x0100 /* skip filtering on interface */ +#define PFI_IFLAG_SKIP 0x0100 /* skip filtering on interface */ .Ed .It Dv DIOCCLRIFFLAG Fa "struct pfioc_iface *io" Works as .Dv DIOCSETIFFLAG above but clears the flags. +.It Dv DIOCKILLSRCNODES Fa "struct pfioc_iface *io" +Explicitly remove source tracking nodes. .El .Sh FILES .Bl -tag -width /dev/pf -compact @@ -1133,6 +1138,7 @@ main(int argc, char *argv[]) .Xr altq 4 , .Xr if_bridge 4 , .Xr pflog 4 , +.Xr pflow 4 , .Xr pfsync 4 , .Xr pfctl 8 , .Xr altq 9 Modified: projects/pf/pf45/contrib/pf/man/pf.conf.5 ============================================================================== --- projects/pf/pf45/contrib/pf/man/pf.conf.5 Tue Apr 26 22:11:40 2011 (r221090) +++ projects/pf/pf45/contrib/pf/man/pf.conf.5 Tue Apr 26 22:13:58 2011 (r221091) @@ -1,5 +1,5 @@ -.\" $FreeBSD$ -.\" $OpenBSD: pf.conf.5,v 1.393 2008/02/11 07:46:32 jmc Exp $ +.\" $FreeBSD$ +.\" $OpenBSD: pf.conf.5,v 1.406 2009/01/31 19:37:12 sobrado Exp $ .\" .\" Copyright (c) 2002, Daniel Hartmeier .\" All rights reserved. @@ -28,7 +28,7 @@ .\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd June 10, 2008 +.Dd January 31 2009 .Dt PF.CONF 5 .Os .Sh NAME @@ -79,6 +79,17 @@ By default enforces this order (see .Ar set require-order below). +.Pp +Comments can be put anywhere in the file using a hash mark +.Pq Sq # , +and extend to the end of the current line. +.Pp +Additional configuration files can be included with the +.Ic include +keyword, for example: +.Bd -literal -offset indent +include "/etc/pf/sub.filter.conf" +.Ed .Sh MACROS Macros can be defined that will later be expanded in context. Macro names must start with a letter, and may contain letters, digits @@ -154,7 +165,7 @@ A table initialized with the empty list, will be cleared on load. .El .Pp -Tables may be defined with the following two attributes: +Tables may be defined with the following attributes: .Bl -tag -width persist .It Ar persist The @@ -173,6 +184,11 @@ can be used to add or remove addresses f when running with .Xr securelevel 7 = 2. +.It Ar counters +The +.Ar counters +flag enables per-address packet and byte counters which can be displayed with +.Xr pfctl 8 . .El .Pp For example, @@ -328,7 +344,8 @@ With 9000 state table entries, the timeo (tcp.first 60, tcp.established 43200). .Pp .It Ar set loginterface -Enable collection of packet and byte count statistics for the given interface. +Enable collection of packet and byte count statistics for the given +interface or interface group. These statistics can be viewed using .Bd -literal -offset indent # pfctl -s info @@ -403,9 +420,10 @@ set limit { states 20000, frags 20000, s .Bl -tag -width xxxxxxxx -compact .It Ar none Disable the ruleset optimizer. -This is the default behaviour. .It Ar basic -Enable basic ruleset optimization, which does four things to improve the +Enable basic ruleset optimization. +This is the default behaviour. +Basic ruleset optimization does four things to improve the performance of ruleset evaluations: .Pp .Bl -enum -compact @@ -500,6 +518,16 @@ For example: .Bd -literal -offset indent set state-policy if-bound .Ed +.It Ar set state-defaults +The +.Ar state-defaults +option sets the state options for states created from rules +without an explicit +.Ar keep state . +For example: +.Bd -literal -offset indent +set state-defaults pflow, no-sync +.Ed .It Ar set hostid The 32-bit .Ar hostid @@ -617,6 +645,19 @@ modifier to ensure unique IP identifiers Enforces a minimum TTL for matching IP packets. .It Ar max-mss Aq Ar number Enforces a maximum MSS for matching TCP packets. +.It Xo Ar set-tos Aq Ar string +.No \*(Ba Aq Ar number +.Xc +Enforces a +.Em TOS +for matching IP packets. +.Em TOS +may be +given as one of +.Ar lowdelay , +.Ar throughput , +.Ar reliability , +or as either hex or decimal. .It Ar random-id Replaces the IP identification field with random values to compensate for predictable values generated by many hosts. @@ -725,7 +766,7 @@ much in the same way as works in the packet filter (see below). This mechanism should be used when it is necessary to exclude specific packets from broader scrub rules. -.Sh QUEUEING/ALTQ +.Sh QUEUEING The ALTQ system is currently not available in the GENERIC kernel nor as loadable modules. In order to use the herein after called queueing options one has to use a @@ -816,7 +857,7 @@ assigned. .Ar Priority mainly controls the time packets take to get sent out, while .Ar bandwidth -has primarily effects on throughput. +primarily affects throughput. .Ar hfsc supports both link-sharing and guaranteed real-time services. It employs a service curve based QoS model, @@ -879,7 +920,7 @@ Defines a list of subqueues to create on .El .Pp In the following example, the interface dc0 -should queue up to 5 Mbit/s in four second-level queues using +should queue up to 5Mbps in four second-level queues using Class Based Queueing. Those four queues will be shown in a later example. .Bd -literal -offset indent @@ -1171,7 +1212,7 @@ or to the firewall itself. Note that redirecting external incoming connections to the loopback address, as in .Bd -literal -offset indent -rdr on ne3 inet proto tcp to port spamd -\*(Gt 127.0.0.1 port smtp +rdr on ne3 inet proto tcp to port smtp -\*(Gt 127.0.0.1 port spamd .Ed .Pp will effectively allow an external host to connect to daemons @@ -1256,7 +1297,7 @@ block all .Ed .It Ar pass The packet is passed; -state is created state unless the +state is created unless the .Ar no state option is specified. .El @@ -1432,7 +1473,8 @@ This rule applies only to packets with t addresses and ports. .Pp Addresses can be specified in CIDR notation (matching netblocks), as -symbolic host names or interface names, or as any of the following keywords: +symbolic host names, interface names or interface group names, or as any +of the following keywords: .Pp .Bl -tag -width xxxxxxxxxxxxxx -compact .It Ar any @@ -1454,7 +1496,15 @@ the route back to the packet's source ad Any address that matches the given table. .El .Pp -Interface names can have modifiers appended: +Ranges of addresses are specified by using the +.Sq - +operator. +For instance: +.Dq 10.1.1.10 - 10.1.1.12 +means all addresses from 10.1.1.10 to 10.1.1.12, +hence addresses 10.1.1.10, 10.1.1.11, and 10.1.1.12. +.Pp +Interface names and interface group names can have modifiers appended: .Pp .Bl -tag -width xxxxxxxxxxxx -compact .It Ar :network @@ -1462,7 +1512,7 @@ Translates to the network(s) attached to .It Ar :broadcast Translates to the interface's broadcast address(es). .It Ar :peer -Translates to the point to point interface's peer address(es). +Translates to the point-to-point interface's peer address(es). .It Ar :0 Do not include interface aliases. .El @@ -1552,17 +1602,6 @@ This is equivalent to "from any to any". Similar to .Ar user , this rule only applies to packets of sockets owned by the specified group. -.Pp -The use of -.Ar group -or -.Ar user -in -.Va debug.mpsafenet Ns = Ns 1 -environments may result in a deadlock. -Please see the -.Sx BUGS -section for details. .It Ar user Aq Ar user This rule only applies to packets of sockets owned by the specified user. For outgoing connections initiated from the firewall, this is the user @@ -1628,7 +1667,7 @@ Flags not specified in are ignored. For stateful connections, the default is .Ar flags S/SA . -To indicate that flags should not be checkd at all, specify +To indicate that flags should not be checked at all, specify .Ar flags any . The flags are: (F)IN, (S)YN, (R)ST, (P)USH, (A)CK, (U)RG, (E)CE, and C(W)R. .Bl -tag -width Fl @@ -1780,7 +1819,7 @@ of .Em lowdelay and TCP ACKs with no data payload will be assigned to the second one. See -.Sx QUEUEING/ALTQ +.Sx QUEUEING for setup details. .Pp For example: @@ -1811,7 +1850,8 @@ or rules in addition to filter rules. Tags take the same macros as labels (see above). .It Ar tagged Aq Ar string -Used with filter or translation rules to specify that packets must already +Used with filter, translation or scrub rules +to specify that packets must already be tagged with the given tag in order to match the rule. Inverse tag matching can also be done by specifying the @@ -1822,6 +1862,22 @@ keyword. .It Ar rtable Aq Ar number Used to select an alternate routing table for the routing lookup. Only effective before the route lookup happened, i.e. when filtering inbound. +.It Xo Ar divert-to Aq Ar host +.Ar port Aq Ar port +.Xc +Used to redirect packets to a local socket bound to +.Ar host +and +.Ar port . +The packets will not be modified, so +.Xr getsockname 2 +on the socket will return the original destination address of the packet. +.It Ar divert-reply +Used to receive replies for sockets that are bound to addresses +which are not local to the machine. +See +.Xr setsockopt 2 +for information on how to bind these sockets. .It Ar probability Aq Ar number A probability attribute can be attached to a rule, with a value set between 0 and 1, bounds not included. @@ -1940,7 +1996,7 @@ pool options. Note that by default these associations are destroyed as soon as there are no longer states which refer to them; in order to make the mappings last beyond the lifetime of the states, increase the global options with -.Ar set timeout source-track +.Ar set timeout src.track . See .Sx STATEFUL TRACKING OPTIONS for more ways to control the source tracking. @@ -2026,7 +2082,7 @@ Rules with will not work if .Xr pf 4 operates on a -.Xr if_bridge 4 . +.Xr bridge 4 . .Pp Example: .Bd -literal -offset indent @@ -2046,8 +2102,8 @@ must be specified explicitly to apply op .Bl -tag -width xxxx -compact .It Ar max Aq Ar number Limits the number of concurrent states the rule may create. -When this limit is reached, further packets matching the rule that would -create state are dropped, until existing states time out. +When this limit is reached, further packets that would create +state will not match this rule until existing states time out. .It Ar no-sync Prevent state changes for states created by this rule from appearing on the .Xr pfsync 4 @@ -2064,8 +2120,12 @@ Uses a sloppy TCP connection tracker tha numbers at all, which makes insertion and ICMP teardown attacks way easier. This is intended to be used in situations where one does not see all -packets of a connection, i.e. in asymmetric routing situations. +packets of a connection, e.g. in asymmetric routing situations. Cannot be used with modulate or synproxy state. +.It Ar pflow +States created by this rule are exported on the +.Xr pflow 4 +interface. .El .Pp Multiple options can be specified, separated by commas: @@ -2472,10 +2532,8 @@ into the anchor. .Pp Optionally, .Ar anchor -rules can specify the parameter's -direction, interface, address family, protocol and source/destination -address/port -using the same syntax as filter rules. +rules can specify packet filtering parameters using the same syntax as +filter rules. When parameters are used, the .Ar anchor rule is only evaluated for matching packets. @@ -2779,10 +2837,11 @@ in BNF: .Bd -literal line = ( option | pf-rule | nat-rule | binat-rule | rdr-rule | antispoof-rule | altq-rule | queue-rule | trans-anchors | - anchor-rule | anchor-close | load-anchor | table-rule | ) + anchor-rule | anchor-close | load-anchor | table-rule | + include ) option = "set" ( [ "timeout" ( timeout | "{" timeout-list "}" ) ] | - [ "ruleset-optimization" [ "none" | "basic" | "profile" ]] | + [ "ruleset-optimization" [ "none" | "basic" | "profile" ]] | [ "optimization" [ "default" | "normal" | "high-latency" | "satellite" | "aggressive" | "conservative" ] ] @@ -2790,9 +2849,10 @@ option = "set" ( [ "timeout" ( t [ "loginterface" ( interface-name | "none" ) ] | [ "block-policy" ( "drop" | "return" ) ] | [ "state-policy" ( "if-bound" | "floating" ) ] + [ "state-defaults" state-opts ] [ "require-order" ( "yes" | "no" ) ] [ "fingerprints" filename ] | - [ "skip on" ( interface-name | "{" interface-list "}" ) ] | + [ "skip on" ifspec ] | [ "debug" ( "none" | "urgent" | "misc" | "loud" ) ] ) pf-rule = action [ ( "in" | "out" ) ] @@ -2804,10 +2864,10 @@ logopts = logopt [ "," logopts ] logopt = "all" | "user" | "to" interface-name filteropt-list = filteropt-list filteropt | filteropt -filteropt = user | group | flags | icmp-type | icmp6-type | tos | +filteropt = user | group | flags | icmp-type | icmp6-type | "tos" tos | ( "no" | "keep" | "modulate" | "synproxy" ) "state" [ "(" state-opts ")" ] | - "fragment" | "no-df" | "min-ttl" number | + "fragment" | "no-df" | "min-ttl" number | "set-tos" tos | "max-mss" number | "random-id" | "reassemble tcp" | fragmentation | "allow-opts" | "label" string | "tag" string | [ ! ] "tagged" string | @@ -2834,17 +2894,16 @@ rdr-rule = [ "no" ] "rdr" [ "pass" [ portspec ] [ pooltype ] ] antispoof-rule = "antispoof" [ "log" ] [ "quick" ] - "for" ( interface-name | "{" interface-list "}" ) - [ af ] [ "label" string ] + "for" ifspec [ af ] [ "label" string ] table-rule = "table" "\*(Lt" string "\*(Gt" [ tableopts-list ] tableopts-list = tableopts-list tableopts | tableopts -tableopts = "persist" | "const" | "file" string | +tableopts = "persist" | "const" | "counters" | "file" string | "{" [ tableaddr-list ] "}" tableaddr-list = tableaddr-list [ "," ] tableaddr-spec | tableaddr-spec tableaddr-spec = [ "!" ] tableaddr [ "/" mask-bits ] -tableaddr = hostname | ipv4-dotted-quad | ipv6-coloned-hex | - interface-name | "self" +tableaddr = hostname | ifspec | "self" | + ipv4-dotted-quad | ipv6-coloned-hex altq-rule = "altq on" interface-name queueopts-list "queue" subqueue @@ -2852,7 +2911,7 @@ queue-rule = "queue" string [ "on" i subqueue anchor-rule = "anchor" [ string ] [ ( "in" | "out" ) ] [ "on" ifspec ] - [ af ] [ protospec ] [ hosts ] [ "{" ] + [ af ] [ protospec ] [ hosts ] [ filteropt-list ] [ "{" ] anchor-close = "}" @@ -2875,8 +2934,10 @@ return = "drop" | "return" | "re icmpcode = ( icmp-code-name | icmp-code-number ) icmp6code = ( icmp6-code-name | icmp6-code-number ) -ifspec = ( [ "!" ] interface-name ) | "{" interface-list "}" -interface-list = [ "!" ] interface-name [ [ "," ] interface-list ] +ifspec = ( [ "!" ] ( interface-name | interface-group ) ) | + "{" interface-list "}" +interface-list = [ "!" ] ( interface-name | interface-group ) + [ [ "," ] interface-list ] route = ( "route-to" | "reply-to" | "dup-to" ) ( routehost | "{" routehost-list "}" ) [ pooltype ] @@ -2896,8 +2957,9 @@ ipspec = "any" | host | "{" host host = [ "!" ] ( address [ "/" mask-bits ] | "\*(Lt" string "\*(Gt" ) redirhost = address [ "/" mask-bits ] routehost = "(" interface-name [ address [ "/" mask-bits ] ] ")" -address = ( interface-name | "(" interface-name ")" | hostname | - ipv4-dotted-quad | ipv6-coloned-hex ) +address = ( interface-name | interface-group | + "(" ( interface-name | interface-group ) ")" | + hostname | ipv4-dotted-quad | ipv6-coloned-hex ) host-list = host [ [ "," ] host-list ] redirhost-list = redirhost [ [ "," ] redirhost-list ] routehost-list = routehost [ [ "," ] routehost-list ] @@ -2926,11 +2988,11 @@ icmp-type-code = ( icmp-type-name | icmp [ "code" ( icmp-code-name | icmp-code-number ) ] icmp-list = icmp-type-code [ [ "," ] icmp-list ] -tos = "tos" ( "lowdelay" | "throughput" | "reliability" | +tos = ( "lowdelay" | "throughput" | "reliability" | [ "0x" ] number ) state-opts = state-opt [ [ "," ] state-opts ] -state-opt = ( "max" number | "no-sync" | timeout | sloppy | +state-opt = ( "max" number | "no-sync" | timeout | "sloppy" | "pflow" | "source-track" [ ( "rule" | "global" ) ] | "max-src-nodes" number | "max-src-states" number | "max-src-conn" number | @@ -2971,9 +3033,10 @@ realtime-sc = "realtime" sc-spec upperlimit-sc = "upperlimit" sc-spec sc-spec = ( bandwidth-spec | "(" bandwidth-spec number bandwidth-spec ")" ) +include = "include" filename .Ed .Sh FILES -.Bl -tag -width "/usr/share/examples/pf" -compact +.Bl -tag -width "/etc/protocols" -compact .It Pa /etc/hosts Host name database. .It Pa /etc/pf.conf @@ -2984,8 +3047,6 @@ Default location of OS fingerprints. Protocol name database. .It Pa /etc/services Service name database. -.It Pa /usr/share/examples/pf -Example rulesets. .El .Sh BUGS Due to a lock order reversal (LOR) with the socket layer, the use of the @@ -3017,6 +3078,7 @@ Rules with a route label do not match an .Xr ip 4 , .Xr ip6 4 , .Xr pf 4 , +.Xr pflow 4 , .Xr pfsync 4 , .Xr route 4 , .Xr tcp 4 , Modified: projects/pf/pf45/contrib/pf/man/pf.os.5 ============================================================================== --- projects/pf/pf45/contrib/pf/man/pf.os.5 Tue Apr 26 22:11:40 2011 (r221090) +++ projects/pf/pf45/contrib/pf/man/pf.os.5 Tue Apr 26 22:13:58 2011 (r221091) @@ -1,4 +1,4 @@ -.\" $OpenBSD: pf.os.5,v 1.7 2005/11/16 20:07:18 stevesk Exp $ +.\" $OpenBSD: pf.os.5,v 1.8 2007/05/31 19:19:58 jmc Exp $ .\" .\" Copyright (c) 2003 Mike Frantzen .\" @@ -13,10 +13,9 @@ .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -.\" .\" $FreeBSD$ .\" -.Dd August 18, 2003 +.Dd May 31 2007 .Dt PF.OS 5 .Os .Sh NAME @@ -217,7 +216,7 @@ almost translates into the following fin 57344:64:1:44:M1460: exampleOS:1.0::exampleOS 1.0 .Ed .Sh SEE ALSO -.Xr tcpdump 1 , .Xr pf 4 , .Xr pf.conf 5 , -.Xr pfctl 8 +.Xr pfctl 8 , +.Xr tcpdump 1 Modified: projects/pf/pf45/contrib/pf/man/pflog.4 ============================================================================== --- projects/pf/pf45/contrib/pf/man/pflog.4 Tue Apr 26 22:11:40 2011 (r221090) +++ projects/pf/pf45/contrib/pf/man/pflog.4 Tue Apr 26 22:13:58 2011 (r221091) @@ -1,4 +1,4 @@ -.\" $OpenBSD: pflog.4,v 1.9 2006/10/25 12:51:31 jmc Exp $ +.\" $OpenBSD: pflog.4,v 1.10 2007/05/31 19:19:51 jmc Exp $ .\" .\" Copyright (c) 2001 Tobias Weingartner .\" All rights reserved. @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 10, 2001 +.Dd May 31 2007 .Dt PFLOG 4 .Os .Sh NAME @@ -36,7 +36,7 @@ .Sh DESCRIPTION The .Nm pflog -interface is a pseudo-device which makes visible all packets logged by +interface is a device which makes visible all packets logged by the packet filter, .Xr pf 4 . Logged packets can easily be monitored in real @@ -91,13 +91,13 @@ and monitor all packets logged on it: # tcpdump -n -e -ttt -i pflog1 .Ed .Sh SEE ALSO -.Xr tcpdump 1 .Xr inet 4 , .Xr inet6 4 , .Xr netintro 4 , .Xr pf 4 , .Xr ifconfig 8 , -.Xr pflogd 8 +.Xr pflogd 8 , +.Xr tcpdump 1 .Sh HISTORY The .Nm Modified: projects/pf/pf45/contrib/pf/man/pfsync.4 ============================================================================== --- projects/pf/pf45/contrib/pf/man/pfsync.4 Tue Apr 26 22:11:40 2011 (r221090) +++ projects/pf/pf45/contrib/pf/man/pfsync.4 Tue Apr 26 22:13:58 2011 (r221091) @@ -1,4 +1,4 @@ -.\" $OpenBSD: pfsync.4,v 1.24 2006/10/23 07:05:49 jmc Exp $ +.\" $OpenBSD: pfsync.4,v 1.28 2009/02/17 10:05:18 dlg Exp $ .\" .\" Copyright (c) 2002 Michael Shalayeff .\" Copyright (c) 2003-2004 Ryan McBride @@ -26,12 +26,12 @@ .\" .\" $FreeBSD$ .\" -.Dd June 6, 2006 +.Dd February 17 2009 .Dt PFSYNC 4 .Os .Sh NAME .Nm pfsync -.Nd packet filter state table logging interface +.Nd packet filter state table sychronisation interface .Sh SYNOPSIS .Cd "device pfsync" .Sh DESCRIPTION @@ -40,26 +40,25 @@ The interface is a pseudo-device which exposes certain changes to the state table used by .Xr pf 4 . -.\" XXX: not yet! -.\" State changes can be viewed by invoking -.\" .Xr tcpdump 1 -.\" on the -.\" .Nm -.\" interface. +State changes can be viewed by invoking +.Xr tcpdump 1 +on the +.Nm +interface. If configured with a physical synchronisation interface, .Nm -will send state changes out on that interface using IP multicast, +will also send state changes out on that interface, and insert state changes received on that interface from other systems into the state table. .Pp By default, all local changes to the state table are exposed via .Nm . -However, state changes from packets received by +State changes from packets received by .Nm over the network are not rebroadcast. -States created by a rule marked with the +Updates to states created by a rule marked with the .Ar no-sync -keyword are omitted from the +keyword are ignored by the .Nm interface (see .Xr pf.conf 5 @@ -67,33 +66,19 @@ for details). .Pp The .Nm -interface will attempt to collapse multiple updates of the same -state into one message where possible. -The maximum number of times this can be done before the update is sent out -is controlled by the +interface will attempt to collapse multiple state updates into a single +packet where possible. +The maximum number of times a single state can be updated before a +.Nm +packet will be sent out is controlled by the .Ar maxupd parameter to ifconfig (see .Xr ifconfig 8 and the example below for more details). -.Pp -Each packet retrieved on this interface has a header associated -with it of length -.Dv PFSYNC_HDRLEN . -The header indicates the version of the protocol, address family, -action taken on the following states, and the number of state -table entries attached in this packet. -This structure is defined in -.Aq Pa net/if_pfsync.h -as: -.Bd -literal -offset indent -struct pfsync_header { - u_int8_t version; - u_int8_t af; - u_int8_t action; - u_int8_t count; -}; -.Ed +The sending out of a +.Nm +packet will be delayed by a maximum of one second. .Sh NETWORK SYNCHRONISATION States can be synchronised between two or more firewalls using this interface, by specifying a synchronisation interface using @@ -104,18 +89,16 @@ interface: # ifconfig pfsync0 syncdev fxp0 .Ed .Pp -It is important that the underlying synchronisation interface is up -and has an IP address assigned. -.Pp By default, state change messages are sent out on the synchronisation -interface using IP multicast packets. -The protocol is IP protocol 240, PFSYNC, and the multicast group -used is 224.0.0.240. -When a peer address is specified using the +interface using IP multicast packets to the 244.0.0.240 group address. +An alternative destination address for +.Nm +packets can be specified using the .Ic syncpeer -keyword, the peer address is used as a destination for the pfsync traffic, -and the traffic can then be protected using -.Xr ipsec 4 . +keyword. +This can be used in combination with +.Xr ipsec 4 +to protect the synchronisation traffic. In such a configuration, the syncdev should be set to the .Xr enc 4 interface, as this is where the traffic arrives when it is decapsulated, @@ -127,50 +110,19 @@ e.g.: It is important that the pfsync traffic be well secured as there is no authentication on the protocol and it would be trivial to spoof packets which create states, bypassing the pf ruleset. -Either run the pfsync protocol on a trusted network \- ideally a network +Either run the pfsync protocol on a trusted network \- ideally a network dedicated to pfsync messages such as a crossover cable between two firewalls, or specify a peer address and protect the traffic with .Xr ipsec 4 . -.Pp -For -.Nm -to start its operation automatically at the system boot time, -.Va pfsync_enable -and -.Va pfsync_syncdev -variables should be used in -.Xr rc.conf 5 . -It is not advisable to set up -.Nm -with common network interface configuration variables of -.Xr rc.conf 5 -because -.Nm -must start after its -.Cm syncdev , -which cannot be always ensured in the latter case. -.\" XXX: not yet! -.\" .Pp -.\" There is a one-to-one correspondence between packets seen by -.\" .Xr bpf 4 -.\" on the -.\" .Nm -.\" interface, and packets sent out on the synchronisation interface, i.e.\& -.\" a packet with 4 state deletion messages on -.\" .Nm -.\" means that the same 4 deletions were sent out on the synchronisation -.\" interface. -.\" However, the actual packet contents may differ as the messages -.\" sent over the network are "compressed" where possible, containing -.\" only the necessary information. .Sh EXAMPLES .Nm and .Xr carp 4 can be used together to provide automatic failover of a pair of firewalls configured in parallel. -One firewall handles all traffic \- if it dies or -is shut down, the second firewall takes over automatically. +One firewall will handle all traffic until it dies, is shut down, or is +manually demoted, at which point the second firewall will take over +automatically. .Pp Both firewalls in this example have three .Xr sis 4 @@ -208,12 +160,12 @@ traffic through. The following should be added to the top of .Pa /etc/pf.conf : .Bd -literal -offset indent -pass quick on { sis2 } proto pfsync -pass on { sis0 sis1 } proto carp +pass quick on { sis2 } proto pfsync keep state (no-sync) +pass on { sis0 sis1 } proto carp keep state (no-sync) .Ed .Pp -If it is preferable that one firewall handle the traffic, -the +It is preferable that one firewall handle the forwarding of all the traffic, +therefore the .Ar advskew on the backup firewall's .Xr carp 4 @@ -221,6 +173,7 @@ interfaces should be set to something hi the primary's. For example, if firewall B is the backup, its carp1 configuration would look like this: +would look like this: .Bd -literal -offset indent ifconfig_carp1="vhid 2 pass bar advskew 100 192.168.0.1/24" .Ed @@ -230,16 +183,10 @@ The following must also be added to .Bd -literal -offset indent net.inet.carp.preempt=1 .Ed -.Sh BUGS -Possibility to view state changes using -.Xr tcpdump 1 -has not been ported from -.Ox -yet. .Sh SEE ALSO .Xr bpf 4 , .Xr carp 4 , -.Xr ifconfig 8 , +.Xr enc 4 , .Xr inet 4 , .Xr inet6 4 , .Xr ipsec 4 , @@ -247,16 +194,20 @@ yet. .Xr pf 4 , .Xr pf.conf 5 , .Xr protocols 5 , -.Xr rc.conf 5 +.Xr rc.conf 5 , .Xr ifconfig 8 , .Xr ifstated 8 , -.Xr tcpdump 8 +.Xr tcpdump 1 .Sh HISTORY The .Nm device first appeared in .Ox 3.3 . +.Pp The .Nm -device was imported to -.Fx 5.3 . +protocol and kernel implementation were significantly modified between +.Ox 4.4 +and +.Ox 4.5 . +The two protocols are incompatible and will not interoperate. From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 22:38:44 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0A1B8106566B; Tue, 26 Apr 2011 22:38:44 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EF4C48FC1C; Tue, 26 Apr 2011 22:38:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QMch1Z041940; Tue, 26 Apr 2011 22:38:43 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QMchuC041934; Tue, 26 Apr 2011 22:38:43 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104262238.p3QMchuC041934@svn.freebsd.org> From: Florent Thoumie Date: Tue, 26 Apr 2011 22:38:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221097 - in projects/portbuild: scripts tools X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 22:38:44 -0000 Author: flz Date: Tue Apr 26 22:38:43 2011 New Revision: 221097 URL: http://svn.freebsd.org/changeset/base/221097 Log: portbuild: build ptimeout/pnohang when needed. This removes the need to manually compile pnohang on every single arch when setting up a new pointyhat instance. Added bonus is less clutter in scripts/. Modified: projects/portbuild/scripts/dopackages projects/portbuild/scripts/dosetupnode projects/portbuild/scripts/pdispatch projects/portbuild/scripts/portbuild projects/portbuild/tools/showrunning.py Modified: projects/portbuild/scripts/dopackages ============================================================================== --- projects/portbuild/scripts/dopackages Tue Apr 26 22:18:53 2011 (r221096) +++ projects/portbuild/scripts/dopackages Tue Apr 26 22:38:43 2011 (r221097) @@ -676,6 +676,9 @@ if [ "$nobuild" = 0 ]; then else cp duds.orig duds fi + + # Compile ptimeout. + /usr/bin/gcc -o ${builddir}/ptimeout -Wall ${pbc}/sources/ptimeout.c dobuild ${pb} ${arch} ${branch} ${builddir} Modified: projects/portbuild/scripts/dosetupnode ============================================================================== --- projects/portbuild/scripts/dosetupnode Tue Apr 26 22:18:53 2011 (r221096) +++ projects/portbuild/scripts/dosetupnode Tue Apr 26 22:38:43 2011 (r221097) @@ -67,7 +67,7 @@ setup() { if [ "${norsync}" -eq 0 ]; then - rsync ${rsync_gzip} -e "${ssh_cmd}" -r -l -p --delete ${pb}/scripts \ + rsync ${rsync_gzip} -e "${ssh_cmd}" -r -l -p --delete ${pb}/scripts ${pb}/sources \ ${client_user}@${node}:${pb}/ checkerror $? || (echo "Copying scripts to ${node} failed"; return 1) Modified: projects/portbuild/scripts/pdispatch ============================================================================== --- projects/portbuild/scripts/pdispatch Tue Apr 26 22:18:53 2011 (r221096) +++ projects/portbuild/scripts/pdispatch Tue Apr 26 22:38:43 2011 (r221097) @@ -134,7 +134,7 @@ test -f ${pb}/${arch}/portbuild.${host} rm -f ${builddir}/logs/${pkgname}.log ${builddir}/logs/${pkgname}.log.bz2 rm -f ${builddir}/errors/${pkgname}.log ${builddir}/errors/${pkgname}.log.bz2 -${pb}/scripts/ptimeout.host $timeout ${ssh_cmd} -a -n ${client_user}@${host} ${sudo_cmd} ${command} ${arch} ${branch} ${buildid} ${chroot} ${flags} \"$ED\" \"$PD\" \"$FD\" \"$BD\" \"$RD\" ${args} 2>&1 +${builddir}/ptimeout $timeout ${ssh_cmd} -a -n ${client_user}@${host} ${sudo_cmd} ${command} ${arch} ${branch} ${buildid} ${chroot} ${flags} \"$ED\" \"$PD\" \"$FD\" \"$BD\" \"$RD\" ${args} 2>&1 error=$? # Pull in the results of the build from the client Modified: projects/portbuild/scripts/portbuild ============================================================================== --- projects/portbuild/scripts/portbuild Tue Apr 26 22:18:53 2011 (r221096) +++ projects/portbuild/scripts/portbuild Tue Apr 26 22:38:43 2011 (r221097) @@ -299,15 +299,23 @@ while [ $# -gt 0 ]; do done cp -p ${pb}/scripts/buildscript ${chroot} -cp -p ${pb}/scripts/pnohang.${arch} ${chroot}/pnohang +cp -p ${pb}/sources/pnohang.c ${chroot} +# phase 0, compile pnohang +chroot ${chroot} /usr/bin/gcc -o /pnohang -Wall /pnohang.c 2>&1 | tee -a ${chroot}/tmp/${pkgname}.log +if [ $? -ne 0 ]; then + error=255 +fi + +if [ "${error}" = 0 ]; then # phase 1, make checksum # Needs to be chroot not jail so that port can be fetched -chroot ${chroot} /buildscript ${dirname} 1 "$ED" "$PD" "$FD" "$BD" "$RD" 2>&1 | tee -a ${chroot}/tmp/${pkgname}.log -if [ -f ${chroot}/tmp/status ]; then - error=$(cat ${chroot}/tmp/status) -else - error=255 + chroot ${chroot} /buildscript ${dirname} 1 "$ED" "$PD" "$FD" "$BD" "$RD" 2>&1 | tee -a ${chroot}/tmp/${pkgname}.log + if [ -f ${chroot}/tmp/status ]; then + error=$(cat ${chroot}/tmp/status) + else + error=255 + fi fi if [ "${error}" = 0 ]; then Modified: projects/portbuild/tools/showrunning.py ============================================================================== --- projects/portbuild/tools/showrunning.py Tue Apr 26 22:18:53 2011 (r221096) +++ projects/portbuild/tools/showrunning.py Tue Apr 26 22:38:43 2011 (r221097) @@ -61,7 +61,7 @@ def getallsubprocs(pids): return ppids def dosubprocs(data): - """ recursively get list of subprocesses (ptimeout.host, sleep 15, ...) and fill in data """ + """ recursively get list of subprocesses (ptimeout, sleep 15, ...) and fill in data """ ppid_map = { } idlers = { } @@ -74,7 +74,7 @@ def dosubprocs(data): ppid = fields.pop(0) time = fields.pop(0) command = ' '.join(fields) - if command.count('ptimeout.host'): + if command.count('ptimeout'): command = "building" elif command == 'sleep 15': command = "waiting for idle node" From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 22:48:22 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A8930106564A; Tue, 26 Apr 2011 22:48:22 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7FCA78FC13; Tue, 26 Apr 2011 22:48:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QMmMY0042260; Tue, 26 Apr 2011 22:48:22 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QMmMp7042259; Tue, 26 Apr 2011 22:48:22 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104262248.p3QMmMp7042259@svn.freebsd.org> From: Florent Thoumie Date: Tue, 26 Apr 2011 22:48:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221098 - projects/portbuild/qmanager X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 22:48:22 -0000 Author: flz Date: Tue Apr 26 22:48:22 2011 New Revision: 221098 URL: http://svn.freebsd.org/changeset/base/221098 Log: portbuild: update svn:ignore property to ignore qdb.sl3. We don't need the qmanager db in svn. Modified: Directory Properties: projects/portbuild/qmanager/ (props changed) From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 22:59:50 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F236106566C; Tue, 26 Apr 2011 22:59:50 +0000 (UTC) (envelope-from eri@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7EBC68FC13; Tue, 26 Apr 2011 22:59:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QMxowS042609; Tue, 26 Apr 2011 22:59:50 GMT (envelope-from eri@svn.freebsd.org) Received: (from eri@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QMxoEf042602; Tue, 26 Apr 2011 22:59:50 GMT (envelope-from eri@svn.freebsd.org) Message-Id: <201104262259.p3QMxoEf042602@svn.freebsd.org> From: Ermal Luçi Date: Tue, 26 Apr 2011 22:59:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221099 - projects/pf/pf45/contrib/pf/pflogd X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 22:59:50 -0000 Author: eri Date: Tue Apr 26 22:59:50 2011 New Revision: 221099 URL: http://svn.freebsd.org/changeset/base/221099 Log: Update pflogd to OpenBSD 4.5 code. Replaced: projects/pf/pf45/contrib/pf/pflogd/pidfile.c (contents, props changed) projects/pf/pf45/contrib/pf/pflogd/pidfile.h (contents, props changed) Modified: projects/pf/pf45/contrib/pf/pflogd/pflogd.8 projects/pf/pf45/contrib/pf/pflogd/pflogd.c projects/pf/pf45/contrib/pf/pflogd/privsep.c projects/pf/pf45/contrib/pf/pflogd/privsep_fdpass.c Modified: projects/pf/pf45/contrib/pf/pflogd/pflogd.8 ============================================================================== --- projects/pf/pf45/contrib/pf/pflogd/pflogd.8 Tue Apr 26 22:48:22 2011 (r221098) +++ projects/pf/pf45/contrib/pf/pflogd/pflogd.8 Tue Apr 26 22:59:50 2011 (r221099) @@ -1,4 +1,4 @@ -.\" $OpenBSD: pflogd.8,v 1.32 2006/12/08 10:26:38 joel Exp $ +.\" $OpenBSD: pflogd.8,v 1.37 2008/10/22 08:16:49 henning Exp $ .\" .\" Copyright (c) 2001 Can Erkin Acar. All rights reserved. .\" @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 9, 2001 +.Dd October 22 2008 .Dt PFLOGD 8 .Os .Sh NAME @@ -34,12 +34,14 @@ .Nd packet filter logging daemon .Sh SYNOPSIS .Nm pflogd +.Bk -words .Op Fl Dx .Op Fl d Ar delay .Op Fl f Ar filename .Op Fl i Ar interface .Op Fl s Ar snaplen .Op Ar expression +.Ek .Sh DESCRIPTION .Nm is a background daemon which reads packets logged by @@ -94,6 +96,13 @@ or a .Dv SIGALRM is received. .Pp +.Nm +will also log the pcap statistics for the +.Xr pflog 4 +interface to syslog when a +.Dv SIGUSR1 +is received. +.Pp The options are as follows: .Bl -tag -width Ds .It Fl D @@ -116,6 +125,11 @@ By default, .Nm will use .Ar pflog0 . +Writes a file containing the process ID of the program to +.Pa /var/run . +The file name has the form +The default is +.Ar pflogd . .It Fl s Ar snaplen Analyze at most the first .Ar snaplen @@ -204,12 +218,12 @@ the wi0 interface: # tcpdump -n -e -ttt -i pflog0 inbound and action block and on wi0 .Ed .Sh SEE ALSO -.Xr tcpdump 1 , .Xr pcap 3 , .Xr pf 4 , .Xr pflog 4 , .Xr pf.conf 5 , -.Xr newsyslog 8 +.Xr newsyslog 8 , +.Xr tcpdump 1 .Sh HISTORY The .Nm Modified: projects/pf/pf45/contrib/pf/pflogd/pflogd.c ============================================================================== --- projects/pf/pf45/contrib/pf/pflogd/pflogd.c Tue Apr 26 22:48:22 2011 (r221098) +++ projects/pf/pf45/contrib/pf/pflogd/pflogd.c Tue Apr 26 22:59:50 2011 (r221099) @@ -1,4 +1,4 @@ -/* $OpenBSD: pflogd.c,v 1.37 2006/10/26 13:34:47 jmc Exp $ */ +/* $OpenBSD: pflogd.c,v 1.46 2008/10/22 08:16:49 henning Exp $ */ /* * Copyright (c) 2001 Theo de Raadt @@ -37,9 +37,8 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef __FreeBSD__ -#include /* BIOCLOCK */ -#endif +#include +#include #include #include #include @@ -48,15 +47,16 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #ifdef __FreeBSD__ +#include #include "pidfile.h" #else #include #endif - #include "pflogd.h" pcap_t *hpcap; @@ -66,7 +66,7 @@ int Debug = 0; static int snaplen = DEF_SNAPLEN; static int cur_snaplen = DEF_SNAPLEN; -volatile sig_atomic_t gotsig_close, gotsig_alrm, gotsig_hup; +volatile sig_atomic_t gotsig_close, gotsig_alrm, gotsig_hup, gotsig_usr1; char *filename = PFLOGD_LOG_FILE; char *interface = PFLOGD_DEFAULT_IF; @@ -80,7 +80,9 @@ unsigned int delay = FLUSH_DELAY; char *copy_argv(char * const *); void dump_packet(u_char *, const struct pcap_pkthdr *, const u_char *); void dump_packet_nobuf(u_char *, const struct pcap_pkthdr *, const u_char *); +void log_pcap_stats(void); int flush_buffer(FILE *); +int if_exists(char *); int init_pcap(void); void logmsg(int, const char *, ...); void purge_buffer(void); @@ -89,6 +91,7 @@ int scan_dump(FILE *, off_t); int set_snaplen(int); void set_suspended(int); void sig_alrm(int); +void sig_usr1(int); void sig_close(int); void sig_hup(int); void usage(void); @@ -166,8 +169,8 @@ __dead void usage(void) { fprintf(stderr, "usage: pflogd [-Dx] [-d delay] [-f filename]"); - fprintf(stderr, " [-i interface] [-s snaplen]\n"); - fprintf(stderr, " [expression]\n"); + fprintf(stderr, " [-i interface] [-p pidfile]\n"); + fprintf(stderr, " [-s snaplen] [expression]\n"); exit(1); } @@ -190,6 +193,12 @@ sig_alrm(int sig) } void +sig_usr1(int sig) +{ + gotsig_usr1 = 1; +} + +void set_pcap_filter(void) { struct bpf_program bprog; @@ -204,6 +213,51 @@ set_pcap_filter(void) } int +if_exists(char *ifname) +{ +#ifdef __FreeBSD__ + struct ifaddrs *ifdata, *mb; + int exists = 0; + + getifaddrs(&ifdata); + if (ifdata == NULL) + return (0); + + for (mb = ifdata; mb != NULL; mb = mb->ifa_next) { + if (mb == NULL) + continue; + if (strlen(ifname) != strlen(mb->ifa_name)) + continue; + if (strncmp(ifname, mb->ifa_name, strlen(ifname)) != 0) + continue; + exists = 1; + break; + } + freeifaddrs(ifdata); + + return (exists); +#else + int s; + struct ifreq ifr; + struct if_data ifrdat; + + if ((s = socket(AF_INET, SOCK_DGRAM, 0)) == -1) + err(1, "socket"); + bzero(&ifr, sizeof(ifr)); + if (strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)) >= + sizeof(ifr.ifr_name)) + errx(1, "main ifr_name: strlcpy"); + ifr.ifr_data = (caddr_t)&ifrdat; + if (ioctl(s, SIOCGIFDATA, (caddr_t)&ifr) == -1) + return (0); + if (close(s)) + err(1, "close"); + + return (1); +#endif +} + +int init_pcap(void) { hpcap = pcap_open_live(interface, snaplen, 1, PCAP_TO_MS, errbuf); @@ -554,10 +608,10 @@ dump_packet(u_char *user, const struct p return; } - append: + append: #ifdef __FreeBSD__ - sh.ts.tv_sec = (bpf_int32)h->ts.tv_sec; - sh.ts.tv_usec = (bpf_int32)h->ts.tv_usec; + sh.ts.tv_sec = (bpf_int32)h->ts.tv_sec; + sh.ts.tv_usec = (bpf_int32)h->ts.tv_usec; sh.caplen = h->caplen; sh.len = h->len; @@ -575,17 +629,31 @@ dump_packet(u_char *user, const struct p return; } +void +log_pcap_stats(void) +{ + struct pcap_stat pstat; + if (pcap_stats(hpcap, &pstat) < 0) + logmsg(LOG_WARNING, "Reading stats: %s", pcap_geterr(hpcap)); + else + logmsg(LOG_NOTICE, + "%u packets received, %u/%u dropped (kernel/pflogd)", + pstat.ps_recv, pstat.ps_drop, packets_dropped); +} + int main(int argc, char **argv) { - struct pcap_stat pstat; - int ch, np, Xflag = 0; + int ch, np, ret, Xflag = 0; pcap_handler phandler = dump_packet; const char *errstr = NULL; + char *pidf = NULL; + + ret = 0; closefrom(STDERR_FILENO + 1); - while ((ch = getopt(argc, argv, "Dxd:f:i:s:")) != -1) { + while ((ch = getopt(argc, argv, "Dxd:f:i:p:s:")) != -1) { switch (ch) { case 'D': Debug = 1; @@ -601,6 +669,9 @@ main(int argc, char **argv) case 'i': interface = optarg; break; + case 'p': + pidf = optarg; + break; case 's': snaplen = strtonum(optarg, 0, PFLOGD_MAXSNAPLEN, &errstr); @@ -622,13 +693,21 @@ main(int argc, char **argv) argc -= optind; argv += optind; + /* does interface exist */ + if (!if_exists(interface)) { + warn("Failed to initialize: %s", interface); + logmsg(LOG_ERR, "Failed to initialize: %s", interface); + logmsg(LOG_ERR, "Exiting, init failure"); + exit(1); + } + if (!Debug) { openlog("pflogd", LOG_PID | LOG_CONS, LOG_DAEMON); if (daemon(0, 0)) { logmsg(LOG_WARNING, "Failed to become daemon: %s", strerror(errno)); } - pidfile(NULL); + pidfile(pidf); } tzset(); @@ -659,6 +738,7 @@ main(int argc, char **argv) signal(SIGINT, sig_close); signal(SIGQUIT, sig_close); signal(SIGALRM, sig_alrm); + signal(SIGUSR1, sig_usr1); signal(SIGHUP, sig_hup); alarm(delay); @@ -686,13 +766,12 @@ main(int argc, char **argv) np = pcap_dispatch(hpcap, PCAP_NUM_PKTS, phandler, (u_char *)dpcap); if (np < 0) { -#ifdef __FreeBSD__ - if (errno == ENXIO) { - logmsg(LOG_ERR, - "Device not/no longer configured"); + if (!if_exists(interface) == -1) { + logmsg(LOG_NOTICE, "interface %s went away", + interface); + ret = -1; break; } -#endif logmsg(LOG_NOTICE, "%s", pcap_geterr(hpcap)); } @@ -715,6 +794,11 @@ main(int argc, char **argv) gotsig_alrm = 0; alarm(delay); } + + if (gotsig_usr1) { + log_pcap_stats(); + gotsig_usr1 = 0; + } } logmsg(LOG_NOTICE, "Exiting"); @@ -724,15 +808,9 @@ main(int argc, char **argv) } purge_buffer(); - if (pcap_stats(hpcap, &pstat) < 0) - logmsg(LOG_WARNING, "Reading stats: %s", pcap_geterr(hpcap)); - else - logmsg(LOG_NOTICE, - "%u packets received, %u/%u dropped (kernel/pflogd)", - pstat.ps_recv, pstat.ps_drop, packets_dropped); - + log_pcap_stats(); pcap_close(hpcap); if (!Debug) closelog(); - return (0); + return (ret); } Added: projects/pf/pf45/contrib/pf/pflogd/pidfile.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/pf/pflogd/pidfile.c Tue Apr 26 22:59:50 2011 (r221099) @@ -0,0 +1,122 @@ +/* $FreeBSD$ */ +/* $OpenBSD: pidfile.c,v 1.5 2002/05/26 09:29:02 deraadt Exp $ */ +/* $NetBSD: pidfile.c,v 1.4 2001/02/19 22:43:42 cgd Exp $ */ + +/*- + * Copyright (c) 1999 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Jason R. Thorpe. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static const char rcsid[] = "$OpenBSD: pidfile.c,v 1.5 2002/05/26 09:29:02 deraadt Exp $"; +#endif /* LIBC_SCCS and not lint */ + +#include +#include +#include +#include +#include +#include +#ifdef __FreeBSD__ +#include "pidfile.h" +#else +#include +#endif + +static char *pidfile_path; +static pid_t pidfile_pid; + +static void pidfile_cleanup(void); + +extern char *__progname; + +int +pidfile(const char *basename) +{ + FILE *f; + int save_errno; + pid_t pid; + + if (basename == NULL) + basename = __progname; + + if (pidfile_path != NULL) { + free(pidfile_path); + pidfile_path = NULL; + } + + /* _PATH_VARRUN includes trailing / */ + (void) asprintf(&pidfile_path, "%s%s.pid", _PATH_VARRUN, basename); + if (pidfile_path == NULL) + return (-1); + + if ((f = fopen(pidfile_path, "w")) == NULL) { + save_errno = errno; + free(pidfile_path); + pidfile_path = NULL; + errno = save_errno; + return (-1); + } + + pid = getpid(); + if (fprintf(f, "%ld\n", (long)pid) <= 0 || fclose(f) != 0) { + save_errno = errno; + (void) unlink(pidfile_path); + free(pidfile_path); + pidfile_path = NULL; + errno = save_errno; + return (-1); + } + + pidfile_pid = pid; + if (atexit(pidfile_cleanup) < 0) { + save_errno = errno; + (void) unlink(pidfile_path); + free(pidfile_path); + pidfile_path = NULL; + pidfile_pid = 0; + errno = save_errno; + return (-1); + } + + return (0); +} + +static void +pidfile_cleanup(void) +{ + + if (pidfile_path != NULL && pidfile_pid == getpid()) + (void) unlink(pidfile_path); +} Added: projects/pf/pf45/contrib/pf/pflogd/pidfile.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/pf/pflogd/pidfile.h Tue Apr 26 22:59:50 2011 (r221099) @@ -0,0 +1,3 @@ +/* $FreeBSD$ */ + +int pidfile(const char *); Modified: projects/pf/pf45/contrib/pf/pflogd/privsep.c ============================================================================== --- projects/pf/pf45/contrib/pf/pflogd/privsep.c Tue Apr 26 22:48:22 2011 (r221098) +++ projects/pf/pf45/contrib/pf/pflogd/privsep.c Tue Apr 26 22:59:50 2011 (r221099) @@ -16,13 +16,10 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ - -#include -__FBSDID("$FreeBSD$"); - #include #include #include +#include #include #include @@ -31,20 +28,13 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifndef __FreeBSD__ #include #include -#endif #include #include #include #include #include -#ifdef __FreeBSD__ -/* XXX: pcap pollutes namespace with strlcpy if not present previously */ -#include -#include -#endif #include #include #include "pflogd.h" Modified: projects/pf/pf45/contrib/pf/pflogd/privsep_fdpass.c ============================================================================== --- projects/pf/pf45/contrib/pf/pflogd/privsep_fdpass.c Tue Apr 26 22:48:22 2011 (r221098) +++ projects/pf/pf45/contrib/pf/pflogd/privsep_fdpass.c Tue Apr 26 22:59:50 2011 (r221099) @@ -1,4 +1,4 @@ -/* $OpenBSD: privsep_fdpass.c,v 1.2 2004/08/13 02:51:48 djm Exp $ */ +/* $OpenBSD: privsep_fdpass.c,v 1.5 2008/03/24 16:11:08 deraadt Exp $ */ /* * Copyright 2001 Niels Provos @@ -50,7 +50,10 @@ void send_fd(int sock, int fd) { struct msghdr msg; - char tmp[CMSG_SPACE(sizeof(int))]; + union { + struct cmsghdr hdr; + char buf[CMSG_SPACE(sizeof(int))]; + } cmsgbuf; struct cmsghdr *cmsg; struct iovec vec; int result = 0; @@ -59,8 +62,8 @@ send_fd(int sock, int fd) memset(&msg, 0, sizeof(msg)); if (fd >= 0) { - msg.msg_control = (caddr_t)tmp; - msg.msg_controllen = CMSG_LEN(sizeof(int)); + msg.msg_control = (caddr_t)&cmsgbuf.buf; + msg.msg_controllen = sizeof(cmsgbuf.buf); cmsg = CMSG_FIRSTHDR(&msg); cmsg->cmsg_len = CMSG_LEN(sizeof(int)); cmsg->cmsg_level = SOL_SOCKET; @@ -86,7 +89,10 @@ int receive_fd(int sock) { struct msghdr msg; - char tmp[CMSG_SPACE(sizeof(int))]; + union { + struct cmsghdr hdr; + char buf[CMSG_SPACE(sizeof(int))]; + } cmsgbuf; struct cmsghdr *cmsg; struct iovec vec; ssize_t n; @@ -98,8 +104,8 @@ receive_fd(int sock) vec.iov_len = sizeof(int); msg.msg_iov = &vec; msg.msg_iovlen = 1; - msg.msg_control = tmp; - msg.msg_controllen = sizeof(tmp); + msg.msg_control = &cmsgbuf.buf; + msg.msg_controllen = sizeof(cmsgbuf.buf); if ((n = recvmsg(sock, &msg, 0)) == -1) warn("%s: recvmsg", __func__); From owner-svn-src-projects@FreeBSD.ORG Tue Apr 26 23:00:32 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BDC9A106566C; Tue, 26 Apr 2011 23:00:32 +0000 (UTC) (envelope-from eri@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 94F488FC12; Tue, 26 Apr 2011 23:00:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3QN0WEA042686; Tue, 26 Apr 2011 23:00:32 GMT (envelope-from eri@svn.freebsd.org) Received: (from eri@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3QN0WEt042684; Tue, 26 Apr 2011 23:00:32 GMT (envelope-from eri@svn.freebsd.org) Message-Id: <201104262300.p3QN0WEt042684@svn.freebsd.org> From: Ermal Luçi Date: Tue, 26 Apr 2011 23:00:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221100 - projects/pf/pf45/sbin/pflogd X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Apr 2011 23:00:32 -0000 Author: eri Date: Tue Apr 26 23:00:32 2011 New Revision: 221100 URL: http://svn.freebsd.org/changeset/base/221100 Log: No need to link with libutil. Modified: projects/pf/pf45/sbin/pflogd/Makefile Modified: projects/pf/pf45/sbin/pflogd/Makefile ============================================================================== --- projects/pf/pf45/sbin/pflogd/Makefile Tue Apr 26 22:59:50 2011 (r221099) +++ projects/pf/pf45/sbin/pflogd/Makefile Tue Apr 26 23:00:32 2011 (r221100) @@ -8,7 +8,7 @@ MAN= pflogd.8 CFLAGS+=-include ${.CURDIR}/../../lib/libpcap/config.h -LDADD= -lpcap -lutil +LDADD= -lpcap DPADD= ${LIBPCAP} ${LIBUTIL} WARNS?= 2 From owner-svn-src-projects@FreeBSD.ORG Wed Apr 27 02:12:02 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 875091065672; Wed, 27 Apr 2011 02:12:02 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7211C8FC0A; Wed, 27 Apr 2011 02:12:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3R2C20Q049003; Wed, 27 Apr 2011 02:12:02 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3R2C1O2048965; Wed, 27 Apr 2011 02:12:01 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104270212.p3R2C1O2048965@svn.freebsd.org> From: Marcel Moolenaar Date: Wed, 27 Apr 2011 02:12:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221106 - in projects/altix/sys: amd64/amd64 amd64/conf arm/conf cam cam/ata conf dev/usb/controller dev/usb/net fs/nfsclient geom geom/concat geom/journal geom/mirror geom/raid3 geom/s... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2011 02:12:02 -0000 Author: marcel Date: Wed Apr 27 02:12:01 2011 New Revision: 221106 URL: http://svn.freebsd.org/changeset/base/221106 Log: Merge svn+ssh://svn.freebsd.org/base/head@221105 Added: projects/altix/sys/sys/_callout.h - copied unchanged from r221105, head/sys/sys/_callout.h Modified: projects/altix/sys/amd64/amd64/minidump_machdep.c projects/altix/sys/amd64/conf/GENERIC projects/altix/sys/arm/conf/CRB projects/altix/sys/arm/conf/EP80219 projects/altix/sys/arm/conf/IQ31244 projects/altix/sys/cam/ata/ata_da.c projects/altix/sys/cam/cam_xpt.c projects/altix/sys/cam/cam_xpt.h projects/altix/sys/conf/NOTES projects/altix/sys/dev/usb/controller/ehci.c projects/altix/sys/dev/usb/net/if_cdcereg.h projects/altix/sys/fs/nfsclient/nfs_clvfsops.c projects/altix/sys/geom/concat/g_concat.c projects/altix/sys/geom/geom.h projects/altix/sys/geom/geom_dev.c projects/altix/sys/geom/geom_subr.c projects/altix/sys/geom/journal/g_journal.c projects/altix/sys/geom/mirror/g_mirror.c projects/altix/sys/geom/raid3/g_raid3.c projects/altix/sys/geom/shsec/g_shsec.c projects/altix/sys/geom/stripe/g_stripe.c projects/altix/sys/geom/virstor/g_virstor.c projects/altix/sys/i386/conf/GENERIC projects/altix/sys/i386/conf/XBOX projects/altix/sys/kern/kern_intr.c projects/altix/sys/kern/sched_4bsd.c projects/altix/sys/kern/subr_taskqueue.c projects/altix/sys/mips/conf/OCTEON1 projects/altix/sys/mips/conf/std.SWARM projects/altix/sys/modules/cam/Makefile projects/altix/sys/nfsclient/nfs_vfsops.c projects/altix/sys/ofed/include/linux/file.h projects/altix/sys/ofed/include/linux/workqueue.h projects/altix/sys/pc98/conf/GENERIC projects/altix/sys/sys/callout.h projects/altix/sys/sys/taskqueue.h projects/altix/sys/vm/swap_pager.c projects/altix/sys/x86/cpufreq/powernow.c Directory Properties: projects/altix/lib/libstand/ (props changed) projects/altix/sys/ (props changed) projects/altix/sys/amd64/include/xen/ (props changed) projects/altix/sys/boot/i386/efi/ (props changed) projects/altix/sys/boot/ia64/efi/ (props changed) projects/altix/sys/boot/ia64/ski/ (props changed) projects/altix/sys/boot/powerpc/boot1.chrp/ (props changed) projects/altix/sys/boot/powerpc/ofw/ (props changed) projects/altix/sys/cddl/contrib/opensolaris/ (props changed) projects/altix/sys/conf/ (props changed) projects/altix/sys/contrib/dev/acpica/ (props changed) projects/altix/sys/contrib/octeon-sdk/ (props changed) projects/altix/sys/contrib/pf/ (props changed) projects/altix/sys/contrib/x86emu/ (props changed) projects/altix/sys/kern/subr_busdma.c (props changed) Modified: projects/altix/sys/amd64/amd64/minidump_machdep.c ============================================================================== --- projects/altix/sys/amd64/amd64/minidump_machdep.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/amd64/amd64/minidump_machdep.c Wed Apr 27 02:12:01 2011 (r221106) @@ -62,7 +62,7 @@ static off_t dumplo; /* Handle chunked writes. */ static size_t fragsz; static void *dump_va; -static size_t counter, progress; +static size_t counter, progress, dumpsize; CTASSERT(sizeof(*vm_page_dump) == 8); @@ -94,6 +94,40 @@ blk_flush(struct dumperinfo *di) return (error); } +static struct { + int min_per; + int max_per; + int visited; +} progress_track[10] = { + { 0, 10, 0}, + { 10, 20, 0}, + { 20, 30, 0}, + { 30, 40, 0}, + { 40, 50, 0}, + { 50, 60, 0}, + { 60, 70, 0}, + { 70, 80, 0}, + { 80, 90, 0}, + { 90, 100, 0} +}; + +static void +report_progress(size_t progress, size_t dumpsize) +{ + int sofar, i; + + sofar = 100 - ((progress * 100) / dumpsize); + for (i = 0; i < 10; i++) { + if (sofar < progress_track[i].min_per || sofar > progress_track[i].max_per) + continue; + if (progress_track[i].visited) + return; + progress_track[i].visited = 1; + printf("..%d%%", sofar); + return; + } +} + static int blk_write(struct dumperinfo *di, char *ptr, vm_paddr_t pa, size_t sz) { @@ -130,7 +164,7 @@ blk_write(struct dumperinfo *di, char *p counter += len; progress -= len; if (counter >> 24) { - printf(" %ld", PG2MB(progress >> PAGE_SHIFT)); + report_progress(progress, dumpsize); counter &= (1<<24) - 1; } if (ptr) { @@ -170,7 +204,6 @@ static pd_entry_t fakepd[NPDEPG]; void minidumpsys(struct dumperinfo *di) { - uint64_t dumpsize; uint32_t pmapsize; vm_offset_t va; int error; @@ -290,8 +323,8 @@ minidumpsys(struct dumperinfo *di) mkdumpheader(&kdh, KERNELDUMPMAGIC, KERNELDUMP_AMD64_VERSION, dumpsize, di->blocksize); - printf("Physical memory: %ju MB\n", ptoa((uintmax_t)physmem) / 1048576); - printf("Dumping %llu MB:", (long long)dumpsize >> 20); + printf("Dumping %llu out of %ju MB:", (long long)dumpsize >> 20, + ptoa((uintmax_t)physmem) / 1048576); /* Dump leader */ error = dump_write(di, &kdh, 0, dumplo, sizeof(kdh)); Modified: projects/altix/sys/amd64/conf/GENERIC ============================================================================== --- projects/altix/sys/amd64/conf/GENERIC Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/amd64/conf/GENERIC Wed Apr 27 02:12:01 2011 (r221106) @@ -93,6 +93,7 @@ device fdc device ahci # AHCI-compatible SATA controllers device ata # Legacy ATA/SATA controllers options ATA_CAM # Handle legacy controllers with CAM +options ATA_STATIC_ID # Static device numbering device mvs # Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA device siis # SiliconImage SiI3124/SiI3132/SiI3531 SATA Modified: projects/altix/sys/arm/conf/CRB ============================================================================== --- projects/altix/sys/arm/conf/CRB Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/arm/conf/CRB Wed Apr 27 02:12:01 2011 (r221106) @@ -74,6 +74,7 @@ device pci device ata options ATA_CAM +options ATA_STATIC_ID # Static device numbering device scbus # SCSI bus (required for ATA/SCSI) device cd # CD Modified: projects/altix/sys/arm/conf/EP80219 ============================================================================== --- projects/altix/sys/arm/conf/EP80219 Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/arm/conf/EP80219 Wed Apr 27 02:12:01 2011 (r221106) @@ -74,6 +74,7 @@ device pci device ata options ATA_CAM +options ATA_STATIC_ID # Static device numbering device scbus # SCSI bus (required for ATA/SCSI) device cd # CD Modified: projects/altix/sys/arm/conf/IQ31244 ============================================================================== --- projects/altix/sys/arm/conf/IQ31244 Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/arm/conf/IQ31244 Wed Apr 27 02:12:01 2011 (r221106) @@ -73,6 +73,7 @@ device pci device ata options ATA_CAM +options ATA_STATIC_ID # Static device numbering device scbus # SCSI bus (required for ATA/SCSI) device cd # CD Modified: projects/altix/sys/cam/ata/ata_da.c ============================================================================== --- projects/altix/sys/cam/ata/ata_da.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/cam/ata/ata_da.c Wed Apr 27 02:12:01 2011 (r221106) @@ -28,6 +28,7 @@ __FBSDID("$FreeBSD$"); #include "opt_ada.h" +#include "opt_ata.h" #include @@ -183,6 +184,14 @@ static void adashutdown(void *arg, int static void adasuspend(void *arg); static void adaresume(void *arg); +#ifndef ADA_DEFAULT_LEGACY_ALIASES +#ifdef ATA_CAM +#define ADA_DEFAULT_LEGACY_ALIASES 1 +#else +#define ADA_DEFAULT_LEGACY_ALIASES 0 +#endif +#endif + #ifndef ADA_DEFAULT_TIMEOUT #define ADA_DEFAULT_TIMEOUT 30 /* Timeout in seconds */ #endif @@ -215,6 +224,7 @@ static void adaresume(void *arg); #define ata_disk_firmware_geom_adjust(disk) #endif +static int ada_legacy_aliases = ADA_DEFAULT_LEGACY_ALIASES; static int ada_retry_count = ADA_DEFAULT_RETRY; static int ada_default_timeout = ADA_DEFAULT_TIMEOUT; static int ada_send_ordered = ADA_DEFAULT_SEND_ORDERED; @@ -224,6 +234,9 @@ static int ada_write_cache = ADA_DEFAULT SYSCTL_NODE(_kern_cam, OID_AUTO, ada, CTLFLAG_RD, 0, "CAM Direct Access Disk driver"); +SYSCTL_INT(_kern_cam_ada, OID_AUTO, legacy_aliases, CTLFLAG_RW, + &ada_legacy_aliases, 0, "Create legacy-like device aliases"); +TUNABLE_INT("kern.cam.ada.legacy_aliases", &ada_legacy_aliases); SYSCTL_INT(_kern_cam_ada, OID_AUTO, retry_count, CTLFLAG_RW, &ada_retry_count, 0, "Normal I/O retry count"); TUNABLE_INT("kern.cam.ada.retry_count", &ada_retry_count); @@ -723,10 +736,11 @@ adaregister(struct cam_periph *periph, v struct ada_softc *softc; struct ccb_pathinq cpi; struct ccb_getdev *cgd; - char announce_buf[80]; + char announce_buf[80], buf1[32]; struct disk_params *dp; caddr_t match; u_int maxio; + int legacy_id; cgd = (struct ccb_getdev *)arg; if (periph == NULL) { @@ -861,6 +875,22 @@ adaregister(struct cam_periph *periph, v softc->disk->d_fwheads = softc->params.heads; ata_disk_firmware_geom_adjust(softc->disk); + if (ada_legacy_aliases) { +#ifdef ATA_STATIC_ID + legacy_id = xpt_path_legacy_ata_id(periph->path); +#else + legacy_id = softc->disk->d_unit; +#endif + if (legacy_id >= 0) { + snprintf(announce_buf, sizeof(announce_buf), + "kern.devalias.%s%d", + softc->disk->d_name, softc->disk->d_unit); + snprintf(buf1, sizeof(buf1), + "ad%d", legacy_id); + setenv(announce_buf, buf1); + } + } else + legacy_id = -1; disk_create(softc->disk, DISK_VERSION); mtx_lock(periph->sim->mtx); cam_periph_unhold(periph); @@ -874,6 +904,9 @@ adaregister(struct cam_periph *periph, v dp->secsize, dp->heads, dp->secs_per_track, dp->cylinders); xpt_announce_periph(periph, announce_buf); + if (legacy_id >= 0) + printf("%s%d: Previously was known as ad%d\n", + periph->periph_name, periph->unit_number, legacy_id); /* * Create our sysctl variables, now that we know Modified: projects/altix/sys/cam/cam_xpt.c ============================================================================== --- projects/altix/sys/cam/cam_xpt.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/cam/cam_xpt.c Wed Apr 27 02:12:01 2011 (r221106) @@ -3569,6 +3569,42 @@ xpt_path_periph(struct cam_path *path) return (path->periph); } +int +xpt_path_legacy_ata_id(struct cam_path *path) +{ + struct cam_eb *bus; + int bus_id; + + if ((strcmp(path->bus->sim->sim_name, "ata") != 0) && + strcmp(path->bus->sim->sim_name, "ahcich") != 0 && + strcmp(path->bus->sim->sim_name, "mvsch") != 0 && + strcmp(path->bus->sim->sim_name, "siisch") != 0) + return (-1); + + if (strcmp(path->bus->sim->sim_name, "ata") == 0 && + path->bus->sim->unit_number < 2) { + bus_id = path->bus->sim->unit_number; + } else { + bus_id = 2; + xpt_lock_buses(); + TAILQ_FOREACH(bus, &xsoftc.xpt_busses, links) { + if (bus == path->bus) + break; + if ((strcmp(bus->sim->sim_name, "ata") == 0 && + bus->sim->unit_number >= 2) || + strcmp(bus->sim->sim_name, "ahcich") == 0 || + strcmp(bus->sim->sim_name, "mvsch") == 0 || + strcmp(bus->sim->sim_name, "siisch") == 0) + bus_id++; + } + xpt_unlock_buses(); + } + if (path->target != NULL) + return (bus_id * 2 + path->target->target_id); + else + return (bus_id * 2); +} + /* * Release a CAM control block for the caller. Remit the cost of the structure * to the device referenced by the path. If the this device had no 'credits' Modified: projects/altix/sys/cam/cam_xpt.h ============================================================================== --- projects/altix/sys/cam/cam_xpt.h Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/cam/cam_xpt.h Wed Apr 27 02:12:01 2011 (r221106) @@ -113,6 +113,7 @@ int xpt_path_string(struct cam_path *p path_id_t xpt_path_path_id(struct cam_path *path); target_id_t xpt_path_target_id(struct cam_path *path); lun_id_t xpt_path_lun_id(struct cam_path *path); +int xpt_path_legacy_ata_id(struct cam_path *path); struct cam_sim *xpt_path_sim(struct cam_path *path); struct cam_periph *xpt_path_periph(struct cam_path *path); void xpt_async(u_int32_t async_code, struct cam_path *path, Modified: projects/altix/sys/conf/NOTES ============================================================================== --- projects/altix/sys/conf/NOTES Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/conf/NOTES Wed Apr 27 02:12:01 2011 (r221106) @@ -1754,7 +1754,7 @@ hint.ata.1.irq="15" # atapifd, atapist, atapicam) and all user-level APIs. # cam(4) drivers and APIs will be connected instead. -#options ATA_STATIC_ID +options ATA_STATIC_ID #options ATA_REQUEST_TIMEOUT=10 options ATA_CAM Modified: projects/altix/sys/dev/usb/controller/ehci.c ============================================================================== --- projects/altix/sys/dev/usb/controller/ehci.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/dev/usb/controller/ehci.c Wed Apr 27 02:12:01 2011 (r221106) @@ -1196,6 +1196,8 @@ ehci_data_toggle_update(struct usb_xfer dt ^= 1; /* short packet at the end */ else if (actlen != xlen) dt ^= 1; /* zero length packet at the end */ + else if (xlen == 0) + dt ^= 1; /* zero length transfer */ xfer->endpoint->toggle_next ^= dt; } Modified: projects/altix/sys/dev/usb/net/if_cdcereg.h ============================================================================== --- projects/altix/sys/dev/usb/net/if_cdcereg.h Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/dev/usb/net/if_cdcereg.h Wed Apr 27 02:12:01 2011 (r221106) @@ -39,7 +39,7 @@ #define CDCE_IND_SIZE_MAX 32 /* bytes */ #define CDCE_NCM_TX_MINLEN 512 /* bytes, must be power of two */ -#define CDCE_NCM_TX_MAXLEN (1UL << 14) /* bytes */ +#define CDCE_NCM_TX_MAXLEN (16384 + 4) /* bytes, must be short terminated */ #define CDCE_NCM_TX_FRAMES_MAX 8 /* units */ #define CDCE_NCM_RX_MAXLEN (1UL << 14) /* bytes */ Modified: projects/altix/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- projects/altix/sys/fs/nfsclient/nfs_clvfsops.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/fs/nfsclient/nfs_clvfsops.c Wed Apr 27 02:12:01 2011 (r221106) @@ -137,10 +137,17 @@ VFS_SET(nfs_vfsops, newnfs, VFCF_NETWORK MODULE_VERSION(newnfs, 1); /* - * This structure must be filled in by a primary bootstrap or bootstrap - * server for a diskless/dataless machine. It is initialized below just - * to ensure that it is allocated to initialized data (.data not .bss). + * This structure is now defined in sys/nfs/nfs_diskless.c so that it + * can be shared by both NFS clients. It is declared here so that it + * will be defined for kernels built without NFS_ROOT, although it + * isn't used in that case. */ +#if !defined(NFS_ROOT) && !defined(NFSCLIENT) +struct nfs_diskless nfs_diskless = { { { 0 } } }; +struct nfsv3_diskless nfsv3_diskless = { { { 0 } } }; +int nfs_diskless_valid = 0; +#endif + SYSCTL_INT(_vfs_newnfs, OID_AUTO, diskless_valid, CTLFLAG_RD, &nfs_diskless_valid, 0, "Has the diskless struct been filled correctly"); Modified: projects/altix/sys/geom/concat/g_concat.c ============================================================================== --- projects/altix/sys/geom/concat/g_concat.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/geom/concat/g_concat.c Wed Apr 27 02:12:01 2011 (r221106) @@ -678,7 +678,8 @@ g_concat_taste(struct g_class *mp, struc if (md.md_version < 4) md.md_provsize = pp->mediasize; - if (md.md_provider[0] != '\0' && strcmp(md.md_provider, pp->name) != 0) + if (md.md_provider[0] != '\0' && + !g_compare_names(md.md_provider, pp->name)) return (NULL); if (md.md_provsize != pp->mediasize) return (NULL); Modified: projects/altix/sys/geom/geom.h ============================================================================== --- projects/altix/sys/geom/geom.h Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/geom/geom.h Wed Apr 27 02:12:01 2011 (r221106) @@ -238,6 +238,7 @@ void g_waitidlelock(void); /* geom_subr.c */ int g_access(struct g_consumer *cp, int nread, int nwrite, int nexcl); int g_attach(struct g_consumer *cp, struct g_provider *pp); +int g_compare_names(const char *namea, const char *nameb); void g_destroy_consumer(struct g_consumer *cp); void g_destroy_geom(struct g_geom *pp); void g_destroy_provider(struct g_provider *pp); Modified: projects/altix/sys/geom/geom_dev.c ============================================================================== --- projects/altix/sys/geom/geom_dev.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/geom/geom_dev.c Wed Apr 27 02:12:01 2011 (r221106) @@ -113,8 +113,9 @@ g_dev_taste(struct g_class *mp, struct g { struct g_geom *gp; struct g_consumer *cp; - int error; - struct cdev *dev; + int error, len; + struct cdev *dev, *adev; + char buf[64], *val; g_trace(G_T_TOPOLOGY, "dev_taste(%s,%s)", mp->name, pp->name); g_topology_assert(); @@ -136,12 +137,35 @@ g_dev_taste(struct g_class *mp, struct g g_destroy_geom(gp); return (NULL); } + + /* Search for device alias name and create it if found. */ + adev = NULL; + for (len = MIN(strlen(gp->name), sizeof(buf) - 15); len > 0; len--) { + snprintf(buf, sizeof(buf), "kern.devalias.%s", gp->name); + buf[14 + len] = 0; + val = getenv(buf); + if (val != NULL) { + snprintf(buf, sizeof(buf), "%s%s", + val, gp->name + len); + freeenv(val); + adev = make_dev_alias(dev, buf); + break; + } + } + if (pp->flags & G_PF_CANDELETE) dev->si_flags |= SI_CANDELETE; dev->si_iosize_max = MAXPHYS; gp->softc = dev; dev->si_drv1 = gp; dev->si_drv2 = cp; + if (adev != NULL) { + if (pp->flags & G_PF_CANDELETE) + adev->si_flags |= SI_CANDELETE; + adev->si_iosize_max = MAXPHYS; + adev->si_drv1 = gp; + adev->si_drv2 = cp; + } return (gp); } Modified: projects/altix/sys/geom/geom_subr.c ============================================================================== --- projects/altix/sys/geom/geom_subr.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/geom/geom_subr.c Wed Apr 27 02:12:01 2011 (r221106) @@ -1017,6 +1017,43 @@ g_getattr__(const char *attr, struct g_c return (0); } +static int +g_get_device_prefix_len(const char *name) +{ + int len; + + if (strncmp(name, "ada", 3) == 0) + len = 3; + else if (strncmp(name, "ad", 2) == 0) + len = 2; + else + return (0); + if (name[len] < '0' || name[len] > '9') + return (0); + do { + len++; + } while (name[len] >= '0' && name[len] <= '9'); + return (len); +} + +int +g_compare_names(const char *namea, const char *nameb) +{ + int deva, devb; + + if (strcmp(namea, nameb) == 0) + return (1); + deva = g_get_device_prefix_len(namea); + if (deva == 0) + return (0); + devb = g_get_device_prefix_len(nameb); + if (devb == 0) + return (0); + if (strcmp(namea + deva, nameb + devb) == 0) + return (1); + return (0); +} + #if defined(DIAGNOSTIC) || defined(DDB) /* * This function walks the mesh and returns a non-zero integer if it Modified: projects/altix/sys/geom/journal/g_journal.c ============================================================================== --- projects/altix/sys/geom/journal/g_journal.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/geom/journal/g_journal.c Wed Apr 27 02:12:01 2011 (r221106) @@ -2527,7 +2527,8 @@ g_journal_taste(struct g_class *mp, stru return (NULL); gp = NULL; - if (md.md_provider[0] != '\0' && strcmp(md.md_provider, pp->name) != 0) + if (md.md_provider[0] != '\0' && + !g_compare_names(md.md_provider, pp->name)) return (NULL); if (md.md_provsize != 0 && md.md_provsize != pp->mediasize) return (NULL); Modified: projects/altix/sys/geom/mirror/g_mirror.c ============================================================================== --- projects/altix/sys/geom/mirror/g_mirror.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/geom/mirror/g_mirror.c Wed Apr 27 02:12:01 2011 (r221106) @@ -3007,7 +3007,8 @@ g_mirror_taste(struct g_class *mp, struc return (NULL); gp = NULL; - if (md.md_provider[0] != '\0' && strcmp(md.md_provider, pp->name) != 0) + if (md.md_provider[0] != '\0' && + !g_compare_names(md.md_provider, pp->name)) return (NULL); if (md.md_provsize != 0 && md.md_provsize != pp->mediasize) return (NULL); Modified: projects/altix/sys/geom/raid3/g_raid3.c ============================================================================== --- projects/altix/sys/geom/raid3/g_raid3.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/geom/raid3/g_raid3.c Wed Apr 27 02:12:01 2011 (r221106) @@ -3329,7 +3329,8 @@ g_raid3_taste(struct g_class *mp, struct return (NULL); gp = NULL; - if (md.md_provider[0] != '\0' && strcmp(md.md_provider, pp->name) != 0) + if (md.md_provider[0] != '\0' && + !g_compare_names(md.md_provider, pp->name)) return (NULL); if (md.md_provsize != 0 && md.md_provsize != pp->mediasize) return (NULL); Modified: projects/altix/sys/geom/shsec/g_shsec.c ============================================================================== --- projects/altix/sys/geom/shsec/g_shsec.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/geom/shsec/g_shsec.c Wed Apr 27 02:12:01 2011 (r221106) @@ -673,7 +673,8 @@ g_shsec_taste(struct g_class *mp, struct if (md.md_version < 1) md.md_provsize = pp->mediasize; - if (md.md_provider[0] != '\0' && strcmp(md.md_provider, pp->name) != 0) + if (md.md_provider[0] != '\0' && + !g_compare_names(md.md_provider, pp->name)) return (NULL); if (md.md_provsize != pp->mediasize) return (NULL); Modified: projects/altix/sys/geom/stripe/g_stripe.c ============================================================================== --- projects/altix/sys/geom/stripe/g_stripe.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/geom/stripe/g_stripe.c Wed Apr 27 02:12:01 2011 (r221106) @@ -952,7 +952,8 @@ g_stripe_taste(struct g_class *mp, struc if (md.md_version < 3) md.md_provsize = pp->mediasize; - if (md.md_provider[0] != '\0' && strcmp(md.md_provider, pp->name) != 0) + if (md.md_provider[0] != '\0' && + !g_compare_names(md.md_provider, pp->name)) return (NULL); if (md.md_provsize != pp->mediasize) return (NULL); Modified: projects/altix/sys/geom/virstor/g_virstor.c ============================================================================== --- projects/altix/sys/geom/virstor/g_virstor.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/geom/virstor/g_virstor.c Wed Apr 27 02:12:01 2011 (r221106) @@ -809,10 +809,9 @@ g_virstor_taste(struct g_class *mp, stru /* If the provider name is hardcoded, use the offered provider only * if it's been offered with its proper name (the one used in * the label command). */ - if (md.provider[0] != '\0') { - if (strcmp(md.provider, pp->name) != 0) - return (NULL); - } + if (md.provider[0] != '\0' && + !g_compare_names(md.provider, pp->name)) + return (NULL); /* Iterate all geoms this class already knows about to see if a new * geom instance of this class needs to be created (in case the provider Modified: projects/altix/sys/i386/conf/GENERIC ============================================================================== --- projects/altix/sys/i386/conf/GENERIC Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/i386/conf/GENERIC Wed Apr 27 02:12:01 2011 (r221106) @@ -95,6 +95,7 @@ device fdc device ahci # AHCI-compatible SATA controllers device ata # Legacy ATA/SATA controllers options ATA_CAM # Handle legacy controllers with CAM +options ATA_STATIC_ID # Static device numbering device mvs # Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA device siis # SiliconImage SiI3124/SiI3132/SiI3531 SATA Modified: projects/altix/sys/i386/conf/XBOX ============================================================================== --- projects/altix/sys/i386/conf/XBOX Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/i386/conf/XBOX Wed Apr 27 02:12:01 2011 (r221106) @@ -52,6 +52,7 @@ device pci # ATA and ATAPI devices device ata options ATA_CAM +options ATA_STATIC_ID # Static device numbering # ATA/SCSI peripherals device scbus # SCSI bus (required for ATA/SCSI) Modified: projects/altix/sys/kern/kern_intr.c ============================================================================== --- projects/altix/sys/kern/kern_intr.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/kern/kern_intr.c Wed Apr 27 02:12:01 2011 (r221106) @@ -746,7 +746,6 @@ intr_handler_source(void *cookie) void _intr_drain(int irq) { - struct mtx *mtx; struct intr_event *ie; struct intr_thread *ithd; struct thread *td; @@ -758,13 +757,21 @@ _intr_drain(int irq) return; ithd = ie->ie_thread; td = ithd->it_thread; + /* + * We set the flag and wait for it to be cleared to avoid + * long delays with potentially busy interrupt handlers + * were we to only sample TD_AWAITING_INTR() every tick. + */ thread_lock(td); - mtx = td->td_lock; if (!TD_AWAITING_INTR(td)) { ithd->it_flags |= IT_WAIT; - msleep_spin(ithd, mtx, "isync", 0); + while (ithd->it_flags & IT_WAIT) { + thread_unlock(td); + pause("idrain", 1); + thread_lock(td); + } } - mtx_unlock_spin(mtx); + thread_unlock(td); return; } Modified: projects/altix/sys/kern/sched_4bsd.c ============================================================================== --- projects/altix/sys/kern/sched_4bsd.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/kern/sched_4bsd.c Wed Apr 27 02:12:01 2011 (r221106) @@ -1246,25 +1246,27 @@ sched_add(struct thread *td, int flags) } TD_SET_RUNQ(td); - if (td->td_pinned != 0) { - cpu = td->td_lastcpu; - ts->ts_runq = &runq_pcpu[cpu]; - single_cpu = 1; - CTR3(KTR_RUNQ, - "sched_add: Put td_sched:%p(td:%p) on cpu%d runq", ts, td, - cpu); - } else if (td->td_flags & TDF_BOUND) { - /* Find CPU from bound runq. */ - KASSERT(SKE_RUNQ_PCPU(ts), - ("sched_add: bound td_sched not on cpu runq")); - cpu = ts->ts_runq - &runq_pcpu[0]; - single_cpu = 1; - CTR3(KTR_RUNQ, - "sched_add: Put td_sched:%p(td:%p) on cpu%d runq", ts, td, - cpu); - } else if (ts->ts_flags & TSF_AFFINITY) { - /* Find a valid CPU for our cpuset */ - cpu = sched_pickcpu(td); + /* + * If SMP is started and the thread is pinned or otherwise limited to + * a specific set of CPUs, queue the thread to a per-CPU run queue. + * Otherwise, queue the thread to the global run queue. + * + * If SMP has not yet been started we must use the global run queue + * as per-CPU state may not be initialized yet and we may crash if we + * try to access the per-CPU run queues. + */ + if (smp_started && (td->td_pinned != 0 || td->td_flags & TDF_BOUND || + ts->ts_flags & TSF_AFFINITY)) { + if (td->td_pinned != 0) + cpu = td->td_lastcpu; + else if (td->td_flags & TDF_BOUND) { + /* Find CPU from bound runq. */ + KASSERT(SKE_RUNQ_PCPU(ts), + ("sched_add: bound td_sched not on cpu runq")); + cpu = ts->ts_runq - &runq_pcpu[0]; + } else + /* Find a valid CPU for our cpuset */ + cpu = sched_pickcpu(td); ts->ts_runq = &runq_pcpu[cpu]; single_cpu = 1; CTR3(KTR_RUNQ, Modified: projects/altix/sys/kern/subr_taskqueue.c ============================================================================== --- projects/altix/sys/kern/subr_taskqueue.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/kern/subr_taskqueue.c Wed Apr 27 02:12:01 2011 (r221106) @@ -61,12 +61,15 @@ struct taskqueue { int tq_tcount; int tq_spin; int tq_flags; + int tq_callouts; }; #define TQ_FLAGS_ACTIVE (1 << 0) #define TQ_FLAGS_BLOCKED (1 << 1) #define TQ_FLAGS_PENDING (1 << 2) +#define DT_CALLOUT_ARMED (1 << 0) + #define TQ_LOCK(tq) \ do { \ if ((tq)->tq_spin) \ @@ -83,6 +86,17 @@ struct taskqueue { mtx_unlock(&(tq)->tq_mutex); \ } while (0) +void +_timeout_task_init(struct taskqueue *queue, struct timeout_task *timeout_task, + int priority, task_fn_t func, void *context) +{ + + TASK_INIT(&timeout_task->t, priority, func, context); + callout_init_mtx(&timeout_task->c, &queue->tq_mutex, 0); + timeout_task->q = queue; + timeout_task->f = 0; +} + static __inline int TQ_SLEEP(struct taskqueue *tq, void *p, struct mtx *m, int pri, const char *wm, int t) @@ -129,7 +143,7 @@ static void taskqueue_terminate(struct thread **pp, struct taskqueue *tq) { - while (tq->tq_tcount > 0) { + while (tq->tq_tcount > 0 || tq->tq_callouts > 0) { wakeup(tq); TQ_SLEEP(tq, pp, &tq->tq_mutex, PWAIT, "taskqueue_destroy", 0); } @@ -143,26 +157,24 @@ taskqueue_free(struct taskqueue *queue) queue->tq_flags &= ~TQ_FLAGS_ACTIVE; taskqueue_terminate(queue->tq_threads, queue); KASSERT(TAILQ_EMPTY(&queue->tq_active), ("Tasks still running?")); + KASSERT(queue->tq_callouts == 0, ("Armed timeout tasks")); mtx_destroy(&queue->tq_mutex); free(queue->tq_threads, M_TASKQUEUE); free(queue, M_TASKQUEUE); } -int -taskqueue_enqueue(struct taskqueue *queue, struct task *task) +static int +taskqueue_enqueue_locked(struct taskqueue *queue, struct task *task) { struct task *ins; struct task *prev; - TQ_LOCK(queue); - /* * Count multiple enqueues. */ if (task->ta_pending) { task->ta_pending++; - TQ_UNLOCK(queue); - return 0; + return (0); } /* @@ -190,9 +202,60 @@ taskqueue_enqueue(struct taskqueue *queu else queue->tq_flags |= TQ_FLAGS_PENDING; + return (0); +} +int +taskqueue_enqueue(struct taskqueue *queue, struct task *task) +{ + int res; + + TQ_LOCK(queue); + res = taskqueue_enqueue_locked(queue, task); TQ_UNLOCK(queue); - return 0; + return (res); +} + +static void +taskqueue_timeout_func(void *arg) +{ + struct taskqueue *queue; + struct timeout_task *timeout_task; + + timeout_task = arg; + queue = timeout_task->q; + KASSERT((timeout_task->f & DT_CALLOUT_ARMED) != 0, ("Stray timeout")); + timeout_task->f &= ~DT_CALLOUT_ARMED; + queue->tq_callouts--; + taskqueue_enqueue_locked(timeout_task->q, &timeout_task->t); +} + +int +taskqueue_enqueue_timeout(struct taskqueue *queue, + struct timeout_task *timeout_task, int ticks) +{ + int res; + + TQ_LOCK(queue); + KASSERT(timeout_task->q == NULL || timeout_task->q == queue, + ("Migrated queue")); + KASSERT(!queue->tq_spin, ("Timeout for spin-queue")); + timeout_task->q = queue; + res = timeout_task->t.ta_pending; + if (ticks == 0) { + taskqueue_enqueue_locked(queue, &timeout_task->t); + } else { + if ((timeout_task->f & DT_CALLOUT_ARMED) != 0) { + res++; + } else { + queue->tq_callouts++; + timeout_task->f |= DT_CALLOUT_ARMED; + } + callout_reset(&timeout_task->c, ticks, taskqueue_timeout_func, + timeout_task); + } + TQ_UNLOCK(queue); + return (res); } void @@ -271,6 +334,19 @@ task_is_running(struct taskqueue *queue, return (0); } +static int +taskqueue_cancel_locked(struct taskqueue *queue, struct task *task, + u_int *pendp) +{ + + if (task->ta_pending > 0) + STAILQ_REMOVE(&queue->tq_queue, task, task, ta_link); + if (pendp != NULL) + *pendp = task->ta_pending; + task->ta_pending = 0; + return (task_is_running(queue, task) ? EBUSY : 0); +} + int taskqueue_cancel(struct taskqueue *queue, struct task *task, u_int *pendp) { @@ -278,14 +354,31 @@ taskqueue_cancel(struct taskqueue *queue int error; TQ_LOCK(queue); - if ((pending = task->ta_pending) > 0) - STAILQ_REMOVE(&queue->tq_queue, task, task, ta_link); - task->ta_pending = 0; - error = task_is_running(queue, task) ? EBUSY : 0; + pending = task->ta_pending; + error = taskqueue_cancel_locked(queue, task, pendp); + TQ_UNLOCK(queue); + + return (error); +} + +int +taskqueue_cancel_timeout(struct taskqueue *queue, + struct timeout_task *timeout_task, u_int *pendp) +{ + u_int pending, pending1; + int error; + + TQ_LOCK(queue); + pending = !!callout_stop(&timeout_task->c); + error = taskqueue_cancel_locked(queue, &timeout_task->t, &pending1); + if ((timeout_task->f & DT_CALLOUT_ARMED) != 0) { + timeout_task->f &= ~DT_CALLOUT_ARMED; + queue->tq_callouts--; + } TQ_UNLOCK(queue); if (pendp != NULL) - *pendp = pending; + *pendp = pending + pending1; return (error); } @@ -302,6 +395,15 @@ taskqueue_drain(struct taskqueue *queue, TQ_UNLOCK(queue); } +void +taskqueue_drain_timeout(struct taskqueue *queue, + struct timeout_task *timeout_task) +{ + + callout_drain(&timeout_task->c); + taskqueue_drain(queue, &timeout_task->t); +} + static void taskqueue_swi_enqueue(void *context) { Modified: projects/altix/sys/mips/conf/OCTEON1 ============================================================================== --- projects/altix/sys/mips/conf/OCTEON1 Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/mips/conf/OCTEON1 Wed Apr 27 02:12:01 2011 (r221106) @@ -99,6 +99,7 @@ device pci device ahci # AHCI-compatible SATA controllers device ata # Legacy ATA/SATA controllers options ATA_CAM # Handle legacy controllers with CAM +options ATA_STATIC_ID # Static device numbering device mvs # Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA device siis # SiliconImage SiI3124/SiI3132/SiI3531 SATA Modified: projects/altix/sys/mips/conf/std.SWARM ============================================================================== --- projects/altix/sys/mips/conf/std.SWARM Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/mips/conf/std.SWARM Wed Apr 27 02:12:01 2011 (r221106) @@ -58,3 +58,4 @@ device pass device ata options ATA_CAM +options ATA_STATIC_ID # Static device numbering Modified: projects/altix/sys/modules/cam/Makefile ============================================================================== --- projects/altix/sys/modules/cam/Makefile Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/modules/cam/Makefile Wed Apr 27 02:12:01 2011 (r221106) @@ -9,6 +9,7 @@ KMOD= cam # See sys/conf/options for the flags that go into the different opt_*.h files. SRCS= opt_cam.h SRCS+= opt_ada.h +SRCS+= opt_ata.h SRCS+= opt_scsi.h SRCS+= opt_cd.h SRCS+= opt_pt.h Modified: projects/altix/sys/nfsclient/nfs_vfsops.c ============================================================================== --- projects/altix/sys/nfsclient/nfs_vfsops.c Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/nfsclient/nfs_vfsops.c Wed Apr 27 02:12:01 2011 (r221106) @@ -164,6 +164,18 @@ static struct nfs_rpcops nfs_rpcops = { nfs_commit, }; +/* + * This structure is now defined in sys/nfs/nfs_diskless.c so that it + * can be shared by both NFS clients. It is declared here so that it + * will be defined for kernels built without NFS_ROOT, although it + * isn't used in that case. + */ +#ifndef NFS_ROOT +struct nfs_diskless nfs_diskless = { { { 0 } } }; +struct nfsv3_diskless nfsv3_diskless = { { { 0 } } }; +int nfs_diskless_valid = 0; +#endif + SYSCTL_INT(_vfs_nfs, OID_AUTO, diskless_valid, CTLFLAG_RD, &nfs_diskless_valid, 0, "Has the diskless struct been filled correctly"); Modified: projects/altix/sys/ofed/include/linux/file.h ============================================================================== --- projects/altix/sys/ofed/include/linux/file.h Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/ofed/include/linux/file.h Wed Apr 27 02:12:01 2011 (r221106) @@ -92,7 +92,7 @@ get_unused_fd(void) int error; int fd; - error = falloc(curthread, &file, &fd); + error = falloc(curthread, &file, &fd, 0); if (error) return -error; return fd; Modified: projects/altix/sys/ofed/include/linux/workqueue.h ============================================================================== --- projects/altix/sys/ofed/include/linux/workqueue.h Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/ofed/include/linux/workqueue.h Wed Apr 27 02:12:01 2011 (r221106) @@ -160,9 +160,11 @@ flush_taskqueue(struct taskqueue *tq) { struct task flushtask; + PHOLD(curproc); TASK_INIT(&flushtask, 0, _flush_fn, NULL); taskqueue_enqueue(tq, &flushtask); taskqueue_drain(tq, &flushtask); + PRELE(curproc); } static inline int Modified: projects/altix/sys/pc98/conf/GENERIC ============================================================================== --- projects/altix/sys/pc98/conf/GENERIC Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/pc98/conf/GENERIC Wed Apr 27 02:12:01 2011 (r221106) @@ -91,6 +91,7 @@ device fdc device ahci # AHCI-compatible SATA controllers device ata # Legacy ATA/SATA controllers options ATA_CAM # Handle legacy controllers with CAM +options ATA_STATIC_ID # Static device numbering device mvs # Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA device siis # SiliconImage SiI3124/SiI3132/SiI3531 SATA Copied: projects/altix/sys/sys/_callout.h (from r221105, head/sys/sys/_callout.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/altix/sys/sys/_callout.h Wed Apr 27 02:12:01 2011 (r221106, copy of r221105, head/sys/sys/_callout.h) @@ -0,0 +1,61 @@ +/*- + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)callout.h 8.2 (Berkeley) 1/21/94 + * $FreeBSD$ + */ + +#ifndef _SYS__CALLOUT_H +#define _SYS__CALLOUT_H + +#include + +struct lock_object; + +SLIST_HEAD(callout_list, callout); +TAILQ_HEAD(callout_tailq, callout); + +struct callout { + union { + SLIST_ENTRY(callout) sle; + TAILQ_ENTRY(callout) tqe; + } c_links; + int c_time; /* ticks to the event */ + void *c_arg; /* function argument */ + void (*c_func)(void *); /* function to call */ + struct lock_object *c_lock; /* lock to handle */ + int c_flags; /* state of this entry */ + volatile int c_cpu; /* CPU we're scheduled on */ +}; + +#endif Modified: projects/altix/sys/sys/callout.h ============================================================================== --- projects/altix/sys/sys/callout.h Wed Apr 27 01:45:05 2011 (r221105) +++ projects/altix/sys/sys/callout.h Wed Apr 27 02:12:01 2011 (r221106) @@ -38,25 +38,7 @@ #ifndef _SYS_CALLOUT_H_ #define _SYS_CALLOUT_H_ -#include - -struct lock_object; - -SLIST_HEAD(callout_list, callout); -TAILQ_HEAD(callout_tailq, callout); - -struct callout { - union { - SLIST_ENTRY(callout) sle; - TAILQ_ENTRY(callout) tqe; - } c_links; - int c_time; /* ticks to the event */ - void *c_arg; /* function argument */ - void (*c_func)(void *); /* function to call */ - struct lock_object *c_lock; /* lock to handle */ - int c_flags; /* state of this entry */ - volatile int c_cpu; /* CPU we're scheduled on */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Wed Apr 27 02:41:26 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 905FB106564A; Wed, 27 Apr 2011 02:41:26 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7F1B08FC14; Wed, 27 Apr 2011 02:41:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3R2fQSg050061; Wed, 27 Apr 2011 02:41:26 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3R2fQoc050059; Wed, 27 Apr 2011 02:41:26 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201104270241.p3R2fQoc050059@svn.freebsd.org> From: Mark Linimon Date: Wed, 27 Apr 2011 02:41:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221109 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2011 02:41:26 -0000 Author: linimon (doc,ports committer) Date: Wed Apr 27 02:41:26 2011 New Revision: 221109 URL: http://svn.freebsd.org/changeset/base/221109 Log: Correct path. Modified: projects/portbuild/scripts/dosetupnode Modified: projects/portbuild/scripts/dosetupnode ============================================================================== --- projects/portbuild/scripts/dosetupnode Wed Apr 27 02:35:57 2011 (r221108) +++ projects/portbuild/scripts/dosetupnode Wed Apr 27 02:41:26 2011 (r221109) @@ -109,9 +109,9 @@ setup() { ${client_setup} post-copy ${args} || (echo "post-copy for ${node} failed"; return 1) if [ "${queue}" -eq 1 ]; then - jobs=$(python /var/portbuild/evil/qmanager/qclient jobs | grep "${node}" | grep "${arch}/${branch}/${buildid} package" | awk '{print $1}' | tail +1) + jobs=$(python /var/portbuild/qmanager/qclient jobs | grep "${node}" | grep "${arch}/${branch}/${buildid} package" | awk '{print $1}' | tail +1) for j in ${jobs}; do - python /var/portbuild/evil/qmanager/qclient release $j + python /var/portbuild/qmanager/qclient release $j done fi From owner-svn-src-projects@FreeBSD.ORG Wed Apr 27 04:11:18 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AB92D1065673; Wed, 27 Apr 2011 04:11:18 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 99FC38FC08; Wed, 27 Apr 2011 04:11:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3R4BIc2053270; Wed, 27 Apr 2011 04:11:18 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3R4BIeW053266; Wed, 27 Apr 2011 04:11:18 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104270411.p3R4BIeW053266@svn.freebsd.org> From: Marcel Moolenaar Date: Wed, 27 Apr 2011 04:11:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221113 - in projects/altix/sys: conf ia64/ia64 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2011 04:11:18 -0000 Author: marcel Date: Wed Apr 27 04:11:18 2011 New Revision: 221113 URL: http://svn.freebsd.org/changeset/base/221113 Log: Move os_boot_rendez() from locore.S to mp_locore.S Added: projects/altix/sys/ia64/ia64/mp_locore.S (contents, props changed) Modified: projects/altix/sys/conf/files.ia64 projects/altix/sys/ia64/ia64/locore.S Modified: projects/altix/sys/conf/files.ia64 ============================================================================== --- projects/altix/sys/conf/files.ia64 Wed Apr 27 04:03:04 2011 (r221112) +++ projects/altix/sys/conf/files.ia64 Wed Apr 27 04:11:18 2011 (r221113) @@ -92,6 +92,7 @@ ia64/ia64/locore.S standard no-obj ia64/ia64/machdep.c standard ia64/ia64/mca.c standard ia64/ia64/mem.c optional mem +ia64/ia64/mp_locore.S optional smp ia64/ia64/mp_machdep.c optional smp ia64/ia64/nexus.c standard ia64/ia64/pal.S standard @@ -122,7 +123,6 @@ ia64/sgisn/sgisn_shub.c standard isa/syscons_isa.c optional sc isa/vga_isa.c optional vga kern/imgact_elf32.c optional compat_freebsd32 -kern/link_elf_obj.c standard libkern/bcmp.c standard libkern/ffsl.c standard libkern/fls.c standard Modified: projects/altix/sys/ia64/ia64/locore.S ============================================================================== --- projects/altix/sys/ia64/ia64/locore.S Wed Apr 27 04:03:04 2011 (r221112) +++ projects/altix/sys/ia64/ia64/locore.S Wed Apr 27 04:11:18 2011 (r221113) @@ -27,12 +27,10 @@ * $FreeBSD$ */ -#include #include #include #include #include -#include #include /* @@ -188,130 +186,6 @@ enter_userland: } END(fork_trampoline) -#ifdef SMP -/* - * AP wake-up entry point. The handoff state is similar as for the BSP, - * as described on page 3-9 of the IPF SAL Specification. The difference - * lies in the contents of register b0. For APs this register holds the - * return address into the SAL rendezvous routine. - * - * Note that we're responsible for clearing the IRR bit by reading cr.ivr - * and issuing the EOI to the local SAPIC. - */ - .align 32 -ENTRY_NOPROFILE(os_boot_rendez,0) - mov r16=cr.ivr // clear IRR bit - ;; - srlz.d - mov cr.eoi=r0 // ACK the wake-up - ;; - srlz.d - rsm IA64_PSR_IC|IA64_PSR_I - ;; - mov r16 = (4<<8)|(16<<2) - movl r17 = 4<<61 - ;; - mov rr[r17] = r16 - ;; - srlz.d - mov r16 = (5<<8)|(PAGE_SHIFT<<2)|1 - movl r17 = 5<<61 - ;; - mov rr[r17] = r16 - ;; - srlz.d - mov r16 = (6<<8)|(PAGE_SHIFT<<2) - movl r17 = 6<<61 - ;; - mov rr[r17] = r16 - ;; - srlz.d - mov r16 = (7<<8)|(PAGE_SHIFT<<2) - movl r17 = 7<<61 - ;; - mov rr[r17] = r16 - ;; - srlz.d - mov r18 = 28<<2 - movl r16 = PTE_PRESENT+PTE_MA_WB+PTE_ACCESSED+PTE_DIRTY+ \ - PTE_PL_KERN+PTE_AR_RWX+PTE_ED - ;; - mov cr.ifa = r17 - mov cr.itir = r18 - ptr.d r17, r18 - ptr.i r17, r18 - ;; - srlz.i - ;; - itr.d dtr[r0] = r16 - mov r18 = IA64_DCR_DEFAULT - ;; - itr.i itr[r0] = r16 - mov cr.dcr = r18 - ;; - srlz.i - ;; -1: mov r16 = ip - add r17 = 2f-1b, r17 - movl r18 = (IA64_PSR_AC|IA64_PSR_BN|IA64_PSR_DFH|IA64_PSR_DT|IA64_PSR_IC|IA64_PSR_IT|IA64_PSR_RT) - ;; - add r17 = r17, r16 - mov cr.ipsr = r18 - mov cr.ifs = r0 - ;; - mov cr.iip = r17 - ;; - rfi - - .align 32 -2: -{ .mlx - mov ar.rsc = 0 - movl r16 = ia64_vector_table // set up IVT early - ;; -} -{ .mlx - mov cr.iva = r16 - movl r16 = ap_stack - ;; -} -{ .mmi - srlz.i - ;; - ld8 r16 = [r16] - mov r18 = KSTACK_PAGES*PAGE_SIZE-SIZEOF_PCB-SIZEOF_TRAPFRAME-16 - ;; -} -{ .mlx - mov ar.bspstore = r16 - movl gp = __gp - ;; -} -{ .mmi - loadrs - ;; - alloc r17 = ar.pfs, 0, 0, 0, 0 - add sp = r18, r16 - ;; -} -{ .mib - mov ar.rsc = 3 - nop 0 - br.call.sptk.few rp = ia64_ap_startup - ;; -} - /* NOT REACHED */ -9: -{ .mib - nop 0 - nop 0 - br.sptk 9b - ;; -} -END(os_boot_rendez) - -#endif /* !SMP */ - /* * Create a default interrupt name table. The first entry (vector 0) is * hardwaired to the clock interrupt. Added: projects/altix/sys/ia64/ia64/mp_locore.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/altix/sys/ia64/ia64/mp_locore.S Wed Apr 27 04:11:18 2011 (r221113) @@ -0,0 +1,153 @@ +/*- + * Copyright (c) 2011 Marcel Moolenaar + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include + +/* + * AP wake-up entry point. The handoff state is similar as for the BSP, + * as described on page 3-9 of the IPF SAL Specification. The difference + * lies in the contents of register b0. For APs this register holds the + * return address into the SAL rendezvous routine. + * + * Note that we're responsible for clearing the IRR bit by reading cr.ivr + * and issuing the EOI to the local SAPIC. + */ + .align 32 +ENTRY_NOPROFILE(os_boot_rendez,0) + mov r16=cr.ivr // clear IRR bit + ;; + srlz.d + mov cr.eoi=r0 // ACK the wake-up + ;; + srlz.d + rsm IA64_PSR_IC|IA64_PSR_I + ;; + mov r16 = (4<<8)|(16<<2) + movl r17 = 4<<61 + ;; + mov rr[r17] = r16 + ;; + srlz.d + mov r16 = (5<<8)|(PAGE_SHIFT<<2)|1 + movl r17 = 5<<61 + ;; + mov rr[r17] = r16 + ;; + srlz.d + mov r16 = (6<<8)|(PAGE_SHIFT<<2) + movl r17 = 6<<61 + ;; + mov rr[r17] = r16 + ;; + srlz.d + mov r16 = (7<<8)|(PAGE_SHIFT<<2) + movl r17 = 7<<61 + ;; + mov rr[r17] = r16 + ;; + srlz.d + mov r18 = 28<<2 + movl r16 = PTE_PRESENT+PTE_MA_WB+PTE_ACCESSED+PTE_DIRTY+ \ + PTE_PL_KERN+PTE_AR_RWX+PTE_ED + ;; + mov cr.ifa = r17 + mov cr.itir = r18 + ptr.d r17, r18 + ptr.i r17, r18 + ;; + srlz.i + ;; + itr.d dtr[r0] = r16 + mov r18 = IA64_DCR_DEFAULT + ;; + itr.i itr[r0] = r16 + mov cr.dcr = r18 + ;; + srlz.i + ;; +1: mov r16 = ip + add r17 = 2f-1b, r17 + movl r18 = (IA64_PSR_AC|IA64_PSR_BN|IA64_PSR_DFH|IA64_PSR_DT|IA64_PSR_IC|IA64_PSR_IT|IA64_PSR_RT) + ;; + add r17 = r17, r16 + mov cr.ipsr = r18 + mov cr.ifs = r0 + ;; + mov cr.iip = r17 + ;; + rfi + + .align 32 +2: +{ .mlx + mov ar.rsc = 0 + movl r16 = ia64_vector_table // set up IVT early + ;; +} +{ .mlx + mov cr.iva = r16 + movl r16 = ap_stack + ;; +} +{ .mmi + srlz.i + ;; + ld8 r16 = [r16] + mov r18 = KSTACK_PAGES*PAGE_SIZE-SIZEOF_PCB-SIZEOF_TRAPFRAME-16 + ;; +} +{ .mlx + mov ar.bspstore = r16 + movl gp = __gp + ;; +} +{ .mmi + loadrs + ;; + alloc r17 = ar.pfs, 0, 0, 0, 0 + add sp = r18, r16 + ;; +} +{ .mib + mov ar.rsc = 3 + nop 0 + br.call.sptk.few rp = ia64_ap_startup + ;; +} + /* NOT REACHED */ +9: +{ .mib + nop 0 + nop 0 + br.sptk 9b + ;; +} +END(os_boot_rendez) From owner-svn-src-projects@FreeBSD.ORG Wed Apr 27 09:10:59 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2EE41106564A; Wed, 27 Apr 2011 09:10:59 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1FB948FC1A; Wed, 27 Apr 2011 09:10:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3R9AxLZ062812; Wed, 27 Apr 2011 09:10:59 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3R9Axw1062810; Wed, 27 Apr 2011 09:10:59 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104270910.p3R9Axw1062810@svn.freebsd.org> From: Florent Thoumie Date: Wed, 27 Apr 2011 09:10:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221116 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2011 09:10:59 -0000 Author: flz Date: Wed Apr 27 09:10:58 2011 New Revision: 221116 URL: http://svn.freebsd.org/changeset/base/221116 Log: portbuild: screwed up a merge, fix path. ${pbc} only exist in a local branch, s/pbc/pb/. Modified: projects/portbuild/scripts/dopackages Modified: projects/portbuild/scripts/dopackages ============================================================================== --- projects/portbuild/scripts/dopackages Wed Apr 27 08:57:12 2011 (r221115) +++ projects/portbuild/scripts/dopackages Wed Apr 27 09:10:58 2011 (r221116) @@ -678,7 +678,7 @@ if [ "$nobuild" = 0 ]; then fi # Compile ptimeout. - /usr/bin/gcc -o ${builddir}/ptimeout -Wall ${pbc}/sources/ptimeout.c + /usr/bin/gcc -o ${builddir}/ptimeout -Wall ${pb}/sources/ptimeout.c dobuild ${pb} ${arch} ${branch} ${builddir} From owner-svn-src-projects@FreeBSD.ORG Wed Apr 27 19:50:21 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1BF9C1065673; Wed, 27 Apr 2011 19:50:21 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0D11E8FC19; Wed, 27 Apr 2011 19:50:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3RJoKe4086831; Wed, 27 Apr 2011 19:50:20 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3RJoKUI086829; Wed, 27 Apr 2011 19:50:20 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104271950.p3RJoKUI086829@svn.freebsd.org> From: Marcel Moolenaar Date: Wed, 27 Apr 2011 19:50:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221136 - projects/altix/sys/ia64/ia64 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2011 19:50:21 -0000 Author: marcel Date: Wed Apr 27 19:50:20 2011 New Revision: 221136 URL: http://svn.freebsd.org/changeset/base/221136 Log: Do not register the OS boot rendezvous entry point here/now. We want to pass a GP value that is useful during the wakeup, such as the physical address of a structure containing all the information and state necessary to bootstrap an AP. As such, it's better done in mp_machdep.c. Modified: projects/altix/sys/ia64/ia64/sal.c Modified: projects/altix/sys/ia64/ia64/sal.c ============================================================================== --- projects/altix/sys/ia64/ia64/sal.c Wed Apr 27 19:46:57 2011 (r221135) +++ projects/altix/sys/ia64/ia64/sal.c Wed Apr 27 19:50:20 2011 (r221136) @@ -101,10 +101,6 @@ ia64_sal_init(void) } case 5: { struct sal_ap_wakeup_descriptor *dp; -#ifdef SMP - struct ia64_sal_result result; - struct ia64_fdesc *fd; -#endif dp = (struct sal_ap_wakeup_descriptor*)p; if (dp->sale_mechanism != 0) { @@ -126,14 +122,6 @@ ia64_sal_init(void) if (bootverbose) printf("SAL: AP wake-up XIV: %#x\n", ia64_ipi_wakeup); - -#ifdef SMP - fd = (struct ia64_fdesc *) os_boot_rendez; - result = ia64_sal_entry(SAL_SET_VECTORS, - SAL_OS_BOOT_RENDEZ, ia64_tpa(fd->func), - ia64_tpa(fd->gp), 0, 0, 0, 0); -#endif - break; } } From owner-svn-src-projects@FreeBSD.ORG Wed Apr 27 19:54:45 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0E71106568B; Wed, 27 Apr 2011 19:54:45 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A7A668FC29; Wed, 27 Apr 2011 19:54:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3RJsj6E087022; Wed, 27 Apr 2011 19:54:45 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3RJsjC0087019; Wed, 27 Apr 2011 19:54:45 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104271954.p3RJsjC0087019@svn.freebsd.org> From: Marcel Moolenaar Date: Wed, 27 Apr 2011 19:54:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221137 - in projects/altix/sys/ia64: ia64 include X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Apr 2011 19:54:45 -0000 Author: marcel Date: Wed Apr 27 19:54:45 2011 New Revision: 221137 URL: http://svn.freebsd.org/changeset/base/221137 Log: Dump WIP: o Define a structure (ia64_ap_state) that contains all the information and state we need to bootstrap an AP. In particular, this now includes the PBVM mappings. o Register the OS boot rendezvous function and pass the physical address of the state structure so that the AP can access it using GP relative references. Modified: projects/altix/sys/ia64/ia64/mp_machdep.c projects/altix/sys/ia64/include/smp.h Modified: projects/altix/sys/ia64/ia64/mp_machdep.c ============================================================================== --- projects/altix/sys/ia64/ia64/mp_machdep.c Wed Apr 27 19:50:20 2011 (r221136) +++ projects/altix/sys/ia64/ia64/mp_machdep.c Wed Apr 27 19:54:45 2011 (r221137) @@ -70,12 +70,8 @@ void ia64_ap_startup(void); #define SAPIC_ID_GET_EID(x) ((u_int)(x) & 0xff) #define SAPIC_ID_SET(id, eid) ((u_int)(((id) & 0xff) << 8) | ((eid) & 0xff)) -/* Variables used by os_boot_rendez and ia64_ap_startup */ -struct pcpu *ap_pcpu; -void *ap_stack; -volatile int ap_delay; -volatile int ap_awake; -volatile int ap_spin; +/* State used to wake and bootstrap APs. */ +struct ia64_ap_state ia64_ap_state; int ia64_ipi_ast; int ia64_ipi_highfp; @@ -302,10 +298,16 @@ cpu_mp_announce() void cpu_mp_start() { + struct ia64_sal_result result; + struct ia64_fdesc *fd; struct pcpu *pc; ap_spin = 1; + fd = (struct ia64_fdesc *) os_boot_rendez; + result = ia64_sal_entry(SAL_SET_VECTORS, SAL_OS_BOOT_RENDEZ, + ia64_tpa(fd->func), ia64_tpa(ia64_ap_state), 0, 0, 0, 0); + SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { pc->pc_md.current_pmap = kernel_pmap; pc->pc_other_cpus = all_cpus & ~pc->pc_cpumask; Modified: projects/altix/sys/ia64/include/smp.h ============================================================================== --- projects/altix/sys/ia64/include/smp.h Wed Apr 27 19:50:20 2011 (r221136) +++ projects/altix/sys/ia64/include/smp.h Wed Apr 27 19:54:45 2011 (r221137) @@ -16,6 +16,24 @@ struct pcpu; +struct ia64_ap_state { + uint64_t as_pgtbl_pa; + uint64_t as_pgtbl_va; + uint32_t as_pgtblsz; + uint64_t as_text_pa; + uint64_t as_text_va; + uint32_t as_textsz; + uint64_t as_data_pa; + uint64_t as_data_va; + uint32_t as_datasz; + uint64_t as_kstack; + uint64_t as_kstack_top; + struct pcpu *as_pcpu; + volatile u_int as_delay; + volatile u_int as_awake; + volatile u_int as_spin; +}; + extern int ia64_ipi_ast; extern int ia64_ipi_highfp; extern int ia64_ipi_nmi; From owner-svn-src-projects@FreeBSD.ORG Thu Apr 28 00:40:23 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7CDF5106566B; Thu, 28 Apr 2011 00:40:23 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6AE6C8FC12; Thu, 28 Apr 2011 00:40:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3S0eNwW097560; Thu, 28 Apr 2011 00:40:23 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3S0eNJ1097559; Thu, 28 Apr 2011 00:40:23 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104280040.p3S0eNJ1097559@svn.freebsd.org> From: Marcel Moolenaar Date: Thu, 28 Apr 2011 00:40:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221146 - projects/altix/sys/ia64/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Apr 2011 00:40:23 -0000 Author: marcel Date: Thu Apr 28 00:40:23 2011 New Revision: 221146 URL: http://svn.freebsd.org/changeset/base/221146 Log: Add kernel configuration for ALTIX. Added: projects/altix/sys/ia64/conf/ALTIX Added: projects/altix/sys/ia64/conf/ALTIX ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/altix/sys/ia64/conf/ALTIX Thu Apr 28 00:40:23 2011 (r221146) @@ -0,0 +1,70 @@ +# $FreeBSD$ + +cpu ITANIUM2 +ident ALTIX + +makeoptions DEBUG=-g +makeoptions MODULES_OVERRIDE="" + +device ata +device atadisk +device bge +device bpf +device da +device ether +device firmware +device isp +device loop +device md +device miibus +device pass +device pci +device pty +device random +device scbus +device tun +device uart +device vlan + +#options ACPI_DEBUG +options ALT_BREAK_TO_DEBUGGER +options CD9660 +options DDB +options DEADLKRES +#options EXCEPTION_TRACING +options FFS +options GDB +options INET +options INET6 +options INVARIANTS +options INVARIANT_SUPPORT +options KDB +options KTRACE +options MD_ROOT +options MSDOSFS +options NFSCLIENT +options NFSLOCKD +options NFS_ROOT +options NULLFS +options P1003_1B_SEMAPHORES +#options PREEMPTION +options PRINTF_BUFR_SIZE=128 +options PROCFS +options PSEUDOFS +options SCHED_ULE +options SCSI_DELAY=3000 +options SMP +options SOFTUPDATES +options SYSVMSG +options SYSVSEM +options SYSVSHM +options TMPFS +options UFS_DIRHASH +options WITNESS +options WITNESS_SKIPSPIN +options _KPOSIX_PRIORITY_SCHEDULING + +#options KTR +#options KTR_COMPILE=KTR_INTR +#options KTR_MASK=KTR_INTR +#options KTR_VERBOSE From owner-svn-src-projects@FreeBSD.ORG Thu Apr 28 03:33:12 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6821106566C; Thu, 28 Apr 2011 03:33:12 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D2E988FC13; Thu, 28 Apr 2011 03:33:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3S3XCk4003318; Thu, 28 Apr 2011 03:33:12 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3S3XCCL003314; Thu, 28 Apr 2011 03:33:12 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104280333.p3S3XCCL003314@svn.freebsd.org> From: Marcel Moolenaar Date: Thu, 28 Apr 2011 03:33:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221147 - in projects/altix/sys/ia64: ia64 include X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Apr 2011 03:33:13 -0000 Author: marcel Date: Thu Apr 28 03:33:12 2011 New Revision: 221147 URL: http://svn.freebsd.org/changeset/base/221147 Log: Re-implement os_boot_rendez to work with PBVM. Modified: projects/altix/sys/ia64/ia64/mp_locore.S projects/altix/sys/ia64/ia64/mp_machdep.c projects/altix/sys/ia64/include/smp.h Modified: projects/altix/sys/ia64/ia64/mp_locore.S ============================================================================== --- projects/altix/sys/ia64/ia64/mp_locore.S Thu Apr 28 00:40:23 2011 (r221146) +++ projects/altix/sys/ia64/ia64/mp_locore.S Thu Apr 28 03:33:12 2011 (r221147) @@ -42,86 +42,176 @@ */ .align 32 ENTRY_NOPROFILE(os_boot_rendez,0) - mov r16=cr.ivr // clear IRR bit +{ .mmi + mov r8 = cr.ivr // clear IRR bit ;; srlz.d - mov cr.eoi=r0 // ACK the wake-up + mov r16 = (IA64_PBVM_RR << 8) | (IA64_PBVM_PAGE_SHIFT << 2) +} +{ .mmi + mov cr.eoi = r0 // ACK the wake-up ;; srlz.d - rsm IA64_PSR_IC|IA64_PSR_I - ;; - mov r16 = (4<<8)|(16<<2) - movl r17 = 4<<61 + dep.z r17 = IA64_PBVM_RR, 61, 3 ;; +} +{ .mmi + rsm IA64_PSR_IC | IA64_PSR_I mov rr[r17] = r16 + add r2 = 8, r1 + ;; +} +{ .mlx + srlz.i + movl r16 = IA64_PBVM_PGTBL + ;; +} +{ .mmi + ld8 r17 = [r1], 16 // as_pgtbl_pte + ld8 r18 = [r2], 16 // as_pgtbl_itir + mov r8 = r0 + ;; +} +{ .mmi + mov cr.ifa = r16 + mov cr.itir = r18 + mov r9 = r0 ;; +} +{ .mmi srlz.d - mov r16 = (5<<8)|(PAGE_SHIFT<<2)|1 - movl r17 = 5<<61 + ptr.d r16, r18 + nop 0 ;; - mov rr[r17] = r16 +} +{ .mmi + srlz.d + itr.d dtr[r8] = r17 + nop 0 ;; +} +{ .mmi srlz.d - mov r16 = (6<<8)|(PAGE_SHIFT<<2) - movl r17 = 6<<61 + ld8 r16 = [r1], 16 // as_text_va + add r8 = 1, r8 + ;; +} +{ .mmi + ld8 r17 = [r2], 16 // as_text_pte + ld8 r18 = [r1], 16 // as_text_itir + nop 0 ;; - mov rr[r17] = r16 +} +{ .mmi + mov cr.ifa = r16 + mov cr.itir = r18 + nop 0 ;; +} +{ .mmi srlz.d - mov r16 = (7<<8)|(PAGE_SHIFT<<2) - movl r17 = 7<<61 + ptr.d r16, r18 + nop 0 ;; - mov rr[r17] = r16 +} +{ .mmi + srlz.d + itr.d dtr[r8] = r17 + nop 0 ;; +} +{ .mmi srlz.d - mov r18 = 28<<2 - movl r16 = PTE_PRESENT+PTE_MA_WB+PTE_ACCESSED+PTE_DIRTY+ \ - PTE_PL_KERN+PTE_AR_RWX+PTE_ED + ptr.i r16, r18 + add r8 = 1, r8 ;; - mov cr.ifa = r17 - mov cr.itir = r18 - ptr.d r17, r18 - ptr.i r17, r18 +} +{ .mmi + srlz.i ;; + itr.i itr[r9] = r17 + nop 0 + ;; +} +{ .mmi srlz.i ;; - itr.d dtr[r0] = r16 - mov r18 = IA64_DCR_DEFAULT + ld8 r16 = [r2], 16 // as_data_va + add r9 = 1, r9 + ;; +} +{ .mmi + ld8 r17 = [r1], 16 // as_data_pte + ld8 r18 = [r2], 16 // as_data_itir + nop 0 ;; - itr.i itr[r0] = r16 - mov cr.dcr = r18 +} +{ .mmi + mov cr.ifa = r16 + mov cr.itir = r18 + nop 0 ;; - srlz.i +} +{ .mmi + srlz.d + ptr.d r16, r18 + nop 0 + ;; +} +{ .mmi + srlz.d + itr.d dtr[r8] = r17 + mov r19 = IA64_DCR_DEFAULT ;; -1: mov r16 = ip - add r17 = 2f-1b, r17 - movl r18 = (IA64_PSR_AC|IA64_PSR_BN|IA64_PSR_DFH|IA64_PSR_DT|IA64_PSR_IC|IA64_PSR_IT|IA64_PSR_RT) +} +{ .mmi + srlz.d + ld8 r16 = [r1], 16 // as_kstack + add r8 = 1, r8 ;; - add r17 = r17, r16 +} +{ .mmi + ld8 r17 = [r2], 16 // as_kstack_top + mov cr.dcr = r19 + nop 0 + ;; +} +{ .mlx + srlz.i + movl r18 = IA64_PSR_BN | IA64_PSR_IT | IA64_PSR_DT | IA64_PSR_IC | \ + IA64_PSR_RT | IA64_PSR_DFH + ;; +} +1: +{ .mii mov cr.ipsr = r18 - mov cr.ifs = r0 + mov r19 = ip ;; - mov cr.iip = r17 + add r19 = 2f-1b, r19 ;; +} +{ .mmi + mov cr.ifs = r0 + mov cr.iip = r19 + nop 0 + ;; +} + rfi + ;; .align 32 2: { .mlx mov ar.rsc = 0 - movl r16 = ia64_vector_table // set up IVT early - ;; -} -{ .mlx - mov cr.iva = r16 - movl r16 = ap_stack + movl r18 = ia64_vector_table // set up IVT early ;; } { .mmi - srlz.i + mov cr.iva = r18 ;; - ld8 r16 = [r16] - mov r18 = KSTACK_PAGES*PAGE_SIZE-SIZEOF_PCB-SIZEOF_TRAPFRAME-16 + srlz.i + nop 0 ;; } { .mlx @@ -132,8 +222,8 @@ ENTRY_NOPROFILE(os_boot_rendez,0) { .mmi loadrs ;; - alloc r17 = ar.pfs, 0, 0, 0, 0 - add sp = r18, r16 + alloc r18 = ar.pfs, 0, 0, 0, 0 + add sp = -16, r17 ;; } { .mib Modified: projects/altix/sys/ia64/ia64/mp_machdep.c ============================================================================== --- projects/altix/sys/ia64/ia64/mp_machdep.c Thu Apr 28 00:40:23 2011 (r221146) +++ projects/altix/sys/ia64/ia64/mp_machdep.c Thu Apr 28 03:33:12 2011 (r221147) @@ -174,7 +174,7 @@ ia64_ap_startup(void) { uint64_t vhpt; - pcpup = ap_pcpu; + pcpup = ia64_ap_state.as_pcpu; ia64_set_k4((intptr_t)pcpup); vhpt = PCPU_GET(md.vhpt); @@ -182,8 +182,8 @@ ia64_ap_startup(void) ia64_set_pta(vhpt + (1 << 8) + (pmap_vhpt_log2size << 2) + 1); ia64_srlz_i(); - ap_awake = 1; - ap_delay = 0; + ia64_ap_state.as_awake = 1; + ia64_ap_state.as_delay = 0; map_pal_code(); map_gateway_page(); @@ -191,14 +191,14 @@ ia64_ap_startup(void) ia64_set_fpsr(IA64_FPSR_DEFAULT); /* Wait until it's time for us to be unleashed */ - while (ap_spin) + while (ia64_ap_state.as_spin) cpu_spinwait(); /* Initialize curthread. */ KASSERT(PCPU_GET(idlethread) != NULL, ("no idle thread")); PCPU_SET(curthread, PCPU_GET(idlethread)); - atomic_add_int(&ap_awake, 1); + atomic_add_int(&ia64_ap_state.as_awake, 1); while (!smp_started) cpu_spinwait(); @@ -301,28 +301,32 @@ cpu_mp_start() struct ia64_sal_result result; struct ia64_fdesc *fd; struct pcpu *pc; + u_char *stp; - ap_spin = 1; + ia64_ap_state.as_spin = 1; fd = (struct ia64_fdesc *) os_boot_rendez; result = ia64_sal_entry(SAL_SET_VECTORS, SAL_OS_BOOT_RENDEZ, - ia64_tpa(fd->func), ia64_tpa(ia64_ap_state), 0, 0, 0, 0); + ia64_tpa(fd->func), ia64_tpa((uintptr_t)&ia64_ap_state), + 0, 0, 0, 0); SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { pc->pc_md.current_pmap = kernel_pmap; pc->pc_other_cpus = all_cpus & ~pc->pc_cpumask; if (pc->pc_cpuid > 0) { - ap_pcpu = pc; + ia64_ap_state.as_pcpu = pc; pc->pc_md.vhpt = pmap_alloc_vhpt(); if (pc->pc_md.vhpt == 0) { printf("SMP: WARNING: unable to allocate VHPT" " for cpu%d", pc->pc_cpuid); continue; } - ap_stack = malloc(KSTACK_PAGES * PAGE_SIZE, M_SMP, - M_WAITOK); - ap_delay = 2000; - ap_awake = 0; + stp = malloc(KSTACK_PAGES * PAGE_SIZE, M_SMP, M_WAITOK); + ia64_ap_state.as_kstack = stp; + ia64_ap_state.as_kstack_top = stp + KSTACK_PAGES * + PAGE_SIZE - 16; + ia64_ap_state.as_delay = 2000; + ia64_ap_state.as_awake = 0; if (bootverbose) printf("SMP: waking up cpu%d\n", pc->pc_cpuid); @@ -331,10 +335,10 @@ cpu_mp_start() do { DELAY(1000); - } while (--ap_delay > 0); - pc->pc_md.awake = ap_awake; + } while (--ia64_ap_state.as_delay > 0); + pc->pc_md.awake = ia64_ap_state.as_awake; - if (!ap_awake) + if (!ia64_ap_state.as_awake) printf("SMP: WARNING: cpu%d did not wake up\n", pc->pc_cpuid); } else @@ -374,10 +378,10 @@ cpu_mp_unleash(void *dummy) } } - ap_awake = 1; - ap_spin = 0; + ia64_ap_state.as_awake = 1; + ia64_ap_state.as_spin = 0; - while (ap_awake != smp_cpus) + while (ia64_ap_state.as_awake != smp_cpus) cpu_spinwait(); if (smp_cpus != cpus || cpus != mp_ncpus) { Modified: projects/altix/sys/ia64/include/smp.h ============================================================================== --- projects/altix/sys/ia64/include/smp.h Thu Apr 28 00:40:23 2011 (r221146) +++ projects/altix/sys/ia64/include/smp.h Thu Apr 28 03:33:12 2011 (r221147) @@ -17,17 +17,16 @@ struct pcpu; struct ia64_ap_state { - uint64_t as_pgtbl_pa; - uint64_t as_pgtbl_va; - uint32_t as_pgtblsz; - uint64_t as_text_pa; + uint64_t as_pgtbl_pte; + uint64_t as_pgtbl_itir; uint64_t as_text_va; - uint32_t as_textsz; - uint64_t as_data_pa; + uint64_t as_text_pte; + uint64_t as_text_itir; uint64_t as_data_va; - uint32_t as_datasz; - uint64_t as_kstack; - uint64_t as_kstack_top; + uint64_t as_data_pte; + uint64_t as_data_itir; + void *as_kstack; + void *as_kstack_top; struct pcpu *as_pcpu; volatile u_int as_delay; volatile u_int as_awake; From owner-svn-src-projects@FreeBSD.ORG Thu Apr 28 11:06:15 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 67AF0106564A; Thu, 28 Apr 2011 11:06:15 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 533778FC16; Thu, 28 Apr 2011 11:06:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3SB6FmZ020096; Thu, 28 Apr 2011 11:06:15 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3SB6Fwc020072; Thu, 28 Apr 2011 11:06:15 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104281106.p3SB6Fwc020072@svn.freebsd.org> From: Florent Thoumie Date: Thu, 28 Apr 2011 11:06:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221159 - in projects/portbuild: qmanager scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Apr 2011 11:06:15 -0000 Author: flz Date: Thu Apr 28 11:06:14 2011 New Revision: 221159 URL: http://svn.freebsd.org/changeset/base/221159 Log: portbuild: remove hardcoded /var/portbuild. - Don't hardcode /var/portbuild. - Upload per-build scripts/ and sources/ directories. - Scripts which aren't tied to a specific build are uploaded first. This change makes it effectively possible to checkout portbuild anywhere and test changes without affecting any other builds. Modified: projects/portbuild/qmanager/dumpdb.py projects/portbuild/qmanager/packagebuild projects/portbuild/qmanager/qmanager projects/portbuild/qmanager/qmanager.py projects/portbuild/scripts/allgohans projects/portbuild/scripts/build projects/portbuild/scripts/buildenv projects/portbuild/scripts/buildfailure projects/portbuild/scripts/buildproxy projects/portbuild/scripts/buildproxy-client projects/portbuild/scripts/buildsuccess projects/portbuild/scripts/claim-chroot projects/portbuild/scripts/clean-chroot projects/portbuild/scripts/cleanup-chroots projects/portbuild/scripts/client-metrics projects/portbuild/scripts/cpdistfiles projects/portbuild/scripts/cppackages projects/portbuild/scripts/do-cleanup-chroots projects/portbuild/scripts/docppackages projects/portbuild/scripts/dodistfiles projects/portbuild/scripts/dologs projects/portbuild/scripts/dopackages projects/portbuild/scripts/dopackages.wrapper projects/portbuild/scripts/dopackagestats projects/portbuild/scripts/dosetupnode projects/portbuild/scripts/flushsquid projects/portbuild/scripts/keeprestr projects/portbuild/scripts/makeduds projects/portbuild/scripts/makeindex projects/portbuild/scripts/makerestr projects/portbuild/scripts/makeworld projects/portbuild/scripts/mkbindist projects/portbuild/scripts/pdispatch projects/portbuild/scripts/pollmachine projects/portbuild/scripts/portbuild projects/portbuild/scripts/processfail projects/portbuild/scripts/processlogs projects/portbuild/scripts/prunefailure projects/portbuild/scripts/reportload projects/portbuild/scripts/setupnode projects/portbuild/scripts/stats projects/portbuild/scripts/updatesnap projects/portbuild/scripts/updatesnap.ports Modified: projects/portbuild/qmanager/dumpdb.py ============================================================================== --- projects/portbuild/qmanager/dumpdb.py Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/qmanager/dumpdb.py Thu Apr 28 11:06:14 2011 (r221159) @@ -4,17 +4,21 @@ import sys, os, threading, socket, Queue +pbc = os.getenv('PORTBUILD_CHECKOUT') \ + if os.getenv('PORTBUILD_CHECKOUT') else "/var/portbuild" +pbd = os.getenv('PORTBUILD_DATA') \ + if os.getenv('PORTBUILD_DATA') else "/var/portbuild" + +sys.path.insert(0, '%s/lib/python' % pbc) + from signal import * from sys import exc_info from itertools import chain -sys.path.insert(0, '/var/portbuild/lib/python') - from freebsd_config import * from qmanagerobj import * -CONFIG_DIR="/var/portbuild" CONFIG_SUBDIR="conf" CONFIG_FILENAME="server.conf" @@ -127,7 +131,7 @@ def show_machines_for_arch( engine, arch if __name__ == '__main__': print "acquiring engine and session" - config = getConfig( CONFIG_DIR, CONFIG_SUBDIR, CONFIG_FILENAME ) + config = getConfig( pbc, CONFIG_SUBDIR, CONFIG_FILENAME ) QMANAGER_PATH = config.get( 'QMANAGER_PATH' ) QMANAGER_DATABASE_FILE = config.get( 'QMANAGER_DATABASE_FILE' ) (engine, session) = obj_startup( \ Modified: projects/portbuild/qmanager/packagebuild ============================================================================== --- projects/portbuild/qmanager/packagebuild Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/qmanager/packagebuild Thu Apr 28 11:06:14 2011 (r221159) @@ -32,31 +32,33 @@ # * check mtime for package staleness (cf make) # * option to skip phase 2 +import os import sys -sys.path.insert(0, '/var/portbuild/lib/python') +pbc = os.getenv('PORTBUILD_CHECKOUT') \ + if os.getenv('PORTBUILD_CHECKOUT') else "/var/portbuild" +pbd = os.getenv('PORTBUILD_DATA') \ + if os.getenv('PORTBUILD_DATA') else "/var/portbuild" -from qmanagerclient import * +sys.path.insert(0, '%s/lib/python' % pbc) +from qmanagerclient import * from freebsd_config import * -import os, string, threading, time, subprocess -#import random +import string, threading, time, subprocess from itertools import chain -#import gc from stat import * from Queue import Queue from heapq import * -CONFIG_DIR="/var/portbuild" CONFIG_SUBDIR="conf" CONFIG_FILENAME="server.conf" -config = getConfig( CONFIG_DIR, CONFIG_SUBDIR, CONFIG_FILENAME ) +config = getConfig( pbc, CONFIG_SUBDIR, CONFIG_FILENAME ) QMANAGER_MAX_JOB_ATTEMPTS = int( \ config.get( 'QMANAGER_MAX_JOB_ATTEMPTS' ) ) -QMANAGER_PRIORITY_PACKAGES = string.split( \ +QMANAGER_PRIORITY_PACKAGES = string.split( \ config.get( 'QMANAGER_PRIORITY_PACKAGES' ) ) QMANAGER_RUNAWAY_PERCENTAGE = float( \ config.get( 'QMANAGER_RUNAWAY_PERCENTAGE' ) ) @@ -323,8 +325,8 @@ they still need to know about us as depe def packagename(self, arch, branch, buildid): """ Return the path where a package may be found""" - return "/var/portbuild/%s/%s/builds/%s/packages/All/%s.tbz" \ - % (arch, branch, buildid, self.name) + return "%s/%s/%s/builds/%s/packages/All/%s.tbz" \ + % (pbd, arch, branch, buildid, self.name) def is_stale(self, arch, branch, buildid): """ Does a package need to be (re)-built? @@ -409,6 +411,7 @@ class worker(threading.Thread): self.branch = branch self.buildid = buildid self.queue = queue + self.basedir = pbd+"/"+arch+"/"+branch+"/builds/"+buildid self.setDaemon(True) @@ -422,19 +425,19 @@ class worker(threading.Thread): print try: runenv={'HOME':"/root", - 'PATH':'/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/var/portbuild/scripts', + 'PATH':'/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:%s/scripts' + pbc, 'FD':" ".join(["%s.tbz" % p.name for p in pkg.fdep]), 'ED':" ".join(["%s.tbz" % p.name for p in pkg.edep]), 'PD':" ".join(["%s.tbz" % p.name for p in pkg.pdep]), 'BD':" ".join(["%s.tbz" % p.name for p in pkg.bdep]), 'RD':" ".join(["%s.tbz" % p.name for p in pkg.rdep])} - for var in ["NOCLEAN", "NO_RESTRICTED", "NOPLISTCHECK", "NO_DISTFILES", "FETCH_ORIGINAL", "TRYBROKEN" ]: + for var in ["NOCLEAN", "NO_RESTRICTED", "NOPLISTCHECK", "NO_DISTFILES", "FETCH_ORIGINAL", "TRYBROKEN", "PORTBUILD_CHECKOUT", "PORTBUILD_DATA" ]: if var in os.environ: runenv[var] = os.environ.get(var) build = subprocess.Popen( - ["/bin/sh", "/var/portbuild/scripts/pdispatch", + ["/bin/sh", "%s/scripts/pdispatch" % pbc, self.arch, self.branch, self.buildid, self.machine, - "/var/portbuild/scripts/portbuild", "%s.tbz" % pkg.name, + "%s/scripts/portbuild" % self.basedir, "%s.tbz" % pkg.name, pkg.path], env=runenv, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, bufsize=0) @@ -506,7 +509,7 @@ class worker(threading.Thread): def main(arch, branch, buildid, args): global index - basedir="/var/portbuild/"+arch+"/"+branch+"/builds/"+buildid + basedir=pbd+"/"+arch+"/"+branch+"/builds/"+buildid portsdir=basedir+"/ports" # get the major branch number. Modified: projects/portbuild/qmanager/qmanager ============================================================================== --- projects/portbuild/qmanager/qmanager Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/qmanager/qmanager Thu Apr 28 11:06:14 2011 (r221159) @@ -49,11 +49,15 @@ # - OR, NOT job description entries # - query jobs.machine properties +import os import sys -sys.path.insert(0, '/var/portbuild/lib/python') +pbc = os.getenv('PORTBUILD_CHECKOUT') \ + if os.getenv('PORTBUILD_CHECKOUT') else "/var/portbuild" +pbd = os.getenv('PORTBUILD_DATA') \ + if os.getenv('PORTBUILD_DATA') else "/var/portbuild" -from freebsd_config import * +sys.path.insert(0, '%s/lib/python' % pbc) import os, threading, socket, Queue @@ -61,12 +65,12 @@ from signal import * from itertools import chain from qmanagerobj import * +from freebsd_config import * -CONFIG_DIR="/var/portbuild" CONFIG_SUBDIR="conf" CONFIG_FILENAME="server.conf" -config = getConfig( CONFIG_DIR, CONFIG_SUBDIR, CONFIG_FILENAME ) +config = getConfig( pbc, CONFIG_SUBDIR, CONFIG_FILENAME ) QMANAGER_SOCKET_FILE = config.get( 'QMANAGER_SOCKET_FILE' ) class Worker(object): Modified: projects/portbuild/qmanager/qmanager.py ============================================================================== --- projects/portbuild/qmanager/qmanager.py Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/qmanager/qmanager.py Thu Apr 28 11:06:14 2011 (r221159) @@ -49,24 +49,28 @@ # - OR, NOT job description entries # - query jobs.machine properties +import os import sys -sys.path.insert(0, '/var/portbuild/lib/python') +pbc = os.getenv('PORTBUILD_CHECKOUT') \ + if os.getenv('PORTBUILD_CHECKOUT') else "/var/portbuild" +pbd = os.getenv('PORTBUILD_DATA') \ + if os.getenv('PORTBUILD_DATA') else "/var/portbuild" -from freebsd_config import * +sys.path.insert(0, '%s/lib/python' % pbc) -import os, socket, threading, time, Queue +import socket, threading, time, Queue from signal import * from itertools import chain from qmanagerobj import * +from freebsd_config import * -CONFIG_DIR="/var/portbuild" CONFIG_SUBDIR="conf" CONFIG_FILENAME="server.conf" -config = getConfig( CONFIG_DIR, CONFIG_SUBDIR, CONFIG_FILENAME ) +config = getConfig( pbc, CONFIG_SUBDIR, CONFIG_FILENAME ) QMANAGER_SOCKET_FILE = config.get( 'QMANAGER_SOCKET_FILE' ) DEBUG = True Modified: projects/portbuild/scripts/allgohans ============================================================================== --- projects/portbuild/scripts/allgohans Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/allgohans Thu Apr 28 11:06:14 2011 (r221159) @@ -1,30 +1,46 @@ #!/bin/sh +pbc=${PORTBUILD_CHECKOUT:-/var/portbuild} +pbd=${PORTBUILD_DATA:-/var/portbuild} + +. ${pbc}/conf/server.conf + doarch() { arch=$1 shift - if [ -f "${pb}/${arch}/portbuild.conf" ]; then - . ${pb}/${arch}/portbuild.conf + if [ -f "${pbd}/${arch}/portbuild.conf" ]; then + . ${pbd}/${arch}/portbuild.conf else echo "Invalid arch" exit 1 fi - machines=$(awk '{print $1}' ${pb}/${arch}/mlist) + machines=$(awk '{print $1}' ${pbd}/${arch}/mlist) for i in ${machines}; do - . ${pb}/${arch}/portbuild.conf - if [ -f "${pb}/${arch}/portbuild.${i}" ]; then - . ${pb}/${arch}/portbuild.${i} + . ${pbd}/${arch}/portbuild.conf + if [ -f "${pbd}/${arch}/portbuild.${i}" ]; then + . ${pbd}/${arch}/portbuild.${i} fi if [ ${quiet} -eq 0 ]; then echo "[$i]" fi - lockf -t 60 ${pb}/${arch}/lockfiles/lock.$i su ports-${arch} -c "ssh ${client_user}@$i ${sudo_cmd} $@" + cmdpath=${cmd} + if [ ${scpfirst} -ne 0 ]; then + # If we need to scp first, the command given in the parameters is the local + # path, which we need to upload first. The command will return the remote + # temporary file, which we can subsequently execute. So this isn't really scp. + cmdpath=$(su ports-${arch} -c "cat ${cmd} | ssh ${client_user}@$i 't=\$(mktemp -t ${cmd##*/}); cat >\$t; echo \$t; chmod 755 \$t'") + case ${cmdpath} in /tmp/*) ;; *) echo "Failed to scp ${cmd} to $i."; return 1;; esac + fi + lockf -t 60 ${pbd}/${arch}/lockfiles/lock.$i su ports-${arch} -c "ssh ${client_user}@$i ${sudo_cmd} ${cmdpath} $@" result=$? if [ $result -ne 0 ]; then - echo "could not execute command $@ on $i: $result" + echo "could not execute command ${cmdpath} $@ on $i: $result" + fi + if [ ${scpfirst} -ne 0 ]; then + su ports-${arch} -c "ssh ${client_user}@$i 'rm -f ${cmdpath}'" fi done } @@ -39,6 +55,7 @@ else root=0 fi +# XXX - Have to convert this to getopt(). if [ "$1" = "-q" ]; then quiet=1 shift @@ -46,11 +63,18 @@ else quiet=0 fi -pb=/var/portbuild -. ${pb}/conf/server.conf +if [ "$1" = "-scp" ]; then + scpfirst=1 + shift +else + scpfirst=0 +fi + +cmd=$1 +shift if [ "${arch}" = "all" ]; then - arches=$(find ${pb}/*/portbuild.conf) + arches=$(find ${pbd}/*/portbuild.conf) for i in ${arches}; do arch=$(basename $(dirname $i)) doarch $arch "$@" Modified: projects/portbuild/scripts/build ============================================================================== --- projects/portbuild/scripts/build Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/build Thu Apr 28 11:06:14 2011 (r221159) @@ -4,7 +4,8 @@ # server-side script to handle various commands common to builds # configurable variables -pb=/var/portbuild +pbc=${PORTBUILD_CHECKOUT:-/var/portbuild} +pbd=${PORTBUILD_DATA:-/var/portbuild} # subdirectories to process. yes, this is a hack, but it saves code # duplication. @@ -25,7 +26,7 @@ do_list() { arch=$1 branch=$2 - buildpar=/var/portbuild/${arch}/${branch}/builds + buildpar=${pbd}/${arch}/${branch}/builds if [ -d ${buildpar} ]; then snaps=$(cd ${buildpar}; ls -1d 2* 2> /dev/null) @@ -51,7 +52,7 @@ do_create() { buildid=$3 shift 3 - archivedir=${pb}/${arch}/archive + archivedir=${pbd}/${arch}/archive # create directory for all build logs buildlogsdir=${archivedir}/buildlogs @@ -93,8 +94,7 @@ do_create() { ln -sf ${builddir} ${pbab}/builds/latest # create the links for the webserver - # XXX MCL hardcoding - errorlogs=/var/portbuild/errorlogs + errorlogs=${pbd}/errorlogs ln -s ${buildsdir}/latest/bak/errors ${errorlogs}/${arch}-${branch}-previous ln -s ${buildsdir}/latest/bak/logs ${errorlogs}/${arch}-${branch}-previous-logs @@ -148,7 +148,7 @@ do_clone() { if [ -d ${newbuilddir} ]; then if [ ! -f ${pbab}/builds/previous/.keep ]; then - /var/portbuild/scripts/build destroy ${arch} ${branch} previous + ${pbc}/scripts/build destroy ${arch} ${branch} previous fi rm -f ${pbab}/builds/previous mv ${pbab}/builds/latest ${pbab}/builds/previous @@ -251,10 +251,10 @@ cleanup_client() { echo "Started cleaning up ${arch}/${branch} build ID ${buildid} on ${mach}" - test -f ${pb}/${arch}/portbuild.${mach} && . ${pb}/${arch}/portbuild.${mach} + test -f ${pbd}/${arch}/portbuild.${mach} && . ${pbd}/${arch}/portbuild.${mach} # Kill off builds and clean up chroot - ${pb}/scripts/dosetupnode ${arch} ${branch} ${buildid} ${mach} -nocopy -queue -full + ${pbc}/scripts/dosetupnode ${arch} ${branch} ${buildid} ${mach} -nocopy -queue -full echo "Finished cleaning up ${arch}/${branch} build ID ${buildid} on ${mach}" } @@ -267,7 +267,7 @@ do_cleanup() { arg=$5 shift 5 - for i in `cat ${pb}/${arch}/mlist`; do + for i in `cat ${pbd}/${arch}/mlist`; do cleanup_client ${arch} ${branch} ${buildid} ${i} ${arg} & done wait @@ -394,7 +394,7 @@ do_destroy() { shift 4 echo - buildid=$(resolve ${pb} ${arch} ${branch} ${buildid}) + buildid=$(resolve ${pbd} ${arch} ${branch} ${buildid}) if [ -z "${buildid}" ]; then echo "Invalid build ID ${buildid}" exit 1 @@ -435,7 +435,7 @@ proxy_root() { id=$(id -u) if [ ${id} != "0" ]; then - /var/portbuild/scripts/buildproxy-client "build ${cmd} ${arch} ${branch} ${buildid} ${args}" + ${pbc}/scripts/buildproxy-client "build ${cmd} ${arch} ${branch} ${buildid} ${args}" error=$? if [ ${error} -eq 254 ]; then echo "Proxy error" @@ -463,7 +463,7 @@ proxy_user() { eval "do_${cmd} ${arch} ${branch} ${buildid} \"${builddir}\" ${args}" error=$? else - su ports-${arch} -c "/var/portbuild/scripts/build ${cmd} ${arch} ${branch} ${buildid} \"${builddir}\" ${args}" + su ports-${arch} -c "${pbc}/scripts/build ${cmd} ${arch} ${branch} ${buildid} \"${builddir}\" ${args}" error=$? fi @@ -486,11 +486,11 @@ arch=$2 branch=$3 shift 3 -. ${pb}/conf/server.conf -. ${pb}/${arch}/portbuild.conf -. ${pb}/scripts/buildenv +. ${pbc}/conf/server.conf +. ${pbd}/${arch}/portbuild.conf +. ${pbc}/scripts/buildenv -pbab=${pb}/${arch}/${branch} +pbab=${pbd}/${arch}/${branch} validate_env ${arch} ${branch} || exit 1 @@ -505,7 +505,7 @@ if [ $# -ge 1 ]; then case "$cmd" in cleanup) # Resolve symlinks but don't bail if the build doesn't exist. - newbuildid=$(resolve ${pb} ${arch} ${branch} ${buildid}) + newbuildid=$(resolve ${pbd} ${arch} ${branch} ${buildid}) if [ ! -z "${newbuildid}" -a "${newbuildid}" != "${buildid}" ]; then echo "Resolved ${buildid} to ${newbuildid}" buildid=${newbuildid} @@ -527,7 +527,7 @@ if [ $# -ge 1 ]; then # We can't rely on buildenv for this code path ;; *) - newbuildid=$(resolve ${pb} ${arch} ${branch} ${buildid}) + newbuildid=$(resolve ${pbd} ${arch} ${branch} ${buildid}) if [ -z "${newbuildid}" ]; then echo "Build ID ${buildid} does not exist" exit 1 @@ -539,7 +539,7 @@ if [ $# -ge 1 ]; then builddir=$(realpath ${pbab}/builds/${buildid}/) - buildenv ${pb} ${arch} ${branch} ${builddir} + buildenv ${pbd} ${arch} ${branch} ${builddir} ;; esac fi Modified: projects/portbuild/scripts/buildenv ============================================================================== --- projects/portbuild/scripts/buildenv Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/buildenv Thu Apr 28 11:06:14 2011 (r221159) @@ -40,7 +40,7 @@ validate_env() { # only used on server side resolve() { - pb=$1 + pbd=$1 arch=$2 branch=$3 buildid=$4 @@ -48,7 +48,7 @@ resolve() { # Resolve a possibly symlinked buildid (e.g. "latest") to the # underlying physical directory - pbab=${pb}/${arch}/${branch} + pbab=${pbd}/${arch}/${branch} builddir=${pbab}/builds/${buildid}/ if [ ! -d ${builddir} ]; then @@ -83,7 +83,7 @@ export_src_metadata() { # establish commonly-used environment variables (server-side) # buildenv () { - pb=$1 + pbd=$1 arch=$2 branch=$3 builddir=$4 @@ -139,7 +139,7 @@ buildenv () { fi # probably only used in mkbindist - export __MAKE_CONF=${pb}/${arch}/make.conf + export __MAKE_CONF=${pbd}/${arch}/make.conf } # Modified: projects/portbuild/scripts/buildfailure ============================================================================== --- projects/portbuild/scripts/buildfailure Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/buildfailure Thu Apr 28 11:06:14 2011 (r221159) @@ -9,7 +9,8 @@ cleanup() { } # configurable variables -pb=/var/portbuild +pbc=${PORTBUILD_CHECKOUT:-/var/portbuild} +pbd=${PORTBUILD_DATA:-/var/portbuild} usage () { echo "usage: buildfailure arch branch buildid pkgname" @@ -26,14 +27,14 @@ buildid=$3 pkgname=$4 shift 4 -builddir=${pb}/${arch}/${branch}/builds/${buildid} +builddir=${pbd}/${arch}/${branch}/builds/${buildid} -. ${pb}/conf/server.conf -. ${pb}/conf/common.conf -. ${pb}/${arch}/portbuild.conf -. ${pb}/scripts/buildenv +. ${pbc}/conf/server.conf +. ${pbc}/conf/common.conf +. ${pbd}/${arch}/portbuild.conf +. ${pbc}/scripts/buildenv -buildenv ${pb} ${arch} ${branch} ${builddir} +buildenv ${pbd} ${arch} ${branch} ${builddir} # Don't pick up installed packages from the host export LOCALBASE=/nonexistentlocal @@ -43,7 +44,7 @@ index=${PORTSDIR}/${INDEXFILE} portloc=$(grep "^$pkgname|" ${index} | cut -f 2 -d \| | sed s,/usr/ports/,,) pkgbase=$(cd ${PORTSDIR}/${portloc}/ && make -V PKGBASE) -cd ${pb}/${arch}/${branch} +cd ${pbd}/${arch}/${branch} entry=$(grep "^${portloc}|" failure) date=$(date +%s) IFS='|' @@ -58,7 +59,7 @@ else (echo "${portloc}|${pkgbase}|${pkgname}|${date}|${date}|1" >> failure) || cleanup fi -link=${pb}/${arch}/${branch}/latest/${portloc} +link=${pbd}/${arch}/${branch}/latest/${portloc} mkdir -p $(dirname ${link}) errorloc=$(realpath ${builddir}/errors/${pkgname}.log) ln -sf ${errorloc} ${link} Modified: projects/portbuild/scripts/buildproxy ============================================================================== --- projects/portbuild/scripts/buildproxy Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/buildproxy Thu Apr 28 11:06:14 2011 (r221159) @@ -6,12 +6,16 @@ import sys, socket, os, commands -sys.path.insert(0, '/var/portbuild/lib/python') +pbc = os.getenv('PORTBUILD_CHECKOUT') \ + if os.getenv('PORTBUILD_CHECKOUT') else "/var/portbuild" +pbd = os.getenv('PORTBUILD_DATA') \ + if os.getenv('PORTBUILD_DATA') else "/var/portbuild" + +sys.path.insert(0, '%s/lib/python' % pbc) from freebsd import * from freebsd_config import * -CONFIG_DIR="/var/portbuild" CONFIG_SUBDIR="conf" CONFIG_FILENAME="server.conf" @@ -48,11 +52,11 @@ def process(cmd, sockfile): if not j.isalnum() and not j in "-_.": return (254, "Illegal characters in input") - (status, out) = commands.getstatusoutput("/var/portbuild/scripts/build %s" % " ".join(cmd[1:])) + (status, out) = commands.getstatusoutput("%s/scripts/build %s" % (pbc, " ".join(cmd[1:]))) return (status, out) -config = getConfig( CONFIG_DIR, CONFIG_SUBDIR, CONFIG_FILENAME ) +config = getConfig( pbc, CONFIG_SUBDIR, CONFIG_FILENAME ) BUILDPROXY_SOCKET_FILE = config.get( 'BUILDPROXY_SOCKET_FILE' ) if os.path.exists(BUILDPROXY_SOCKET_FILE): Modified: projects/portbuild/scripts/buildproxy-client ============================================================================== --- projects/portbuild/scripts/buildproxy-client Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/buildproxy-client Thu Apr 28 11:06:14 2011 (r221159) @@ -5,16 +5,20 @@ import sys, socket, os, commands -sys.path.insert(0, '/var/portbuild/lib/python') +pbc = os.getenv('PORTBUILD_CHECKOUT') \ + if os.getenv('PORTBUILD_CHECKOUT') else "/var/portbuild" +pbd = os.getenv('PORTBUILD_DATA') \ + if os.getenv('PORTBUILD_DATA') else "/var/portbuild" + +sys.path.insert(0, '%s/lib/python' % pbc) from freebsd import * from freebsd_config import * -CONFIG_DIR="/var/portbuild" CONFIG_SUBDIR="conf" CONFIG_FILENAME="server.conf" -config = getConfig( CONFIG_DIR, CONFIG_SUBDIR, CONFIG_FILENAME ) +config = getConfig( pbc, CONFIG_SUBDIR, CONFIG_FILENAME ) BUILDPROXY_SOCKET_FILE = config.get( 'BUILDPROXY_SOCKET_FILE' ) try: Modified: projects/portbuild/scripts/buildsuccess ============================================================================== --- projects/portbuild/scripts/buildsuccess Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/buildsuccess Thu Apr 28 11:06:14 2011 (r221159) @@ -3,7 +3,8 @@ # buildsuccess # configurable variables -pb=/var/portbuild +pbc=${PORTBUILD_CHECKOUT:-/var/portbuild} +pbd=${PORTBUILD_DATA:-/var/portbuild} usage () { echo "usage: buildsuccess arch branch buildid pkgname" @@ -20,14 +21,14 @@ buildid=$3 pkgname=$4 shift 4 -builddir=${pb}/${arch}/${branch}/builds/${buildid} +builddir=${pbd}/${arch}/${branch}/builds/${buildid} -. ${pb}/conf/server.conf -. ${pb}/conf/common.conf -. ${pb}/${arch}/portbuild.conf -. ${pb}/scripts/buildenv +. ${pbc}/conf/server.conf +. ${pbc}/conf/common.conf +. ${pbd}/${arch}/portbuild.conf +. ${pbc}/scripts/buildenv -buildenv ${pb} ${arch} ${branch} ${builddir} +buildenv ${pbd} ${arch} ${branch} ${builddir} # Don't pick up installed packages from the host export LOCALBASE=/nonexistentlocal @@ -36,13 +37,13 @@ index=${PORTSDIR}/${INDEXFILE} portloc=$(grep "^$pkgname|" ${index} | cut -f 2 -d \| | sed s,/usr/ports/,,) -cd ${pb}/${arch}/${branch} +cd ${pbd}/${arch}/${branch} if grep -q "^${portloc}|" failure; then echo | mail -s "${pkgname} now builds on ${arch} ${branch}" ${mailto} grep -v "^${portloc}|" failure > failure.new mv failure.new failure fi -if [ -L ${pb}/${arch}/${branch}/latest/${portloc} ]; then - rm -f ${pb}/${arch}/${branch}/latest/${portloc} +if [ -L ${pbd}/${arch}/${branch}/latest/${portloc} ]; then + rm -f ${pbd}/${arch}/${branch}/latest/${portloc} fi Modified: projects/portbuild/scripts/claim-chroot ============================================================================== --- projects/portbuild/scripts/claim-chroot Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/claim-chroot Thu Apr 28 11:06:14 2011 (r221159) @@ -18,7 +18,7 @@ # could use a lockf lock, and be able to tell if the setup process was # still running or died prematurely -pb=/var/portbuild +pbd=${PORTBUILD_DATA:-/var/portbuild} usage () { echo "usage: claim-chroot arch branch buildid" @@ -48,7 +48,7 @@ fi # provide mutual exclusion against other callers, since we only want # one of them to perform setup -builddir=${pb}/${arch}/${branch}/builds/${buildid} +builddir=${pbd}/${arch}/${branch}/builds/${buildid} # Is the build environment populated? Again we only want a single # instance to gain setup rights if not. @@ -64,10 +64,10 @@ if [ ! -f ${builddir}/.ready ]; then exit 1 fi -. ${pb}/${arch}/client.conf -. ${pb}/${arch}/common.conf -. ${pb}/${arch}/portbuild.conf -. ${pb}/${arch}/portbuild.$(hostname) +. ${pbd}/${arch}/client.conf +. ${pbd}/${arch}/common.conf +. ${pbd}/${arch}/portbuild.conf +. ${pbd}/${arch}/portbuild.$(hostname) buildroot=${scratchdir} pkgname=${pkgname%.${PKGSUFFIX}} @@ -109,7 +109,7 @@ for dir in ${chrootdir}/*; do mkdir ${dir}/used 2>/dev/null || continue touch ${dir}/used/${pkgname} if [ -f ${dir}/.dirty ]; then - ${pb}/scripts/clean-chroot ${arch} ${branch} ${buildid} ${dir} 2 >/dev/null 2>/dev/null & + ${builddir}/scripts/clean-chroot ${arch} ${branch} ${buildid} ${dir} 2 >/dev/null 2>/dev/null & continue fi found=1 Modified: projects/portbuild/scripts/clean-chroot ============================================================================== --- projects/portbuild/scripts/clean-chroot Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/clean-chroot Thu Apr 28 11:06:14 2011 (r221159) @@ -42,12 +42,12 @@ buildid=$3 chroot=$4 clean=$5 -pb=/var/portbuild +pbd=${PORTBUILD_DATA:-/var/portbuild} -. ${pb}/${arch}/client.conf -. ${pb}/${arch}/common.conf -. ${pb}/${arch}/portbuild.conf -. ${pb}/${arch}/portbuild.$(hostname) +. ${pbd}/${arch}/client.conf +. ${pbd}/${arch}/common.conf +. ${pbd}/${arch}/portbuild.conf +. ${pbd}/${arch}/portbuild.$(hostname) # directories to clean cleandirs="${LOCALBASE} /compat /var/db/pkg" Modified: projects/portbuild/scripts/cleanup-chroots ============================================================================== --- projects/portbuild/scripts/cleanup-chroots Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/cleanup-chroots Thu Apr 28 11:06:14 2011 (r221159) @@ -7,7 +7,7 @@ # port builds that have timed out or shut down uncleanly) and prunes # them to reclaim space. -pb=/var/portbuild +pbd=${PORTBUILD_DATA:-/var/portbuild} kill_procs() { @@ -44,9 +44,9 @@ cleanup_mount() { # note: uname is not being overridden (should not need client.conf here) arch=$(uname -m) -. ${pb}/${arch}/client.conf -. ${pb}/${arch}/portbuild.conf -. ${pb}/${arch}/portbuild.$(hostname) +. ${pbd}/${arch}/client.conf +. ${pbd}/${arch}/portbuild.conf +. ${pbd}/${arch}/portbuild.$(hostname) if [ "${use_zfs}" = "1" ]; then old=$(find ${scratchdir}/*/*/* -prune -mmin +60 2> /dev/null) Modified: projects/portbuild/scripts/client-metrics ============================================================================== --- projects/portbuild/scripts/client-metrics Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/client-metrics Thu Apr 28 11:06:14 2011 (r221159) @@ -6,7 +6,7 @@ # - max vnodes # - number of packages built in the past hour -pb=/var/portbuild +pbd=${PORTBUILD_DATA:-/var/portbuild} arch=$(uname -m) me=$(hostname) @@ -16,10 +16,10 @@ export PATH=/sbin:/bin:/usr/sbin:/usr/bi gmetric --name="maxvnodes" --value=`sysctl -n kern.maxvnodes` --tmax=120 --dmax=0 --type=uint32 --units="# vnodes" gmetric --name="vnodes" --value=`sysctl -n vfs.numvnodes` --tmax=120 --dmax=0 --type=uint32 --units="# vnodes" -if [ -f ${pb}/${arch}/portbuild.conf -a -f ${pb}/${arch}/portbuild.${me} ]; then - . ${pb}/${arch}/client.conf - . ${pb}/${arch}/portbuild.conf - . ${pb}/${arch}/portbuild.${me} +if [ -f ${pbd}/${arch}/portbuild.conf -a -f ${pbd}/${arch}/portbuild.${me} ]; then + . ${pbd}/${arch}/client.conf + . ${pbd}/${arch}/portbuild.conf + . ${pbd}/${arch}/portbuild.${me} else exit 1 fi Modified: projects/portbuild/scripts/cpdistfiles ============================================================================== --- projects/portbuild/scripts/cpdistfiles Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/cpdistfiles Thu Apr 28 11:06:14 2011 (r221159) @@ -6,14 +6,16 @@ if [ $# -lt 3 ]; then fi # configurable variables -pb=/var/portbuild -. ${pb}/conf/server.conf +pbc=${PORTBUILD_CHECKOUT:-/var/portbuild} +pbd=${PORTBUILD_DATA:-/var/portbuild} + +. ${pbc}/conf/server.conf arch=$1 branch=$2 buildid=$3 -builddir=${pb}/${arch}/${branch}/builds/${buildid} +builddir=${pbd}/${arch}/${branch}/builds/${buildid} yesreally=0 dryrun=-n Modified: projects/portbuild/scripts/cppackages ============================================================================== --- projects/portbuild/scripts/cppackages Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/cppackages Thu Apr 28 11:06:14 2011 (r221159) @@ -1,11 +1,11 @@ #!/bin/sh # configurable variables -pb=/var/portbuild +pbd=${PORTBUILD_DATA:-/var/portbuild} -. ${pb}/portbuild.conf +. ${pbd}/portbuild.conf -lock=${pb}/cppackages.lock +lock=${pbd}/cppackages.lock unset DISPLAY Modified: projects/portbuild/scripts/do-cleanup-chroots ============================================================================== --- projects/portbuild/scripts/do-cleanup-chroots Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/do-cleanup-chroots Thu Apr 28 11:06:14 2011 (r221159) @@ -2,4 +2,7 @@ # # clean up stale chroots on all client machines. MCL 20081216. # -/var/portbuild/scripts/allgohans all -q /var/portbuild/scripts/cleanup-chroots + +pbc=${PORTBUILD_CHECKOUT:-/var/portbuild} + +${pbc}/scripts/allgohans all -q -scp ${pbc}/scripts/cleanup-chroots Modified: projects/portbuild/scripts/docppackages ============================================================================== --- projects/portbuild/scripts/docppackages Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/docppackages Thu Apr 28 11:06:14 2011 (r221159) @@ -1,7 +1,11 @@ #!/bin/sh + if [ $# != 1 ]; then echo "usage: $0 branch" exit 1 fi -echo /var/portbuild/scripts/cppackages $1 | at + 1 minute + +pbc=${PORTBUILD_CHECKOUT:-/var/portbuild} + +echo ${pbc}/scripts/cppackages $1 | at + 1 minute atq Modified: projects/portbuild/scripts/dodistfiles ============================================================================== --- projects/portbuild/scripts/dodistfiles Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/dodistfiles Thu Apr 28 11:06:14 2011 (r221159) @@ -30,8 +30,9 @@ arch=$1 branch=$2 buildid=$3 -pb=/var/portbuild -builddir=${pb}/${arch}/${branch}/builds/${buildid} +pbd=${PORTBUILD_DATA:-/var/portbuild} + +builddir=${pbd}/${arch}/${branch}/builds/${buildid} distdir=${builddir}/distfiles Modified: projects/portbuild/scripts/dologs ============================================================================== --- projects/portbuild/scripts/dologs Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/dologs Thu Apr 28 11:06:14 2011 (r221159) @@ -4,21 +4,22 @@ arch=$1 versions="latest full" -pb=/var/portbuild +pbc=${PORTBUILD_CHECKOUT:-/var/portbuild} +pbd=${PORTBUILD_DATA:-/var/portbuild} -. ${pb}/conf/server.conf -. ${pb}/${arch}/portbuild.conf +. ${pbc}/conf/server.conf +. ${pbd}/${arch}/portbuild.conf -home=${pb}/errorlogs -scripts=${pb}/scripts +home=${pbd}/errorlogs +scripts=${pbc}/scripts -branches=`cd ${pb}/${arch} && ls -d [1-9]* 2> /dev/null` +branches=`cd ${pbd}/${arch} && ls -d [1-9]* 2> /dev/null` for version in ${versions}; do for branch in ${branches}; do dir=$home/$arch-$branch-$version test -d $dir && cd $dir && ${scripts}/processlogs ${arch} - dir=${pb}/${arch}/${branch} + dir=${pbd}/${arch}/${branch} test -d $dir && cd $dir && ${scripts}/processfail ${arch} ${branch} done for branch in ${branches}; do Modified: projects/portbuild/scripts/dopackages ============================================================================== --- projects/portbuild/scripts/dopackages Thu Apr 28 09:09:34 2011 (r221158) +++ projects/portbuild/scripts/dopackages Thu Apr 28 11:06:14 2011 (r221159) @@ -4,9 +4,10 @@ # main server-side script to run a package build # configurable variables -pb=/var/portbuild +pbc=${PORTBUILD_CHECKOUT:-/var/portbuild} +pbd=${PORTBUILD_DATA:-/var/portbuild} -PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:${pb}/scripts +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:${pbc}/scripts # writable by portmgr umask 002 @@ -52,26 +53,26 @@ buildid=$3 datestamp=$4 shift 4 -. ${pb}/conf/server.conf -. ${pb}/conf/common.conf -. ${pb}/scripts/buildenv +. ${pbc}/conf/server.conf +. ${pbc}/conf/common.conf +. ${pbc}/scripts/buildenv validate_env ${arch} ${branch} || usage # XXX MCL too early to do this here. -buildid=$(resolve ${pb} ${arch} ${branch} ${buildid}) +buildid=$(resolve ${pbd} ${arch} ${branch} ${buildid}) if [ -z "${buildid}" ]; then echo "Invalid build ID ${buildid}" exit 1 fi -if [ -f ${pb}/${arch}/portbuild.conf ]; then - . ${pb}/conf/server.conf - . ${pb}/${arch}/portbuild.conf +if [ -f ${pbd}/${arch}/portbuild.conf ]; then + . ${pbc}/conf/server.conf + . ${pbd}/${arch}/portbuild.conf else usage fi -pbab=${pb}/${arch}/${branch} +pbab=${pbd}/${arch}/${branch} trap "exit 1" 1 2 3 9 10 11 15 @@ -97,7 +98,7 @@ portstar() { # usage: makeindex pb arch branch builddir [target] # note: can take ~24 minutes! makeindex () { - pb=$1 + pbc=$1 arch=$2 branch=$3 buildid=$4 @@ -109,7 +110,7 @@ makeindex () { echo "generating index" echo "================================================" echo "index generation started at $(date)" - ${pb}/scripts/makeindex ${arch} ${branch} ${buildid} ${target} || return 1 + ${pbc}/scripts/makeindex ${arch} ${branch} ${buildid} ${target} || return 1 echo "index generation ended at $(date)" echo $(wc -l ${INDEXFILE} | awk '{print $1}') "lines in INDEX" @@ -142,7 +143,7 @@ checkindex () { # usage: makeduds pb arch branch builddir [target] # note: can take ~21 minutes! makeduds () { - pb=$1 + pbc=$1 arch=$2 branch=$3 buildid=$4 @@ -157,7 +158,7 @@ makeduds () { if [ -e ${builddir}/duds ]; then cp -p ${builddir}/duds ${builddir}/duds.old fi - if ! ${pb}/scripts/makeduds ${arch} ${branch} ${buildid} ${target}; then + if ! ${pbc}/scripts/makeduds ${arch} ${branch} ${buildid} ${target}; then echo "error(s) detected, exiting script at $(date). Failed duds list was:" cat ${builddir}/duds mailexit 1 @@ -176,7 +177,7 @@ makeduds () { # usage: restrictedlist pb arch branch builddir [target] # note: can take ~25 minutes! restrictedlist () { - pb=$1 + pbc=$1 arch=$2 branch=$3 buildid=$4 @@ -188,7 +189,7 @@ restrictedlist () { echo "creating restricted list" echo "================================================" echo "restricted list generation started at $(date)" - ${pb}/scripts/makerestr ${arch} ${branch} ${buildid} ${target} || return 1 + ${pbc}/scripts/makerestr ${arch} ${branch} ${buildid} ${target} || return 1 echo "restricted list generation ended at $(date)" echo $(grep -c '^#' ${builddir}/restricted.sh) "ports in ${builddir}/restricted.sh" } @@ -196,7 +197,7 @@ restrictedlist () { # usage: cdromlist pb arch branch builddir # note: can take ~48 minutes! cdromlist () { - pb=$1 + pbc=$1 arch=$2 branch=$3 builddir=$4 @@ -218,7 +219,7 @@ cdromlist () { # XXX Should generate these as the packages are copied in, instead of all at once at the end # usage: generatemd5 pb arch branch builddir generatemd5 () { - pb=$1 + pbc=$1 arch=$2 branch=$3 builddir=$4 @@ -231,7 +232,7 @@ generatemd5 () { dobuild() { - pb=$1 + pbc=$1 arch=$2 branch=$3 builddir=$4 @@ -241,7 +242,7 @@ dobuild() { echo "================================================" echo "started at $(date)" start=$(date +%s) - ${QMANAGER_PATH}/packagebuild ${arch} ${branch} ${buildid} > ${builddir}/${journalname} 2>&1 < /dev/null + ${pbc}/qmanager/packagebuild ${arch} ${branch} ${buildid} > ${builddir}/${journalname} 2>&1 < /dev/null result=$? if [ $result -ne 0 ]; then echo "ERROR: packagebuild ${arch} ${branch} ${buildid} failed: see ${builddir}/${journalname} for details" @@ -422,7 +423,7 @@ if [ ! -d ${builddir} ]; then fi # Set up our environment variables *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Thu Apr 28 12:39:31 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 75E17106564A; Thu, 28 Apr 2011 12:39:31 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 632668FC0A; Thu, 28 Apr 2011 12:39:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3SCdVC0023155; Thu, 28 Apr 2011 12:39:31 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3SCdVZJ023153; Thu, 28 Apr 2011 12:39:31 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104281239.p3SCdVZJ023153@svn.freebsd.org> From: Florent Thoumie Date: Thu, 28 Apr 2011 12:39:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221162 - projects/portbuild/qmanager X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Apr 2011 12:39:31 -0000 Author: flz Date: Thu Apr 28 12:39:31 2011 New Revision: 221162 URL: http://svn.freebsd.org/changeset/base/221162 Log: portbuild: don't hardcode qmanager socket in qclient. Use freebsd_config module to get QMANAGER_SOCKET_FILE. Modified: projects/portbuild/qmanager/qclient Modified: projects/portbuild/qmanager/qclient ============================================================================== --- projects/portbuild/qmanager/qclient Thu Apr 28 11:21:49 2011 (r221161) +++ projects/portbuild/qmanager/qclient Thu Apr 28 12:39:31 2011 (r221162) @@ -8,7 +8,22 @@ import socket, os, sys from optparse import OptionParser + +pbc = os.getenv('PORTBUILD_CHECKOUT') \ + if os.getenv('PORTBUILD_CHECKOUT') else "/var/portbuild" +pbd = os.getenv('PORTBUILD_DATA') \ + if os.getenv('PORTBUILD_DATA') else "/var/portbuild" + +sys.path.insert(0, '%s/lib/python' % pbc) + from qmanagerclient import * +from freebsd_config import * + +CONFIG_SUBDIR="conf" +CONFIG_FILENAME="server.conf" + +config = getConfig( pbc, CONFIG_SUBDIR, CONFIG_FILENAME ) +QMANAGER_SOCKET_FILE = config.get( 'QMANAGER_SOCKET_FILE' ) def error(msg): print >>sys.stderr, "%s: %s" % (sys.argv[0], msg.rstrip()) @@ -88,10 +103,8 @@ def buildquery(option, opt, values, pars query.append("%s %s %s" % (key, operator, val)) -SOCKLOCAL = '/tmp/.qmgr' - conn = QManagerClientConn(stderr = sys.stderr) -conn.connect(SOCKLOCAL) +conn.connect(QMANAGER_SOCKET_FILE) query=[] From owner-svn-src-projects@FreeBSD.ORG Thu Apr 28 21:25:59 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 32E60106566B; Thu, 28 Apr 2011 21:25:59 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 192688FC1B; Thu, 28 Apr 2011 21:25:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3SLPxUM063352; Thu, 28 Apr 2011 21:25:59 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3SLPwk9063346; Thu, 28 Apr 2011 21:25:58 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104282125.p3SLPwk9063346@svn.freebsd.org> From: Florent Thoumie Date: Thu, 28 Apr 2011 21:25:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221184 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Apr 2011 21:25:59 -0000 Author: flz Date: Thu Apr 28 21:25:58 2011 New Revision: 221184 URL: http://svn.freebsd.org/changeset/base/221184 Log: portbuild: rsync per-build scripts into /tmp. We don't always have ${builddir}, so use /tmp/${buildid} instead. Modified: projects/portbuild/scripts/claim-chroot projects/portbuild/scripts/dosetupnode projects/portbuild/scripts/pdispatch projects/portbuild/scripts/portbuild projects/portbuild/scripts/setupnode Modified: projects/portbuild/scripts/claim-chroot ============================================================================== --- projects/portbuild/scripts/claim-chroot Thu Apr 28 20:25:15 2011 (r221183) +++ projects/portbuild/scripts/claim-chroot Thu Apr 28 21:25:58 2011 (r221184) @@ -109,7 +109,7 @@ for dir in ${chrootdir}/*; do mkdir ${dir}/used 2>/dev/null || continue touch ${dir}/used/${pkgname} if [ -f ${dir}/.dirty ]; then - ${builddir}/scripts/clean-chroot ${arch} ${branch} ${buildid} ${dir} 2 >/dev/null 2>/dev/null & + /tmp/${buildid}/scripts/clean-chroot ${arch} ${branch} ${buildid} ${dir} 2 >/dev/null 2>/dev/null & continue fi found=1 Modified: projects/portbuild/scripts/dosetupnode ============================================================================== --- projects/portbuild/scripts/dosetupnode Thu Apr 28 20:25:15 2011 (r221183) +++ projects/portbuild/scripts/dosetupnode Thu Apr 28 21:25:58 2011 (r221184) @@ -60,6 +60,12 @@ setup() { . ${pbd}/${arch}/portbuild.conf . ${pbd}/${arch}/portbuild.${node} + if [ "${buildid}" != "-" ]; then + rsync ${rsync_gzip} -e "${ssh_cmd}" -r -l -p --delete ${pbc}/scripts ${pbc}/sources \ + ${client_user}@${node}:/tmp/${buildid}/ + checkerror $? || (echo "Copying scripts to ${node} failed"; return 1) + fi + cmdpath=$(cat ${pbc}/scripts/setupnode | ssh -a ${client_user}@${node} 't=$(mktemp -t setupnode); cat >$t; echo $t; chmod 755 $t') case ${cmdpath} in /tmp/*) ;; *) echo "Failed to scp claim-chroot to ${host}."; return 1;; esac Modified: projects/portbuild/scripts/pdispatch ============================================================================== --- projects/portbuild/scripts/pdispatch Thu Apr 28 20:25:15 2011 (r221183) +++ projects/portbuild/scripts/pdispatch Thu Apr 28 21:25:58 2011 (r221184) @@ -199,7 +199,7 @@ else fi fi -${ssh_cmd} -a -n ${client_user}@${host} ${sudo_cmd} ${builddir}/scripts/clean-chroot ${arch} ${branch} ${buildid} ${chroot} ${clean} +${ssh_cmd} -a -n ${client_user}@${host} ${sudo_cmd} /tmp/${buildid}/scripts/clean-chroot ${arch} ${branch} ${buildid} ${chroot} ${clean} # XXX Set a dirty variable earlier and check here if grep -q "^build of .*ended at" ${builddir}/logs/${pkgname}.log; then Modified: projects/portbuild/scripts/portbuild ============================================================================== --- projects/portbuild/scripts/portbuild Thu Apr 28 20:25:15 2011 (r221183) +++ projects/portbuild/scripts/portbuild Thu Apr 28 21:25:58 2011 (r221184) @@ -298,8 +298,8 @@ while [ $# -gt 0 ]; do shift done -cp -p ${builddir}/scripts/buildscript ${chroot} -cp -p ${builddir}/sources/pnohang.c ${chroot} +cp -p /tmp/${buildid}/scripts/buildscript ${chroot} +cp -p /tmp/${buildid}/sources/pnohang.c ${chroot} # phase 0, compile pnohang chroot ${chroot} /usr/bin/gcc -o /pnohang -Wall /pnohang.c 2>&1 | tee -a ${chroot}/tmp/${pkgname}.log Modified: projects/portbuild/scripts/setupnode ============================================================================== --- projects/portbuild/scripts/setupnode Thu Apr 28 20:25:15 2011 (r221183) +++ projects/portbuild/scripts/setupnode Thu Apr 28 21:25:58 2011 (r221184) @@ -124,7 +124,7 @@ postcopy() { fi for i in ${wrkdir}/chroot/*; do - ${sudo_cmd} ${builddir}/scripts/clean-chroot ${arch} ${branch} ${buildid} ${i} 2 + ${sudo_cmd} /tmp/${buildid}/scripts/clean-chroot ${arch} ${branch} ${buildid} ${i} 2 done wait else From owner-svn-src-projects@FreeBSD.ORG Fri Apr 29 21:02:47 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F2B14106566B; Fri, 29 Apr 2011 21:02:47 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DA3C38FC0A; Fri, 29 Apr 2011 21:02:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3TL2lQG015419; Fri, 29 Apr 2011 21:02:47 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3TL2lKr015417; Fri, 29 Apr 2011 21:02:47 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104292102.p3TL2lKr015417@svn.freebsd.org> From: Marcel Moolenaar Date: Fri, 29 Apr 2011 21:02:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221225 - projects/altix/sys/ia64/ia64 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2011 21:02:48 -0000 Author: marcel Date: Fri Apr 29 21:02:47 2011 New Revision: 221225 URL: http://svn.freebsd.org/changeset/base/221225 Log: Put debug printf under bootverbose. Modified: projects/altix/sys/ia64/ia64/interrupt.c Modified: projects/altix/sys/ia64/ia64/interrupt.c ============================================================================== --- projects/altix/sys/ia64/ia64/interrupt.c Fri Apr 29 20:55:15 2011 (r221224) +++ projects/altix/sys/ia64/ia64/interrupt.c Fri Apr 29 21:02:47 2011 (r221225) @@ -423,7 +423,9 @@ ia64_ih_irq(struct thread *td, u_int xiv PCPU_INC(md.stats.pcs_nhwints); - printf("INTR: ITC=%u, XIV=%u\n", (u_int)tf->tf_special.ifa, xiv); + if (bootverbose) + printf("INTR: ITC=%u, XIV=%u\n", (u_int)tf->tf_special.ifa, + xiv); /* Find the interrupt thread for this XIV. */ i = ia64_intrs[xiv]; From owner-svn-src-projects@FreeBSD.ORG Fri Apr 29 21:09:03 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B00151065673; Fri, 29 Apr 2011 21:09:03 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 938058FC14; Fri, 29 Apr 2011 21:09:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3TL93dG015643; Fri, 29 Apr 2011 21:09:03 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3TL93LI015640; Fri, 29 Apr 2011 21:09:03 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104292109.p3TL93LI015640@svn.freebsd.org> From: Marcel Moolenaar Date: Fri, 29 Apr 2011 21:09:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221226 - projects/altix/sys/ia64/ia64 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2011 21:09:03 -0000 Author: marcel Date: Fri Apr 29 21:09:03 2011 New Revision: 221226 URL: http://svn.freebsd.org/changeset/base/221226 Log: Complete the AP wake-up revamp. Modified: projects/altix/sys/ia64/ia64/mp_locore.S projects/altix/sys/ia64/ia64/mp_machdep.c Modified: projects/altix/sys/ia64/ia64/mp_locore.S ============================================================================== --- projects/altix/sys/ia64/ia64/mp_locore.S Fri Apr 29 21:02:47 2011 (r221225) +++ projects/altix/sys/ia64/ia64/mp_locore.S Fri Apr 29 21:09:03 2011 (r221226) @@ -43,62 +43,81 @@ .align 32 ENTRY_NOPROFILE(os_boot_rendez,0) { .mmi + st8 [gp] = gp // trace = 0x00 mov r8 = cr.ivr // clear IRR bit + add r2 = 8, gp ;; - srlz.d - mov r16 = (IA64_PBVM_RR << 8) | (IA64_PBVM_PAGE_SHIFT << 2) } { .mmi + srlz.d mov cr.eoi = r0 // ACK the wake-up + add r3 = 16, gp ;; +} +{ .mmi srlz.d - dep.z r17 = IA64_PBVM_RR, 61, 3 + rsm IA64_PSR_IC | IA64_PSR_I + mov r16 = (IA64_PBVM_RR << 8) | (IA64_PBVM_PAGE_SHIFT << 2) ;; } { .mmi - rsm IA64_PSR_IC | IA64_PSR_I - mov rr[r17] = r16 - add r2 = 8, r1 + srlz.d + st8 [gp] = r2 // trace = 0x08 + dep.z r17 = IA64_PBVM_RR, 61, 3 ;; } { .mlx + mov rr[r17] = r16 + movl r18 = IA64_PBVM_PGTBL + ;; +} +{ .mmi srlz.i - movl r16 = IA64_PBVM_PGTBL + ;; + st8 [gp] = r3 // trace = 0x10 + nop 0 ;; } { .mmi - ld8 r17 = [r1], 16 // as_pgtbl_pte - ld8 r18 = [r2], 16 // as_pgtbl_itir - mov r8 = r0 + ld8 r16 = [r2], 16 // as_pgtbl_pte + ld8 r17 = [r3], 16 // as_pgtbl_itir + nop 0 ;; } { .mmi - mov cr.ifa = r16 - mov cr.itir = r18 - mov r9 = r0 + mov cr.itir = r17 + mov cr.ifa = r18 + nop 0 ;; } { .mmi srlz.d - ptr.d r16, r18 + ptr.d r18, r17 nop 0 ;; } { .mmi srlz.d - itr.d dtr[r8] = r17 - nop 0 + st8 [gp] = r2 // trace = 0x18 + mov r8 = r0 ;; } { .mmi + itr.d dtr[r8] = r16 + ;; srlz.d - ld8 r16 = [r1], 16 // as_text_va + mov r9 = r0 + ;; +} +{ .mmi + ld8 r16 = [r2], 16 // as_text_va + st8 [gp] = r3 // trace = 0x20 add r8 = 1, r8 ;; } { .mmi - ld8 r17 = [r2], 16 // as_text_pte - ld8 r18 = [r1], 16 // as_text_itir + ld8 r17 = [r3], 16 // as_text_pte + ld8 r18 = [r2], 16 // as_text_itir nop 0 ;; } @@ -116,12 +135,18 @@ ENTRY_NOPROFILE(os_boot_rendez,0) } { .mmi srlz.d - itr.d dtr[r8] = r17 + st8 [gp] = r3 // trace = 0x30 nop 0 ;; } { .mmi + itr.d dtr[r8] = r17 + ;; srlz.d + nop 0 +} +{ .mmi + st8 [gp] = r2 // trace = 0x38 ptr.i r16, r18 add r8 = 1, r8 ;; @@ -136,42 +161,51 @@ ENTRY_NOPROFILE(os_boot_rendez,0) { .mmi srlz.i ;; - ld8 r16 = [r2], 16 // as_data_va + ld8 r16 = [r3], 16 // as_data_va add r9 = 1, r9 ;; } { .mmi - ld8 r17 = [r1], 16 // as_data_pte - ld8 r18 = [r2], 16 // as_data_itir + st8 [gp] = r3 // trace = 0x40 + ld8 r17 = [r2], 16 // as_data_pte nop 0 ;; } { .mmi mov cr.ifa = r16 - mov cr.itir = r18 + ld8 r18 = [r3], 16 // as_data_itir nop 0 ;; } { .mmi + mov cr.itir = r18 + ;; srlz.d - ptr.d r16, r18 nop 0 ;; } { .mmi + ptr.d r16, r18 + ;; srlz.d - itr.d dtr[r8] = r17 mov r19 = IA64_DCR_DEFAULT ;; } { .mmi + itr.d dtr[r8] = r17 + ;; srlz.d - ld8 r16 = [r1], 16 // as_kstack add r8 = 1, r8 ;; } { .mmi - ld8 r17 = [r2], 16 // as_kstack_top + st8 [gp] = r2 // trace = 0x48 + ;; + ld8 r16 = [r2], 16 // as_kstack + nop 0 +} +{ .mmi + ld8 r17 = [r3], 16 // as_kstack_top mov cr.dcr = r19 nop 0 ;; @@ -182,52 +216,50 @@ ENTRY_NOPROFILE(os_boot_rendez,0) IA64_PSR_RT | IA64_PSR_DFH ;; } -1: -{ .mii +{ .mlx mov cr.ipsr = r18 - mov r19 = ip + movl r19 = ia64_vector_table // set up IVT early ;; - add r19 = 2f-1b, r19 +} +{ .mlx + mov cr.iva = r19 + movl r18 = 1f ;; } { .mmi + mov cr.iip = r18 mov cr.ifs = r0 - mov cr.iip = r19 nop 0 ;; } - +{ .mmb + srlz.d + st8 [gp] = r2 // trace = 0x58 rfi ;; +} .align 32 -2: +1: { .mlx - mov ar.rsc = 0 - movl r18 = ia64_vector_table // set up IVT early + mov ar.bspstore = r16 + movl gp = __gp ;; } { .mmi - mov cr.iva = r18 - ;; - srlz.i + loadrs + add sp = -16, r17 nop 0 ;; } -{ .mlx - mov ar.bspstore = r16 - movl gp = __gp - ;; -} { .mmi - loadrs + mov ar.rsc = 3 ;; alloc r18 = ar.pfs, 0, 0, 0, 0 - add sp = -16, r17 ;; } { .mib - mov ar.rsc = 3 + nop 0 nop 0 br.call.sptk.few rp = ia64_ap_startup ;; Modified: projects/altix/sys/ia64/ia64/mp_machdep.c ============================================================================== --- projects/altix/sys/ia64/ia64/mp_machdep.c Fri Apr 29 21:02:47 2011 (r221225) +++ projects/altix/sys/ia64/ia64/mp_machdep.c Fri Apr 29 21:09:03 2011 (r221226) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -62,6 +63,8 @@ __FBSDID("$FreeBSD$"); #include #include +extern uint64_t bdata[]; + MALLOC_DEFINE(M_SMP, "SMP", "SMP related allocations"); void ia64_ap_startup(void); @@ -81,6 +84,21 @@ int ia64_ipi_rndzvs; int ia64_ipi_stop; static u_int +sz2shft(uint64_t sz) +{ + uint64_t s; + u_int shft; + + shft = 12; /* Start with 4K */ + s = 1 << shft; + while (s < sz) { + shft++; + s <<= 1; + } + return (shft); +} + +static u_int ia64_ih_ast(struct thread *td, u_int xiv, struct trapframe *tf) { @@ -174,14 +192,25 @@ ia64_ap_startup(void) { uint64_t vhpt; + ia64_ap_state.as_trace = 0x100; + + ia64_set_rr(IA64_RR_BASE(5), (5 << 8) | (PAGE_SHIFT << 2) | 1); + ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (PAGE_SHIFT << 2)); + ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (PAGE_SHIFT << 2)); + ia64_srlz_d(); + pcpup = ia64_ap_state.as_pcpu; ia64_set_k4((intptr_t)pcpup); + ia64_ap_state.as_trace = 0x108; + vhpt = PCPU_GET(md.vhpt); map_vhpt(vhpt); ia64_set_pta(vhpt + (1 << 8) + (pmap_vhpt_log2size << 2) + 1); ia64_srlz_i(); + ia64_ap_state.as_trace = 0x110; + ia64_ap_state.as_awake = 1; ia64_ap_state.as_delay = 0; @@ -301,48 +330,73 @@ cpu_mp_start() struct ia64_sal_result result; struct ia64_fdesc *fd; struct pcpu *pc; + uintptr_t state; u_char *stp; - ia64_ap_state.as_spin = 1; - + state = ia64_tpa((uintptr_t)&ia64_ap_state); fd = (struct ia64_fdesc *) os_boot_rendez; result = ia64_sal_entry(SAL_SET_VECTORS, SAL_OS_BOOT_RENDEZ, - ia64_tpa(fd->func), ia64_tpa((uintptr_t)&ia64_ap_state), - 0, 0, 0, 0); + ia64_tpa(fd->func), state, 0, 0, 0, 0); + + ia64_ap_state.as_pgtbl_pte = PTE_PRESENT | PTE_MA_WB | + PTE_ACCESSED | PTE_DIRTY | PTE_PL_KERN | PTE_AR_RW | + (bootinfo->bi_pbvm_pgtbl & PTE_PPN_MASK); + ia64_ap_state.as_pgtbl_itir = sz2shft(bootinfo->bi_pbvm_pgtblsz) << 2; + ia64_ap_state.as_text_va = IA64_PBVM_BASE; + ia64_ap_state.as_text_pte = PTE_PRESENT | PTE_MA_WB | + PTE_ACCESSED | PTE_DIRTY | PTE_PL_KERN | PTE_AR_RX | + (ia64_tpa(IA64_PBVM_BASE) & PTE_PPN_MASK); + ia64_ap_state.as_text_itir = bootinfo->bi_text_mapped << 2; + ia64_ap_state.as_data_va = (uintptr_t)bdata; + ia64_ap_state.as_data_pte = PTE_PRESENT | PTE_MA_WB | + PTE_ACCESSED | PTE_DIRTY | PTE_PL_KERN | PTE_AR_RW | + (ia64_tpa((uintptr_t)bdata) & PTE_PPN_MASK); + ia64_ap_state.as_data_itir = bootinfo->bi_data_mapped << 2; + + /* Keep 'em spinning until we unleash them... */ + ia64_ap_state.as_spin = 1; SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { pc->pc_md.current_pmap = kernel_pmap; pc->pc_other_cpus = all_cpus & ~pc->pc_cpumask; - if (pc->pc_cpuid > 0) { - ia64_ap_state.as_pcpu = pc; - pc->pc_md.vhpt = pmap_alloc_vhpt(); - if (pc->pc_md.vhpt == 0) { - printf("SMP: WARNING: unable to allocate VHPT" - " for cpu%d", pc->pc_cpuid); - continue; - } - stp = malloc(KSTACK_PAGES * PAGE_SIZE, M_SMP, M_WAITOK); - ia64_ap_state.as_kstack = stp; - ia64_ap_state.as_kstack_top = stp + KSTACK_PAGES * - PAGE_SIZE - 16; - ia64_ap_state.as_delay = 2000; - ia64_ap_state.as_awake = 0; - - if (bootverbose) - printf("SMP: waking up cpu%d\n", pc->pc_cpuid); - - ipi_send(pc, ia64_ipi_wakeup); - - do { - DELAY(1000); - } while (--ia64_ap_state.as_delay > 0); - pc->pc_md.awake = ia64_ap_state.as_awake; - - if (!ia64_ap_state.as_awake) - printf("SMP: WARNING: cpu%d did not wake up\n", - pc->pc_cpuid); - } else + /* The BSP is obviously running already. */ + if (pc->pc_cpuid == 0) { pc->pc_md.awake = 1; + continue; + } + + ia64_ap_state.as_pcpu = pc; + pc->pc_md.vhpt = pmap_alloc_vhpt(); + if (pc->pc_md.vhpt == 0) { + printf("SMP: WARNING: unable to allocate VHPT" + " for cpu%d", pc->pc_cpuid); + continue; + } + + stp = malloc(KSTACK_PAGES * PAGE_SIZE, M_SMP, M_WAITOK); + ia64_ap_state.as_kstack = stp; + ia64_ap_state.as_kstack_top = stp + KSTACK_PAGES * PAGE_SIZE; + + ia64_ap_state.as_trace = 0; + ia64_ap_state.as_delay = 2000; + ia64_ap_state.as_awake = 0; + + if (bootverbose) + printf("SMP: waking up cpu%d\n", pc->pc_cpuid); + + /* Here she goes... */ + ipi_send(pc, ia64_ipi_wakeup); + do { + DELAY(1000); + } while (--ia64_ap_state.as_delay > 0); + + pc->pc_md.awake = ia64_ap_state.as_awake; + + if (!ia64_ap_state.as_awake) { + printf("SMP: WARNING: cpu%d did not wake up (code " + "%#lx)\n", pc->pc_cpuid, + ia64_ap_state.as_trace - state); + } } } From owner-svn-src-projects@FreeBSD.ORG Fri Apr 29 21:10:46 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0041E1065672; Fri, 29 Apr 2011 21:10:45 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E492E8FC1F; Fri, 29 Apr 2011 21:10:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3TLAjHv015775; Fri, 29 Apr 2011 21:10:45 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3TLAjl4015773; Fri, 29 Apr 2011 21:10:45 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104292110.p3TLAjl4015773@svn.freebsd.org> From: Marcel Moolenaar Date: Fri, 29 Apr 2011 21:10:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221228 - projects/altix/sys/ia64/include X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2011 21:10:46 -0000 Author: marcel Date: Fri Apr 29 21:10:45 2011 New Revision: 221228 URL: http://svn.freebsd.org/changeset/base/221228 Log: o Add as_trace field. o as_delay must be signed as it can drop below 0. Modified: projects/altix/sys/ia64/include/smp.h Modified: projects/altix/sys/ia64/include/smp.h ============================================================================== --- projects/altix/sys/ia64/include/smp.h Fri Apr 29 21:10:41 2011 (r221227) +++ projects/altix/sys/ia64/include/smp.h Fri Apr 29 21:10:45 2011 (r221228) @@ -17,6 +17,7 @@ struct pcpu; struct ia64_ap_state { + uint64_t as_trace; uint64_t as_pgtbl_pte; uint64_t as_pgtbl_itir; uint64_t as_text_va; @@ -28,7 +29,7 @@ struct ia64_ap_state { void *as_kstack; void *as_kstack_top; struct pcpu *as_pcpu; - volatile u_int as_delay; + volatile int as_delay; volatile u_int as_awake; volatile u_int as_spin; }; From owner-svn-src-projects@FreeBSD.ORG Fri Apr 29 21:19:30 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D09771065688; Fri, 29 Apr 2011 21:19:30 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C07158FC19; Fri, 29 Apr 2011 21:19:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3TLJUM5016130; Fri, 29 Apr 2011 21:19:30 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3TLJU0G016128; Fri, 29 Apr 2011 21:19:30 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104292119.p3TLJU0G016128@svn.freebsd.org> From: Marcel Moolenaar Date: Fri, 29 Apr 2011 21:19:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221230 - projects/altix/sys/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2011 21:19:30 -0000 Author: marcel Date: Fri Apr 29 21:19:30 2011 New Revision: 221230 URL: http://svn.freebsd.org/changeset/base/221230 Log: Provide symbol bdata to mark the base of the data segment. Modified: projects/altix/sys/conf/ldscript.ia64 Modified: projects/altix/sys/conf/ldscript.ia64 ============================================================================== --- projects/altix/sys/conf/ldscript.ia64 Fri Apr 29 21:18:41 2011 (r221229) +++ projects/altix/sys/conf/ldscript.ia64 Fri Apr 29 21:19:30 2011 (r221230) @@ -60,6 +60,7 @@ SECTIONS page in the loader virtual memory. */ . = ALIGN(65536); + PROVIDE (bdata = .); .data : { *(.ivt.data) From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 01:49:36 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9FD76106564A; Sat, 30 Apr 2011 01:49:36 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8F25B8FC17; Sat, 30 Apr 2011 01:49:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3U1nae0024443; Sat, 30 Apr 2011 01:49:36 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3U1nahm024441; Sat, 30 Apr 2011 01:49:36 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201104300149.p3U1nahm024441@svn.freebsd.org> From: Mark Linimon Date: Sat, 30 Apr 2011 01:49:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221239 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 01:49:36 -0000 Author: linimon (doc,ports committer) Date: Sat Apr 30 01:49:36 2011 New Revision: 221239 URL: http://svn.freebsd.org/changeset/base/221239 Log: Fix a bogus error message. Modified: projects/portbuild/scripts/dosetupnode Modified: projects/portbuild/scripts/dosetupnode ============================================================================== --- projects/portbuild/scripts/dosetupnode Sat Apr 30 01:29:18 2011 (r221238) +++ projects/portbuild/scripts/dosetupnode Sat Apr 30 01:49:36 2011 (r221239) @@ -67,7 +67,7 @@ setup() { fi cmdpath=$(cat ${pbc}/scripts/setupnode | ssh -a ${client_user}@${node} 't=$(mktemp -t setupnode); cat >$t; echo $t; chmod 755 $t') - case ${cmdpath} in /tmp/*) ;; *) echo "Failed to scp claim-chroot to ${host}."; return 1;; esac + case ${cmdpath} in /tmp/*) ;; *) echo "Failed to run dosetupnode on ${host}."; return 1;; esac client_setup="${ssh_cmd} -n ${client_user}@${node} ${cmdpath} ${pbd} ${arch} ${branch} ${buildid} ${scratchdir} \"${portsmd5}\" \"${srcmd5}\" \"${bindistmd5}\"" args="${nocopy} ${force}" From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 02:44:15 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C80BD106566B; Sat, 30 Apr 2011 02:44:15 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B83958FC08; Sat, 30 Apr 2011 02:44:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3U2iFm3026143; Sat, 30 Apr 2011 02:44:15 GMT (envelope-from linimon@svn.freebsd.org) Received: (from linimon@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3U2iFRm026141; Sat, 30 Apr 2011 02:44:15 GMT (envelope-from linimon@svn.freebsd.org) Message-Id: <201104300244.p3U2iFRm026141@svn.freebsd.org> From: Mark Linimon Date: Sat, 30 Apr 2011 02:44:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221241 - projects/portbuild/scripts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 02:44:15 -0000 Author: linimon (doc,ports committer) Date: Sat Apr 30 02:44:15 2011 New Revision: 221241 URL: http://svn.freebsd.org/changeset/base/221241 Log: Bomb out if there are no bindist files. While here, remove an antique line. Modified: projects/portbuild/scripts/dopackages Modified: projects/portbuild/scripts/dopackages ============================================================================== --- projects/portbuild/scripts/dopackages Sat Apr 30 02:31:56 2011 (r221240) +++ projects/portbuild/scripts/dopackages Sat Apr 30 02:44:15 2011 (r221241) @@ -403,6 +403,14 @@ if [ "$trybroken" = 1 ]; then export TRYBROKEN=1 fi +builddir=${pbab}/builds/${buildid} + +# bomb out if there are no bindist files +if [ ! -f ${builddir}/bindist.tbz -o ! -f ${builddir}/bindist.tbz.md5 ]; then + echo "missing bindist.tbz and/or bindist.tbz.md5; exiting script at $(date)." + mailexit 1 +fi + # Start setting up build environment if [ "${skipstart}" -eq 0 ]; then @@ -413,10 +421,9 @@ if [ "${skipstart}" -eq 0 ]; then # MCL dopackages: "build create arch branch" build clone ${arch} ${branch} ${buildid} ${newbuildid} buildid=${newbuildid} + builddir=${pbab}/builds/${buildid} fi -builddir=${pbab}/builds/${buildid} - # bomb out if build clone failed if [ ! -d ${builddir} ]; then mailexit 1 @@ -692,8 +699,6 @@ fi cd ${builddir}/packages/All if [ "$nofinish" = 0 ]; then - rm -f Makefile - if [ "$norestr" = 0 ]; then # Before deleting restricted packages, save a copy so we don't # have to rebuild them next time From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 20:14:20 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79455106564A; Sat, 30 Apr 2011 20:14:20 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 665628FC0A; Sat, 30 Apr 2011 20:14:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3UKEKVS060592; Sat, 30 Apr 2011 20:14:20 GMT (envelope-from flz@svn.freebsd.org) Received: (from flz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3UKEK1P060590; Sat, 30 Apr 2011 20:14:20 GMT (envelope-from flz@svn.freebsd.org) Message-Id: <201104302014.p3UKEK1P060590@svn.freebsd.org> From: Florent Thoumie Date: Sat, 30 Apr 2011 20:14:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221268 - projects/portbuild/qmanager X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 20:14:20 -0000 Author: flz Date: Sat Apr 30 20:14:20 2011 New Revision: 221268 URL: http://svn.freebsd.org/changeset/base/221268 Log: portbuild: various fixes. - Fix path to portbuild now that per-build scripts are in /tmp/${buildid}. - Resolve buildid, in case it's "latest" or "previous". Modified: projects/portbuild/qmanager/packagebuild Modified: projects/portbuild/qmanager/packagebuild ============================================================================== --- projects/portbuild/qmanager/packagebuild Sat Apr 30 17:59:54 2011 (r221267) +++ projects/portbuild/qmanager/packagebuild Sat Apr 30 20:14:20 2011 (r221268) @@ -411,7 +411,6 @@ class worker(threading.Thread): self.branch = branch self.buildid = buildid self.queue = queue - self.basedir = pbd+"/"+arch+"/"+branch+"/builds/"+buildid self.setDaemon(True) @@ -437,7 +436,7 @@ class worker(threading.Thread): build = subprocess.Popen( ["/bin/sh", "%s/scripts/pdispatch" % pbc, self.arch, self.branch, self.buildid, self.machine, - "%s/scripts/portbuild" % self.basedir, "%s.tbz" % pkg.name, + "/tmp/%s/scripts/portbuild" % self.buildid, "%s.tbz" % pkg.name, pkg.path], env=runenv, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, bufsize=0) @@ -509,7 +508,8 @@ class worker(threading.Thread): def main(arch, branch, buildid, args): global index - basedir=pbd+"/"+arch+"/"+branch+"/builds/"+buildid + basedir=os.path.realpath(pbd+"/"+arch+"/"+branch+"/builds/"+buildid) + buildid=basedir.split("/")[-1] portsdir=basedir+"/ports" # get the major branch number. From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 21:00:37 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A00301065674; Sat, 30 Apr 2011 21:00:37 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 89B968FC17; Sat, 30 Apr 2011 21:00:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3UL0b8O062133; Sat, 30 Apr 2011 21:00:37 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3UL0b9B062111; Sat, 30 Apr 2011 21:00:37 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104302100.p3UL0b9B062111@svn.freebsd.org> From: Marcel Moolenaar Date: Sat, 30 Apr 2011 21:00:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221272 - in projects/altix/sys: amd64/amd64 amd64/conf amd64/include arm/arm arm/conf boot/i386/boot2 boot/i386/common boot/i386/zfsboot boot/ia64/common boot/ia64/efi cam cddl/contrib... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 21:00:37 -0000 Author: marcel Date: Sat Apr 30 21:00:36 2011 New Revision: 221272 URL: http://svn.freebsd.org/changeset/base/221272 Log: Merge svn+ssh://svn.freebsd.org/base/head@221271 Added: projects/altix/sys/dev/ath/ath_hal/ar9001/ar9130.ini - copied unchanged from r221271, head/sys/dev/ath/ath_hal/ar9001/ar9130.ini projects/altix/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c - copied unchanged from r221271, head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c projects/altix/sys/dev/ath/ath_hal/ar9001/ar9130_eeprom.c - copied unchanged from r221271, head/sys/dev/ath/ath_hal/ar9001/ar9130_eeprom.c projects/altix/sys/dev/ath/ath_hal/ar9001/ar9130_eeprom.h - copied unchanged from r221271, head/sys/dev/ath/ath_hal/ar9001/ar9130_eeprom.h projects/altix/sys/dev/ath/ath_hal/ar9001/ar9130_phy.c - copied unchanged from r221271, head/sys/dev/ath/ath_hal/ar9001/ar9130_phy.c projects/altix/sys/dev/ath/ath_hal/ar9001/ar9130_phy.h - copied unchanged from r221271, head/sys/dev/ath/ath_hal/ar9001/ar9130_phy.h projects/altix/sys/dev/ath/ath_hal/ar9001/ar9130reg.h - copied unchanged from r221271, head/sys/dev/ath/ath_hal/ar9001/ar9130reg.h projects/altix/sys/dev/vxge/ - copied from r221271, head/sys/dev/vxge/ projects/altix/sys/mips/atheros/ar724x_pci.c - copied unchanged from r221271, head/sys/mips/atheros/ar724x_pci.c projects/altix/sys/mips/conf/PB92 - copied unchanged from r221271, head/sys/mips/conf/PB92 projects/altix/sys/mips/conf/PB92.hints - copied unchanged from r221271, head/sys/mips/conf/PB92.hints projects/altix/sys/modules/vxge/ - copied from r221271, head/sys/modules/vxge/ Modified: projects/altix/sys/amd64/amd64/identcpu.c projects/altix/sys/amd64/amd64/minidump_machdep.c projects/altix/sys/amd64/conf/GENERIC projects/altix/sys/amd64/include/specialreg.h projects/altix/sys/arm/arm/dump_machdep.c projects/altix/sys/arm/arm/minidump_machdep.c projects/altix/sys/arm/arm/nexus.c projects/altix/sys/arm/conf/CAMBRIA projects/altix/sys/boot/i386/boot2/Makefile projects/altix/sys/boot/i386/common/drv.c projects/altix/sys/boot/i386/zfsboot/Makefile projects/altix/sys/boot/i386/zfsboot/zfsldr.S projects/altix/sys/boot/ia64/common/copy.c projects/altix/sys/boot/ia64/efi/efimd.c projects/altix/sys/cam/cam_xpt.c projects/altix/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h projects/altix/sys/conf/NOTES projects/altix/sys/conf/files projects/altix/sys/conf/kern.pre.mk projects/altix/sys/conf/options projects/altix/sys/contrib/pf/net/if_pflog.c projects/altix/sys/contrib/pf/net/pf.c projects/altix/sys/contrib/pf/net/pf_ioctl.c projects/altix/sys/ddb/db_command.c projects/altix/sys/ddb/db_ps.c projects/altix/sys/dev/ath/ath_hal/ah.c projects/altix/sys/dev/ath/ath_hal/ah_devid.h projects/altix/sys/dev/ath/ath_hal/ah_eeprom_v14.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar2133.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_power.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/altix/sys/dev/ath/ath_hal/ar5416/ar5416reg.h projects/altix/sys/dev/ath/if_ath.c projects/altix/sys/dev/ath/if_ath_ahb.c projects/altix/sys/dev/e1000/if_igb.h projects/altix/sys/dev/fdt/fdtbus.c projects/altix/sys/dev/ixgbe/ixgbe.h projects/altix/sys/dev/md/md.c projects/altix/sys/dev/pci/pci.c projects/altix/sys/dev/puc/pucdata.c projects/altix/sys/dev/usb/net/if_mos.c projects/altix/sys/dev/usb/wlan/if_rum.c projects/altix/sys/dev/watchdog/watchdog.c projects/altix/sys/dev/xen/netfront/netfront.c projects/altix/sys/fs/ext2fs/ext2_alloc.c projects/altix/sys/fs/ext2fs/ext2_balloc.c projects/altix/sys/fs/ext2fs/ext2_dinode.h projects/altix/sys/fs/ext2fs/ext2_dir.h projects/altix/sys/fs/ext2fs/ext2_extern.h projects/altix/sys/fs/ext2fs/ext2_inode.c projects/altix/sys/fs/ext2fs/ext2_lookup.c projects/altix/sys/fs/ext2fs/ext2_readwrite.c projects/altix/sys/fs/ext2fs/ext2_vfsops.c projects/altix/sys/fs/ext2fs/ext2_vnops.c projects/altix/sys/fs/ext2fs/ext2fs.h projects/altix/sys/fs/ext2fs/inode.h projects/altix/sys/fs/nfsclient/nfs_clvfsops.c projects/altix/sys/i386/conf/GENERIC projects/altix/sys/i386/i386/identcpu.c projects/altix/sys/i386/i386/minidump_machdep.c projects/altix/sys/i386/include/specialreg.h projects/altix/sys/ia64/conf/ALTIX projects/altix/sys/ia64/conf/GENERIC projects/altix/sys/ia64/ia64/dump_machdep.c projects/altix/sys/ia64/ia64/nexus.c projects/altix/sys/kern/bus_if.m projects/altix/sys/kern/kern_shutdown.c projects/altix/sys/kern/subr_bus.c projects/altix/sys/kern/subr_rman.c projects/altix/sys/kern/vfs_subr.c projects/altix/sys/mips/atheros/apb.c projects/altix/sys/mips/atheros/ar71xx_chip.c projects/altix/sys/mips/atheros/ar71xx_cpudef.h projects/altix/sys/mips/atheros/ar71xx_pci.c projects/altix/sys/mips/atheros/ar724x_chip.c projects/altix/sys/mips/atheros/ar724xreg.h projects/altix/sys/mips/atheros/ar91xx_chip.c projects/altix/sys/mips/atheros/files.ar71xx projects/altix/sys/mips/conf/AR71XX projects/altix/sys/mips/conf/AR91XX_BASE projects/altix/sys/mips/mips/dump_machdep.c projects/altix/sys/mips/mips/mainbus.c projects/altix/sys/mips/mips/nexus.c projects/altix/sys/mips/rmi/xlr_pci.c projects/altix/sys/modules/Makefile projects/altix/sys/modules/ath/Makefile projects/altix/sys/modules/ext2fs/Makefile projects/altix/sys/modules/if_carp/Makefile projects/altix/sys/net/if_enc.c projects/altix/sys/net/if_lagg.c projects/altix/sys/netinet/in_pcb.c projects/altix/sys/netinet/ip_carp.c projects/altix/sys/netinet/ip_icmp.c projects/altix/sys/netinet/ip_input.c projects/altix/sys/netinet/raw_ip.c projects/altix/sys/netinet/sctp_asconf.c projects/altix/sys/netinet/sctp_bsd_addr.c projects/altix/sys/netinet/sctp_input.c projects/altix/sys/netinet/sctp_output.c projects/altix/sys/netinet/sctp_pcb.c projects/altix/sys/netinet/sctp_sysctl.c projects/altix/sys/netinet/sctp_usrreq.c projects/altix/sys/netinet/sctp_var.h projects/altix/sys/netinet/sctputil.c projects/altix/sys/netinet/tcp_input.c projects/altix/sys/netinet/tcp_output.c projects/altix/sys/netinet/tcp_subr.c projects/altix/sys/netinet/tcp_syncache.c projects/altix/sys/netinet/tcp_timer.c projects/altix/sys/netinet/tcp_timewait.c projects/altix/sys/netinet/tcp_usrreq.c projects/altix/sys/netinet/tcp_var.h projects/altix/sys/netinet/udp_usrreq.c projects/altix/sys/netinet6/in6_pcb.c projects/altix/sys/netinet6/ip6_ipsec.c projects/altix/sys/netinet6/sctp6_usrreq.c projects/altix/sys/netinet6/udp6_usrreq.c projects/altix/sys/netipsec/ipsec_input.c projects/altix/sys/netipsec/ipsec_output.c projects/altix/sys/netipsec/key.c projects/altix/sys/netipsec/xform_ah.c projects/altix/sys/netipsec/xform_esp.c projects/altix/sys/netipsec/xform_ipcomp.c projects/altix/sys/netipsec/xform_ipip.c projects/altix/sys/nfsclient/nfs_vfsops.c projects/altix/sys/pc98/conf/GENERIC projects/altix/sys/powerpc/conf/GENERIC projects/altix/sys/powerpc/conf/GENERIC64 projects/altix/sys/powerpc/powerpc/dump_machdep.c projects/altix/sys/rpc/clnt.h projects/altix/sys/rpc/clnt_rc.c projects/altix/sys/rpc/clnt_vc.c projects/altix/sys/rpc/rpcb_clnt.c projects/altix/sys/sparc64/conf/GENERIC projects/altix/sys/sun4v/conf/GENERIC projects/altix/sys/sys/bus.h projects/altix/sys/sys/rman.h projects/altix/sys/sys/watchdog.h projects/altix/sys/ufs/ffs/ffs_vnops.c projects/altix/sys/x86/x86/dump_machdep.c projects/altix/sys/x86/x86/nexus.c projects/altix/sys/x86/x86/tsc.c Directory Properties: projects/altix/lib/libstand/ (props changed) projects/altix/sys/ (props changed) projects/altix/sys/amd64/include/xen/ (props changed) projects/altix/sys/boot/i386/efi/ (props changed) projects/altix/sys/boot/ia64/efi/ (props changed) projects/altix/sys/boot/ia64/ski/ (props changed) projects/altix/sys/boot/powerpc/boot1.chrp/ (props changed) projects/altix/sys/boot/powerpc/ofw/ (props changed) projects/altix/sys/cddl/contrib/opensolaris/ (props changed) projects/altix/sys/conf/ (props changed) projects/altix/sys/contrib/dev/acpica/ (props changed) projects/altix/sys/contrib/octeon-sdk/ (props changed) projects/altix/sys/contrib/pf/ (props changed) projects/altix/sys/contrib/x86emu/ (props changed) projects/altix/sys/kern/subr_busdma.c (props changed) Modified: projects/altix/sys/amd64/amd64/identcpu.c ============================================================================== --- projects/altix/sys/amd64/amd64/identcpu.c Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/amd64/amd64/identcpu.c Sat Apr 30 21:00:36 2011 (r221272) @@ -296,7 +296,7 @@ printcpuinfo(void) "\035" "\036" "\037" - "\040" + "\040HV" /* Hypervisor */ ); } Modified: projects/altix/sys/amd64/amd64/minidump_machdep.c ============================================================================== --- projects/altix/sys/amd64/amd64/minidump_machdep.c Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/amd64/amd64/minidump_machdep.c Sat Apr 30 21:00:36 2011 (r221272) @@ -27,6 +27,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_watchdog.h" + #include #include #include @@ -34,6 +36,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef SW_WATCHDOG +#include +#endif #include #include #include @@ -167,6 +172,9 @@ blk_write(struct dumperinfo *di, char *p report_progress(progress, dumpsize); counter &= (1<<24) - 1; } +#ifdef SW_WATCHDOG + wdog_kern_pat(WD_LASTVAL); +#endif if (ptr) { error = dump_write(di, ptr, 0, dumplo, len); if (error) Modified: projects/altix/sys/amd64/conf/GENERIC ============================================================================== --- projects/altix/sys/amd64/conf/GENERIC Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/amd64/conf/GENERIC Sat Apr 30 21:00:36 2011 (r221272) @@ -34,8 +34,8 @@ options UFS_ACL # Support for access options UFS_DIRHASH # Improve performance on big directories options UFS_GJOURNAL # Enable gjournal-based UFS journaling options MD_ROOT # MD is a potential root device -options NFSCLIENT # Network Filesystem Client -options NFSSERVER # Network Filesystem Server +options NFSCL # New Network Filesystem Client +options NFSD # New Network Filesystem Server options NFSLOCKD # Network Lock Manager options NFS_ROOT # NFS usable as /, requires NFSCLIENT options MSDOSFS # MSDOS Filesystem @@ -316,6 +316,7 @@ device udav # Davicom DM9601E USB device rum # Ralink Technology RT2501USB wireless NICs device uath # Atheros AR5523 wireless NICs device ural # Ralink Technology RT2500USB wireless NICs +device urtw # Realtek RTL8187B/L wireless NICs device zyd # ZyDAS zb1211/zb1211b wireless NICs # FireWire support Modified: projects/altix/sys/amd64/include/specialreg.h ============================================================================== --- projects/altix/sys/amd64/include/specialreg.h Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/amd64/include/specialreg.h Sat Apr 30 21:00:36 2011 (r221272) @@ -134,6 +134,7 @@ #define CPUID2_MOVBE 0x00400000 #define CPUID2_POPCNT 0x00800000 #define CPUID2_AESNI 0x02000000 +#define CPUID2_HV 0x80000000 /* * Important bits in the Thermal and Power Management flags Modified: projects/altix/sys/arm/arm/dump_machdep.c ============================================================================== --- projects/altix/sys/arm/arm/dump_machdep.c Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/arm/arm/dump_machdep.c Sat Apr 30 21:00:36 2011 (r221272) @@ -27,6 +27,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_watchdog.h" + #include #include #include @@ -35,6 +37,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef SW_WATCHDOG +#include +#endif #include #include #include @@ -189,6 +194,9 @@ cb_dumpdata(struct md_pa *mdp, int seqnr cpu_tlb_flushID_SE(0); cpu_cpwait(); } +#ifdef SW_WATCHDOG + wdog_kern_pat(WD_LASTVAL); +#endif error = dump_write(di, (void *)(pa - (pa & L1_ADDR_BITS)),0, dumplo, sz); if (error) Modified: projects/altix/sys/arm/arm/minidump_machdep.c ============================================================================== --- projects/altix/sys/arm/arm/minidump_machdep.c Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/arm/arm/minidump_machdep.c Sat Apr 30 21:00:36 2011 (r221272) @@ -29,6 +29,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_watchdog.h" + #include #include #include @@ -36,6 +38,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef SW_WATCHDOG +#include +#endif #include #include #include @@ -138,6 +143,9 @@ blk_write(struct dumperinfo *di, char *p counter &= (1<<22) - 1; } +#ifdef SW_WATCHDOG + wdog_kern_pat(WD_LASTVAL); +#endif if (ptr) { error = dump_write(di, ptr, 0, dumplo, len); if (error) Modified: projects/altix/sys/arm/arm/nexus.c ============================================================================== --- projects/altix/sys/arm/arm/nexus.c Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/arm/arm/nexus.c Sat Apr 30 21:00:36 2011 (r221272) @@ -138,10 +138,10 @@ nexus_attach(device_t dev) { mem_rman.rm_start = 0; - mem_rman.rm_end = ~0u; + mem_rman.rm_end = ~0ul; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory addresses"; - if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, 0, ~0u)) + if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, 0, ~0)) panic("nexus_probe mem_rman"); /* Modified: projects/altix/sys/arm/conf/CAMBRIA ============================================================================== --- projects/altix/sys/arm/conf/CAMBRIA Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/arm/conf/CAMBRIA Sat Apr 30 21:00:36 2011 (r221272) @@ -144,7 +144,7 @@ device ath_rf5112 device ath_rf5413 # #device ath_ar5416 -#options AH_SUPPORT_AR5416 # NB: for 11n descriptor format +options AH_SUPPORT_AR5416 # NB: for 11n descriptor format #device ath_ar9160 #device ath_ar9280 Modified: projects/altix/sys/boot/i386/boot2/Makefile ============================================================================== --- projects/altix/sys/boot/i386/boot2/Makefile Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/boot/i386/boot2/Makefile Sat Apr 30 21:00:36 2011 (r221272) @@ -32,6 +32,7 @@ CFLAGS= -Os \ -mno-align-long-strings \ -mrtd \ -mregparm=3 \ + -DUSE_XREAD \ -D${BOOT2_UFS} \ -DFLAGS=${BOOT_BOOT1_FLAGS} \ -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ Modified: projects/altix/sys/boot/i386/common/drv.c ============================================================================== --- projects/altix/sys/boot/i386/common/drv.c Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/boot/i386/common/drv.c Sat Apr 30 21:00:36 2011 (r221272) @@ -26,7 +26,7 @@ __FBSDID("$FreeBSD$"); #include "rbx.h" #include "util.h" #include "drv.h" -#ifndef GPT +#ifdef USE_XREAD #include "xreadorg.h" #endif @@ -58,7 +58,7 @@ drvsize(struct dsk *dskp) } #endif /* GPT */ -#ifdef GPT +#ifndef USE_XREAD static struct { uint16_t len; uint16_t count; @@ -66,7 +66,7 @@ static struct { uint16_t seg; uint64_t lba; } packet; -#endif /* GPT */ +#endif int drvread(struct dsk *dskp, void *buf, daddr_t lba, unsigned nblk) @@ -75,7 +75,7 @@ drvread(struct dsk *dskp, void *buf, dad if (!OPT_CHECK(RBX_QUIET)) printf("%c\b", c = c << 8 | c >> 24); -#ifdef GPT +#ifndef USE_XREAD packet.len = 0x10; packet.count = nblk; packet.off = VTOPOFF(buf); @@ -87,7 +87,7 @@ drvread(struct dsk *dskp, void *buf, dad v86.edx = dskp->drive; v86.ds = VTOPSEG(&packet); v86.esi = VTOPOFF(&packet); -#else /* !GPT */ +#else /* USE_XREAD */ v86.ctl = V86_ADDR | V86_CALLF | V86_FLAGS; v86.addr = XREADORG; /* call to xread in boot1 */ v86.es = VTOPSEG(buf); @@ -95,7 +95,7 @@ drvread(struct dsk *dskp, void *buf, dad v86.ebx = VTOPOFF(buf); v86.ecx = lba >> 32; v86.edx = nblk << 8 | dskp->drive; -#endif /* !GPT */ +#endif /* USE_XREAD */ v86int(); if (V86_CY(v86.efl)) { printf("%s: error %u lba %u\n", Modified: projects/altix/sys/boot/i386/zfsboot/Makefile ============================================================================== --- projects/altix/sys/boot/i386/zfsboot/Makefile Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/boot/i386/zfsboot/Makefile Sat Apr 30 21:00:36 2011 (r221272) @@ -6,9 +6,6 @@ FILES= zfsboot NM?= nm -# A value of 0x80 enables LBA support. -BOOT_BOOT1_FLAGS?= 0x80 - BOOT_COMCONSOLE_PORT?= 0x3f8 BOOT_COMCONSOLE_SPEED?= 9600 B2SIOFMT?= 0x3 @@ -25,7 +22,6 @@ CFLAGS= -DBOOTPROG=\"zfsboot\" \ -mno-align-long-strings \ -mrtd \ -DBOOT2 \ - -DFLAGS=${BOOT_BOOT1_FLAGS} \ -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ -DSIOFMT=${B2SIOFMT} \ -DSIOSPD=${BOOT_COMCONSOLE_SPEED} \ @@ -64,8 +60,7 @@ zfsldr.out: zfsldr.o ${LD} ${LDFLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} zfsldr.o CLEANFILES+= zfsboot2 zfsboot.ld zfsboot.ldr zfsboot.bin zfsboot.out \ - zfsboot.o zfsboot.s zfsboot.s.tmp xreadorg.h sio.o cons.o \ - drv.o util.o + zfsboot.o zfsboot.s zfsboot.s.tmp sio.o cons.o drv.o util.o # We currently allow 65536 bytes for zfsboot - in practice it could be # any size up to 3.5Mb but keeping it fixed size simplifies zfsldr. @@ -92,20 +87,13 @@ zfsboot.out: ${BTXCRT} zfsboot.o sio.o d zfsboot.o: zfsboot.s -SRCS= zfsboot.c xreadorg.h +SRCS= zfsboot.c -zfsboot.s: zfsboot.c xreadorg.h ${.CURDIR}/../../zfs/zfsimpl.c +zfsboot.s: zfsboot.c ${.CURDIR}/../../zfs/zfsimpl.c ${CC} ${CFLAGS} -S -o zfsboot.s.tmp ${.CURDIR}/zfsboot.c sed -e '/align/d' -e '/nop/d' < zfsboot.s.tmp > zfsboot.s rm -f zfsboot.s.tmp -xreadorg.h: zfsldr.out - ${NM} -t d ${.ALLSRC} | awk '/([0-9])+ T xread/ \ - { x = $$1 - ORG1; \ - printf("#define XREADORG %#x\n", REL1 + x) }' \ - ORG1=`printf "%d" ${ORG1}` \ - REL1=`printf "%d" ${REL1}` > ${.TARGET} - .if ${MACHINE_CPUARCH} == "amd64" beforedepend zfsboot.s: machine CLEANFILES+= machine Modified: projects/altix/sys/boot/i386/zfsboot/zfsldr.S ============================================================================== --- projects/altix/sys/boot/i386/zfsboot/zfsldr.S Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/boot/i386/zfsboot/zfsldr.S Sat Apr 30 21:00:36 2011 (r221272) @@ -30,16 +30,12 @@ .set PRT_NUM,0x4 # Partitions .set PRT_BSD,0xa5 # Partition type -/* Flag Bits */ - .set FL_PACKET,0x80 # Packet mode - /* Misc. Constants */ .set SIZ_PAG,0x1000 # Page size .set SIZ_SEC,0x200 # Sector size .set NSECT,0x80 .globl start - .globl xread .code16 start: jmp main # Start recognizably @@ -49,7 +45,7 @@ start: jmp main # Start recognizably * FAT disks have this at the start of their MBR. While normal BIOS's will * work fine without this section, IBM's El Torito emulation "fixes" up the * BPB by writing into the memory copy of the MBR. Rather than have data - * written into our xread routine, we'll define a BPB to work around it. + * written into our code, we'll define a BPB to work around it. * The data marked with (T) indicates a field required for a ThinkPad to * recognize the disk and (W) indicates fields written from IBM BIOS code. * The use of the BPB is based on what OpenBSD and NetBSD implemented in @@ -80,34 +76,7 @@ ebpb: .byte 0 # BIOS physical drive nu .org 0x25,0x90 /* - * Trampoline used by boot2 to call read to read data from the disk via - * the BIOS. Call with: - * - * %ecx:%eax - long - LBA to read in - * %es:(%bx) - caddr_t - buffer to read data into - * %dl - byte - drive to read from - * %dh - byte - num sectors to read - */ - -xread: push %ss # Address - pop %ds # data -/* - * Setup an EDD disk packet and pass it to read - */ -xread.1: pushl %ecx # Starting absolute block - pushl %eax # block number - push %es # Address of - push %bx # transfer buffer - xor %ax,%ax # Number of - movb %dh,%al # blocks to - push %ax # transfer - push $0x10 # Size of packet - mov %sp,%bp # Packet pointer - callw read # Read from disk - lea 0x10(%bp),%sp # Clear stack - lret # To far caller -/* - * Load the rest of boot2 and BTX up, copy the parts to the right locations, + * Load the rest of zfsboot2 and BTX up, copy the parts to the right locations, * and start it all up. */ @@ -181,7 +150,7 @@ main.4: xor %dx,%dx # Partition:drive * itself to 0x9000 - doing it in this order means that none of the * memcpy regions overlap which would corrupt the copy. Normally, BTX * clients start at MEM_USR, or 0xa000, but when we use btxld to - * create boot2, we use an entry point of 0x2000. That entry point is + * create zfsboot2, we use an entry point of 0x2000. That entry point is * relative to MEM_USR; thus boot2.bin starts at 0xc000. * * The load area and the target area for the client overlap so we have @@ -241,15 +210,29 @@ seta20.3: sti # Enable interrupts /* - * Trampoline used to call read from within boot1. + * Trampoline used to call read from within zfsldr. Sets up an EDD + * packet on the stack and passes it to read. + * + * %eax - int - LBA to read in relative to partition start + * %dl - byte - drive to read from + * %dh - byte - num sectors to read + * %si - ptr - MBR partition entry */ nread: xor %eax,%eax # Sector offset in partition -nread.1: mov $MEM_BUF,%bx # Transfer buffer - xor %ecx,%ecx # Get +nread.1: xor %ecx,%ecx # Get addl 0x8(%si),%eax # LBA adc $0,%ecx - push %cs # Read from - callw xread.1 # disk + pushl %ecx # Starting absolute block + pushl %eax # block number + push %es # Address of + push $MEM_BUF # transfer buffer + xor %ax,%ax # Number of + movb %dh,%al # blocks to + push %ax # transfer + push $0x10 # Size of packet + mov %sp,%bp # Packet pointer + callw read # Read from disk + lea 0x10(%bp),%sp # Clear stack jnc return # If success, return mov $msg_read,%si # Otherwise, set the error # message and fall through to @@ -293,9 +276,7 @@ return: retw # To caller * %dl - byte - drive number * stack - 10 bytes - EDD Packet */ -read: testb $FL_PACKET,%cs:MEM_REL+flags-start # LBA support enabled? - jz read.1 # No, use CHS - cmpb $0x80,%dl # Hard drive? +read: cmpb $0x80,%dl # Hard drive? jb read.1 # No, use CHS mov $0x55aa,%bx # Magic push %dx # Save @@ -311,73 +292,9 @@ read: testb $FL_PACKET,%cs:MEM_REL+flag movb $0x42,%ah # BIOS: Extended int $0x13 # read retw # To caller -#if 0 -read.1: push %dx # Save - movb $0x8,%ah # BIOS: Get drive - int $0x13 # parameters - movb %dh,%ch # Max head number - pop %dx # Restore - jc return # If error - andb $0x3f,%cl # Sectors per track - jz ereturn # If zero - cli # Disable interrupts - mov 0x8(%bp),%eax # Get LBA - push %dx # Save - movzbl %cl,%ebx # Divide by - xor %edx,%edx # sectors - div %ebx # per track - movb %ch,%bl # Max head number - movb %dl,%ch # Sector number - inc %bx # Divide by - xorb %dl,%dl # number - div %ebx # of heads - movb %dl,%bh # Head number - pop %dx # Restore - cmpl $0x3ff,%eax # Cylinder number supportable? - sti # Enable interrupts - ja ereturn # No, return an error - xchgb %al,%ah # Set up cylinder - rorb $0x2,%al # number - orb %ch,%al # Merge - inc %ax # sector - xchg %ax,%cx # number - movb %bh,%dh # Head number - subb %ah,%al # Sectors this track - mov 0x2(%bp),%ah # Blocks to read - cmpb %ah,%al # To read - jb read.2 # this -#ifdef TRACK_AT_A_TIME - movb %ah,%al # track -#else - movb $1,%al # one sector -#endif -read.2: mov $0x5,%di # Try count -read.3: les 0x4(%bp),%bx # Transfer buffer - push %ax # Save - movb $0x2,%ah # BIOS: Read - int $0x13 # from disk - pop %bx # Restore - jnc read.4 # If success - dec %di # Retry? - jz read.6 # No - xorb %ah,%ah # BIOS: Reset - int $0x13 # disk system - xchg %bx,%ax # Block count - jmp read.3 # Continue -read.4: movzbw %bl,%ax # Sectors read - add %ax,0x8(%bp) # Adjust - jnc read.5 # LBA, - incw 0xa(%bp) # transfer -read.5: shlb %bl # buffer - add %bl,0x5(%bp) # pointer, - sub %al,0x2(%bp) # block count - ja read.1 # If not done -read.6: retw # To caller -#else read.1: mov $msg_chs,%si jmp error msg_chs: .asciz "CHS not supported" -#endif /* Messages */ @@ -386,8 +303,6 @@ msg_part: .asciz "Boot" prompt: .asciz " error\r\n" -flags: .byte FLAGS # Flags - .org PRT_OFF,0x90 /* Partition table */ Modified: projects/altix/sys/boot/ia64/common/copy.c ============================================================================== --- projects/altix/sys/boot/ia64/common/copy.c Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/boot/ia64/common/copy.c Sat Apr 30 21:00:36 2011 (r221272) @@ -29,6 +29,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "libia64.h" @@ -40,6 +41,7 @@ uint32_t ia64_pgtblsz; static int pgtbl_extend(u_int idx) { + vm_paddr_t pa; uint64_t *pgtbl; uint32_t pgtblsz; u_int pot; @@ -65,9 +67,10 @@ pgtbl_extend(u_int idx) pgtblsz <<= 1; /* Allocate naturally aligned memory. */ - pgtbl = (void *)ia64_platform_alloc(0, pgtblsz); - if (pgtbl == NULL) + pa = ia64_platform_alloc(0, pgtblsz); + if (pa == ~0UL) return (ENOMEM); + pgtbl = (void *)pa; /* Initialize new page table. */ if (ia64_pgtbl != NULL && ia64_pgtbl != pgtbl) @@ -85,7 +88,7 @@ pgtbl_extend(u_int idx) void * ia64_va2pa(vm_offset_t va, size_t *len) { - uint64_t pa; + uint64_t pa, pte; u_int idx, ofs; int error; @@ -111,16 +114,18 @@ ia64_va2pa(vm_offset_t va, size_t *len) } ofs = va & IA64_PBVM_PAGE_MASK; - pa = ia64_pgtbl[idx]; - if (pa == 0) { + pte = ia64_pgtbl[idx]; + if ((pte & PTE_PRESENT) == 0) { pa = ia64_platform_alloc(va - ofs, IA64_PBVM_PAGE_SIZE); - if (pa == 0) { + if (pa == ~0UL) { error = ENOMEM; goto fail; } - ia64_pgtbl[idx] = pa; + pte = PTE_AR_RWX | PTE_DIRTY | PTE_ACCESSED | PTE_PRESENT; + pte |= (pa & PTE_PPN_MASK); + ia64_pgtbl[idx] = pte; } - pa += ofs; + pa = (pte & PTE_PPN_MASK) + ofs; /* We can not cross page boundaries (in general). */ if (*len + ofs > IA64_PBVM_PAGE_SIZE) Modified: projects/altix/sys/boot/ia64/efi/efimd.c ============================================================================== --- projects/altix/sys/boot/ia64/efi/efimd.c Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/boot/ia64/efi/efimd.c Sat Apr 30 21:00:36 2011 (r221272) @@ -90,6 +90,10 @@ ia64_efi_memmap_update(void) return (TRUE); } +/* + * Returns 0 on failure. Successful allocations return an address + * larger or equal to IA64_EFI_ALLOC_BOUNDARY. + */ static vm_paddr_t ia64_efi_alloc(vm_size_t sz) { @@ -144,11 +148,12 @@ ia64_efi_alloc(vm_size_t sz) vm_paddr_t ia64_platform_alloc(vm_offset_t va, vm_size_t sz) { + vm_paddr_t pa; if (va == 0) { /* Page table itself. */ if (sz > IA64_EFI_PGTBLSZ_MAX) - return (0); + return (~0UL); if (ia64_efi_pgtbl == 0) ia64_efi_pgtbl = ia64_efi_alloc(IA64_EFI_PGTBLSZ_MAX); if (ia64_efi_pgtbl != 0) @@ -156,7 +161,7 @@ ia64_platform_alloc(vm_offset_t va, vm_s return (ia64_efi_pgtbl); } else if (va < IA64_PBVM_BASE) { /* Should not happen. */ - return (0); + return (~0UL); } /* Loader virtual memory page. */ @@ -169,7 +174,8 @@ ia64_platform_alloc(vm_offset_t va, vm_s return (ia64_efi_chunk + va); /* Allocate a page at a time when we go beyond the chunk. */ - return (ia64_efi_alloc(sz)); + pa = ia64_efi_alloc(sz); + return ((pa == 0) ? ~0UL : pa); } void Modified: projects/altix/sys/cam/cam_xpt.c ============================================================================== --- projects/altix/sys/cam/cam_xpt.c Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/cam/cam_xpt.c Sat Apr 30 21:00:36 2011 (r221272) @@ -2328,19 +2328,18 @@ xpt_action(union ccb *start_ccb) void xpt_action_default(union ccb *start_ccb) { +#ifdef CAMDEBUG + char cdb_str[(SCSI_MAX_CDBLEN * 3) + 1]; +#endif + struct cam_path *path; - CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("xpt_action_default\n")); + path = start_ccb->ccb_h.path; + CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_action_default\n")); switch (start_ccb->ccb_h.func_code) { case XPT_SCSI_IO: { struct cam_ed *device; -#ifdef CAMDEBUG - char cdb_str[(SCSI_MAX_CDBLEN * 3) + 1]; - struct cam_path *path; - - path = start_ccb->ccb_h.path; -#endif /* * For the sake of compatibility with SCSI-1 @@ -2358,7 +2357,7 @@ xpt_action_default(union ccb *start_ccb) * This means that this code will be exercised while probing * devices with an ANSI revision greater than 2. */ - device = start_ccb->ccb_h.path->device; + device = path->device; if (device->protocol_version <= SCSI_REV_2 && start_ccb->ccb_h.target_lun < 8 && (start_ccb->ccb_h.flags & CAM_CDB_POINTER) == 0) { @@ -2382,13 +2381,16 @@ xpt_action_default(union ccb *start_ccb) case XPT_ATA_IO: if (start_ccb->ccb_h.func_code == XPT_ATA_IO) { start_ccb->ataio.resid = 0; + CAM_DEBUG(path, CAM_DEBUG_CDB,("%s. ACB: %s\n", + ata_op_string(&start_ccb->ataio.cmd), + ata_cmd_string(&start_ccb->ataio.cmd, + cdb_str, sizeof(cdb_str)))); } /* FALLTHROUGH */ case XPT_RESET_DEV: case XPT_ENG_EXEC: case XPT_SMP_IO: { - struct cam_path *path = start_ccb->ccb_h.path; int frozen; frozen = cam_ccbq_insert_ccb(&path->device->ccbq, start_ccb); @@ -2427,7 +2429,7 @@ xpt_action_default(union ccb *start_ccb) break; } #endif - sim = start_ccb->ccb_h.path->bus->sim; + sim = path->bus->sim; (*(sim->sim_action))(sim, start_ccb); break; } @@ -2495,7 +2497,7 @@ xpt_action_default(union ccb *start_ccb) { struct cam_sim *sim; - sim = start_ccb->ccb_h.path->bus->sim; + sim = path->bus->sim; (*(sim->sim_action))(sim, start_ccb); break; } @@ -2503,20 +2505,19 @@ xpt_action_default(union ccb *start_ccb) { struct cam_sim *sim; - sim = start_ccb->ccb_h.path->bus->sim; + sim = path->bus->sim; (*(sim->sim_action))(sim, start_ccb); break; } case XPT_PATH_STATS: - start_ccb->cpis.last_reset = - start_ccb->ccb_h.path->bus->last_reset; + start_ccb->cpis.last_reset = path->bus->last_reset; start_ccb->ccb_h.status = CAM_REQ_CMP; break; case XPT_GDEV_TYPE: { struct cam_ed *dev; - dev = start_ccb->ccb_h.path->device; + dev = path->device; if ((dev->flags & CAM_DEV_UNCONFIGURED) != 0) { start_ccb->ccb_h.status = CAM_DEV_NOT_THERE; } else { @@ -2540,7 +2541,7 @@ xpt_action_default(union ccb *start_ccb) { struct cam_ed *dev; - dev = start_ccb->ccb_h.path->device; + dev = path->device; if ((dev->flags & CAM_DEV_UNCONFIGURED) != 0) { start_ccb->ccb_h.status = CAM_DEV_NOT_THERE; } else { @@ -2549,8 +2550,8 @@ xpt_action_default(union ccb *start_ccb) struct cam_et *tar; cgds = &start_ccb->cgds; - bus = cgds->ccb_h.path->bus; - tar = cgds->ccb_h.path->target; + bus = path->bus; + tar = path->target; cgds->dev_openings = dev->ccbq.dev_openings; cgds->dev_active = dev->ccbq.dev_active; cgds->devq_openings = dev->ccbq.devq_openings; @@ -2580,7 +2581,7 @@ xpt_action_default(union ccb *start_ccb) /* * Don't want anyone mucking with our data. */ - device = start_ccb->ccb_h.path->device; + device = path->device; periph_head = &device->periphs; cgdl = &start_ccb->cgdl; @@ -2697,7 +2698,7 @@ xpt_action_default(union ccb *start_ccb) csa = &start_ccb->csa; added = csa->event_enable; - async_head = &csa->ccb_h.path->device->asyncs; + async_head = &path->device->asyncs; /* * If there is already an entry for us, simply @@ -2720,7 +2721,7 @@ xpt_action_default(union ccb *start_ccb) if (csa->event_enable == 0) { SLIST_REMOVE(async_head, cur_entry, async_node, links); - xpt_release_device(csa->ccb_h.path->device); + xpt_release_device(path->device); free(cur_entry, M_CAMXPT); } else { cur_entry->event_enable = csa->event_enable; @@ -2737,7 +2738,7 @@ xpt_action_default(union ccb *start_ccb) cur_entry->callback_arg = csa->callback_arg; cur_entry->callback = csa->callback; SLIST_INSERT_HEAD(async_head, cur_entry, links); - xpt_acquire_device(csa->ccb_h.path->device); + xpt_acquire_device(path->device); } start_ccb->ccb_h.status = CAM_REQ_CMP; break; @@ -2748,7 +2749,7 @@ xpt_action_default(union ccb *start_ccb) struct cam_ed *dev; crs = &start_ccb->crs; - dev = crs->ccb_h.path->device; + dev = path->device; if (dev == NULL) { crs->ccb_h.status = CAM_DEV_NOT_THERE; @@ -2760,11 +2761,11 @@ xpt_action_default(union ccb *start_ccb) if (INQ_DATA_TQ_ENABLED(&dev->inq_data)) { /* Don't ever go below one opening */ if (crs->openings > 0) { - xpt_dev_ccbq_resize(crs->ccb_h.path, + xpt_dev_ccbq_resize(path, crs->openings); if (bootverbose) { - xpt_print(crs->ccb_h.path, + xpt_print(path, "tagged openings now %d\n", crs->openings); } @@ -2826,7 +2827,7 @@ xpt_action_default(union ccb *start_ccb) } if ((start_ccb->ccb_h.flags & CAM_DEV_QFREEZE) == 0) { - xpt_release_devq_rl(crs->ccb_h.path, /*runlevel*/ + xpt_release_devq_rl(path, /*runlevel*/ (crs->release_flags & RELSIM_RELEASE_RUNLEVEL) ? crs->release_timeout : 0, /*count*/1, /*run_queue*/TRUE); @@ -2872,7 +2873,7 @@ xpt_action_default(union ccb *start_ccb) { struct ccb_relsim *crs = &start_ccb->crs; - xpt_freeze_devq_rl(crs->ccb_h.path, /*runlevel*/ + xpt_freeze_devq_rl(path, /*runlevel*/ (crs->release_flags & RELSIM_RELEASE_RUNLEVEL) ? crs->release_timeout : 0, /*count*/1); start_ccb->ccb_h.status = CAM_REQ_CMP; @@ -2880,7 +2881,7 @@ xpt_action_default(union ccb *start_ccb) } case XPT_NOOP: if ((start_ccb->ccb_h.flags & CAM_DEV_QFREEZE) != 0) - xpt_freeze_devq(start_ccb->ccb_h.path, 1); + xpt_freeze_devq(path, 1); start_ccb->ccb_h.status = CAM_REQ_CMP; break; default: Modified: projects/altix/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S ============================================================================== --- projects/altix/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S Sat Apr 30 21:00:36 2011 (r221272) @@ -39,7 +39,7 @@ ENTRY(atomic_cas_32, 3) cmpxchg4.acq r8 = [r32], r34, ar.ccv ;; br.ret.sptk rp -END(atomic_cas_64) +END(atomic_cas_32) /* * uint64_t atomic_cas_64(volatile uint64_t *p, uint64_t cmp, uint64_t v) Modified: projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c ============================================================================== --- projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Sat Apr 30 21:00:36 2011 (r221272) @@ -21,6 +21,9 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. */ +/* + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + */ #include #include @@ -851,61 +854,6 @@ guid_compare(const void *arg1, const voi return (0); } -/* - * This function is a callback used by dmu_objset_find() (which - * enumerates the object sets) to build an avl tree that maps guids - * to datasets. The resulting table is used when processing DRR_WRITE_BYREF - * send stream records. These records, which are used in dedup'ed - * streams, do not contain data themselves, but refer to a copy - * of the data block that has already been written because it was - * earlier in the stream. That previous copy is identified by the - * guid of the dataset with the referenced data. - */ -int -find_ds_by_guid(const char *name, void *arg) -{ - avl_tree_t *guid_map = arg; - dsl_dataset_t *ds, *snapds; - guid_map_entry_t *gmep; - dsl_pool_t *dp; - int err; - uint64_t lastobj, firstobj; - - if (dsl_dataset_hold(name, FTAG, &ds) != 0) - return (0); - - dp = ds->ds_dir->dd_pool; - rw_enter(&dp->dp_config_rwlock, RW_READER); - firstobj = ds->ds_dir->dd_phys->dd_origin_obj; - lastobj = ds->ds_phys->ds_prev_snap_obj; - - while (lastobj != firstobj) { - err = dsl_dataset_hold_obj(dp, lastobj, guid_map, &snapds); - if (err) { - /* - * Skip this snapshot and move on. It's not - * clear why this would ever happen, but the - * remainder of the snapshot streadm can be - * processed. - */ - rw_exit(&dp->dp_config_rwlock); - dsl_dataset_rele(ds, FTAG); - return (0); - } - - gmep = kmem_alloc(sizeof (guid_map_entry_t), KM_SLEEP); - gmep->guid = snapds->ds_phys->ds_guid; - gmep->gme_ds = snapds; - avl_add(guid_map, gmep); - lastobj = snapds->ds_phys->ds_prev_snap_obj; - } - - rw_exit(&dp->dp_config_rwlock); - dsl_dataset_rele(ds, FTAG); - - return (0); -} - static void free_guid_map_onexit(void *arg) { @@ -1413,9 +1361,6 @@ dmu_recv_stream(dmu_recv_cookie_t *drc, avl_create(ra.guid_to_ds_map, guid_compare, sizeof (guid_map_entry_t), offsetof(guid_map_entry_t, avlnode)); - (void) dmu_objset_find(drc->drc_top_ds, find_ds_by_guid, - (void *)ra.guid_to_ds_map, - DS_FIND_CHILDREN); ra.err = zfs_onexit_add_cb(minor, free_guid_map_onexit, ra.guid_to_ds_map, action_handlep); @@ -1427,6 +1372,8 @@ dmu_recv_stream(dmu_recv_cookie_t *drc, if (ra.err) goto out; } + + drc->drc_guid_to_ds_map = ra.guid_to_ds_map; } /* @@ -1565,6 +1512,30 @@ recv_end_sync(void *arg1, void *arg2, dm } static int +add_ds_to_guidmap(avl_tree_t *guid_map, dsl_dataset_t *ds) +{ + dsl_pool_t *dp = ds->ds_dir->dd_pool; + uint64_t snapobj = ds->ds_phys->ds_prev_snap_obj; + dsl_dataset_t *snapds; + guid_map_entry_t *gmep; + int err; + + ASSERT(guid_map != NULL); + + rw_enter(&dp->dp_config_rwlock, RW_READER); + err = dsl_dataset_hold_obj(dp, snapobj, guid_map, &snapds); + if (err == 0) { + gmep = kmem_alloc(sizeof (guid_map_entry_t), KM_SLEEP); + gmep->guid = snapds->ds_phys->ds_guid; + gmep->gme_ds = snapds; + avl_add(guid_map, gmep); + } + + rw_exit(&dp->dp_config_rwlock); + return (err); +} + +static int dmu_recv_existing_end(dmu_recv_cookie_t *drc) { struct recvendsyncarg resa; @@ -1604,6 +1575,8 @@ dmu_recv_existing_end(dmu_recv_cookie_t out: mutex_exit(&ds->ds_recvlock); + if (err == 0 && drc->drc_guid_to_ds_map != NULL) + (void) add_ds_to_guidmap(drc->drc_guid_to_ds_map, ds); dsl_dataset_disown(ds, dmu_recv_tag); (void) dsl_dataset_destroy(drc->drc_real_ds, dmu_recv_tag, B_FALSE); return (err); @@ -1633,6 +1606,8 @@ dmu_recv_new_end(dmu_recv_cookie_t *drc) /* clean up the fs we just recv'd into */ (void) dsl_dataset_destroy(ds, dmu_recv_tag, B_FALSE); } else { + if (drc->drc_guid_to_ds_map != NULL) + (void) add_ds_to_guidmap(drc->drc_guid_to_ds_map, ds); /* release the hold from dmu_recv_begin */ dsl_dataset_disown(ds, dmu_recv_tag); } Modified: projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h ============================================================================== --- projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h Sat Apr 30 21:00:36 2011 (r221272) @@ -21,6 +21,9 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. */ +/* + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + */ /* Portions Copyright 2010 Robert Milkowski */ @@ -718,6 +721,7 @@ typedef struct dmu_recv_cookie { char *drc_top_ds; boolean_t drc_newfs; boolean_t drc_force; + struct avl_tree *drc_guid_to_ds_map; } dmu_recv_cookie_t; int dmu_recv_begin(char *tofs, char *tosnap, char *topds, struct drr_begin *, Modified: projects/altix/sys/conf/NOTES ============================================================================== --- projects/altix/sys/conf/NOTES Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/conf/NOTES Sat Apr 30 21:00:36 2011 (r221272) @@ -2094,6 +2094,7 @@ device nxge # Neterion Xframe 10GbE Se device ti # Alteon Networks Tigon I/II gigabit Ethernet device txp # 3Com 3cR990 (``Typhoon'') device vx # 3Com 3c590, 3c595 (``Vortex'') +device vxge # Exar/Neterion XFrame 3100 10GbE # PCI FDDI NICs. device fpa @@ -2729,6 +2730,9 @@ device uath # Ralink Technology RT2500USB wireless driver device ural # +# Realtek RTL8187B/L wireless driver +device urtw +# # ZyDas ZD1211/ZD1211B wireless driver device zyd Modified: projects/altix/sys/conf/files ============================================================================== --- projects/altix/sys/conf/files Sat Apr 30 20:49:00 2011 (r221271) +++ projects/altix/sys/conf/files Sat Apr 30 21:00:36 2011 (r221272) @@ -757,6 +757,14 @@ dev/ath/ath_hal/ar5416/ar5416_reset.c \ dev/ath/ath_hal/ar5416/ar5416_xmit.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" +# ar9130 (depends upon ar5416) - also requires AH_SUPPORT_AR9130 +dev/ath/ath_hal/ar9001/ar9130_attach.c optional ath_hal | ath_ar9130 \ + compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" +dev/ath/ath_hal/ar9001/ar9130_phy.c optional ath_hal | ath_ar9130 \ + compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" +dev/ath/ath_hal/ar9001/ar9130_eeprom.c optional ath_hal | ath_ar9130 \ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 21:55:08 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B2027106564A; Sat, 30 Apr 2011 21:55:08 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7E04E8FC0A; Sat, 30 Apr 2011 21:55:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3ULt8vt063746; Sat, 30 Apr 2011 21:55:08 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3ULt8Yp063745; Sat, 30 Apr 2011 21:55:08 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201104302155.p3ULt8Yp063745@svn.freebsd.org> From: Attilio Rao Date: Sat, 30 Apr 2011 21:55:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221273 - projects/largeSMP X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 21:55:08 -0000 Author: attilio Date: Sat Apr 30 21:55:08 2011 New Revision: 221273 URL: http://svn.freebsd.org/changeset/base/221273 Log: Create a project branch for managing kernel and userland conversion to big CPUs count booting possibility. Added: - copied from r221272, head/ Directory Properties: projects/largeSMP/ (props changed) From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 22:17:40 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EC1BB106564A; Sat, 30 Apr 2011 22:17:40 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D8CEF8FC0A; Sat, 30 Apr 2011 22:17:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3UMHeM2064555; Sat, 30 Apr 2011 22:17:40 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3UMHehF064553; Sat, 30 Apr 2011 22:17:40 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201104302217.p3UMHehF064553@svn.freebsd.org> From: Marcel Moolenaar Date: Sat, 30 Apr 2011 22:17:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221276 - projects/altix/sys/ia64/ia64 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 22:17:41 -0000 Author: marcel Date: Sat Apr 30 22:17:40 2011 New Revision: 221276 URL: http://svn.freebsd.org/changeset/base/221276 Log: White-space fixes. Modified: projects/altix/sys/ia64/ia64/machdep.c Modified: projects/altix/sys/ia64/ia64/machdep.c ============================================================================== --- projects/altix/sys/ia64/ia64/machdep.c Sat Apr 30 22:15:14 2011 (r221275) +++ projects/altix/sys/ia64/ia64/machdep.c Sat Apr 30 22:17:40 2011 (r221276) @@ -759,15 +759,15 @@ ia64_init(void) if (bootinfo->bi_kernend) kernend = round_page(bootinfo->bi_kernend); - /* - * Region 6 is direct mapped UC and region 7 is direct mapped - * WC. The details of this is controlled by the Alt {I,D}TLB - * handlers. Here we just make sure that they have the largest - * possible page size to minimise TLB usage. - */ - ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (PAGE_SHIFT << 2)); - ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (PAGE_SHIFT << 2)); - ia64_srlz_d(); + /* + * Region 6 is direct mapped UC and region 7 is direct mapped + * WC. The details of this is controlled by the Alt {I,D}TLB + * handlers. Here we just make sure that they have the largest + * possible page size to minimise TLB usage. + */ + ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (PAGE_SHIFT << 2)); + ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (PAGE_SHIFT << 2)); + ia64_srlz_d(); /* * Wire things up so we can call the firmware. @@ -778,18 +778,18 @@ ia64_init(void) ia64_sal_init(); calculate_frequencies(); - /* - * Setup the PCPU data for the bootstrap processor. It is needed - * by printf(). Also, since printf() has critical sections, we - * need to initialize at least pc_curthread. - */ - pcpup = &pcpu0; - ia64_set_k4((u_int64_t)pcpup); - pcpu_init(pcpup, 0, sizeof(pcpu0)); - dpcpu_init((void *)kernend, 0); - cpu_pcpu_setup(pcpup, ~0U, ia64_get_lid()); - kernend += DPCPU_SIZE; - PCPU_SET(curthread, &thread0); + /* + * Setup the PCPU data for the bootstrap processor. It is needed + * by printf(). Also, since printf() has critical sections, we + * need to initialize at least pc_curthread. + */ + pcpup = &pcpu0; + ia64_set_k4((u_int64_t)pcpup); + pcpu_init(pcpup, 0, sizeof(pcpu0)); + dpcpu_init((void *)kernend, 0); + cpu_pcpu_setup(pcpup, ~0U, ia64_get_lid()); + kernend += DPCPU_SIZE; + PCPU_SET(curthread, &thread0); /* * Initialize the console before we print anything out. From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 22:24:46 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 22B02106566B; Sat, 30 Apr 2011 22:24:46 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 04E278FC19; Sat, 30 Apr 2011 22:24:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3UMOjE3064817; Sat, 30 Apr 2011 22:24:45 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3UMOjbF064816; Sat, 30 Apr 2011 22:24:45 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201104302224.p3UMOjbF064816@svn.freebsd.org> From: Attilio Rao Date: Sat, 30 Apr 2011 22:24:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221277 - in projects/largeSMP: contrib/top share/mk X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 22:24:46 -0000 Author: attilio Date: Sat Apr 30 22:24:45 2011 New Revision: 221277 URL: http://svn.freebsd.org/changeset/base/221277 Log: MFC @ 221273 Modified: Directory Properties: projects/largeSMP/ (props changed) projects/largeSMP/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/contrib/bind9/ (props changed) projects/largeSMP/contrib/binutils/ (props changed) projects/largeSMP/contrib/bzip2/ (props changed) projects/largeSMP/contrib/dialog/ (props changed) projects/largeSMP/contrib/ee/ (props changed) projects/largeSMP/contrib/expat/ (props changed) projects/largeSMP/contrib/file/ (props changed) projects/largeSMP/contrib/gcc/ (props changed) projects/largeSMP/contrib/gdb/ (props changed) projects/largeSMP/contrib/gdtoa/ (props changed) projects/largeSMP/contrib/gnu-sort/ (props changed) projects/largeSMP/contrib/groff/ (props changed) projects/largeSMP/contrib/less/ (props changed) projects/largeSMP/contrib/libpcap/ (props changed) projects/largeSMP/contrib/libstdc++/ (props changed) projects/largeSMP/contrib/llvm/ (props changed) projects/largeSMP/contrib/llvm/tools/clang/ (props changed) projects/largeSMP/contrib/ncurses/ (props changed) projects/largeSMP/contrib/netcat/ (props changed) projects/largeSMP/contrib/ntp/ (props changed) projects/largeSMP/contrib/one-true-awk/ (props changed) projects/largeSMP/contrib/openbsm/ (props changed) projects/largeSMP/contrib/openpam/ (props changed) projects/largeSMP/contrib/pf/ (props changed) projects/largeSMP/contrib/sendmail/ (props changed) projects/largeSMP/contrib/tcpdump/ (props changed) projects/largeSMP/contrib/tcsh/ (props changed) projects/largeSMP/contrib/top/ (props changed) projects/largeSMP/contrib/top/install-sh (props changed) projects/largeSMP/contrib/tzcode/stdtime/ (props changed) projects/largeSMP/contrib/tzcode/zic/ (props changed) projects/largeSMP/contrib/tzdata/ (props changed) projects/largeSMP/contrib/wpa/ (props changed) projects/largeSMP/contrib/xz/ (props changed) projects/largeSMP/crypto/openssh/ (props changed) projects/largeSMP/crypto/openssl/ (props changed) projects/largeSMP/gnu/lib/ (props changed) projects/largeSMP/gnu/usr.bin/binutils/ (props changed) projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed) projects/largeSMP/gnu/usr.bin/gdb/ (props changed) projects/largeSMP/lib/libc/ (props changed) projects/largeSMP/lib/libc/stdtime/ (props changed) projects/largeSMP/lib/libutil/ (props changed) projects/largeSMP/lib/libz/ (props changed) projects/largeSMP/sbin/ (props changed) projects/largeSMP/sbin/ipfw/ (props changed) projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed) projects/largeSMP/share/zoneinfo/ (props changed) projects/largeSMP/sys/ (props changed) projects/largeSMP/sys/amd64/include/xen/ (props changed) projects/largeSMP/sys/boot/ (props changed) projects/largeSMP/sys/boot/i386/efi/ (props changed) projects/largeSMP/sys/boot/ia64/efi/ (props changed) projects/largeSMP/sys/boot/ia64/ski/ (props changed) projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed) projects/largeSMP/sys/boot/powerpc/ofw/ (props changed) projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed) projects/largeSMP/sys/conf/ (props changed) projects/largeSMP/sys/contrib/dev/acpica/ (props changed) projects/largeSMP/sys/contrib/octeon-sdk/ (props changed) projects/largeSMP/sys/contrib/pf/ (props changed) projects/largeSMP/sys/contrib/x86emu/ (props changed) projects/largeSMP/usr.bin/calendar/ (props changed) projects/largeSMP/usr.bin/csup/ (props changed) projects/largeSMP/usr.bin/procstat/ (props changed) projects/largeSMP/usr.sbin/ndiscvt/ (props changed) projects/largeSMP/usr.sbin/zic/ (props changed) From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 22:30:18 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB0C01065674; Sat, 30 Apr 2011 22:30:18 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A77498FC0A; Sat, 30 Apr 2011 22:30:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3UMUIRr065013; Sat, 30 Apr 2011 22:30:18 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3UMUI0N065009; Sat, 30 Apr 2011 22:30:18 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201104302230.p3UMUI0N065009@svn.freebsd.org> From: Attilio Rao Date: Sat, 30 Apr 2011 22:30:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221278 - in projects/largeSMP/sys: kern sys X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 22:30:18 -0000 Author: attilio Date: Sat Apr 30 22:30:18 2011 New Revision: 221278 URL: http://svn.freebsd.org/changeset/base/221278 Log: idle_cpus_mask is just used in the SMP case and within sched_4BSD. Declare appropriately. Modified: projects/largeSMP/sys/kern/sched_4bsd.c projects/largeSMP/sys/kern/subr_smp.c projects/largeSMP/sys/sys/smp.h Modified: projects/largeSMP/sys/kern/sched_4bsd.c ============================================================================== --- projects/largeSMP/sys/kern/sched_4bsd.c Sat Apr 30 22:24:45 2011 (r221277) +++ projects/largeSMP/sys/kern/sched_4bsd.c Sat Apr 30 22:30:18 2011 (r221278) @@ -155,6 +155,8 @@ static struct runq runq; */ static struct runq runq_pcpu[MAXCPU]; long runq_length[MAXCPU]; + +static cpumask_t idle_cpus_mask; #endif struct pcpuidlestat { Modified: projects/largeSMP/sys/kern/subr_smp.c ============================================================================== --- projects/largeSMP/sys/kern/subr_smp.c Sat Apr 30 22:24:45 2011 (r221277) +++ projects/largeSMP/sys/kern/subr_smp.c Sat Apr 30 22:30:18 2011 (r221278) @@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$"); #ifdef SMP volatile cpumask_t stopped_cpus; volatile cpumask_t started_cpus; -cpumask_t idle_cpus_mask; cpumask_t hlt_cpus_mask; cpumask_t logical_cpus_mask; Modified: projects/largeSMP/sys/sys/smp.h ============================================================================== --- projects/largeSMP/sys/sys/smp.h Sat Apr 30 22:24:45 2011 (r221277) +++ projects/largeSMP/sys/sys/smp.h Sat Apr 30 22:30:18 2011 (r221278) @@ -73,7 +73,6 @@ extern int smp_active; extern int smp_cpus; extern volatile cpumask_t started_cpus; extern volatile cpumask_t stopped_cpus; -extern cpumask_t idle_cpus_mask; extern cpumask_t hlt_cpus_mask; extern cpumask_t logical_cpus_mask; #endif /* SMP */ From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 22:33:11 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6EE85106564A; Sat, 30 Apr 2011 22:33:11 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5B3C88FC0A; Sat, 30 Apr 2011 22:33:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3UMXBfU065203; Sat, 30 Apr 2011 22:33:11 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3UMXBtr065201; Sat, 30 Apr 2011 22:33:11 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201104302233.p3UMXBtr065201@svn.freebsd.org> From: Attilio Rao Date: Sat, 30 Apr 2011 22:33:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221279 - projects/largeSMP/sys/dev/hwpmc X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 22:33:11 -0000 Author: attilio Date: Sat Apr 30 22:33:11 2011 New Revision: 221279 URL: http://svn.freebsd.org/changeset/base/221279 Log: Remove unnecessary usage of memory barriers when dealing with pmc_cpumask. Discussed with: fabient Modified: projects/largeSMP/sys/dev/hwpmc/hwpmc_mod.c Modified: projects/largeSMP/sys/dev/hwpmc/hwpmc_mod.c ============================================================================== --- projects/largeSMP/sys/dev/hwpmc/hwpmc_mod.c Sat Apr 30 22:30:18 2011 (r221278) +++ projects/largeSMP/sys/dev/hwpmc/hwpmc_mod.c Sat Apr 30 22:33:11 2011 (r221279) @@ -4083,7 +4083,7 @@ pmc_process_interrupt(int cpu, struct pm done: /* mark CPU as needing processing */ - atomic_set_rel_int(&pmc_cpumask, (1 << cpu)); + atomic_set_int(&pmc_cpumask, (1 << cpu)); return (error); } @@ -4193,7 +4193,7 @@ pmc_process_samples(int cpu) break; if (ps->ps_nsamples == PMC_SAMPLE_INUSE) { /* Need a rescan at a later time. */ - atomic_set_rel_int(&pmc_cpumask, (1 << cpu)); + atomic_set_int(&pmc_cpumask, (1 << cpu)); break; } @@ -4782,7 +4782,7 @@ pmc_cleanup(void) PMCDBG(MOD,INI,0, "%s", "cleanup"); /* switch off sampling */ - atomic_store_rel_int(&pmc_cpumask, 0); + atomic_store_int(&pmc_cpumask, 0); pmc_intr = NULL; sx_xlock(&pmc_sx); From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 22:34:44 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62E71106566B; Sat, 30 Apr 2011 22:34:44 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4F6E38FC14; Sat, 30 Apr 2011 22:34:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3UMYiVG065280; Sat, 30 Apr 2011 22:34:44 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3UMYil1065278; Sat, 30 Apr 2011 22:34:44 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201104302234.p3UMYil1065278@svn.freebsd.org> From: Attilio Rao Date: Sat, 30 Apr 2011 22:34:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221280 - projects/largeSMP/sys/dev/hwpmc X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 22:34:44 -0000 Author: attilio Date: Sat Apr 30 22:34:44 2011 New Revision: 221280 URL: http://svn.freebsd.org/changeset/base/221280 Log: Fix a typo/error. Modified: projects/largeSMP/sys/dev/hwpmc/hwpmc_mod.c Modified: projects/largeSMP/sys/dev/hwpmc/hwpmc_mod.c ============================================================================== --- projects/largeSMP/sys/dev/hwpmc/hwpmc_mod.c Sat Apr 30 22:33:11 2011 (r221279) +++ projects/largeSMP/sys/dev/hwpmc/hwpmc_mod.c Sat Apr 30 22:34:44 2011 (r221280) @@ -4782,7 +4782,7 @@ pmc_cleanup(void) PMCDBG(MOD,INI,0, "%s", "cleanup"); /* switch off sampling */ - atomic_store_int(&pmc_cpumask, 0); + pmc_cpumask = 0; pmc_intr = NULL; sx_xlock(&pmc_sx); From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 23:02:18 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4C34C106564A; Sat, 30 Apr 2011 23:02:18 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2CE748FC0A; Sat, 30 Apr 2011 23:02:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3UN2IEj066243; Sat, 30 Apr 2011 23:02:18 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3UN2HtD066235; Sat, 30 Apr 2011 23:02:17 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201104302302.p3UN2HtD066235@svn.freebsd.org> From: Attilio Rao Date: Sat, 30 Apr 2011 23:02:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221283 - in projects/largeSMP/sys/i386: i386 include xen X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 23:02:18 -0000 Author: attilio Date: Sat Apr 30 23:02:17 2011 New Revision: 221283 URL: http://svn.freebsd.org/changeset/base/221283 Log: Remove the support for lazy cr3 switching from i386. amd64 has already this micro-optimization removed. Submitted by: kib Modified: projects/largeSMP/sys/i386/i386/apic_vector.s projects/largeSMP/sys/i386/i386/db_trace.c projects/largeSMP/sys/i386/i386/mp_machdep.c projects/largeSMP/sys/i386/i386/pmap.c projects/largeSMP/sys/i386/i386/swtch.s projects/largeSMP/sys/i386/include/smp.h projects/largeSMP/sys/i386/xen/pmap.c Modified: projects/largeSMP/sys/i386/i386/apic_vector.s ============================================================================== --- projects/largeSMP/sys/i386/i386/apic_vector.s Sat Apr 30 23:00:41 2011 (r221282) +++ projects/largeSMP/sys/i386/i386/apic_vector.s Sat Apr 30 23:02:17 2011 (r221283) @@ -357,20 +357,4 @@ IDTVEC(rendezvous) POP_FRAME iret -/* - * Clean up when we lose out on the lazy context switch optimization. - * ie: when we are about to release a PTD but a cpu is still borrowing it. - */ - SUPERALIGN_TEXT -IDTVEC(lazypmap) - PUSH_FRAME - SET_KERNEL_SREGS - cld - - call pmap_lazyfix_action - - movl lapic, %eax - movl $0, LA_EOI(%eax) /* End Of Interrupt to APIC */ - POP_FRAME - iret #endif /* SMP */ Modified: projects/largeSMP/sys/i386/i386/db_trace.c ============================================================================== --- projects/largeSMP/sys/i386/i386/db_trace.c Sat Apr 30 23:00:41 2011 (r221282) +++ projects/largeSMP/sys/i386/i386/db_trace.c Sat Apr 30 23:02:17 2011 (r221283) @@ -312,8 +312,7 @@ db_nextframe(struct i386_frame **fp, db_ frame_type = TRAP_TIMERINT; else if (strcmp(name, "Xcpustop") == 0 || strcmp(name, "Xrendezvous") == 0 || - strcmp(name, "Xipi_intr_bitmap_handler") == 0 || - strcmp(name, "Xlazypmap") == 0) + strcmp(name, "Xipi_intr_bitmap_handler") == 0) frame_type = TRAP_INTERRUPT; } Modified: projects/largeSMP/sys/i386/i386/mp_machdep.c ============================================================================== --- projects/largeSMP/sys/i386/i386/mp_machdep.c Sat Apr 30 23:00:41 2011 (r221282) +++ projects/largeSMP/sys/i386/i386/mp_machdep.c Sat Apr 30 23:02:17 2011 (r221283) @@ -165,7 +165,6 @@ u_long *ipi_invlrng_counts[MAXCPU]; u_long *ipi_invlpg_counts[MAXCPU]; u_long *ipi_invlcache_counts[MAXCPU]; u_long *ipi_rendezvous_counts[MAXCPU]; -u_long *ipi_lazypmap_counts[MAXCPU]; static u_long *ipi_hardclock_counts[MAXCPU]; #endif @@ -552,10 +551,6 @@ cpu_mp_start(void) setidt(IPI_INVLCACHE, IDTVEC(invlcache), SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); - /* Install an inter-CPU IPI for lazy pmap release */ - setidt(IPI_LAZYPMAP, IDTVEC(lazypmap), - SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); - /* Install an inter-CPU IPI for all-CPU rendezvous */ setidt(IPI_RENDEZVOUS, IDTVEC(rendezvous), SDT_SYS386IGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); @@ -1682,8 +1677,6 @@ mp_ipi_intrcnt(void *dummy) intrcnt_add(buf, &ipi_ast_counts[i]); snprintf(buf, sizeof(buf), "cpu%d:rendezvous", i); intrcnt_add(buf, &ipi_rendezvous_counts[i]); - snprintf(buf, sizeof(buf), "cpu%d:lazypmap", i); - intrcnt_add(buf, &ipi_lazypmap_counts[i]); snprintf(buf, sizeof(buf), "cpu%d:hardclock", i); intrcnt_add(buf, &ipi_hardclock_counts[i]); } Modified: projects/largeSMP/sys/i386/i386/pmap.c ============================================================================== --- projects/largeSMP/sys/i386/i386/pmap.c Sat Apr 30 23:00:41 2011 (r221282) +++ projects/largeSMP/sys/i386/i386/pmap.c Sat Apr 30 23:02:17 2011 (r221283) @@ -1881,98 +1881,6 @@ retry: * Pmap allocation/deallocation routines. ***************************************************/ -#ifdef SMP -/* - * Deal with a SMP shootdown of other users of the pmap that we are - * trying to dispose of. This can be a bit hairy. - */ -static cpumask_t *lazymask; -static u_int lazyptd; -static volatile u_int lazywait; - -void pmap_lazyfix_action(void); - -void -pmap_lazyfix_action(void) -{ - cpumask_t mymask = PCPU_GET(cpumask); - -#ifdef COUNT_IPIS - (*ipi_lazypmap_counts[PCPU_GET(cpuid)])++; -#endif - if (rcr3() == lazyptd) - load_cr3(PCPU_GET(curpcb)->pcb_cr3); - atomic_clear_int(lazymask, mymask); - atomic_store_rel_int(&lazywait, 1); -} - -static void -pmap_lazyfix_self(cpumask_t mymask) -{ - - if (rcr3() == lazyptd) - load_cr3(PCPU_GET(curpcb)->pcb_cr3); - atomic_clear_int(lazymask, mymask); -} - - -static void -pmap_lazyfix(pmap_t pmap) -{ - cpumask_t mymask, mask; - u_int spins; - - while ((mask = pmap->pm_active) != 0) { - spins = 50000000; - mask = mask & -mask; /* Find least significant set bit */ - mtx_lock_spin(&smp_ipi_mtx); -#ifdef PAE - lazyptd = vtophys(pmap->pm_pdpt); -#else - lazyptd = vtophys(pmap->pm_pdir); -#endif - mymask = PCPU_GET(cpumask); - if (mask == mymask) { - lazymask = &pmap->pm_active; - pmap_lazyfix_self(mymask); - } else { - atomic_store_rel_int((u_int *)&lazymask, - (u_int)&pmap->pm_active); - atomic_store_rel_int(&lazywait, 0); - ipi_selected(mask, IPI_LAZYPMAP); - while (lazywait == 0) { - ia32_pause(); - if (--spins == 0) - break; - } - } - mtx_unlock_spin(&smp_ipi_mtx); - if (spins == 0) - printf("pmap_lazyfix: spun for 50000000\n"); - } -} - -#else /* SMP */ - -/* - * Cleaning up on uniprocessor is easy. For various reasons, we're - * unlikely to have to even execute this code, including the fact - * that the cleanup is deferred until the parent does a wait(2), which - * means that another userland process has run. - */ -static void -pmap_lazyfix(pmap_t pmap) -{ - u_int cr3; - - cr3 = vtophys(pmap->pm_pdir); - if (cr3 == rcr3()) { - load_cr3(PCPU_GET(curpcb)->pcb_cr3); - pmap->pm_active &= ~(PCPU_GET(cpumask)); - } -} -#endif /* SMP */ - /* * Release any resources held by the given physical map. * Called when a pmap initialized by pmap_pinit is being released. @@ -1990,7 +1898,6 @@ pmap_release(pmap_t pmap) KASSERT(pmap->pm_root == NULL, ("pmap_release: pmap has reserved page table page(s)")); - pmap_lazyfix(pmap); mtx_lock_spin(&allpmaps_lock); LIST_REMOVE(pmap, pm_list); mtx_unlock_spin(&allpmaps_lock); Modified: projects/largeSMP/sys/i386/i386/swtch.s ============================================================================== --- projects/largeSMP/sys/i386/i386/swtch.s Sat Apr 30 23:00:41 2011 (r221282) +++ projects/largeSMP/sys/i386/i386/swtch.s Sat Apr 30 23:02:17 2011 (r221283) @@ -174,12 +174,6 @@ ENTRY(cpu_switch) /* switch address space */ movl PCB_CR3(%edx),%eax -#ifdef PAE - cmpl %eax,IdlePDPT /* Kernel address space? */ -#else - cmpl %eax,IdlePTD /* Kernel address space? */ -#endif - je sw0 READ_CR3(%ebx) /* The same address space? */ cmpl %ebx,%eax je sw0 Modified: projects/largeSMP/sys/i386/include/smp.h ============================================================================== --- projects/largeSMP/sys/i386/include/smp.h Sat Apr 30 23:00:41 2011 (r221282) +++ projects/largeSMP/sys/i386/include/smp.h Sat Apr 30 23:02:17 2011 (r221283) @@ -42,7 +42,6 @@ extern u_long *ipi_invlrng_counts[MAXCPU extern u_long *ipi_invlpg_counts[MAXCPU]; extern u_long *ipi_invlcache_counts[MAXCPU]; extern u_long *ipi_rendezvous_counts[MAXCPU]; -extern u_long *ipi_lazypmap_counts[MAXCPU]; #endif /* IPI handlers */ @@ -53,8 +52,7 @@ inthand_t IDTVEC(invlcache), /* Write back and invalidate cache */ IDTVEC(ipi_intr_bitmap_handler), /* Bitmap based IPIs */ IDTVEC(cpustop), /* CPU stops & waits to be restarted */ - IDTVEC(rendezvous), /* handle CPU rendezvous */ - IDTVEC(lazypmap); /* handle lazy pmap release */ + IDTVEC(rendezvous); /* handle CPU rendezvous */ /* functions in mp_machdep.c */ void cpu_add(u_int apic_id, char boot_cpu); Modified: projects/largeSMP/sys/i386/xen/pmap.c ============================================================================== --- projects/largeSMP/sys/i386/xen/pmap.c Sat Apr 30 23:00:41 2011 (r221282) +++ projects/largeSMP/sys/i386/xen/pmap.c Sat Apr 30 23:02:17 2011 (r221283) @@ -1681,98 +1681,6 @@ retry: * Pmap allocation/deallocation routines. ***************************************************/ -#ifdef SMP -/* - * Deal with a SMP shootdown of other users of the pmap that we are - * trying to dispose of. This can be a bit hairy. - */ -static cpumask_t *lazymask; -static u_int lazyptd; -static volatile u_int lazywait; - -void pmap_lazyfix_action(void); - -void -pmap_lazyfix_action(void) -{ - cpumask_t mymask = PCPU_GET(cpumask); - -#ifdef COUNT_IPIS - (*ipi_lazypmap_counts[PCPU_GET(cpuid)])++; -#endif - if (rcr3() == lazyptd) - load_cr3(PCPU_GET(curpcb)->pcb_cr3); - atomic_clear_int(lazymask, mymask); - atomic_store_rel_int(&lazywait, 1); -} - -static void -pmap_lazyfix_self(cpumask_t mymask) -{ - - if (rcr3() == lazyptd) - load_cr3(PCPU_GET(curpcb)->pcb_cr3); - atomic_clear_int(lazymask, mymask); -} - - -static void -pmap_lazyfix(pmap_t pmap) -{ - cpumask_t mymask, mask; - u_int spins; - - while ((mask = pmap->pm_active) != 0) { - spins = 50000000; - mask = mask & -mask; /* Find least significant set bit */ - mtx_lock_spin(&smp_ipi_mtx); -#ifdef PAE - lazyptd = vtophys(pmap->pm_pdpt); -#else - lazyptd = vtophys(pmap->pm_pdir); -#endif - mymask = PCPU_GET(cpumask); - if (mask == mymask) { - lazymask = &pmap->pm_active; - pmap_lazyfix_self(mymask); - } else { - atomic_store_rel_int((u_int *)&lazymask, - (u_int)&pmap->pm_active); - atomic_store_rel_int(&lazywait, 0); - ipi_selected(mask, IPI_LAZYPMAP); - while (lazywait == 0) { - ia32_pause(); - if (--spins == 0) - break; - } - } - mtx_unlock_spin(&smp_ipi_mtx); - if (spins == 0) - printf("pmap_lazyfix: spun for 50000000\n"); - } -} - -#else /* SMP */ - -/* - * Cleaning up on uniprocessor is easy. For various reasons, we're - * unlikely to have to even execute this code, including the fact - * that the cleanup is deferred until the parent does a wait(2), which - * means that another userland process has run. - */ -static void -pmap_lazyfix(pmap_t pmap) -{ - u_int cr3; - - cr3 = vtophys(pmap->pm_pdir); - if (cr3 == rcr3()) { - load_cr3(PCPU_GET(curpcb)->pcb_cr3); - pmap->pm_active &= ~(PCPU_GET(cpumask)); - } -} -#endif /* SMP */ - /* * Release any resources held by the given physical map. * Called when a pmap initialized by pmap_pinit is being released. From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 23:12:38 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 685B11065678; Sat, 30 Apr 2011 23:12:38 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 47AF38FC0A; Sat, 30 Apr 2011 23:12:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3UNCcDQ066601; Sat, 30 Apr 2011 23:12:38 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3UNCc1Y066595; Sat, 30 Apr 2011 23:12:38 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201104302312.p3UNCc1Y066595@svn.freebsd.org> From: Attilio Rao Date: Sat, 30 Apr 2011 23:12:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221284 - in projects/largeSMP/sys: amd64/amd64 amd64/include i386/i386 i386/include i386/xen X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 23:12:38 -0000 Author: attilio Date: Sat Apr 30 23:12:37 2011 New Revision: 221284 URL: http://svn.freebsd.org/changeset/base/221284 Log: Add the function md_assert_nopreempt(), which is a very consistent function on the possibility of a thread to not preempt. As this function is very tied to x86 (interrupts disabled checkings) it is not intended to be used in MI code. Modified: projects/largeSMP/sys/amd64/amd64/mp_machdep.c projects/largeSMP/sys/amd64/include/smp.h projects/largeSMP/sys/i386/i386/mp_machdep.c projects/largeSMP/sys/i386/include/smp.h projects/largeSMP/sys/i386/xen/mp_machdep.c Modified: projects/largeSMP/sys/amd64/amd64/mp_machdep.c ============================================================================== --- projects/largeSMP/sys/amd64/amd64/mp_machdep.c Sat Apr 30 23:02:17 2011 (r221283) +++ projects/largeSMP/sys/amd64/amd64/mp_machdep.c Sat Apr 30 23:12:37 2011 (r221284) @@ -1428,6 +1428,22 @@ cpususpend_handler(void) intr_restore(rf); } +void +md_assert_nopreempt(void) +{ +#ifdef INVARIANTS + struct thread *td; + register_t rflags; + + td = curthread; + rflags = read_rflags(); + + if ((rflags & PSL_I) != 0 && td->td_critnest <= 0) + panic("Preemption still allowed, thread %s\n", + (td->td_pinned <= 0) ? "not pinned" : "pinned"); +#endif +} + /* * This is called once the rest of the system is up and running and we're * ready to let the AP's out of the pen. Modified: projects/largeSMP/sys/amd64/include/smp.h ============================================================================== --- projects/largeSMP/sys/amd64/include/smp.h Sat Apr 30 23:02:17 2011 (r221283) +++ projects/largeSMP/sys/amd64/include/smp.h Sat Apr 30 23:12:37 2011 (r221284) @@ -64,6 +64,7 @@ void ipi_bitmap_handler(struct trapfram void ipi_cpu(int cpu, u_int ipi); int ipi_nmi_handler(void); void ipi_selected(cpumask_t cpus, u_int ipi); +void md_assert_nopreempt(void); u_int mp_bootaddress(u_int); int mp_grab_cpu_hlt(void); void smp_cache_flush(void); Modified: projects/largeSMP/sys/i386/i386/mp_machdep.c ============================================================================== --- projects/largeSMP/sys/i386/i386/mp_machdep.c Sat Apr 30 23:02:17 2011 (r221283) +++ projects/largeSMP/sys/i386/i386/mp_machdep.c Sat Apr 30 23:12:37 2011 (r221284) @@ -1486,6 +1486,22 @@ cpustop_handler(void) } } +void +md_assert_nopreempt(void) +{ +#ifdef INVARIANTS + struct thread *td; + register_t rflags; + + td = curthread; + rflags = read_rflags(); + + if ((rflags & PSL_I) != 0 && td->td_critnest <= 0) + panic("Preemption still allowed, thread %s\n", + (td->td_pinned <= 0) ? "not pinned" : "pinned"); +#endif +} + /* * This is called once the rest of the system is up and running and we're * ready to let the AP's out of the pen. Modified: projects/largeSMP/sys/i386/include/smp.h ============================================================================== --- projects/largeSMP/sys/i386/include/smp.h Sat Apr 30 23:02:17 2011 (r221283) +++ projects/largeSMP/sys/i386/include/smp.h Sat Apr 30 23:12:37 2011 (r221284) @@ -65,6 +65,7 @@ void ipi_bitmap_handler(struct trapfram void ipi_cpu(int cpu, u_int ipi); int ipi_nmi_handler(void); void ipi_selected(cpumask_t cpus, u_int ipi); +void md_assert_nopreempt(void); u_int mp_bootaddress(u_int); int mp_grab_cpu_hlt(void); void smp_cache_flush(void); Modified: projects/largeSMP/sys/i386/xen/mp_machdep.c ============================================================================== --- projects/largeSMP/sys/i386/xen/mp_machdep.c Sat Apr 30 23:02:17 2011 (r221283) +++ projects/largeSMP/sys/i386/xen/mp_machdep.c Sat Apr 30 23:12:37 2011 (r221284) @@ -1241,6 +1241,22 @@ cpustop_handler(void) } } +void +md_assert_nopreempt(void) +{ +#ifdef INVARIANTS + struct thread *td; + register_t rflags; + + td = curthread; + rflags = read_rflags(); + + if ((rflags & PSL_I) != 0 && td->td_critnest <= 0) + panic("Preemption still allowed, thread %s\n", + (td->td_pinned <= 0) ? "not pinned" : "pinned"); +#endif +} + /* * This is called once the rest of the system is up and running and we're * ready to let the AP's out of the pen. From owner-svn-src-projects@FreeBSD.ORG Sat Apr 30 23:28:08 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 31C35106566B; Sat, 30 Apr 2011 23:28:08 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 02E8F8FC12; Sat, 30 Apr 2011 23:28:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p3UNS7Q6067090; Sat, 30 Apr 2011 23:28:07 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3UNS7Wu067088; Sat, 30 Apr 2011 23:28:07 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201104302328.p3UNS7Wu067088@svn.freebsd.org> From: Attilio Rao Date: Sat, 30 Apr 2011 23:28:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221285 - projects/largeSMP/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Apr 2011 23:28:08 -0000 Author: attilio Date: Sat Apr 30 23:28:07 2011 New Revision: 221285 URL: http://svn.freebsd.org/changeset/base/221285 Log: - Remove the following sysctl: kern.sched.ipiwakeup.onecpu kern.sched.ipiwakeup.htt2 Because they are absolutely obsolete. Probabilly the whole wakeup forward mechanism should be revisited for a better fitting in modern hw. - As map2 variable is no longer used rename map3 to map2 - Fix a string by making more informative the msg and removing the arguments passing Approved by: julian Modified: projects/largeSMP/sys/kern/sched_4bsd.c Modified: projects/largeSMP/sys/kern/sched_4bsd.c ============================================================================== --- projects/largeSMP/sys/kern/sched_4bsd.c Sat Apr 30 23:12:37 2011 (r221284) +++ projects/largeSMP/sys/kern/sched_4bsd.c Sat Apr 30 23:28:07 2011 (r221285) @@ -235,16 +235,6 @@ SYSCTL_INT(_kern_sched_ipiwakeup, OID_AU &forward_wakeup_use_loop, 0, "Use a loop to find idle cpus"); -static int forward_wakeup_use_single = 0; -SYSCTL_INT(_kern_sched_ipiwakeup, OID_AUTO, onecpu, CTLFLAG_RW, - &forward_wakeup_use_single, 0, - "Only signal one idle cpu"); - -static int forward_wakeup_use_htt = 0; -SYSCTL_INT(_kern_sched_ipiwakeup, OID_AUTO, htt2, CTLFLAG_RW, - &forward_wakeup_use_htt, 0, - "account for htt"); - #endif #if 0 static int sched_followon = 0; @@ -1064,7 +1054,7 @@ static int forward_wakeup(int cpunum) { struct pcpu *pc; - cpumask_t dontuse, id, map, map2, map3, me; + cpumask_t dontuse, id, map, map2, me; mtx_assert(&sched_lock, MA_OWNED); @@ -1089,13 +1079,13 @@ forward_wakeup(int cpunum) return (0); dontuse = me | stopped_cpus | hlt_cpus_mask; - map3 = 0; + map2 = 0; if (forward_wakeup_use_loop) { SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { id = pc->pc_cpumask; if ((id & dontuse) == 0 && pc->pc_curthread == pc->pc_idlethread) { - map3 |= id; + map2 |= id; } } } @@ -1106,33 +1096,19 @@ forward_wakeup(int cpunum) /* If they are both on, compare and use loop if different. */ if (forward_wakeup_use_loop) { - if (map != map3) { - printf("map (%02X) != map3 (%02X)\n", map, - map3); - map = map3; + if (map != map2) { + printf("map != map2, loop method preferred\n"); + map = map2; } } } else { - map = map3; + map = map2; } /* If we only allow a specific CPU, then mask off all the others. */ if (cpunum != NOCPU) { KASSERT((cpunum <= mp_maxcpus),("forward_wakeup: bad cpunum.")); map &= (1 << cpunum); - } else { - /* Try choose an idle die. */ - if (forward_wakeup_use_htt) { - map2 = (map & (map >> 1)) & 0x5555; - if (map2) { - map = map2; - } - } - - /* Set only one bit. */ - if (forward_wakeup_use_single) { - map = map & ((~map) + 1); - } } if (map) { forward_wakeups_delivered++;