Date: Sat, 17 Nov 2007 23:33:04 GMT From: John Birrell <jb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 129182 for review Message-ID: <200711172333.lAHNX4wd047028@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=129182 Change 129182 by jb@jb_freebsd1 on 2007/11/17 23:32:29 IFC Affected files ... .. //depot/projects/dtrace/src/bin/ln/ln.1#4 integrate .. //depot/projects/dtrace/src/bin/ln/ln.c#4 integrate .. //depot/projects/dtrace/src/gnu/usr.bin/gdb/arch/arm/Makefile#3 integrate .. //depot/projects/dtrace/src/gnu/usr.bin/gdb/arch/arm/armfbsd-nat.c#3 integrate .. //depot/projects/dtrace/src/gnu/usr.bin/gdb/arch/arm/armfbsd-tdep.c#3 integrate .. //depot/projects/dtrace/src/gnu/usr.bin/gdb/arch/arm/init.c#3 integrate .. //depot/projects/dtrace/src/gnu/usr.bin/gdb/arch/arm/nm-fbsd.h#3 integrate .. //depot/projects/dtrace/src/lib/Makefile#16 integrate .. //depot/projects/dtrace/src/lib/libthread_db/arch/arm/libpthread_md.c#1 branch .. //depot/projects/dtrace/src/sbin/ipfw/ipfw.8#15 integrate .. //depot/projects/dtrace/src/sbin/mount_ntfs/mount_ntfs.8#4 integrate .. //depot/projects/dtrace/src/sys/amd64/amd64/pmap.c#23 integrate .. //depot/projects/dtrace/src/sys/arm/arm/pmap.c#21 integrate .. //depot/projects/dtrace/src/sys/arm/conf/HL200#1 branch .. //depot/projects/dtrace/src/sys/boot/i386/cdboot/cdboot.s#6 integrate .. //depot/projects/dtrace/src/sys/fs/msdosfs/msdosfs_vfsops.c#15 integrate .. //depot/projects/dtrace/src/sys/fs/ntfs/ntfs_vfsops.c#7 integrate .. //depot/projects/dtrace/src/sys/i386/i386/pmap.c#20 integrate .. //depot/projects/dtrace/src/sys/ia64/ia64/pmap.c#11 integrate .. //depot/projects/dtrace/src/sys/netinet/ip_dummynet.c#8 integrate .. //depot/projects/dtrace/src/sys/powerpc/powerpc/mmu_if.m#7 integrate .. //depot/projects/dtrace/src/sys/powerpc/powerpc/mmu_oea.c#11 integrate .. //depot/projects/dtrace/src/sys/powerpc/powerpc/pmap_dispatch.c#9 integrate .. //depot/projects/dtrace/src/sys/sparc64/sparc64/pmap.c#13 integrate .. //depot/projects/dtrace/src/sys/sun4v/sun4v/pmap.c#25 integrate .. //depot/projects/dtrace/src/sys/vm/pmap.h#8 integrate .. //depot/projects/dtrace/src/sys/vm/vm_object.c#16 integrate .. //depot/projects/dtrace/www/en/internal/machines.sgml#10 integrate Differences ... ==== //depot/projects/dtrace/src/bin/ln/ln.1#4 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)ln.1 8.2 (Berkeley) 12/30/93 -.\" $FreeBSD: src/bin/ln/ln.1,v 1.31 2006/02/14 11:08:05 glebius Exp $ +.\" $FreeBSD: src/bin/ln/ln.1,v 1.32 2007/11/17 21:01:22 ru Exp $ .\" .Dd February 14, 2006 .Dt LN 1 @@ -41,11 +41,15 @@ .Nd make links .Sh SYNOPSIS .Nm -.Op Fl Ffhinsv +.Op Fl s Op Fl F +.Op Fl f | i +.Op Fl hnv .Ar source_file .Op Ar target_file .Nm -.Op Fl Ffhinsv +.Op Fl s Op Fl F +.Op Fl f | i +.Op Fl hnv .Ar source_file ... .Ar target_dir .Nm link ==== //depot/projects/dtrace/src/bin/ln/ln.c#4 (text+ko) ==== @@ -39,7 +39,7 @@ #endif /* not lint */ #endif #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/bin/ln/ln.c,v 1.34 2006/02/14 11:08:05 glebius Exp $"); +__FBSDID("$FreeBSD: src/bin/ln/ln.c,v 1.36 2007/11/17 21:01:22 ru Exp $"); #include <sys/param.h> #include <sys/stat.h> @@ -69,7 +69,7 @@ main(int argc, char *argv[]) { struct stat sb; - char *p, *sourcedir; + char *p, *targetdir; int ch, exitval; /* @@ -134,34 +134,34 @@ case 0: usage(); /* NOTREACHED */ - case 1: /* ln target */ + case 1: /* ln source */ exit(linkit(argv[0], ".", 1)); - case 2: /* ln target source */ + case 2: /* ln source target */ exit(linkit(argv[0], argv[1], 0)); default: ; } - /* ln target1 target2 directory */ - sourcedir = argv[argc - 1]; - if (hflag && lstat(sourcedir, &sb) == 0 && S_ISLNK(sb.st_mode)) { + /* ln source1 source2 directory */ + targetdir = argv[argc - 1]; + if (hflag && lstat(targetdir, &sb) == 0 && S_ISLNK(sb.st_mode)) { /* * We were asked not to follow symlinks, but found one at * the target--simulate "not a directory" error */ errno = ENOTDIR; - err(1, "%s", sourcedir); + err(1, "%s", targetdir); } - if (stat(sourcedir, &sb)) - err(1, "%s", sourcedir); + if (stat(targetdir, &sb)) + err(1, "%s", targetdir); if (!S_ISDIR(sb.st_mode)) usage(); - for (exitval = 0; *argv != sourcedir; ++argv) - exitval |= linkit(*argv, sourcedir, 1); + for (exitval = 0; *argv != targetdir; ++argv) + exitval |= linkit(*argv, targetdir, 1); exit(exitval); } int -linkit(const char *target, const char *source, int isdir) +linkit(const char *source, const char *target, int isdir) { struct stat sb; const char *p; @@ -169,57 +169,57 @@ char path[PATH_MAX]; if (!sflag) { - /* If target doesn't exist, quit now. */ - if (stat(target, &sb)) { - warn("%s", target); + /* If source doesn't exist, quit now. */ + if (stat(source, &sb)) { + warn("%s", source); return (1); } /* Only symbolic links to directories. */ if (S_ISDIR(sb.st_mode)) { errno = EISDIR; - warn("%s", target); + warn("%s", source); return (1); } } /* - * If the source is a directory (and not a symlink if hflag), - * append the target's name. + * If the target is a directory (and not a symlink if hflag), + * append the source's name. */ if (isdir || - (lstat(source, &sb) == 0 && S_ISDIR(sb.st_mode)) || - (!hflag && stat(source, &sb) == 0 && S_ISDIR(sb.st_mode))) { - if ((p = strrchr(target, '/')) == NULL) - p = target; + (lstat(target, &sb) == 0 && S_ISDIR(sb.st_mode)) || + (!hflag && stat(target, &sb) == 0 && S_ISDIR(sb.st_mode))) { + if ((p = strrchr(source, '/')) == NULL) + p = source; else ++p; - if (snprintf(path, sizeof(path), "%s/%s", source, p) >= + if (snprintf(path, sizeof(path), "%s/%s", target, p) >= (ssize_t)sizeof(path)) { errno = ENAMETOOLONG; - warn("%s", target); + warn("%s", source); return (1); } - source = path; + target = path; } - exists = !lstat(source, &sb); + exists = !lstat(target, &sb); /* * If the file exists, then unlink it forcibly if -f was specified * and interactively if -i was specified. */ if (fflag && exists) { if (Fflag && S_ISDIR(sb.st_mode)) { - if (rmdir(source)) { - warn("%s", source); + if (rmdir(target)) { + warn("%s", target); return (1); } - } else if (unlink(source)) { - warn("%s", source); + } else if (unlink(target)) { + warn("%s", target); return (1); } } else if (iflag && exists) { fflush(stdout); - fprintf(stderr, "replace %s? ", source); + fprintf(stderr, "replace %s? ", target); first = ch = getchar(); while(ch != '\n' && ch != EOF) @@ -230,23 +230,23 @@ } if (Fflag && S_ISDIR(sb.st_mode)) { - if (rmdir(source)) { - warn("%s", source); + if (rmdir(target)) { + warn("%s", target); return (1); } - } else if (unlink(source)) { - warn("%s", source); + } else if (unlink(target)) { + warn("%s", target); return (1); } } /* Attempt the link. */ - if ((*linkf)(target, source)) { - warn("%s", source); + if ((*linkf)(source, target)) { + warn("%s", target); return (1); } if (vflag) - (void)printf("%s %c> %s\n", source, linkch, target); + (void)printf("%s %c> %s\n", target, linkch, source); return (0); } @@ -254,8 +254,8 @@ usage(void) { (void)fprintf(stderr, "%s\n%s\n%s\n", - "usage: ln [-Ffhinsv] source_file [target_file]", - " ln [-Ffhinsv] source_file ... target_dir", + "usage: ln [-s [-F]] [-f | -i] [-hnv] source_file [target_file]", + " ln [-s [-F]] [-f | -i] [-hnv] source_file ... target_dir", " link source_file target_file"); exit(1); } ==== //depot/projects/dtrace/src/gnu/usr.bin/gdb/arch/arm/Makefile#3 (text+ko) ==== @@ -1,8 +1,8 @@ -# $FreeBSD: src/gnu/usr.bin/gdb/arch/arm/Makefile,v 1.1 2006/09/14 06:49:34 imp Exp $ +# $FreeBSD: src/gnu/usr.bin/gdb/arch/arm/Makefile,v 1.2 2007/11/17 21:30:03 cognet Exp $ GENSRCS+= xm.h LIBSRCS+= armfbsd-nat.c -LIBSRCS+= arm-tdep.c armfbsd-tdep.c solib.c solib-svr4.c +LIBSRCS+= arm-tdep.c armfbsd-tdep.c solib.c solib-svr4.c fbsd-threads.c nm.h: #XXX this should be arm/nm-fbsd.h but won't until it's merged into the gdb repo ==== //depot/projects/dtrace/src/gnu/usr.bin/gdb/arch/arm/armfbsd-nat.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/gnu/usr.bin/gdb/arch/arm/armfbsd-nat.c,v 1.1 2006/09/14 06:49:34 imp Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/gdb/arch/arm/armfbsd-nat.c,v 1.2 2007/11/17 21:30:03 cognet Exp $ */ /* Native-dependent code for BSD Unix running on ARM's, for GDB. Copyright 1988, 1989, 1991, 1992, 1994, 1996, 1999, 2002 @@ -78,9 +78,7 @@ supply_register (ARM_SP_REGNUM, (char *) &gregset->r_sp); supply_register (ARM_LR_REGNUM, (char *) &gregset->r_lr); - /* This is ok: we're running native... */ - r_pc = ADDR_BITS_REMOVE (gregset->r_pc); - supply_register (ARM_PC_REGNUM, (char *) &r_pc); + supply_register (ARM_PC_REGNUM, (char *) &gregset->r_pc); if (arm_apcs_32) supply_register (ARM_PS_REGNUM, (char *) &gregset->r_cpsr); @@ -88,6 +86,28 @@ supply_register (ARM_PS_REGNUM, (char *) &gregset->r_pc); } +/* Fill register REGNO (if it is a general-purpose register) in + *GREGSETPS with the value in GDB's register array. If REGNO is -1, + do this for all registers. */ + +void +fill_gregset (struct reg *gregset, int regno) +{ + int i; + + for (i = ARM_A1_REGNUM; i < ARM_SP_REGNUM; i++) + if ((regno == -1 || regno == i)) + regcache_collect (i, &gregset->r[i]); + if (regno == -1 || regno == ARM_SP_REGNUM) + regcache_collect (ARM_SP_REGNUM, &gregset->r_sp); + if (regno == -1 || regno == ARM_LR_REGNUM) + regcache_collect (ARM_LR_REGNUM, &gregset->r_lr); + if (regno == -1 || regno == ARM_PC_REGNUM) + regcache_collect (ARM_PC_REGNUM, &gregset->r_pc); + if (regno == -1 || regno == ARM_PS_REGNUM) + regcache_collect (ARM_PS_REGNUM, &gregset->r_cpsr); +} + void supply_fpregset (struct fpreg *fparegset) { @@ -100,6 +120,20 @@ supply_register (ARM_FPS_REGNUM, (char *) &fparegset->fpr_fpsr); } +void +fill_fpregset (struct fpreg *fparegset, int regno) +{ + int i; + + for (i = ARM_F0_REGNUM; i <= ARM_F7_REGNUM; i++) + if (regno == -1 || regno == i) + regcache_raw_supply(current_regcache, i, + &fparegset->fpr[i - ARM_F0_REGNUM]); + if (regno == -1 || regno == ARM_FPS_REGNUM) + regcache_raw_supply(current_regcache, ARM_FPS_REGNUM, + &fparegset->fpr_fpsr); +} + static void fetch_register (int regno) { ==== //depot/projects/dtrace/src/gnu/usr.bin/gdb/arch/arm/armfbsd-tdep.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/gnu/usr.bin/gdb/arch/arm/armfbsd-tdep.c,v 1.1 2006/09/14 06:49:34 imp Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/gdb/arch/arm/armfbsd-tdep.c,v 1.2 2007/11/17 21:30:03 cognet Exp $ */ /* Target-specific functions for ARM running under NetBSD. Copyright 2002, 2003 Free Software Foundation, Inc. @@ -60,7 +60,6 @@ tdep->fp_model = ARM_FLOAT_SOFT_VFP; } - void _initialize_armfbsd_tdep (void) { ==== //depot/projects/dtrace/src/gnu/usr.bin/gdb/arch/arm/init.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/gnu/usr.bin/gdb/arch/arm/init.c,v 1.1 2006/09/14 06:49:34 imp Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/gdb/arch/arm/init.c,v 1.2 2007/11/17 21:30:03 cognet Exp $ */ /* Do not modify this file. */ /* It is created automatically by the Makefile. */ @@ -105,6 +105,7 @@ extern initialize_file_ftype _initialize_mi_cmd_env; extern initialize_file_ftype _initialize_mi_interp; extern initialize_file_ftype _initialize_mi_main; +extern initialize_file_ftype _initialize_thread_db; extern initialize_file_ftype _initialize_tui_hooks; extern initialize_file_ftype _initialize_tui_interp; extern initialize_file_ftype _initialize_tui_layout; @@ -128,6 +129,7 @@ _initialize_kernel_u_addr (); _initialize_infptrace (); _initialize_inftarg (); + _initialize_thread_db (); #endif _initialize_arm_fbsdnat (); _initialize_remote (); ==== //depot/projects/dtrace/src/gnu/usr.bin/gdb/arch/arm/nm-fbsd.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/gnu/usr.bin/gdb/arch/arm/nm-fbsd.h,v 1.1 2006/09/14 06:49:34 imp Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/gdb/arch/arm/nm-fbsd.h,v 1.2 2007/11/17 18:41:04 cognet Exp $ */ /* Native-dependent definitions for ARM running NetBSD, for GDB. Copyright 1986, 1987, 1989, 1992, 1994, 1999 Free Software Foundation, Inc. @@ -29,4 +29,7 @@ /* Override copies of {fetch,store}_inferior_registers in `infptrace.c'. */ #define FETCH_INFERIOR_REGISTERS +/* We can attach and detach. */ +#define ATTACH_DETACH + #endif /* NM_NBSD_H */ ==== //depot/projects/dtrace/src/lib/Makefile#16 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 6/4/93 -# $FreeBSD: src/lib/Makefile,v 1.225 2007/10/26 11:07:25 ru Exp $ +# $FreeBSD: src/lib/Makefile,v 1.226 2007/11/17 21:29:02 cognet Exp $ .include <bsd.own.mk> @@ -36,7 +36,7 @@ ${_libncp} ${_libngatm} libopie libpam libpcap \ libpmc ${_libkse} librt ${_libsdp} ${_libsm} ${_libsmb} \ ${_libsmdb} \ - ${_libsmutil} libstand libtelnet ${_libthr} ${_libthread_db} libufs \ + ${_libsmutil} libstand libtelnet ${_libthr} libthread_db libufs \ libugidfw ${_libusbhid} ${_libvgl} libwrap liby libz ${_bind} .if exists(${.CURDIR}/csu/${MACHINE_ARCH}-elf) @@ -108,10 +108,6 @@ _libthr= libthr .endif -.if ${MACHINE_ARCH} != "arm" -_libthread_db= libthread_db -.endif - .if ${MK_USB} != "no" _libusbhid= libusbhid .endif ==== //depot/projects/dtrace/src/sbin/ipfw/ipfw.8#15 (text+ko) ==== @@ -1,7 +1,7 @@ .\" -.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.205 2007/10/19 18:24:19 rpaulo Exp $ +.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.206 2007/11/17 21:54:57 oleg Exp $ .\" -.Dd October 19, 2007 +.Dd November 17, 2007 .Dt IPFW 8 .Os .Sh NAME @@ -1756,6 +1756,16 @@ TCP connection, or from/to a given host, or entire subnet, or a protocol type, etc. .Pp +There are two modes of dummynet operation: normal and fast. +Normal mode tries to emulate real link: dummynet scheduler ensures packet will +not leave pipe faster than it would be on real link with given bandwidth. +Fast mode allows certain packets to bypass dummynet scheduler (if packet flow +does not exceed pipe's bandwidth). Thus fast mode requires less cpu cycles +per packet (in average) but packet latency can be significantly lower comparing +to real link with same bandwidth. Default is normal mode, fast mode can be +enabled by setting net.inet.ip.dummynet.io_fast sysctl(8) variable to non-zero +value. +.Pp Packets belonging to the same flow are then passed to either of two different objects, which implement the traffic regulation: .Bl -hang -offset XXXX @@ -2120,6 +2130,14 @@ This value is used when no .Cm buckets option is specified when configuring a pipe/queue. +.It Em net.inet.ip.dummynet.io_fast : No 0 +If set to non-zero value enables "fast" mode of dummynet operation (see above). +.It Em net.inet.ip.dummynet.io_pkt +Number of packets passed to by dummynet. +.It Em net.inet.ip.dummynet.io_pkt_drop +Number of packets dropped by dummynet. +.It Em net.inet.ip.dummynet.io_pkt_fast +Number of packets bypassed dummynet scheduler. .It Em net.inet.ip.dummynet.max_chain_len : No 16 Target value for the maximum number of pipes/queues in a hash bucket. The product ==== //depot/projects/dtrace/src/sbin/mount_ntfs/mount_ntfs.8#4 (text+ko) ==== @@ -28,9 +28,9 @@ .\" (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: src/sbin/mount_ntfs/mount_ntfs.8,v 1.21 2005/02/10 09:19:31 ru Exp $ +.\" $FreeBSD: src/sbin/mount_ntfs/mount_ntfs.8,v 1.22 2007/11/17 17:05:00 maxim Exp $ .\" -.Dd January 3, 1999 +.Dd 17 November, 2007 .Dt MOUNT_NTFS 8 .Os .Sh NAME @@ -82,6 +82,9 @@ .It Fl m Ar mask Specify the maximum file permissions for files in the file system. +Only the nine low-order bits of +.Ar mask +are used. .It Fl C Ar charset Specify local .Ar charset ==== //depot/projects/dtrace/src/sys/amd64/amd64/pmap.c#23 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.593 2007/11/05 18:13:33 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.594 2007/11/17 22:52:28 alc Exp $"); /* * Manages physical address maps. @@ -2925,6 +2925,35 @@ } /* + * pmap_page_wired_mappings: + * + * Return the number of managed mappings to the given physical page + * that are wired. + */ +int +pmap_page_wired_mappings(vm_page_t m) +{ + pv_entry_t pv; + pt_entry_t *pte; + pmap_t pmap; + int count; + + count = 0; + if ((m->flags & PG_FICTITIOUS) != 0) + return (count); + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { + pmap = PV_PMAP(pv); + PMAP_LOCK(pmap); + pte = pmap_pte(pmap, pv->pv_va); + if ((*pte & PG_W) != 0) + count++; + PMAP_UNLOCK(pmap); + } + return (count); +} + +/* * Remove all pages from specified address space * this aids process exit speeds. Also, this code * is special cased for current process only, but ==== //depot/projects/dtrace/src/sys/arm/arm/pmap.c#21 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.88 2007/11/05 11:36:10 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.89 2007/11/17 22:52:28 alc Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> @@ -4490,6 +4490,27 @@ return (FALSE); } +/* + * pmap_page_wired_mappings: + * + * Return the number of managed mappings to the given physical page + * that are wired. + */ +int +pmap_page_wired_mappings(vm_page_t m) +{ + pv_entry_t pv; + int count; + + count = 0; + if ((m->flags & PG_FICTITIOUS) != 0) + return (count); + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) + if ((pv->pv_flags & PVF_WIRED) != 0) + count++; + return (count); +} /* * pmap_ts_referenced: ==== //depot/projects/dtrace/src/sys/boot/i386/cdboot/cdboot.s#6 (text+ko) ==== @@ -27,7 +27,7 @@ # SUCH DAMAGE. # -# $FreeBSD: src/sys/boot/i386/cdboot/cdboot.s,v 1.17 2007/02/23 21:07:44 remko Exp $ +# $FreeBSD: src/sys/boot/i386/cdboot/cdboot.s,v 1.18 2007/11/17 17:32:40 jhb Exp $ # # This program is a freestanding boot program to load an a.out binary @@ -585,7 +585,7 @@ msg_relocate: .asciz "Relocating the loader and the BTX\r\n" msg_jump: .asciz "Starting the BTX loader\r\n" msg_badread: .ascii "Read Error: 0x" -hex_error: .ascii "00\r\n" +hex_error: .asciz "00\r\n" msg_novd: .asciz "Could not find Primary Volume Descriptor\r\n" msg_lookup: .asciz "Looking up " msg_lookup2: .asciz "... " ==== //depot/projects/dtrace/src/sys/fs/msdosfs/msdosfs_vfsops.c#15 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.181 2007/10/23 10:39:03 bde Exp $ */ +/* $FreeBSD: src/sys/fs/msdosfs/msdosfs_vfsops.c,v 1.182 2007/11/17 16:19:48 maxim Exp $ */ /* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */ /*- @@ -464,7 +464,7 @@ /* * Initialize ownerships and permissions, since nothing else will - * initialize them iff we are mounting root. + * initialize them if we are mounting root. */ pmp->pm_uid = UID_ROOT; pmp->pm_gid = GID_WHEEL; ==== //depot/projects/dtrace/src/sys/fs/ntfs/ntfs_vfsops.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/fs/ntfs/ntfs_vfsops.c,v 1.89 2007/10/16 10:54:53 alfred Exp $ + * $FreeBSD: src/sys/fs/ntfs/ntfs_vfsops.c,v 1.90 2007/11/17 17:05:01 maxim Exp $ */ @@ -41,6 +41,7 @@ #include <sys/buf.h> #include <sys/fcntl.h> #include <sys/malloc.h> +#include <sys/stat.h> #include <sys/systm.h> #include <geom/geom.h> @@ -331,7 +332,7 @@ if (1 == vfs_scanopt(mp->mnt_optnew, "gid", "%d", &v)) ntmp->ntm_gid = v; if (1 == vfs_scanopt(mp->mnt_optnew, "mode", "%d", &v)) - ntmp->ntm_mode = v; + ntmp->ntm_mode = v & ACCESSPERMS; vfs_flagopt(mp->mnt_optnew, "caseins", &ntmp->ntm_flag, NTFS_MFLAG_CASEINS); vfs_flagopt(mp->mnt_optnew, ==== //depot/projects/dtrace/src/sys/i386/i386/pmap.c#20 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.598 2007/11/13 23:00:24 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.599 2007/11/17 22:52:28 alc Exp $"); /* * Manages physical address maps. @@ -3030,6 +3030,37 @@ } /* + * pmap_page_wired_mappings: + * + * Return the number of managed mappings to the given physical page + * that are wired. + */ +int +pmap_page_wired_mappings(vm_page_t m) +{ + pv_entry_t pv; + pt_entry_t *pte; + pmap_t pmap; + int count; + + count = 0; + if ((m->flags & PG_FICTITIOUS) != 0) + return (count); + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + sched_pin(); + TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { + pmap = PV_PMAP(pv); + PMAP_LOCK(pmap); + pte = pmap_pte_quick(pmap, pv->pv_va); + if ((*pte & PG_W) != 0) + count++; + PMAP_UNLOCK(pmap); + } + sched_unpin(); + return (count); +} + +/* * Remove all pages from specified address space * this aids process exit speeds. Also, this code * is special cased for current process only, but ==== //depot/projects/dtrace/src/sys/ia64/ia64/pmap.c#11 (text+ko) ==== @@ -46,7 +46,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.192 2007/11/05 11:36:13 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.193 2007/11/17 22:52:29 alc Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -1915,6 +1915,38 @@ } /* + * pmap_page_wired_mappings: + * + * Return the number of managed mappings to the given physical page + * that are wired. + */ +int +pmap_page_wired_mappings(vm_page_t m) +{ + struct ia64_lpte *pte; + pmap_t oldpmap, pmap; + pv_entry_t pv; + int count; + + count = 0; + if ((m->flags & PG_FICTITIOUS) != 0) + return (count); + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { + pmap = pv->pv_pmap; + PMAP_LOCK(pmap); + oldpmap = pmap_switch(pmap); + pte = pmap_find_vhpt(pv->pv_va); + KASSERT(pte != NULL, ("pte")); + if (pmap_wired(pte)) + count++; + pmap_switch(oldpmap); + PMAP_UNLOCK(pmap); + } + return (count); +} + +/* * Remove all pages from specified address space * this aids process exit speeds. Also, this code * is special cased for current process only, but ==== //depot/projects/dtrace/src/sys/netinet/ip_dummynet.c#8 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/netinet/ip_dummynet.c,v 1.112 2007/11/06 23:01:42 oleg Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/ip_dummynet.c,v 1.113 2007/11/17 21:54:56 oleg Exp $"); #define DUMMYNET_DEBUG @@ -110,6 +110,7 @@ /* Adjusted vs non-adjusted curr_time difference (ticks). */ static long tick_diff; +static int io_fast; static unsigned long io_pkt; static unsigned long io_pkt_fast; static unsigned long io_pkt_drop; @@ -185,6 +186,8 @@ SYSCTL_LONG(_net_inet_ip_dummynet, OID_AUTO, tick_lost, CTLFLAG_RD, &tick_lost, 0, "Number of ticks coalesced by dummynet taskqueue."); +SYSCTL_INT(_net_inet_ip_dummynet, OID_AUTO, io_fast, + CTLFLAG_RW, &io_fast, 0, "Enable fast dummynet io."); SYSCTL_ULONG(_net_inet_ip_dummynet, OID_AUTO, io_pkt, CTLFLAG_RD, &io_pkt, 0, "Number of packets passed to dummynet."); @@ -967,7 +970,7 @@ q->hash_slot = i; q->next = fs->rq[i]; q->S = q->F + 1; /* hack - mark timestamp as invalid. */ - q->numbytes = fs->pipe->bandwidth; + q->numbytes = io_fast ? fs->pipe->bandwidth : 0; fs->rq[i] = q; fs->rq_elements++; return (q); @@ -1325,7 +1328,7 @@ goto done; if (q->q_time < curr_time) - q->numbytes = fs->pipe->bandwidth; + q->numbytes = io_fast ? fs->pipe->bandwidth : 0; q->q_time = curr_time; /* @@ -1736,7 +1739,7 @@ /* Flush accumulated credit for all queues. */ for (i = 0; i <= pipe->fs.rq_size; i++) for (q = pipe->fs.rq[i]; q; q = q->next) - q->numbytes = p->bandwidth; + q->numbytes = io_fast ? p->bandwidth : 0; pipe->bandwidth = p->bandwidth; pipe->numbytes = 0; /* just in case... */ ==== //depot/projects/dtrace/src/sys/powerpc/powerpc/mmu_if.m#7 (text+ko) ==== @@ -23,7 +23,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/sys/powerpc/powerpc/mmu_if.m,v 1.7 2006/12/05 04:01:52 grehan Exp $ +# $FreeBSD: src/sys/powerpc/powerpc/mmu_if.m,v 1.8 2007/11/17 22:52:29 alc Exp $ # #include <sys/param.h> @@ -431,6 +431,21 @@ /** + * @brief Count the number of managed mappings to the given physical + * page that are wired. + * + * @param _pg physical page + * + * @retval int the number of wired, managed mappings to the + * given physical page + */ +METHOD int page_wired_mappings { + mmu_t _mmu; + vm_page_t _pg; +}; + + +/** * @brief Initialise a physical map data structure * * @param _pmap physical map ==== //depot/projects/dtrace/src/sys/powerpc/powerpc/mmu_oea.c#11 (text+ko) ==== @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/mmu_oea.c,v 1.115 2006/12/20 01:10:21 grehan Exp $"); +__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/mmu_oea.c,v 1.116 2007/11/17 22:52:29 alc Exp $"); /* * Manages physical address maps. @@ -322,6 +322,7 @@ boolean_t moea_ts_referenced(mmu_t, vm_page_t); vm_offset_t moea_map(mmu_t, vm_offset_t *, vm_offset_t, vm_offset_t, int); boolean_t moea_page_exists_quick(mmu_t, pmap_t, vm_page_t); +int moea_page_wired_mappings(mmu_t, vm_page_t); void moea_pinit(mmu_t, pmap_t); void moea_pinit0(mmu_t, pmap_t); void moea_protect(mmu_t, pmap_t, vm_offset_t, vm_offset_t, vm_prot_t); @@ -359,6 +360,7 @@ MMUMETHOD(mmu_ts_referenced, moea_ts_referenced), MMUMETHOD(mmu_map, moea_map), MMUMETHOD(mmu_page_exists_quick,moea_page_exists_quick), + MMUMETHOD(mmu_page_wired_mappings,moea_page_wired_mappings), MMUMETHOD(mmu_pinit, moea_pinit), MMUMETHOD(mmu_pinit0, moea_pinit0), MMUMETHOD(mmu_protect, moea_protect), @@ -1492,6 +1494,26 @@ return (FALSE); } +/* + * Return the number of managed mappings to the given physical page + * that are wired. + */ +int +moea_page_wired_mappings(mmu_t mmu, vm_page_t m) +{ + struct pvo_entry *pvo; + int count; + + count = 0; + if (!moea_initialized || (m->flags & PG_FICTITIOUS) != 0) + return (count); + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + LIST_FOREACH(pvo, vm_page_to_pvoh(m), pvo_vlink) + if ((pvo->pvo_vaddr & PVO_WIRED) != 0) + count++; + return (count); +} + static u_int moea_vsidcontext; void ==== //depot/projects/dtrace/src/sys/powerpc/powerpc/pmap_dispatch.c#9 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/pmap_dispatch.c,v 1.10 2007/11/05 11:36:15 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/pmap_dispatch.c,v 1.11 2007/11/17 22:52:29 alc Exp $"); /* * Dispatch MI pmap calls to the appropriate MMU implementation @@ -194,6 +194,13 @@ } int +pmap_page_wired_mappings(vm_page_t m) +{ + + return (MMU_PAGE_WIRED_MAPPINGS(mmu_obj, m)); +} + +int pmap_pinit(pmap_t pmap) { MMU_PINIT(mmu_obj, pmap); ==== //depot/projects/dtrace/src/sys/sparc64/sparc64/pmap.c#13 (text+ko) ==== @@ -39,7 +39,7 @@ * SUCH DAMAGE. * * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/sparc64/sparc64/pmap.c,v 1.167 2007/11/05 11:36:15 kib Exp $ + * $FreeBSD: src/sys/sparc64/sparc64/pmap.c,v 1.168 2007/11/17 22:52:29 alc Exp $ */ /* @@ -1753,6 +1753,26 @@ } /* + * Return the number of managed mappings to the given physical page + * that are wired. + */ +int +pmap_page_wired_mappings(vm_page_t m) +{ + struct tte *tp; + int count; + + count = 0; + if ((m->flags & PG_FICTITIOUS) != 0) + return (count); + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + TAILQ_FOREACH(tp, &m->md.tte_list, tte_link) + if ((tp->tte_data & (TD_PV | TD_WIRED)) == (TD_PV | TD_WIRED)) + count++; + return (count); +} + +/* * Remove all pages from specified address space, this aids process exit * speeds. This is much faster than pmap_remove n the case of running down * an entire address space. Only works for the current pmap. ==== //depot/projects/dtrace/src/sys/sun4v/sun4v/pmap.c#25 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/sun4v/sun4v/pmap.c,v 1.40 2007/11/05 11:36:16 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/sun4v/sun4v/pmap.c,v 1.41 2007/11/17 22:52:29 alc Exp $"); #include "opt_kstack_pages.h" #include "opt_msgbuf.h" @@ -1669,6 +1669,34 @@ TAILQ_INIT(&m->md.pv_list); m->md.pv_list_count = 0; } + +/* + * Return the number of managed mappings to the given physical page + * that are wired. + */ +int +pmap_page_wired_mappings(vm_page_t m) +{ + pmap_t pmap; + pv_entry_t pv; + uint64_t tte_data; + int count; + + count = 0; + if ((m->flags & PG_FICTITIOUS) != 0) + return (count); + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { + pmap = pv->pv_pmap; + PMAP_LOCK(pmap); + tte_data = tte_hash_lookup(pmap->pm_hash, pv->pv_va); + if ((tte_data & VTD_WIRED) != 0) >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200711172333.lAHNX4wd047028>