From owner-svn-src-user@freebsd.org Sun Oct 2 21:13:47 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5413DAC6889 for ; Sun, 2 Oct 2016 21:13:47 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2C9EBD21; Sun, 2 Oct 2016 21:13:47 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u92LDkGP060475; Sun, 2 Oct 2016 21:13:46 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u92LDkDY060472; Sun, 2 Oct 2016 21:13:46 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201610022113.u92LDkDY060472@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 2 Oct 2016 21:13:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306595 - in user/alc/PQ_LAUNDRY/sys: sys vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Oct 2016 21:13:47 -0000 Author: markj Date: Sun Oct 2 21:13:45 2016 New Revision: 306595 URL: https://svnweb.freebsd.org/changeset/base/306595 Log: Make the shortfall target smaller and wake the laundry thread on demand. Rather than waking up periodically, the laundry is now woken up by the pagedaemon after an inactive queue scan. If the scan failed to reach its target, the laundry thread will attempt to make up the shortfall before the next inactive queue scan. This helps avoid excessive laundering in scenarios where the inactive queue is not a significant source of reclaimable memory (e.g., when most of a system's memory belongs to the ZFS ARC) by giving lowmem handlers a chance to help make up for a page shortage before setting a laundering target. Reported by: pho Reviewed by: alc Modified: user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h user/alc/PQ_LAUNDRY/sys/vm/vm_page.h user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Modified: user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h ============================================================================== --- user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h Sun Oct 2 21:11:25 2016 (r306594) +++ user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h Sun Oct 2 21:13:45 2016 (r306595) @@ -77,6 +77,7 @@ struct vmmeter { u_int v_intrans; /* (p) intransit blocking page faults */ u_int v_reactivated; /* (p) pages reactivated by the pagedaemon */ u_int v_pdwakeups; /* (p) times daemon has awaken from sleep */ + u_int v_ltwakeups; /* (p) times laundry thread has been woken */ u_int v_pdpages; /* (p) pages analyzed by daemon */ u_int v_tcached; /* (p) total pages cached */ @@ -112,7 +113,6 @@ struct vmmeter { u_int v_vforkpages; /* (p) VM pages affected by vfork() */ u_int v_rforkpages; /* (p) VM pages affected by rfork() */ u_int v_kthreadpages; /* (p) VM pages affected by fork() by kernel */ - u_int v_spare[1]; }; #ifdef _KERNEL @@ -193,8 +193,7 @@ static inline int vm_laundry_target(void) { - return (vm_cnt.v_inactive_target - vm_cnt.v_inactive_count + - vm_paging_target()); + return (vm_paging_target()); } /* Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_page.h ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_page.h Sun Oct 2 21:11:25 2016 (r306594) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_page.h Sun Oct 2 21:13:45 2016 (r306595) @@ -239,6 +239,7 @@ extern struct vm_domain vm_dom[MAXMEMDOM #define vm_pagequeue_assert_locked(pq) mtx_assert(&(pq)->pq_mutex, MA_OWNED) #define vm_pagequeue_lock(pq) mtx_lock(&(pq)->pq_mutex) +#define vm_pagequeue_lockptr(pq) (&(pq)->pq_mutex) #define vm_pagequeue_unlock(pq) mtx_unlock(&(pq)->pq_mutex) #ifdef _KERNEL Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Sun Oct 2 21:11:25 2016 (r306594) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Sun Oct 2 21:13:45 2016 (r306595) @@ -166,6 +166,12 @@ static int vm_pageout_oom_seq = 12; bool vm_pageout_wanted; /* Event on which pageout daemon sleeps */ bool vm_pages_needed; /* Are threads waiting for free pages? */ +static enum { + VM_LAUNDRY_IDLE, + VM_LAUNDRY_BACKGROUND, + VM_LAUNDRY_SHORTFALL, +} vm_laundry_request; /* Pending request for dirty page laundering. */ + #if !defined(NO_SWAPPING) static int vm_pageout_req_swapout; /* XXX */ static int vm_daemon_needed; @@ -1105,19 +1111,21 @@ static void vm_pageout_laundry_worker(void *arg) { struct vm_domain *domain; + struct vm_pagequeue *pq; uint64_t nclean, ndirty; u_int last_launder, wakeups; int cycle, domidx, last_target, launder, prev_shortfall, shortfall; - int target; + int sleeptime, target; domidx = (uintptr_t)arg; domain = &vm_dom[domidx]; + pq = &domain->vmd_pagequeues[PQ_LAUNDRY]; KASSERT(domain->vmd_segs != 0, ("domain without segments")); vm_pageout_init_marker(&domain->vmd_laundry_marker, PQ_LAUNDRY); cycle = 0; last_launder = 0; - prev_shortfall = 0; + shortfall = prev_shortfall = 0; target = 0; /* @@ -1133,18 +1141,9 @@ vm_pageout_laundry_worker(void *arg) * First determine whether we need to launder pages to meet a * shortage of free pages. */ - shortfall = vm_laundry_target() + vm_pageout_deficit; if (shortfall > 0) { - /* - * If we're in shortfall and we haven't yet started a - * laundering cycle to get us out of it, begin a run. - * If we're still in shortfall despite a previous - * laundering run, start a new one. - */ - if (prev_shortfall == 0 || cycle == 0) { - target = shortfall; - cycle = VM_LAUNDER_RATE; - } + target = shortfall; + cycle = VM_LAUNDER_RATE; prev_shortfall = shortfall; } if (prev_shortfall > 0) { @@ -1155,7 +1154,7 @@ vm_pageout_laundry_worker(void *arg) * shortfall, we have no immediate need to launder * pages. Otherwise keep laundering. */ - if (shortfall <= 0 || cycle == 0) { + if (vm_laundry_target() <= 0 || cycle == 0) { prev_shortfall = target = 0; } else { last_launder = wakeups; @@ -1211,17 +1210,34 @@ vm_pageout_laundry_worker(void *arg) } dolaundry: - if (launder > 0) { + if (launder > 0) /* * Because of I/O clustering, the number of laundered * pages could exceed "target" by the maximum size of * a cluster minus one. */ target -= min(vm_pageout_launder(domain, launder, - prev_shortfall > 0), target); - } - tsleep(&vm_cnt.v_laundry_count, PVM, "laundr", - hz / VM_LAUNDER_INTERVAL); + shortfall > 0), target); + + /* + * Sleep for a little bit if we're in the middle of a laundering + * run or a pagedaemon thread has signalled us since the last run + * started. Otherwise, wait for a kick from the pagedaemon. + */ + vm_pagequeue_lock(pq); + if (target > 0 || vm_laundry_request != VM_LAUNDRY_IDLE) + sleeptime = hz / VM_LAUNDER_INTERVAL; + else + sleeptime = 0; + (void)mtx_sleep(&vm_laundry_request, vm_pagequeue_lockptr(pq), + PVM, "laundr", sleeptime); + if (vm_laundry_request == VM_LAUNDRY_SHORTFALL) + shortfall = vm_laundry_target() + vm_pageout_deficit; + else + shortfall = 0; + if (target == 0) + vm_laundry_request = VM_LAUNDRY_IDLE; + vm_pagequeue_unlock(pq); } } @@ -1235,7 +1251,7 @@ static void vm_pageout_scan(struct vm_domain *vmd, int pass) { vm_page_t m, next; - struct vm_pagequeue *pq; + struct vm_pagequeue *pq, *laundryq; vm_object_t object; long min_scan; int act_delta, addl_page_shortage, deficit, maxscan; @@ -1456,11 +1472,22 @@ drop_page: vm_pagequeue_unlock(pq); /* - * Wakeup the laundry thread(s) if we didn't free the targeted number - * of pages. - */ - if (page_shortage > 0) - wakeup(&vm_cnt.v_laundry_count); + * Wake up the laundry thread so that it can perform any needed + * laundering. If we didn't meet our target, we're in shortfall and + * need to launder more aggressively. + */ + if (vm_laundry_request == VM_LAUNDRY_IDLE && + starting_page_shortage > 0) { + laundryq = &vm_dom[0].vmd_pagequeues[PQ_LAUNDRY]; + vm_pagequeue_lock(laundryq); + if (page_shortage > 0) + vm_laundry_request = VM_LAUNDRY_SHORTFALL; + else if (vm_laundry_request != VM_LAUNDRY_SHORTFALL) + vm_laundry_request = VM_LAUNDRY_BACKGROUND; + wakeup(&vm_laundry_request); + vm_pagequeue_unlock(laundryq); + PCPU_INC(cnt.v_ltwakeups); + } #if !defined(NO_SWAPPING) /* From owner-svn-src-user@freebsd.org Sun Oct 2 21:14:39 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7B54DAC690D for ; Sun, 2 Oct 2016 21:14:39 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4C09DECC; Sun, 2 Oct 2016 21:14:39 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u92LEc0x060549; Sun, 2 Oct 2016 21:14:38 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u92LEc58060548; Sun, 2 Oct 2016 21:14:38 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201610022114.u92LEc58060548@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 2 Oct 2016 21:14:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306596 - user/alc/PQ_LAUNDRY/usr.bin/vmstat X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Oct 2016 21:14:39 -0000 Author: markj Date: Sun Oct 2 21:14:38 2016 New Revision: 306596 URL: https://svnweb.freebsd.org/changeset/base/306596 Log: Remove a stray reference to the t_cached statistic. Modified: user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c Modified: user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c ============================================================================== --- user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c Sun Oct 2 21:13:45 2016 (r306595) +++ user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c Sun Oct 2 21:14:38 2016 (r306596) @@ -1082,8 +1082,6 @@ dosum(void) sum.v_vforkpages); xo_emit("{:pages-rfork/%9u} {N:pages affected by rfork}()\n", sum.v_rforkpages); - xo_emit("{:pages-total-cached/%9u} {N:pages cached}\n", - sum.v_tcached); xo_emit("{:pages-freed/%9u} {N:pages freed}\n", sum.v_tfree); xo_emit("{:pages-freed-by-daemon/%9u} {N:pages freed by daemon}\n", From owner-svn-src-user@freebsd.org Mon Oct 3 19:52:12 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2AD8FAF4754 for ; Mon, 3 Oct 2016 19:52:12 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E3073B73; Mon, 3 Oct 2016 19:52:11 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u93JqBil081189; Mon, 3 Oct 2016 19:52:11 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u93Jq7sP080479; Mon, 3 Oct 2016 19:52:07 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201610031952.u93Jq7sP080479@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 3 Oct 2016 19:52:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306655 - in user/alc/PQ_LAUNDRY: . bin/chio bin/chmod bin/ed bin/kill gnu/lib gnu/usr.bin/binutils include lib/libc/gen lib/libjail lib/librt lib/libstand sbin/ccdconfig sbin/dmesg sbi... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Oct 2016 19:52:12 -0000 Author: markj Date: Mon Oct 3 19:52:06 2016 New Revision: 306655 URL: https://svnweb.freebsd.org/changeset/base/306655 Log: MFH r306654 Added: user/alc/PQ_LAUNDRY/sys/modules/evdev/ - copied from r306654, head/sys/modules/evdev/ user/alc/PQ_LAUNDRY/sys/modules/rpi_ft5406/ - copied from r306654, head/sys/modules/rpi_ft5406/ user/alc/PQ_LAUNDRY/sys/modules/uinput/ - copied from r306654, head/sys/modules/uinput/ Deleted: user/alc/PQ_LAUNDRY/sys/arm/allwinner/a20/std.a20 user/alc/PQ_LAUNDRY/sys/arm/allwinner/a31/std.a31 user/alc/PQ_LAUNDRY/sys/arm/allwinner/a83t/std.a83t user/alc/PQ_LAUNDRY/sys/arm/allwinner/h3/std.h3 user/alc/PQ_LAUNDRY/tools/build/options/WITHOUT_ELFCOPY_AS_OBJCOPY user/alc/PQ_LAUNDRY/tools/build/options/WITH_ELFCOPY_AS_OBJCOPY Modified: user/alc/PQ_LAUNDRY/ObsoleteFiles.inc user/alc/PQ_LAUNDRY/UPDATING user/alc/PQ_LAUNDRY/bin/chio/chio.1 user/alc/PQ_LAUNDRY/bin/chmod/chmod.c user/alc/PQ_LAUNDRY/bin/ed/ed.1 user/alc/PQ_LAUNDRY/bin/kill/kill.1 user/alc/PQ_LAUNDRY/gnu/lib/Makefile user/alc/PQ_LAUNDRY/gnu/usr.bin/binutils/Makefile user/alc/PQ_LAUNDRY/include/mqueue.h user/alc/PQ_LAUNDRY/include/stdio.h user/alc/PQ_LAUNDRY/include/stdlib.h user/alc/PQ_LAUNDRY/include/time.h user/alc/PQ_LAUNDRY/include/unistd.h user/alc/PQ_LAUNDRY/lib/libc/gen/Symbol.map user/alc/PQ_LAUNDRY/lib/libc/gen/arc4random.c user/alc/PQ_LAUNDRY/lib/libc/gen/crypt.c user/alc/PQ_LAUNDRY/lib/libjail/jail.c user/alc/PQ_LAUNDRY/lib/librt/Symbol.map user/alc/PQ_LAUNDRY/lib/librt/mq.c user/alc/PQ_LAUNDRY/lib/librt/timer.c user/alc/PQ_LAUNDRY/lib/libstand/cd9660.c user/alc/PQ_LAUNDRY/sbin/ccdconfig/ccdconfig.8 user/alc/PQ_LAUNDRY/sbin/dmesg/dmesg.8 user/alc/PQ_LAUNDRY/sbin/dump/dump.8 user/alc/PQ_LAUNDRY/sbin/dumpon/dumpon.8 user/alc/PQ_LAUNDRY/sbin/etherswitchcfg/etherswitchcfg.8 user/alc/PQ_LAUNDRY/sbin/fsck_msdosfs/fsck_msdosfs.8 user/alc/PQ_LAUNDRY/sbin/fsdb/fsdb.8 user/alc/PQ_LAUNDRY/sbin/gbde/gbde.8 user/alc/PQ_LAUNDRY/sbin/init/init.8 user/alc/PQ_LAUNDRY/sbin/mknod/mknod.8 user/alc/PQ_LAUNDRY/sbin/mksnap_ffs/mksnap_ffs.8 user/alc/PQ_LAUNDRY/sbin/mount_fusefs/mount_fusefs.8 user/alc/PQ_LAUNDRY/sbin/mount_msdosfs/mount_msdosfs.8 user/alc/PQ_LAUNDRY/sbin/mount_nullfs/mount_nullfs.8 user/alc/PQ_LAUNDRY/sbin/mount_unionfs/mount_unionfs.8 user/alc/PQ_LAUNDRY/sbin/pfctl/pfctl.8 user/alc/PQ_LAUNDRY/sbin/sconfig/sconfig.8 user/alc/PQ_LAUNDRY/sbin/setkey/setkey.8 user/alc/PQ_LAUNDRY/sbin/shutdown/shutdown.8 user/alc/PQ_LAUNDRY/sbin/swapon/swapon.8 user/alc/PQ_LAUNDRY/share/man/man9/taskqueue.9 user/alc/PQ_LAUNDRY/share/mk/src.opts.mk user/alc/PQ_LAUNDRY/sys/arm/arm/cpufunc.c user/alc/PQ_LAUNDRY/sys/arm/arm/cpufunc_asm_arm11.S user/alc/PQ_LAUNDRY/sys/arm/arm/cpufunc_asm_arm11x6.S user/alc/PQ_LAUNDRY/sys/arm/arm/cpufunc_asm_armv6.S user/alc/PQ_LAUNDRY/sys/arm/arm/cpufunc_asm_armv7.S user/alc/PQ_LAUNDRY/sys/arm/arm/genassym.c user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/bcm2835_fbd.c user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/bcm2835_ft5406.c user/alc/PQ_LAUNDRY/sys/arm/conf/BEAGLEBONE user/alc/PQ_LAUNDRY/sys/arm/conf/GENERIC user/alc/PQ_LAUNDRY/sys/arm/conf/RPI-B user/alc/PQ_LAUNDRY/sys/arm/conf/RPI2 user/alc/PQ_LAUNDRY/sys/arm/include/armreg.h user/alc/PQ_LAUNDRY/sys/arm/include/cpufunc.h user/alc/PQ_LAUNDRY/sys/arm/nvidia/tegra124/tegra124_clk_pll.c user/alc/PQ_LAUNDRY/sys/arm/nvidia/tegra124/tegra124_coretemp.c user/alc/PQ_LAUNDRY/sys/arm/nvidia/tegra124/tegra124_cpufreq.c user/alc/PQ_LAUNDRY/sys/arm/ti/cpsw/if_cpsw.c user/alc/PQ_LAUNDRY/sys/arm/ti/ti_adc.c user/alc/PQ_LAUNDRY/sys/arm/ti/ti_adcvar.h user/alc/PQ_LAUNDRY/sys/cddl/dev/fbt/arm/fbt_isa.c user/alc/PQ_LAUNDRY/sys/cddl/dev/fbt/fbt.c user/alc/PQ_LAUNDRY/sys/cddl/dev/fbt/powerpc/fbt_isa.c user/alc/PQ_LAUNDRY/sys/cddl/dev/fbt/x86/fbt_isa.c user/alc/PQ_LAUNDRY/sys/conf/Makefile.arm user/alc/PQ_LAUNDRY/sys/conf/NOTES user/alc/PQ_LAUNDRY/sys/conf/options user/alc/PQ_LAUNDRY/sys/dev/bwi/if_bwi.c user/alc/PQ_LAUNDRY/sys/dev/bwn/if_bwn.c user/alc/PQ_LAUNDRY/sys/dev/evdev/evdev.c user/alc/PQ_LAUNDRY/sys/dev/evdev/evdev.h user/alc/PQ_LAUNDRY/sys/dev/evdev/evdev_private.h user/alc/PQ_LAUNDRY/sys/dev/evdev/uinput.c user/alc/PQ_LAUNDRY/sys/dev/fb/fbd.c user/alc/PQ_LAUNDRY/sys/dev/fdt/simplebus.c user/alc/PQ_LAUNDRY/sys/dev/iicbus/iicbus.c user/alc/PQ_LAUNDRY/sys/dev/iwm/if_iwm.c user/alc/PQ_LAUNDRY/sys/dev/iwm/if_iwmvar.h user/alc/PQ_LAUNDRY/sys/dev/iwn/if_iwn.c user/alc/PQ_LAUNDRY/sys/dev/iwn/if_iwnvar.h user/alc/PQ_LAUNDRY/sys/dev/lmc/if_lmc.c user/alc/PQ_LAUNDRY/sys/dev/otus/if_otus.c user/alc/PQ_LAUNDRY/sys/dev/otus/if_otusreg.h user/alc/PQ_LAUNDRY/sys/dev/ral/if_ral_pci.c user/alc/PQ_LAUNDRY/sys/dev/ral/rt2560.c user/alc/PQ_LAUNDRY/sys/dev/ral/rt2560var.h user/alc/PQ_LAUNDRY/sys/dev/ral/rt2661.c user/alc/PQ_LAUNDRY/sys/dev/ral/rt2661var.h user/alc/PQ_LAUNDRY/sys/dev/ral/rt2860.c user/alc/PQ_LAUNDRY/sys/dev/ral/rt2860var.h user/alc/PQ_LAUNDRY/sys/dev/urtwn/if_urtwn.c user/alc/PQ_LAUNDRY/sys/dev/urtwn/if_urtwnreg.h user/alc/PQ_LAUNDRY/sys/dev/urtwn/if_urtwnvar.h user/alc/PQ_LAUNDRY/sys/dev/usb/input/ukbd.c user/alc/PQ_LAUNDRY/sys/dev/usb/input/ums.c user/alc/PQ_LAUNDRY/sys/dev/usb/wlan/if_rum.c user/alc/PQ_LAUNDRY/sys/dev/usb/wlan/if_rumvar.h user/alc/PQ_LAUNDRY/sys/dev/usb/wlan/if_run.c user/alc/PQ_LAUNDRY/sys/dev/usb/wlan/if_runvar.h user/alc/PQ_LAUNDRY/sys/dev/usb/wlan/if_ural.c user/alc/PQ_LAUNDRY/sys/dev/usb/wlan/if_uralvar.h user/alc/PQ_LAUNDRY/sys/dev/usb/wlan/if_zyd.c user/alc/PQ_LAUNDRY/sys/dev/usb/wlan/if_zydreg.h user/alc/PQ_LAUNDRY/sys/dev/wpi/if_wpi.c user/alc/PQ_LAUNDRY/sys/dev/wpi/if_wpivar.h user/alc/PQ_LAUNDRY/sys/kern/vfs_cache.c user/alc/PQ_LAUNDRY/sys/modules/Makefile user/alc/PQ_LAUNDRY/sys/net80211/ieee80211_amrr.c user/alc/PQ_LAUNDRY/sys/net80211/ieee80211_node.c user/alc/PQ_LAUNDRY/sys/net80211/ieee80211_node.h user/alc/PQ_LAUNDRY/sys/net80211/ieee80211_ratectl.h user/alc/PQ_LAUNDRY/sys/net80211/ieee80211_ratectl_none.c user/alc/PQ_LAUNDRY/sys/net80211/ieee80211_rssadapt.c user/alc/PQ_LAUNDRY/sys/netinet/if_ether.c user/alc/PQ_LAUNDRY/sys/netinet/in.c user/alc/PQ_LAUNDRY/sys/netinet/in_var.h user/alc/PQ_LAUNDRY/sys/netinet/udp_usrreq.c user/alc/PQ_LAUNDRY/sys/netinet6/nd6_nbr.c user/alc/PQ_LAUNDRY/sys/sys/errno.h user/alc/PQ_LAUNDRY/sys/sys/fbio.h user/alc/PQ_LAUNDRY/sys/sys/param.h user/alc/PQ_LAUNDRY/sys/vm/vm_init.c user/alc/PQ_LAUNDRY/tests/sys/mqueue/Makefile user/alc/PQ_LAUNDRY/tests/sys/mqueue/mqtest3.c user/alc/PQ_LAUNDRY/tests/sys/mqueue/mqtest4.c user/alc/PQ_LAUNDRY/tools/build/mk/OptionalObsoleteFiles.inc user/alc/PQ_LAUNDRY/usr.bin/elfcopy/Makefile user/alc/PQ_LAUNDRY/usr.bin/kdump/kdump.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/apm.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/bsd.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/ebr.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/format.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/gpt.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/image.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/mbr.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/mkimg.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/mkimg.h user/alc/PQ_LAUNDRY/usr.bin/mkimg/pc98.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/qcow.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/raw.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/scheme.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/vhd.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/vmdk.c user/alc/PQ_LAUNDRY/usr.bin/mkimg/vtoc8.c user/alc/PQ_LAUNDRY/usr.bin/patch/common.h user/alc/PQ_LAUNDRY/usr.sbin/arp/arp.4 user/alc/PQ_LAUNDRY/usr.sbin/bhyve/dbgport.c user/alc/PQ_LAUNDRY/usr.sbin/rtsold/rtsol.c Directory Properties: user/alc/PQ_LAUNDRY/ (props changed) user/alc/PQ_LAUNDRY/gnu/lib/ (props changed) user/alc/PQ_LAUNDRY/gnu/usr.bin/binutils/ (props changed) Modified: user/alc/PQ_LAUNDRY/ObsoleteFiles.inc ============================================================================== --- user/alc/PQ_LAUNDRY/ObsoleteFiles.inc Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/ObsoleteFiles.inc Mon Oct 3 19:52:06 2016 (r306655) @@ -38,6 +38,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20161003: MK_ELFCOPY_AS_OBJCOPY option retired +OLD_FILES+=usr/bin/elfcopy +OLD_FILES+=usr/share/man/man1/elfcopy.1.gz # 20160906: libkqueue tests moved to /usr/tests/sys/kqueue/libkqueue OLD_FILES+=usr/tests/sys/kqueue/kqtest OLD_FILES+=usr/tests/sys/kqueue/kqueue_test Modified: user/alc/PQ_LAUNDRY/UPDATING ============================================================================== --- user/alc/PQ_LAUNDRY/UPDATING Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/UPDATING Mon Oct 3 19:52:06 2016 (r306655) @@ -31,6 +31,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20161003: + The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. + ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. + 20160924: Relocatable object files with the extension of .So have been renamed to use an extension of .pico instead. The purpose of this change is Modified: user/alc/PQ_LAUNDRY/bin/chio/chio.1 ============================================================================== --- user/alc/PQ_LAUNDRY/bin/chio/chio.1 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/bin/chio/chio.1 Mon Oct 3 19:52:06 2016 (r306655) @@ -32,7 +32,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 14, 1998 +.Dd October 2, 2016 .Dt CHIO 1 .Os .Sh NAME @@ -61,10 +61,6 @@ rather than the default device .Pa /dev/ch0 . .El .Pp -The default changer may be overridden by setting the environment variable -.Ev CHANGER -to the desired changer device. -.Pp A medium changer apparatus is made up of .Em elements . There are five element types: @@ -265,6 +261,12 @@ Element supports passing media (exportin .It INENAB Element supports receiving media (importing) from an outside human operator. .El +.Sh ENVIRONMENT +.Bl -tag -width CHANGER +.It Ev CHANGER +The default changer may be overridden by setting this environmental +variable to the desired changer device. +.El .Sh FILES .Bl -tag -width /dev/ch0 -compact .It Pa /dev/ch0 Modified: user/alc/PQ_LAUNDRY/bin/chmod/chmod.c ============================================================================== --- user/alc/PQ_LAUNDRY/bin/chmod/chmod.c Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/bin/chmod/chmod.c Mon Oct 3 19:52:06 2016 (r306655) @@ -91,12 +91,11 @@ main(int argc, char *argv[]) break; case 'h': /* - * In System V (and probably POSIX.2) the -h option - * causes chmod to change the mode of the symbolic - * link. 4.4BSD's symbolic links didn't have modes, - * so it was an undocumented noop. In FreeBSD 3.0, - * lchmod(2) is introduced and this option does real - * work. + * In System V the -h option causes chmod to change + * the mode of the symbolic link. 4.4BSD's symbolic + * links didn't have modes, so it was an undocumented + * noop. In FreeBSD 3.0, lchmod(2) is introduced and + * this option does real work. */ hflag = 1; break; Modified: user/alc/PQ_LAUNDRY/bin/ed/ed.1 ============================================================================== --- user/alc/PQ_LAUNDRY/bin/ed/ed.1 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/bin/ed/ed.1 Mon Oct 3 19:52:06 2016 (r306655) @@ -1,5 +1,5 @@ .\" $FreeBSD$ -.Dd July 3, 2004 +.Dd October 2, 2016 .Dt ED 1 .Os .Sh NAME @@ -998,7 +998,7 @@ per line overhead: 4 ints An .Nm command appeared in -Version 1 AT&T UNIX. +.At v1 . .Sh BUGS The .Nm Modified: user/alc/PQ_LAUNDRY/bin/kill/kill.1 ============================================================================== --- user/alc/PQ_LAUNDRY/bin/kill/kill.1 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/bin/kill/kill.1 Mon Oct 3 19:52:06 2016 (r306655) @@ -32,7 +32,7 @@ .\" @(#)kill.1 8.2 (Berkeley) 4/28/95 .\" $FreeBSD$ .\" -.Dd April 28, 1995 +.Dd October 3, 2016 .Dt KILL 1 .Os .Sh NAME @@ -147,7 +147,8 @@ compatible. A .Nm command appeared in -.At v3 . +.At v3 +in section 8 of the manual. .Sh BUGS A replacement for the command .Dq Li kill 0 Modified: user/alc/PQ_LAUNDRY/gnu/lib/Makefile ============================================================================== --- user/alc/PQ_LAUNDRY/gnu/lib/Makefile Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/gnu/lib/Makefile Mon Oct 3 19:52:06 2016 (r306655) @@ -2,7 +2,9 @@ .include -SUBDIR= csu libgcc libdialog libregex +SUBDIR= csu libgcc libregex + +SUBDIR.${MK_DIALOG}+= libdialog .if ${MK_GCC} != "no" SUBDIR+= libgcov libgomp Modified: user/alc/PQ_LAUNDRY/gnu/usr.bin/binutils/Makefile ============================================================================== --- user/alc/PQ_LAUNDRY/gnu/usr.bin/binutils/Makefile Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/gnu/usr.bin/binutils/Makefile Mon Oct 3 19:52:06 2016 (r306655) @@ -9,17 +9,12 @@ SUBDIR= doc\ libbinutils \ as \ ld \ - ${_objcopy} \ - objdump \ + objdump -.if ${MK_ELFCOPY_AS_OBJCOPY} == "no" -_objcopy= objcopy -.endif SUBDIR_DEPEND_libbinutils=libbfd # for bfdver.h SUBDIR_DEPEND_as=libbfd libiberty libopcodes SUBDIR_DEPEND_ld=libbfd libiberty -SUBDIR_DEPEND_objcopy=libbfd libiberty libbinutils SUBDIR_DEPEND_objdump=libbfd libiberty libbinutils libopcodes .if !make(install) Modified: user/alc/PQ_LAUNDRY/include/mqueue.h ============================================================================== --- user/alc/PQ_LAUNDRY/include/mqueue.h Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/include/mqueue.h Mon Oct 3 19:52:06 2016 (r306655) @@ -50,7 +50,9 @@ ssize_t mq_timedreceive(mqd_t, char *__r int mq_timedsend(mqd_t, const char *, size_t, unsigned, const struct timespec *); int mq_unlink(const char *); -int __mq_oshandle(mqd_t mqd); +#if __BSD_VISIBLE +int mq_getfd_np(mqd_t mqd); +#endif /* __BSD_VISIBLE */ __END_DECLS #endif Modified: user/alc/PQ_LAUNDRY/include/stdio.h ============================================================================== --- user/alc/PQ_LAUNDRY/include/stdio.h Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/include/stdio.h Mon Oct 3 19:52:06 2016 (r306655) @@ -356,10 +356,10 @@ ssize_t getdelim(char ** __restrict, si FILE * __restrict); FILE *open_memstream(char **, size_t *); int renameat(int, const char *, int, const char *); -int vdprintf(int, const char * __restrict, __va_list); +int vdprintf(int, const char * __restrict, __va_list) __printflike(2, 0); /* _WITH_GETLINE to allow pre 11 sources to build on 11+ systems */ ssize_t getline(char ** __restrict, size_t * __restrict, FILE * __restrict); -int dprintf(int, const char * __restrict, ...); +int dprintf(int, const char * __restrict, ...) __printflike(2, 3); #endif /* __POSIX_VISIBLE >= 200809 */ /* Modified: user/alc/PQ_LAUNDRY/include/stdlib.h ============================================================================== --- user/alc/PQ_LAUNDRY/include/stdlib.h Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/include/stdlib.h Mon Oct 3 19:52:06 2016 (r306655) @@ -221,10 +221,6 @@ int putenv(char *); long random(void); unsigned short *seed48(unsigned short[3]); -#ifndef _SETKEY_DECLARED -int setkey(const char *); -#define _SETKEY_DECLARED -#endif char *setstate(/* const */ char *); void srand48(long); void srandom(unsigned int); Modified: user/alc/PQ_LAUNDRY/include/time.h ============================================================================== --- user/alc/PQ_LAUNDRY/include/time.h Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/include/time.h Mon Oct 3 19:52:06 2016 (r306655) @@ -194,6 +194,7 @@ char *timezone(int, int); /* XXX XSI con void tzsetwall(void); time_t timelocal(struct tm * const); time_t timegm(struct tm * const); +int timer_oshandle_np(timer_t timerid); #endif /* __BSD_VISIBLE */ #if __POSIX_VISIBLE >= 200809 || defined(_XLOCALE_H_) Modified: user/alc/PQ_LAUNDRY/include/unistd.h ============================================================================== --- user/alc/PQ_LAUNDRY/include/unistd.h Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/include/unistd.h Mon Oct 3 19:52:06 2016 (r306655) @@ -449,8 +449,6 @@ int symlink(const char * __restrict, co /* X/Open System Interfaces */ #if __XSI_VISIBLE char *crypt(const char *, const char *); -/* char *ctermid(char *); */ /* XXX ??? */ -int encrypt(char *, int); long gethostid(void); int lockf(int, int, off_t); int nice(int); @@ -498,8 +496,6 @@ const char * crypt_get_format(void); char *crypt_r(const char *, const char *, struct crypt_data *); int crypt_set_format(const char *); -int des_cipher(const char *, char *, long, int); -int des_setkey(const char *key); int dup3(int, int, int); int eaccess(const char *, int); void endusershell(void); @@ -567,10 +563,6 @@ int setdomainname(const char *, int); int setgroups(int, const gid_t *); void sethostid(long); int sethostname(const char *, int); -#ifndef _SETKEY_DECLARED -int setkey(const char *); -#define _SETKEY_DECLARED -#endif int setlogin(const char *); int setloginclass(const char *); void *setmode(const char *); Modified: user/alc/PQ_LAUNDRY/lib/libc/gen/Symbol.map ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libc/gen/Symbol.map Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/lib/libc/gen/Symbol.map Mon Oct 3 19:52:06 2016 (r306655) @@ -73,10 +73,6 @@ FBSD_1.0 { clock; closedir; confstr; - encrypt; - des_setkey; - des_cipher; - setkey; ctermid; ctermid_r; daemon; Modified: user/alc/PQ_LAUNDRY/lib/libc/gen/arc4random.c ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libc/gen/arc4random.c Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/lib/libc/gen/arc4random.c Mon Oct 3 19:52:06 2016 (r306655) @@ -137,35 +137,17 @@ arc4_sysctl(u_char *buf, size_t size) static void arc4_stir(void) { - int done, fd, i; - struct { - struct timeval tv; - pid_t pid; - u_char rnd[KEYSIZE]; - } rdat; + u_char rdat[KEYSIZE]; + int i; if (!rs_initialized) { arc4_init(); rs_initialized = 1; } - done = 0; - if (arc4_sysctl((u_char *)&rdat, KEYSIZE) == KEYSIZE) - done = 1; - if (!done) { - fd = _open(RANDOMDEV, O_RDONLY | O_CLOEXEC, 0); - if (fd >= 0) { - if (_read(fd, &rdat, KEYSIZE) == KEYSIZE) - done = 1; - (void)_close(fd); - } - } - if (!done) { - (void)gettimeofday(&rdat.tv, NULL); - rdat.pid = getpid(); - /* We'll just take whatever was on the stack too... */ - } + if (arc4_sysctl(rdat, KEYSIZE) != KEYSIZE) + abort(); /* Random sysctl cannot fail. */ - arc4_addrandom((u_char *)&rdat, KEYSIZE); + arc4_addrandom(rdat, KEYSIZE); /* * Discard early keystream, as per recommendations in: Modified: user/alc/PQ_LAUNDRY/lib/libc/gen/crypt.c ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libc/gen/crypt.c Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/lib/libc/gen/crypt.c Mon Oct 3 19:52:06 2016 (r306655) @@ -48,47 +48,41 @@ __FBSDID("$FreeBSD$"); * encryption, make sure you've got libcrypt.a around. */ -__warn_references(des_setkey, - "WARNING! des_setkey(3) not present in the system!"); - /* ARGSUSED */ int -des_setkey(const char *key __unused) +__freebsd11_des_setkey(const char *key __unused) { fprintf(stderr, "WARNING! des_setkey(3) not present in the system!\n"); return (0); } -__warn_references(des_cipher, - "WARNING! des_cipher(3) not present in the system!"); - /* ARGSUSED */ int -des_cipher(const char *in, char *out, long salt __unused, int num_iter __unused) +__freebsd11_des_cipher(const char *in, char *out, long salt __unused, + int num_iter __unused) { fprintf(stderr, "WARNING! des_cipher(3) not present in the system!\n"); bcopy(in, out, 8); return (0); } -__warn_references(setkey, - "WARNING! setkey(3) not present in the system!"); - /* ARGSUSED */ int -setkey(const char *key __unused) +__freebsd11_setkey(const char *key __unused) { fprintf(stderr, "WARNING! setkey(3) not present in the system!\n"); return (0); } -__warn_references(encrypt, - "WARNING! encrypt(3) not present in the system!"); - /* ARGSUSED */ int -encrypt(char *block __unused, int flag __unused) +__freebsd11_encrypt(char *block __unused, int flag __unused) { fprintf(stderr, "WARNING! encrypt(3) not present in the system!\n"); return (0); } + +__sym_compat(des_setkey, __freebsd11_des_setkey, FBSD_1.0); +__sym_compat(des_cipher, __freebsd11_des_cipher, FBSD_1.0); +__sym_compat(setkey, __freebsd11_setkey, FBSD_1.0); +__sym_compat(encrypt, __freebsd11_encrypt, FBSD_1.0); Modified: user/alc/PQ_LAUNDRY/lib/libjail/jail.c ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libjail/jail.c Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/lib/libjail/jail.c Mon Oct 3 19:52:06 2016 (r306655) @@ -223,11 +223,16 @@ jailparam_all(struct jailparam **jpp) /* Get the next parameter. */ mlen2 = sizeof(mib2); if (sysctl(mib1, mlen1 + 2, mib2, &mlen2, NULL, 0) < 0) { + if (errno == ENOENT) { + /* No more entries. */ + break; + } snprintf(jail_errmsg, JAIL_ERRMSGLEN, "sysctl(0.2): %s", strerror(errno)); goto error; } - if (mib2[0] != mib1[2] || mib2[1] != mib1[3] || + if (mib2[0] != mib1[2] || + mib2[1] != mib1[3] || mib2[2] != mib1[4]) break; /* Convert it to an ascii name. */ Modified: user/alc/PQ_LAUNDRY/lib/librt/Symbol.map ============================================================================== --- user/alc/PQ_LAUNDRY/lib/librt/Symbol.map Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/lib/librt/Symbol.map Mon Oct 3 19:52:06 2016 (r306655) @@ -25,6 +25,11 @@ FBSD_1.0 { timer_getoverrun; }; +FBSD_1.5 { + mq_getfd_np; + timer_oshandle_np; +}; + FBSDprivate_1.0 { _aio_read; _aio_write; Modified: user/alc/PQ_LAUNDRY/lib/librt/mq.c ============================================================================== --- user/alc/PQ_LAUNDRY/lib/librt/mq.c Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/lib/librt/mq.c Mon Oct 3 19:52:06 2016 (r306655) @@ -272,8 +272,9 @@ __mq_unlink(const char *path) return __sys_kmq_unlink(path); } +#pragma weak mq_getfd_np int -__mq_oshandle(mqd_t mqd) +mq_getfd_np(mqd_t mqd) { return (mqd->oshandle); Modified: user/alc/PQ_LAUNDRY/lib/librt/timer.c ============================================================================== --- user/alc/PQ_LAUNDRY/lib/librt/timer.c Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/lib/librt/timer.c Mon Oct 3 19:52:06 2016 (r306655) @@ -175,8 +175,9 @@ __timer_settime(timer_t timerid, int fla flags, value, ovalue); } +#pragma weak timer_oshandle_np int -__timer_oshandle(timer_t timerid) +timer_oshandle_np(timer_t timerid) { return (timerid->oshandle); Modified: user/alc/PQ_LAUNDRY/lib/libstand/cd9660.c ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libstand/cd9660.c Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/lib/libstand/cd9660.c Mon Oct 3 19:52:06 2016 (r306655) @@ -353,15 +353,13 @@ cd9660_open(const char *path, struct ope dp = (struct iso_directory_record *) ((char *) dp + isonum_711(dp->length)); - - /* if the new block is zero length, its padding */ + /* If the new block has zero length, it is padding. */ if (isonum_711(dp->length) == 0) { - /* skip to next block, if any */ + /* Skip to next block, if any. */ off = boff * ISO_DEFAULT_BLOCK_SIZE; continue; - } else { - off += isonum_711(dp->length); } + off += isonum_711(dp->length); } if (off >= dsize) { rc = ENOENT; Modified: user/alc/PQ_LAUNDRY/sbin/ccdconfig/ccdconfig.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/ccdconfig/ccdconfig.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/ccdconfig/ccdconfig.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 1, 2013 +.Dd October 3, 2016 .Dt CCDCONFIG 8 .Os .Sh NAME @@ -159,7 +159,7 @@ It reads as a two disk stripe of da4 and to a two disk stripe of da6 and da7. The last example is a simple mirror. -The 2nd slice of /dev/da8 is mirrored with the 3rd slice of /dev/da9 +The second slice of /dev/da8 is mirrored with the third slice of /dev/da9 and assigned to ccd0. .Bd -literal # ccdconfig ccd0 64 none /dev/da0s1 /dev/da1s1 /dev/da2s1 /dev/da3s1 @@ -246,7 +246,7 @@ and The .Nm utility first appeared in -.Nx 1.0a . +.Nx 1.1 . .Sh BUGS The initial disklabel returned by .Xr ccd 4 Modified: user/alc/PQ_LAUNDRY/sbin/dmesg/dmesg.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/dmesg/dmesg.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/dmesg/dmesg.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -28,7 +28,7 @@ .\" @(#)dmesg.8 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd May 9, 2013 +.Dd October 3, 2016 .Dt DMESG 8 .Os .Sh NAME @@ -84,4 +84,4 @@ at startup time The .Nm utility appeared in -.Bx 4.0 . +.Bx 3 . Modified: user/alc/PQ_LAUNDRY/sbin/dump/dump.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/dump/dump.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/dump/dump.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -29,7 +29,7 @@ .\" @(#)dump.8 8.3 (Berkeley) 5/1/95 .\" $FreeBSD$ .\" -.Dd February 24, 2006 +.Dd October 3, 2016 .Dt DUMP 8 .Os .Sh NAME @@ -514,7 +514,7 @@ Many, and verbose. A .Nm utility appeared in -.At v6 . +.At v4 . .Sh BUGS Fewer than 32 read errors on the file system are ignored, though all errors will generate a warning message. Modified: user/alc/PQ_LAUNDRY/sbin/dumpon/dumpon.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/dumpon/dumpon.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/dumpon/dumpon.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -28,7 +28,7 @@ .\" From: @(#)swapon.8 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd October 8, 2014 +.Dd October 3, 2016 .Dt DUMPON 8 .Os .Sh NAME @@ -154,7 +154,7 @@ boot-time system configuration The .Nm utility appeared in -.Fx 2.1 . +.Fx 2.0.5 . .Sh BUGS Because the file system layer is already dead by the time a crash dump is taken, it is not possible to send crash dumps directly to a file. Modified: user/alc/PQ_LAUNDRY/sbin/etherswitchcfg/etherswitchcfg.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/etherswitchcfg/etherswitchcfg.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/etherswitchcfg/etherswitchcfg.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 20, 2013 +.Dd October 2, 2016 .Dt ETHERSWITCHCFG 8 .Os .Sh NAME @@ -116,12 +116,13 @@ for details on and .Cm mediaopt . .It Cm led Ar number style -Sets the display style for a given LED. Available styles are: -.Cm default +Sets the display style for a given LED. +Available styles are: +.Cm default (usually flash on activity), -.Cm on , -.Cm off , -and +.Cm on , +.Cm off , +and .Cm blink . Not all switches will support all styles. .El Modified: user/alc/PQ_LAUNDRY/sbin/fsck_msdosfs/fsck_msdosfs.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/fsck_msdosfs/fsck_msdosfs.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/fsck_msdosfs/fsck_msdosfs.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 4, 2009 +.Dd October 3, 2016 .Dt FSCK_MSDOSFS 8 .Os .Sh NAME @@ -114,7 +114,10 @@ as the answer to all operator questions. .Sh HISTORY The .Nm -utility first appeared in +utility appeared in +.Nx 1.2 . +.Nm +first appeared in .Fx 4.4 . .Sh BUGS The Modified: user/alc/PQ_LAUNDRY/sbin/fsdb/fsdb.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/fsdb/fsdb.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/fsdb/fsdb.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 24, 2006 +.Dd October 3, 2016 .Dt FSDB 8 .Os .Sh NAME @@ -239,19 +239,20 @@ Exit the program. .Sh HISTORY The .Nm -utility uses the source code for +utility appeared in +.Bx 4.3 Tahoe . +It used the source code for .Xr fsck 8 to implement most of the file system manipulation code. The remainder of .Nm -first appeared in -.Nx , +appeared in +.Nx 1.1 written by .An John T. Kohl . -.Pp -.An Peter Wemm -ported it to -.Fx . +It first appeared in +.Fx 2.1.5 +ported by Peter Wemm. .Sh BUGS Manipulation of ``short'' symlinks has no effect. In particular, one should not Modified: user/alc/PQ_LAUNDRY/sbin/gbde/gbde.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/gbde/gbde.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/gbde/gbde.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 27, 2014 +.Dd October 3, 2016 .Dt GBDE 8 .Os .Sh NAME @@ -263,6 +263,9 @@ under DARPA/SPAWAR contract N66001-01-C- .Pq Dq CBOSS , as part of the DARPA CHATS research program. +.Nm +first appeared in +.Fx 5.0 . .Sh AUTHORS .An Poul-Henning Kamp Aq Mt phk@FreeBSD.org .Sh BUGS Modified: user/alc/PQ_LAUNDRY/sbin/init/init.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/init/init.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/init/init.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -31,7 +31,7 @@ .\" @(#)init.8 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd July 24, 2015 +.Dd October 3, 2016 .Dt INIT 8 .Os .Sh NAME @@ -345,7 +345,7 @@ a persistent device error condition. An .Nm utility appeared in -.At v6 . +.At v1 . .Sh CAVEATS Systems without .Xr sysctl 8 Modified: user/alc/PQ_LAUNDRY/sbin/mknod/mknod.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/mknod/mknod.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/mknod/mknod.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -28,7 +28,7 @@ .\" @(#)mknod.8 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd January 31, 2010 +.Dd October 3, 2016 .Dt MKNOD 8 .Os .Sh NAME @@ -149,4 +149,4 @@ nodes cannot be used to access devices. A .Nm utility appeared in -.At v6 . +.At v4 . Modified: user/alc/PQ_LAUNDRY/sbin/mksnap_ffs/mksnap_ffs.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/mksnap_ffs/mksnap_ffs.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/mksnap_ffs/mksnap_ffs.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 14, 2011 +.Dd October 3, 2016 .Dt MKSNAP_FFS 8 .Os .Sh NAME @@ -75,7 +75,7 @@ mount -o ro /dev/md0 /mnt/ The .Nm utility first appeared in -.Fx 5.0 . +.Fx 5.1 . .Sh CAVEATS The disk full situation is not handled gracefully and may lead to a system panic when no free blocks are found. Modified: user/alc/PQ_LAUNDRY/sbin/mount_fusefs/mount_fusefs.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/mount_fusefs/mount_fusefs.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/mount_fusefs/mount_fusefs.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 11, 2012 +.Dd October 3, 2016 .Dt MOUNT_FUSEFS 8 .Os .Sh NAME @@ -52,7 +52,8 @@ .Sh DESCRIPTION Basic usage is to start a fuse daemon on the given .Ar special -file. In practice, the daemon is assigned a +file. +In practice, the daemon is assigned a .Ar special file automatically, which can then be indentified via .Xr fstat 1 . @@ -68,7 +69,8 @@ is appended to the list of arguments, .Nm will call the .Ar fuse_daemon -via that command. In that way the +via that command. +In that way the .Ar fuse_daemon will be instructed to attach itself to .Ar special . @@ -101,7 +103,8 @@ The options are as follows: .It Fl A , Ic --reject-allow_other Prohibit the .Cm allow_other -mount flag. Intended for use in scripts and the +mount flag. +Intended for use in scripts and the .Xr sudoers 5 file. .It Fl S , Ic --safe @@ -143,8 +146,8 @@ Only root can use this option Limit size of read requests to .Ar n .It Cm private -Refuse shared mounting of the daemon. This is the default behaviour, -to allow sharing, expicitly use +Refuse shared mounting of the daemon. +This is the default behaviour, to allow sharing, expicitly use .Fl o Cm noprivate .It Cm neglect_shares Do not refuse unmounting if there are secondary mounts @@ -154,11 +157,13 @@ Prefix absolute symlinks with the mountp .El .Pp Besides the above mount options, there is a set of pseudo-mount options which -are supported by the Fuse library. One can list these by passing +are supported by the Fuse library. +One can list these by passing .Fl h -to a Fuse daemon. Most of these options have effect only on the behaviour of -the daemon (that is, their scope is limited to userspace). However, -there are some which do require in-kernel support. +to a Fuse daemon. +Most of these options only have affect on the behavior of the daemon (that is, +their scope is limited to userspace). +However, there are some which do require in-kernel support. Currently the options supported by the kernel are: .Bl -tag -width indent .It Cm direct_io @@ -189,7 +194,7 @@ only if the filesystem daemon has the sa real gid) as the user. .Pp This is applied for Fuse mounts by default and only root can mount without -the strict access policy (ie. the +the strict access policy (i.e. the .Cm allow_other mount option). .Pp @@ -201,7 +206,7 @@ Users might opt to willingly relax stric are concerned) by doing their own secondary mount (See .Sx SHARED MOUNTS ) . .Sh SHARED MOUNTS -A Fuse daemon can be shared (ie. mounted multiple times). +A Fuse daemon can be shared (i.e. mounted multiple times). When doing the first (primary) mount, the spawner and the mounter of the daemon must have the same uid, or the mounter should be the superuser. .Pp @@ -212,9 +217,9 @@ The behaviour of a secondary mount is an links: they redirect all filesystem operations to the primary mount. .Pp Doing a secondary mount is like signing an agreement: by this action, the mounter -agrees that the Fuse daemon can trace her I/O activities. From then on -she is not banned from using the filesystem (either via her own mount or -via the primary mount), regardless whether +agrees that the Fuse daemon can trace her I/O activities. +From then on she is not banned from using the filesystem +(either via her own mount or via the primary mount), regardless whether .Cm allow_other is used or not. .Pp @@ -226,14 +231,15 @@ mount; e.g. System administrators might want to use a custom mount policy (ie., one going beyond the .Va vfs.usermount -sysctl). The primary tool for such purposes is +sysctl). +The primary tool for such purposes is .Xr sudo 8 . However, given that .Nm is capable of invoking an arbitrary program, one must be careful when doing this. .Nm -is designed in a way such that it makes that easy. For this purpose, -there are options which disable certain risky features (ie. +is designed in a way such that it makes that easy. +For this purpose, there are options which disable certain risky features (i.e. .Fl S and .Fl A ) , @@ -269,8 +275,8 @@ If set, .Nm will ignore uknown mount options. .It Ev MOUNT_FUSEFS_CALL_BY_LIB -Adjust behaviour to the needs of the FUSE library. Currently it effects -help output. +Adjust behavior to the needs of the FUSE library. +Currently it effects help output. .El .Pp Although the following variables do not have any effect on @@ -278,11 +284,13 @@ Although the following variables do not itself, they affect the behaviour of fuse daemons: .Bl -tag -width ".Ev FUSE_DEV_NAME" .It Ev FUSE_DEV_NAME -Device to attach. If not set, the multiplexer path +Device to attach. +If not set, the multiplexer path .Ar /dev/fuse is used. .It Ev FUSE_DEV_FD -File desciptor of an opened Fuse device to use. Overrides +File desciptor of an opened Fuse device to use. +Overrides .Ev FUSE_DEV_NAME . .It Ev FUSE_NO_MOUNT If set, the library will not attempt to mount the filesystem, even @@ -293,7 +301,8 @@ if a mountpoint argument is supplied. .It Pa /dev/fuse Fuse device with which the kernel and Fuse daemons can communicate. .It Pa /dev/fuse -The multiplexer path. An +The multiplexer path. +An .Xr open 2 performed on it automatically is passed to a free Fuse device by the kernel (which might be created just for this puprose). @@ -330,12 +339,19 @@ does not call any external utility and a .Xr umount 8 .Sh HISTORY .Nm -appears as the part of the FreeBSD implementation of the Fuse userspace filesystem -framework (see http://fuse.sourceforge.net). This user interface is FreeBSD specific. +appeared in +.Fx 10.0 +as the part of the +.Fx +implementation of the Fuse userspace filesystem +framework (see http://fuse.sourceforge.net). .Sh CAVEATS -Secondary mounts should be unmounted via their device name. If an attempt is -made to be unmount them via their filesystem root path, the unmount request -will be forwarded to the primary mount path. +This user interface is +.Fx +specific. +Secondary mounts should be unmounted via their device name. +If an attempt is made to unmount them via their filesystem root path, +the unmount request will be forwarded to the primary mount path. In general, unmounting by device name is less error-prone than by mount path (although the latter will also work under normal circumstances). .Pp Modified: user/alc/PQ_LAUNDRY/sbin/mount_msdosfs/mount_msdosfs.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/mount_msdosfs/mount_msdosfs.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/mount_msdosfs/mount_msdosfs.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 1, 2013 +.Dd October 3, 2016 .Dt MOUNT_MSDOSFS 8 .Os .Sh NAME @@ -193,21 +193,32 @@ To mount a Japanese MS-DOS file system l List of Localized MS Operating Systems: .Pa http://www.microsoft.com/globaldev/reference/oslocversion.mspx . .Sh HISTORY -The -.Nm -utility first appeared in +The predecessor to +.Nm mount_msdos +utility named +.Nm mount_pcfs +appeared in +.Bx 386 . +It was rewritten in +.Nx 1.0 +and first appeared in .Fx 2.0 . -Its predecessor, the +.Nm mount_msdos +was renamed to the more aptly-named +.Nm +in +.Fx 5.0. +The character code conversion routine was added in 2003. +.Sh AUTHORS +Initial implementation as .Nm mount_pcfs -utility appeared in -.Fx 1.0 , -and was abandoned in favor -of the more aptly-named -.Nm . -.Pp +was written by +.An -nosplit +.An Paul Popelka Aq Mt paulp@uts.amdahl.com . +It was rewritten by +.An Christopher G. Demetriou Aq Mt cgd@NetBSD.org . The character code conversion routine was added by -.An Ryuichiro Imura Aq Mt imura@ryu16.org -in 2003. +.An Ryuichiro Imura Aq Mt imura@ryu16.org . .Sh CAVEATS The use of the .Fl 9 Modified: user/alc/PQ_LAUNDRY/sbin/mount_nullfs/mount_nullfs.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/mount_nullfs/mount_nullfs.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/mount_nullfs/mount_nullfs.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -33,7 +33,7 @@ .\" @(#)mount_null.8 8.6 (Berkeley) 5/1/95 .\" $FreeBSD$ .\" -.Dd May 1, 1995 +.Dd October 3, 2016 .Dt MOUNT_NULLFS 8 .Os .Sh NAME @@ -240,6 +240,10 @@ UCLA Technical Report CSD-910056, .Em "Stackable Layers: an Architecture for File System Development" . .Sh HISTORY The -.Nm +.Nm mount_null utility first appeared in .Bx 4.4 . +It was renamed to +.Nm +in +.Fx 5.0 . Modified: user/alc/PQ_LAUNDRY/sbin/mount_unionfs/mount_unionfs.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/mount_unionfs/mount_unionfs.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/mount_unionfs/mount_unionfs.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -31,7 +31,7 @@ .\" @(#)mount_union.8 8.6 (Berkeley) 3/27/94 .\" $FreeBSD$ .\" -.Dd November 30, 2006 +.Dd October 3, 2016 .Dt MOUNT_UNIONFS 8 .Os .Sh NAME @@ -328,9 +328,13 @@ accessible via .Xr mount_nullfs 8 .Sh HISTORY The -.Nm +.Nm mount_null utility first appeared in .Bx 4.4 . +It was renamed to +.Nm +in +.Fx 5.0 . .Pp The .Fl r Modified: user/alc/PQ_LAUNDRY/sbin/pfctl/pfctl.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/pfctl/pfctl.8 Mon Oct 3 19:48:56 2016 (r306654) +++ user/alc/PQ_LAUNDRY/sbin/pfctl/pfctl.8 Mon Oct 3 19:52:06 2016 (r306655) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 21, 2011 +.Dd October 3, 2016 .Dt PFCTL 8 .Os .Sh NAME @@ -390,7 +390,7 @@ Note that the optimization done automatically by the kernel will skip evaluation of rules where possible. Packets passed statefully are counted in the rule that created the state -(even though the rule isn't evaluated more than once for the entire +(even though the rule is not evaluated more than once for the entire connection). .It Fl s Cm Anchors Show the currently loaded anchors directly attached to the main ruleset. @@ -593,7 +593,7 @@ counters are incremented instead of the .Dq Pass counters when a .Dq stateful -packet is passed but doesn't match the table anymore. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Wed Oct 5 17:26:34 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4FBFAF6BF7 for ; Wed, 5 Oct 2016 17:26:34 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6E229DE0; Wed, 5 Oct 2016 17:26:34 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u95HQX0Q024376; Wed, 5 Oct 2016 17:26:33 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u95HQWWL024367; Wed, 5 Oct 2016 17:26:32 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201610051726.u95HQWWL024367@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Wed, 5 Oct 2016 17:26:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306711 - in user/alc/PQ_LAUNDRY: contrib/blacklist/libexec contrib/byacc contrib/byacc/package contrib/byacc/package/debian contrib/byacc/package/pkgsrc contrib/byacc/test contrib/byac... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Oct 2016 17:26:34 -0000 Author: alc Date: Wed Oct 5 17:26:32 2016 New Revision: 306711 URL: https://svnweb.freebsd.org/changeset/base/306711 Log: MFH r306655-306707 Note: Due to differences in vm_pageout_scan() between HEAD and the PQ_LAUNDRY branch, this merge required manual conflict resolution. Added: user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/test/test_read_format_mtree_crash747.c - copied unchanged from r306707, head/contrib/libarchive/libarchive/test/test_read_format_mtree_crash747.c user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu - copied unchanged from r306707, head/contrib/libarchive/libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu user/alc/PQ_LAUNDRY/lib/libcapsicum/ - copied from r306707, head/lib/libcapsicum/ user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslhelp.c - copied unchanged from r306707, head/sys/contrib/dev/acpica/compiler/aslhelp.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslhelpers.y - copied unchanged from r306707, head/sys/contrib/dev/acpica/compiler/aslhelpers.y user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslkeywords.y - copied unchanged from r306707, head/sys/contrib/dev/acpica/compiler/aslkeywords.y user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslprimaries.y - copied unchanged from r306707, head/sys/contrib/dev/acpica/compiler/aslprimaries.y user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c - copied unchanged from r306707, head/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/platform/acgccex.h - copied unchanged from r306707, head/sys/contrib/dev/acpica/include/platform/acgccex.h user/alc/PQ_LAUNDRY/sys/mips/atheros/ar531x/ - copied from r306707, head/sys/mips/atheros/ar531x/ Deleted: user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/utprint.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/os_specific/service_layers/oslibcfs.c Modified: user/alc/PQ_LAUNDRY/contrib/blacklist/libexec/blacklistd-helper user/alc/PQ_LAUNDRY/contrib/byacc/CHANGES user/alc/PQ_LAUNDRY/contrib/byacc/MANIFEST user/alc/PQ_LAUNDRY/contrib/byacc/VERSION user/alc/PQ_LAUNDRY/contrib/byacc/aclocal.m4 user/alc/PQ_LAUNDRY/contrib/byacc/btyaccpar.c user/alc/PQ_LAUNDRY/contrib/byacc/btyaccpar.skel user/alc/PQ_LAUNDRY/contrib/byacc/configure user/alc/PQ_LAUNDRY/contrib/byacc/defs.h user/alc/PQ_LAUNDRY/contrib/byacc/error.c user/alc/PQ_LAUNDRY/contrib/byacc/lalr.c user/alc/PQ_LAUNDRY/contrib/byacc/lr0.c user/alc/PQ_LAUNDRY/contrib/byacc/mkpar.c user/alc/PQ_LAUNDRY/contrib/byacc/output.c user/alc/PQ_LAUNDRY/contrib/byacc/package/byacc.spec user/alc/PQ_LAUNDRY/contrib/byacc/package/debian/changelog user/alc/PQ_LAUNDRY/contrib/byacc/package/mingw-byacc.spec user/alc/PQ_LAUNDRY/contrib/byacc/package/pkgsrc/Makefile user/alc/PQ_LAUNDRY/contrib/byacc/reader.c user/alc/PQ_LAUNDRY/contrib/byacc/skel2c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/btyacc_calc1.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/btyacc_demo.error user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/btyacc_demo.output user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/btyacc_demo.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/btyacc_destroy1.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/btyacc_destroy2.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/btyacc_destroy3.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/calc.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/calc1.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/calc2.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/calc3.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/code_calc.code.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/code_calc.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/code_calc.tab.h user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/code_error.code.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/empty.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_inherit1.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_inherit2.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_inherit3.output user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_inherit3.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_inherit4.output user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_inherit4.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_inherit5.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax1.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax10.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax11.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax12.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax13.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax14.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax15.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax16.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax17.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax18.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax19.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax2.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax20.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax21.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax22.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax23.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax24.error user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax24.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax25.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax26.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax27.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax3.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax4.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax5.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax6.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax7.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax7a.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax7b.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax8.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax8a.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/err_syntax9.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/error.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/grammar.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/inherit0.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/inherit1.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/inherit2.output user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/inherit2.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/ok_syntax1.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/pure_calc.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/pure_error.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/quote_calc-s.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/quote_calc.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/quote_calc2-s.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/quote_calc2.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/quote_calc3-s.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/quote_calc3.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/quote_calc4-s.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/quote_calc4.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/rename_debug.c user/alc/PQ_LAUNDRY/contrib/byacc/test/btyacc/varsyntax_calc1.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/code_calc.y user/alc/PQ_LAUNDRY/contrib/byacc/test/err_inherit4.y user/alc/PQ_LAUNDRY/contrib/byacc/test/run_make.sh user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/calc.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/calc1.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/calc2.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/calc3.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/code_calc.code.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/code_calc.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/code_calc.tab.h user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/code_error.code.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/empty.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/err_syntax10.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/err_syntax11.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/err_syntax12.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/err_syntax18.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/err_syntax20.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/err_syntax24.error user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/error.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/grammar.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/ok_syntax1.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/pure_calc.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/pure_error.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/quote_calc-s.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/quote_calc.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/quote_calc2-s.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/quote_calc2.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/quote_calc3-s.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/quote_calc3.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/quote_calc4-s.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/quote_calc4.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/rename_debug.c user/alc/PQ_LAUNDRY/contrib/byacc/test/yacc/varsyntax_calc1.tab.c user/alc/PQ_LAUNDRY/contrib/byacc/verbose.c user/alc/PQ_LAUNDRY/contrib/byacc/yaccpar.c user/alc/PQ_LAUNDRY/contrib/byacc/yaccpar.skel user/alc/PQ_LAUNDRY/contrib/libarchive/cat/test/main.c user/alc/PQ_LAUNDRY/contrib/libarchive/cat/test/test.h user/alc/PQ_LAUNDRY/contrib/libarchive/cpio/test/main.c user/alc/PQ_LAUNDRY/contrib/libarchive/cpio/test/test.h user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_support_format_7zip.c user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/archive_read_support_format_mtree.c user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/test/main.c user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/test/test_acl_freebsd_nfs4.c user/alc/PQ_LAUNDRY/contrib/libarchive/libarchive/test/test_read_set_format.c user/alc/PQ_LAUNDRY/contrib/libarchive/tar/subst.c user/alc/PQ_LAUNDRY/contrib/libarchive/tar/test/main.c user/alc/PQ_LAUNDRY/contrib/libarchive/tar/test/test.h user/alc/PQ_LAUNDRY/contrib/libarchive/tar/test/test_option_H_upper.c user/alc/PQ_LAUNDRY/contrib/libarchive/tar/test/test_option_L_upper.c user/alc/PQ_LAUNDRY/contrib/libarchive/tar/test/test_option_U_upper.c user/alc/PQ_LAUNDRY/contrib/libarchive/tar/test/test_option_n.c user/alc/PQ_LAUNDRY/contrib/libarchive/tar/write.c user/alc/PQ_LAUNDRY/etc/periodic/security/520.pfdenied user/alc/PQ_LAUNDRY/lib/Makefile user/alc/PQ_LAUNDRY/lib/libarchive/tests/Makefile user/alc/PQ_LAUNDRY/lib/libcasper/libcasper/libcasper.3 user/alc/PQ_LAUNDRY/sbin/pfctl/parse.y user/alc/PQ_LAUNDRY/sbin/pfctl/pfctl_parser.c user/alc/PQ_LAUNDRY/share/man/man5/pf.conf.5 user/alc/PQ_LAUNDRY/sys/amd64/amd64/mp_machdep.c user/alc/PQ_LAUNDRY/sys/amd64/include/pcpu.h user/alc/PQ_LAUNDRY/sys/arm/allwinner/std.allwinner user/alc/PQ_LAUNDRY/sys/arm/allwinner/std.allwinner_up user/alc/PQ_LAUNDRY/sys/arm/altera/socfpga/std.socfpga user/alc/PQ_LAUNDRY/sys/arm/amlogic/aml8726/std.aml8726 user/alc/PQ_LAUNDRY/sys/arm/annapurna/alpine/std.alpine user/alc/PQ_LAUNDRY/sys/arm/arm/cpufunc.c user/alc/PQ_LAUNDRY/sys/arm/arm/cpuinfo.c user/alc/PQ_LAUNDRY/sys/arm/arm/elf_trampoline.c user/alc/PQ_LAUNDRY/sys/arm/arm/generic_timer.c user/alc/PQ_LAUNDRY/sys/arm/arm/machdep.c user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/std.bcm2836 user/alc/PQ_LAUNDRY/sys/arm/conf/GENERIC user/alc/PQ_LAUNDRY/sys/arm/freescale/imx/std.imx51 user/alc/PQ_LAUNDRY/sys/arm/freescale/imx/std.imx53 user/alc/PQ_LAUNDRY/sys/arm/freescale/imx/std.imx6 user/alc/PQ_LAUNDRY/sys/arm/freescale/vybrid/std.vybrid user/alc/PQ_LAUNDRY/sys/arm/include/atomic-v6.h user/alc/PQ_LAUNDRY/sys/arm/include/cpuconf.h user/alc/PQ_LAUNDRY/sys/arm/include/cpufunc.h user/alc/PQ_LAUNDRY/sys/arm/include/cpuinfo.h user/alc/PQ_LAUNDRY/sys/arm/include/intr.h user/alc/PQ_LAUNDRY/sys/arm/mv/armada38x/std.armada38x user/alc/PQ_LAUNDRY/sys/arm/nvidia/tegra124/std.tegra124 user/alc/PQ_LAUNDRY/sys/arm/nvidia/tegra_pcie.c user/alc/PQ_LAUNDRY/sys/arm/qemu/std.virt user/alc/PQ_LAUNDRY/sys/arm/rockchip/std.rk30xx user/alc/PQ_LAUNDRY/sys/arm/samsung/exynos/std.exynos5250 user/alc/PQ_LAUNDRY/sys/arm/samsung/exynos/std.exynos5420 user/alc/PQ_LAUNDRY/sys/arm/ti/am335x/std.am335x user/alc/PQ_LAUNDRY/sys/arm/ti/omap4/std.omap4 user/alc/PQ_LAUNDRY/sys/arm/ti/std.ti user/alc/PQ_LAUNDRY/sys/arm/xilinx/std.zynq7 user/alc/PQ_LAUNDRY/sys/arm64/acpica/OsdEnvironment.c user/alc/PQ_LAUNDRY/sys/boot/geli/geliboot.c user/alc/PQ_LAUNDRY/sys/cam/scsi/scsi_all.c user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/alc/PQ_LAUNDRY/sys/conf/Makefile.arm user/alc/PQ_LAUNDRY/sys/conf/files user/alc/PQ_LAUNDRY/sys/conf/files.arm user/alc/PQ_LAUNDRY/sys/conf/options.arm user/alc/PQ_LAUNDRY/sys/conf/options.mips user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/acpica_prep.sh user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/changes.txt user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/common/acfileio.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/common/acgetline.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/common/adisasm.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/common/ahtable.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/common/cmfsize.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/common/dmtable.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/common/dmtables.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/common/dmtbdump.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/common/dmtbinfo.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/common/getopt.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslcompiler.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslcstyle.y user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslmain.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslmaputils.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/asloperands.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslopt.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/asloptions.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslparser.y user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslresources.y user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslrules.y user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslstubs.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/asltokens.y user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/asltypes.y user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslutils.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/aslxref.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/dtcompiler.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/dtfield.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/dtparser.y user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/dttable.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/dttemplate.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/dtutils.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/compiler/prparser.y user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/debugger/dbconvert.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/debugger/dbexec.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/debugger/dbfileio.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/debugger/dbinput.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/debugger/dbmethod.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/disassembler/dmcstyle.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/disassembler/dmopcode.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/dispatcher/dswexec.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/dispatcher/dswload2.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/events/evgpe.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/events/evgpeinit.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/events/evrgnini.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/events/evxfgpe.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/executer/exconcat.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/executer/exconfig.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/executer/exconvrt.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/executer/exmisc.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/executer/exoparg1.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/executer/exresop.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/executer/extrace.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/executer/exutils.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/hardware/hwgpe.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/namespace/nsconvert.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/namespace/nsload.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/namespace/nsparse.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/namespace/nsutils.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/parser/psparse.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/parser/psxface.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/tables/tbdata.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/tables/tbfadt.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/tables/tbfind.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/tables/tbinstal.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/tables/tbutils.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/tables/tbxface.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/tables/tbxfload.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/tables/tbxfroot.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/utaddress.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/utbuffer.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/utdebug.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/uthex.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/utinit.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/utnonansi.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/utosi.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/utpredef.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/uttrack.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/utxface.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/components/utilities/utxfinit.c user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acapps.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acclib.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acconfig.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acdebug.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acdisasm.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acevents.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acglobal.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/aclocal.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acnamesp.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acparser.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acpiosxf.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acpixf.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/actables.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/actbl.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/actypes.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/acutils.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/platform/acenv.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/platform/acenvex.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/platform/acfreebsd.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/include/platform/acgcc.h user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c user/alc/PQ_LAUNDRY/sys/dev/acpica/Osd/OsdTable.c user/alc/PQ_LAUNDRY/sys/dev/atkbdc/psm.c user/alc/PQ_LAUNDRY/sys/geom/geom_redboot.c user/alc/PQ_LAUNDRY/sys/i386/include/pcpu.h user/alc/PQ_LAUNDRY/sys/kern/imgact_elf.c user/alc/PQ_LAUNDRY/sys/kern/inflate.c user/alc/PQ_LAUNDRY/sys/kern/vfs_subr.c user/alc/PQ_LAUNDRY/sys/netpfil/pf/pf.c user/alc/PQ_LAUNDRY/sys/netpfil/pf/pf_ioctl.c user/alc/PQ_LAUNDRY/sys/powerpc/mpc85xx/platform_mpc85xx.c user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c user/alc/PQ_LAUNDRY/sys/x86/acpica/OsdEnvironment.c user/alc/PQ_LAUNDRY/sys/x86/acpica/madt.c user/alc/PQ_LAUNDRY/sys/x86/acpica/srat.c user/alc/PQ_LAUNDRY/sys/x86/include/x86_smp.h user/alc/PQ_LAUNDRY/sys/x86/x86/mp_x86.c user/alc/PQ_LAUNDRY/sys/x86/xen/pvcpu_enum.c user/alc/PQ_LAUNDRY/usr.sbin/acpi/acpidb/Makefile user/alc/PQ_LAUNDRY/usr.sbin/acpi/iasl/Makefile Directory Properties: user/alc/PQ_LAUNDRY/ (props changed) user/alc/PQ_LAUNDRY/contrib/byacc/ (props changed) user/alc/PQ_LAUNDRY/contrib/libarchive/ (props changed) user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/ (props changed) user/alc/PQ_LAUNDRY/sys/contrib/dev/acpica/ (props changed) Modified: user/alc/PQ_LAUNDRY/contrib/blacklist/libexec/blacklistd-helper ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/blacklist/libexec/blacklistd-helper Wed Oct 5 17:18:24 2016 (r306710) +++ user/alc/PQ_LAUNDRY/contrib/blacklist/libexec/blacklistd-helper Wed Oct 5 17:26:32 2016 (r306711) @@ -19,8 +19,8 @@ fi if [ -z "$pf" ]; then for f in npf pf ipf; do if [ -f "/etc/$f.conf" ]; then - pf="$f" - break + pf="$f" + break fi done fi @@ -54,8 +54,8 @@ add) ipf) /sbin/ipfstat -io | /sbin/ipf -I -f - >/dev/null 2>&1 echo block in quick $proto from $addr/$mask to \ - any port=$6 head port$6 | \ - /sbin/ipf -I -f - -s >/dev/null 2>&1 + any port=$6 head port$6 | \ + /sbin/ipf -I -f - -s >/dev/null 2>&1 && echo OK ;; ipfw) # use $ipfw_offset+$port for rule number @@ -64,17 +64,21 @@ add) /sbin/ipfw table $tname create type addr 2>/dev/null /sbin/ipfw -q table $tname add "$addr/$mask" /sbin/ipfw -q add $rule drop $3 from "table("$tname")" to \ - any dst-port $6 + any dst-port $6 && echo OK ;; npf) /sbin/npfctl rule "$2" add block in final $proto from \ "$addr/$mask" to any $port ;; pf) - # insert $ip/$mask into per-protocol anchored table - /sbin/pfctl -a "$2" -t "port$6" -T add "$addr/$mask" - echo "block in quick $proto from to any $port" | \ - /sbin/pfctl -a "$2" -f - + # if the filtering rule does not exist, create it + /sbin/pfctl -a "$2/$6" -sr 2>/dev/null | \ + grep -q "" || \ + echo "block in quick $proto from to any $port" | \ + /sbin/pfctl -a "$2/$6" -f - + # insert $ip/$mask into per-protocol/port anchored table + /sbin/pfctl -a "$2/$6" -t "port$6" -T add "$addr/$mask" && \ + echo OK ;; esac ;; @@ -83,33 +87,35 @@ rem) ipf) /sbin/ipfstat -io | /sbin/ipf -I -f - >/dev/null 2>&1 echo block in quick $proto from $addr/$mask to \ - any port=$6 head port$6 | \ - /sbin/ipf -I -r -f - -s >/dev/null 2>&1 + any port=$6 head port$6 | \ + /sbin/ipf -I -r -f - -s >/dev/null 2>&1 && echo OK ;; ipfw) - /sbin/ipfw table "port$6" delete "$addr/$mask" 2>/dev/null + /sbin/ipfw table "port$6" delete "$addr/$mask" 2>/dev/null && \ + echo OK ;; npf) /sbin/npfctl rule "$2" rem-id "$7" ;; pf) - /sbin/pfctl -a "$2" -t "port$6" -T delete "$addr/$mask" + /sbin/pfctl -a "$2/$6" -t "port$6" -T delete "$addr/$mask" && \ + echo OK ;; esac ;; flush) case "$pf" in ipf) - /sbin/ipf -Z -I -Fi -s > /dev/null + /sbin/ipf -Z -I -Fi -s > /dev/null && echo OK ;; ipfw) - /sbin/ipfw table "port$6" flush 2>/dev/null + /sbin/ipfw table "port$6" flush 2>/dev/null && echo OK ;; npf) /sbin/npfctl rule "$2" flush ;; pf) - /sbin/pfctl -a "$2" -t "port$6" -T flush + /sbin/pfctl -a "$2/$6" -t "port$6" -T flush && echo OK ;; esac ;; Modified: user/alc/PQ_LAUNDRY/contrib/byacc/CHANGES ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/byacc/CHANGES Wed Oct 5 17:18:24 2016 (r306710) +++ user/alc/PQ_LAUNDRY/contrib/byacc/CHANGES Wed Oct 5 17:26:32 2016 (r306711) @@ -1,3 +1,82 @@ +2016-06-06 Thomas E. Dickey + + * configure: regen + + * aclocal.m4: improved autoconf macros: + CF_CC_ENV_FLAGS - don't limit the check to -I, -U and -D options, since the + added options can include various compiler options before and after + preprocessor options. + CF_PROG_LINT - add cpplint to programs to use; drop ad hoc tdlint and alint. + + * VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile: + bump + + * lalr.c: indented + + * btyaccpar.c: regen + + * skel2c: + adjust whitespace so that generated skeleton will follow the same format + as other code + + * mkpar.c, verbose.c, lr0.c, reader.c, error.c, output.c: indented + + * reader.c: fix two compiler warnings + + * test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/rename_debug.c, btyaccpar.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/ok_syntax1.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/rename_debug.c, yaccpar.c: + regen + +2016-06-06 Tom.Shields + + * btyaccpar.skel, yaccpar.skel: + small fix for an edge case of initialized data in Chris Dodd's btyacc changes: + "Avoid crash when input pops up an Action error at the first token" + +2016-06-01 Thomas E. Dickey + + * test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/err_syntax24.error, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/ok_syntax1.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_calc.tab.c, test/yacc/code_calc.tab.h, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/rename_debug.c, yaccpar.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3- s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/err_syntax13.tab.c, test/btyacc/err_syntax14.tab.c, test/btyacc/err_syntax15.tab.c, test/btyacc/err_syntax16.tab.c, test/btyacc/err_syntax17.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax19.tab.c, test/btyacc/err_syntax2.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/err_syntax21.tab.c, test/btyacc/err_syntax22.tab.c, test/btyacc/err_syntax23.tab.c, test/btyacc/err_syntax24.error, test/btyacc/err_syntax24.tab.c, test/btyacc/err_syntax25.tab.c, test/btyacc/err_syntax26.tab.c, test/btyacc/err_syntax27.tab.c, test/btyacc/err_syntax3.tab.c, test/btyacc/err_syntax4.tab.c, test/btyacc/err_syntax5.tab.c, test/btyacc/err_syntax6.tab.c, test/btyacc/err_syntax7.tab.c, test/btyacc/err_syntax7a.tab.c, test/btyacc/err_syntax7b.tab.c, test/btyacc/err_syntax8.tab.c, test/btyacc/err_syntax8a.tab.c, test/btyacc/err_syntax9.tab.c, te st/btyacc/error.tab.c, test/btyacc/grammar.t! ab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.output, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.error, test/btyacc/btyacc_demo.output, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_calc.tab.c, test/btyacc/code_calc.tab.h, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit1.tab.c, test/btyacc/err_inherit2.tab.c, test/btyacc/err_inherit3.output, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.output, test/btyacc/err_inherit4.tab.c, test/btyacc/err_inherit5.tab.c, test/btyacc/err_syntax1.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.t ab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/rename_debug.c, btyaccpar.c: + regen + +2016-06-01 Tom.Shields + + * btyaccpar.skel, defs.h, error.c, output.c, reader.c, test/code_calc.y, test/err_inherit4.y, test/run_make.sh, yaccpar.skel: + fixes for issues in btyacc (report by Francis Andre): + + + correction to the placement of the #line directive for a %union specification + + + recovery of a set of casts originally added into btyaccpar.c rather than into + btyaccpar.skel, and so are lost whenever building from scratch + + + Chris Dodd's btyacc improved handling of inherited attributes to eliminate + implicit empty copy rules that are not necessary, and thereby avoiding the + introduction of extra parsing ambiguity + + + Chris Dodd's added support for @-N syntax to reference inherited position + information + + + correction to bad interaction between %token-table and YYDEBUG, where YYDEBUG + was required to be defined in order to compile the generated code + + + correction to yyname[] access in code included with YYDEBUG defined for + single character symbols not recognized (e.g., input containing '&' character + where grammar doesn't define that as a symbol) - map to existing + "illegal-symbol" entry in byname[] + + + fixes to test/run_make.sh: skip test-err_* files; in the bison test phase + skip additional files that contain features not supported by bison and + inhibit new bison warning messages + + + minor changes to btyaccpar.skel & yaccpar.skel so they are more similar in + their commonality; makes it easier to maintain the pair of files using + vimdiff + + + changes to a couple of test cases for coverage of #3, #4 and #5 above + +2016-06-01 Thomas E. Dickey + + * VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile: + bump + 2016-03-24 Thomas E. Dickey * reader.c: unused variable Modified: user/alc/PQ_LAUNDRY/contrib/byacc/MANIFEST ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/byacc/MANIFEST Wed Oct 5 17:18:24 2016 (r306710) +++ user/alc/PQ_LAUNDRY/contrib/byacc/MANIFEST Wed Oct 5 17:26:32 2016 (r306711) @@ -1,4 +1,4 @@ -MANIFEST for byacc-20160324, version t20160324 +MANIFEST for byacc-20160606, version t20160606 -------------------------------------------------------------------------------- MANIFEST this file ACKNOWLEDGEMENTS original version of byacc - 1993 Modified: user/alc/PQ_LAUNDRY/contrib/byacc/VERSION ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/byacc/VERSION Wed Oct 5 17:18:24 2016 (r306710) +++ user/alc/PQ_LAUNDRY/contrib/byacc/VERSION Wed Oct 5 17:26:32 2016 (r306711) @@ -1 +1 @@ -20160324 +20160606 Modified: user/alc/PQ_LAUNDRY/contrib/byacc/aclocal.m4 ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/byacc/aclocal.m4 Wed Oct 5 17:18:24 2016 (r306710) +++ user/alc/PQ_LAUNDRY/contrib/byacc/aclocal.m4 Wed Oct 5 17:26:32 2016 (r306711) @@ -1,4 +1,4 @@ -dnl $Id: aclocal.m4,v 1.39 2016/03/25 00:06:44 tom Exp $ +dnl $Id: aclocal.m4,v 1.40 2016/06/07 00:48:07 tom Exp $ dnl Macros for byacc configure script (Thomas E. Dickey) dnl --------------------------------------------------------------------------- dnl Copyright 2004-2015,2016 Thomas E. Dickey @@ -171,11 +171,15 @@ ifelse([$3],,[ :]dnl ])dnl ])])dnl dnl --------------------------------------------------------------------------- -dnl CF_CC_ENV_FLAGS version: 2 updated: 2015/04/12 15:39:00 +dnl CF_CC_ENV_FLAGS version: 3 updated: 2016/05/21 18:10:17 dnl --------------- dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content dnl into CC. This will not help with broken scripts that wrap the compiler with dnl options, but eliminates a more common category of user confusion. +dnl +dnl Caveat: this also disallows blanks in the pathname for the compiler, but +dnl the nuisance of having inconsistent settings for compiler and preprocessor +dnl outweighs that limitation. AC_DEFUN([CF_CC_ENV_FLAGS], [ # This should have been defined by AC_PROG_CC @@ -183,13 +187,16 @@ AC_DEFUN([CF_CC_ENV_FLAGS], AC_MSG_CHECKING(\$CC variable) case "$CC" in -(*[[\ \ ]]-[[IUD]]*) +(*[[\ \ ]]-*) AC_MSG_RESULT(broken) AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options) # humor him... - cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'` + cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]][[ ]]*//'` CC=`echo "$CC" | sed -e 's/[[ ]].*//'` CF_ADD_CFLAGS($cf_flags) + CF_VERBOSE(resulting CC: '$CC') + CF_VERBOSE(resulting CFLAGS: '$CFLAGS') + CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS') ;; (*) AC_MSG_RESULT(ok) @@ -1010,11 +1017,11 @@ AC_SUBST(GROFF_NOTE) AC_SUBST(NROFF_NOTE) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14 +dnl CF_PROG_LINT version: 3 updated: 2016/05/22 15:25:54 dnl ------------ AC_DEFUN([CF_PROG_LINT], [ -AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint) +AC_CHECK_PROGS(LINT, lint cppcheck splint) AC_SUBST(LINT_OPTS) ])dnl dnl --------------------------------------------------------------------------- Modified: user/alc/PQ_LAUNDRY/contrib/byacc/btyaccpar.c ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/byacc/btyaccpar.c Wed Oct 5 17:18:24 2016 (r306710) +++ user/alc/PQ_LAUNDRY/contrib/byacc/btyaccpar.c Wed Oct 5 17:26:32 2016 (r306711) @@ -2,7 +2,7 @@ * @Id: skel2c,v 1.3 2014/04/06 19:48:04 tom Exp @ */ -/* @Id: btyaccpar.skel,v 1.1 2014/04/02 22:44:41 tom Exp @ */ +/* @Id: btyaccpar.skel,v 1.3 2016/06/06 23:35:55 Tom.Shields Exp @ */ #include "defs.h" @@ -18,7 +18,7 @@ const char *const banner[] = { "/* original parser id follows */", "/* yysccsid[] = \"@(#)yaccpar 1.9 (Berkeley) 02/21/93\" */", - "/* (use YYMAJOR/YYMINOR for ifdefs dependent of parser version) */", + "/* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */", "", "#define YYBYACC 1", CONCAT1("#define YYMAJOR ", YYMAJOR), @@ -66,8 +66,10 @@ const char *const tables[] = "#endif /* YYBTYACC */", #endif /* defined(YYBTYACC) */ "", - "#if YYDEBUG", + "#if YYDEBUG || defined(yytname)", "extern const char *const yyname[];", + "#endif", + "#if YYDEBUG", "extern const char *const yyrule[];", "#endif", 0 @@ -148,9 +150,9 @@ const char *const hdr_defs[] = "", "typedef struct {", " unsigned stacksize;", - " short *s_base;", - " short *s_mark;", - " short *s_last;", + " YYINT *s_base;", + " YYINT *s_mark;", + " YYINT *s_last;", " YYSTYPE *l_base;", " YYSTYPE *l_mark;", "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", @@ -293,18 +295,18 @@ const char *const body_1[] = #endif /* defined(YYBTYACC) */ "", "#if YYDEBUG", - "#include /* needed for printf */", + "#include /* needed for printf */", "#endif", "", - "#include /* needed for malloc, etc */", - "#include /* needed for memset */", + "#include /* needed for malloc, etc */", + "#include /* needed for memset */", "", "/* allocate initial stack or double stack size, up to YYMAXDEPTH */", "static int yygrowstack(YYSTACKDATA *data)", "{", " int i;", " unsigned newsize;", - " short *newss;", + " YYINT *newss;", " YYSTYPE *newvs;", "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", " YYLTYPE *newps;", @@ -318,7 +320,7 @@ const char *const body_1[] = " newsize = YYMAXDEPTH;", "", " i = (int) (data->s_mark - data->s_base);", - " newss = (short *)realloc(data->s_base, newsize * sizeof(*newss));", + " newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));", " if (newss == 0)", " return YYENOMEM;", "", @@ -383,7 +385,7 @@ const char *const body_1[] = "#endif", " return p;", " }", - " p->yystack.s_base = (short *) malloc(size * sizeof(short));", + " p->yystack.s_base = (YYINT *) malloc(size * sizeof(YYINT));", " if (p->yystack.s_base == NULL) return NULL;", " p->yystack.l_base = (YYSTYPE *) malloc(size * sizeof(YYSTYPE));", " if (p->yystack.l_base == NULL) return NULL;", @@ -455,6 +457,8 @@ const char *const body_2[] = " yyps->save = 0;", "#endif /* YYBTYACC */", #endif /* defined(YYBTYACC) */ + " yym = 0;", + " yyn = 0;", " yynerrs = 0;", " yyerrflag = 0;", " yychar = YYEMPTY;", @@ -532,11 +536,10 @@ const char *const body_2[] = "#endif /* YYBTYACC */", #endif /* defined(YYBTYACC) */ " if (yychar < 0) yychar = YYEOF;", - " /* if ((yychar = YYLEX) < 0) yychar = YYEOF; */", "#if YYDEBUG", " if (yydebug)", " {", - " yys = yyname[YYTRANSLATE(yychar)];", + " if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];", " fprintf(stderr, \"%s[%d]: state %d, reading token %d (%s)\",", " YYDEBUGSTR, yydepth, yystate, yychar, yys);", "#ifdef YYSTYPE_TOSTRING", @@ -598,7 +601,7 @@ const char *const body_2[] = " save->state = yystate;", " save->errflag = yyerrflag;", " save->yystack.s_mark = save->yystack.s_base + (yystack.s_mark - yystack.s_base);", - " memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));", + " memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));", " save->yystack.l_mark = save->yystack.l_base + (yystack.l_mark - yystack.l_base);", " memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", @@ -679,7 +682,7 @@ const char *const body_2[] = " if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)", " goto yyoverflow;", " yystate = yyctable[ctry];", - " *++yystack.s_mark = (short) yystate;", + " *++yystack.s_mark = (YYINT) yystate;", " *++yystack.l_mark = yylval;", "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", " *++yystack.p_mark = yylloc;", @@ -727,9 +730,18 @@ const char *const body_2[] = "", " yynewerrflag = 1;", " goto yyerrhandler;", - " goto yyerrlab;", + " goto yyerrlab; /* redundant goto avoids 'unused label' warning */", "", "yyerrlab:", + " /* explicit YYERROR from an action -- pop the rhs of the rule reduced", + " * before looking for error recovery */", + " yystack.s_mark -= yym;", + " yystate = *yystack.s_mark;", + " yystack.l_mark -= yym;", + "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", + " yystack.p_mark -= yym;", + "#endif", + "", " yynewerrflag = 0;", "yyerrhandler:", " while (yyps->save)", @@ -754,7 +766,7 @@ const char *const body_2[] = " yyerrctx->state = yystate;", " yyerrctx->errflag = yyerrflag;", " yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base);", - " memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));", + " memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));", " yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base);", " memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", @@ -770,7 +782,7 @@ const char *const body_2[] = " yylexp = yylexemes + save->lexeme;", " yychar = YYEMPTY;", " yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base);", - " memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));", + " memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));", " yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base);", " memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", @@ -805,7 +817,7 @@ const char *const body_2[] = " yylloc = yylpp[-1];", "#endif", " yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base);", - " memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));", + " memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));", " yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base);", " memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", @@ -828,7 +840,7 @@ const char *const body_2[] = "#endif", "", "#if !YYBTYACC", - " goto yyerrlab;", + " goto yyerrlab; /* redundant goto avoids 'unused label' warning */", "yyerrlab:", "#endif", " ++yynerrs;", @@ -899,7 +911,7 @@ const char *const body_2[] = "#if YYDEBUG", " if (yydebug)", " {", - " yys = yyname[YYTRANSLATE(yychar)];", + " if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];", " fprintf(stderr, \"%s[%d]: state %d, error recovery discarding token %d (%s)\\n\",", " YYDEBUGSTR, yydepth, yystate, yychar, yys);", " }", @@ -1070,12 +1082,11 @@ const char *const trailer[] = "#endif /* YYBTYACC */", #endif /* defined(YYBTYACC) */ " if (yychar < 0) yychar = YYEOF;", - " /* if ((yychar = YYLEX) < 0) yychar = YYEOF; */", "#if YYDEBUG", " if (yydebug)", " {", - " yys = yyname[YYTRANSLATE(yychar)];", - " fprintf(stderr, \"%s[%d]: state %d, reading %d (%s)\\n\",", + " if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];", + " fprintf(stderr, \"%s[%d]: state %d, reading token %d (%s)\\n\",", " YYDEBUGSTR, yydepth, YYFINAL, yychar, yys);", " }", "#endif", @@ -1104,7 +1115,7 @@ const char *const trailer[] = " }", "#endif", " if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;", - " *++yystack.s_mark = (short) yystate;", + " *++yystack.s_mark = (YYINT) yystate;", " *++yystack.l_mark = yyval;", "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", " *++yystack.p_mark = yyloc;", @@ -1140,7 +1151,7 @@ const char *const trailer[] = " yylexp = yylexemes + yypath->lexeme;", " yychar = YYEMPTY;", " yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base);", - " memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));", + " memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));", " yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base);", " memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", Modified: user/alc/PQ_LAUNDRY/contrib/byacc/btyaccpar.skel ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/byacc/btyaccpar.skel Wed Oct 5 17:18:24 2016 (r306710) +++ user/alc/PQ_LAUNDRY/contrib/byacc/btyaccpar.skel Wed Oct 5 17:26:32 2016 (r306711) @@ -1,4 +1,4 @@ -/* $Id: btyaccpar.skel,v 1.1 2014/04/02 22:44:41 tom Exp $ */ +/* $Id: btyaccpar.skel,v 1.3 2016/06/06 23:35:55 Tom.Shields Exp $ */ #include "defs.h" @@ -45,8 +45,10 @@ extern const YYINT yycheck[]; extern const YYINT yyctable[]; %%endif -#if YYDEBUG +#if YYDEBUG || defined(yytname) extern const char *const yyname[]; +#endif +#if YYDEBUG extern const char *const yyrule[]; #endif %% global_vars @@ -113,9 +115,9 @@ do \ typedef struct { unsigned stacksize; - short *s_base; - short *s_mark; - short *s_last; + YYINT *s_base; + YYINT *s_mark; + YYINT *s_last; YYSTYPE *l_base; YYSTYPE *l_mark; #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) @@ -238,7 +240,7 @@ static short *yylexemes = 0; %%endif #if YYDEBUG -#include /* needed for printf */ +#include /* needed for printf */ #endif #include /* needed for malloc, etc */ @@ -249,7 +251,7 @@ static int yygrowstack(YYSTACKDATA *data { int i; unsigned newsize; - short *newss; + YYINT *newss; YYSTYPE *newvs; #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) YYLTYPE *newps; @@ -263,7 +265,7 @@ static int yygrowstack(YYSTACKDATA *data newsize = YYMAXDEPTH; i = (int) (data->s_mark - data->s_base); - newss = (short *)realloc(data->s_base, newsize * sizeof(*newss)); + newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss)); if (newss == 0) return YYENOMEM; @@ -327,7 +329,7 @@ yyNewState(unsigned size) #endif return p; } - p->yystack.s_base = (short *) malloc(size * sizeof(short)); + p->yystack.s_base = (YYINT *) malloc(size * sizeof(YYINT)); if (p->yystack.s_base == NULL) return NULL; p->yystack.l_base = (YYSTYPE *) malloc(size * sizeof(YYSTYPE)); if (p->yystack.l_base == NULL) return NULL; @@ -388,6 +390,8 @@ YYPARSE_DECL() yyps = yyNewState(0); if (yyps == 0) goto yyenomem; yyps->save = 0; %%endif + yym = 0; + yyn = 0; yynerrs = 0; yyerrflag = 0; yychar = YYEMPTY; @@ -427,8 +431,8 @@ yyloop: /* in trial mode; save scanner results for future parse attempts */ if (yylvp == yylvlim) { /* Enlarge lexical value queue */ - int p = yylvp - yylvals; - int s = yylvlim - yylvals; + size_t p = (size_t) (yylvp - yylvals); + size_t s = (size_t) (yylvlim - yylvals); s += YYLVQUEUEGROWTH; if ((yylexemes = (short *) realloc(yylexemes, s * sizeof(short))) == NULL) goto yyenomem; @@ -461,11 +465,10 @@ yyloop: } while (0); %%endif if (yychar < 0) yychar = YYEOF; - /* if ((yychar = YYLEX) < 0) yychar = YYEOF; */ #if YYDEBUG if (yydebug) { - yys = yyname[YYTRANSLATE(yychar)]; + if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)", YYDEBUGSTR, yydepth, yystate, yychar, yys); #ifdef YYSTYPE_TOSTRING @@ -524,12 +527,12 @@ yyloop: save->state = yystate; save->errflag = yyerrflag; save->yystack.s_mark = save->yystack.s_base + (yystack.s_mark - yystack.s_base); - memcpy (save->yystack.s_base, yystack.s_base, (yystack.s_mark - yystack.s_base + 1) * sizeof(short)); + memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT)); save->yystack.l_mark = save->yystack.l_base + (yystack.l_mark - yystack.l_base); - memcpy (save->yystack.l_base, yystack.l_base, (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); + memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) save->yystack.p_mark = save->yystack.p_base + (yystack.p_mark - yystack.p_base); - memcpy (save->yystack.p_base, yystack.p_base, (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); + memcpy (save->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); #endif ctry = yytable[yyn]; if (yyctable[ctry] == -1) @@ -584,7 +587,7 @@ yyloop: yylexp--; yychar = YYEMPTY; } - save->lexeme = yylvp - yylvals; + save->lexeme = (int) (yylvp - yylvals); yyps->save = save; } if (yytable[yyn] == ctry) @@ -605,7 +608,7 @@ yyloop: if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; yystate = yyctable[ctry]; - *++yystack.s_mark = (short) yystate; + *++yystack.s_mark = (YYINT) yystate; *++yystack.l_mark = yylval; #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) *++yystack.p_mark = yylloc; @@ -651,9 +654,18 @@ yyloop: yynewerrflag = 1; goto yyerrhandler; - goto yyerrlab; + goto yyerrlab; /* redundant goto avoids 'unused label' warning */ yyerrlab: + /* explicit YYERROR from an action -- pop the rhs of the rule reduced + * before looking for error recovery */ + yystack.s_mark -= yym; + yystate = *yystack.s_mark; + yystack.l_mark -= yym; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yystack.p_mark -= yym; +#endif + yynewerrflag = 0; yyerrhandler: while (yyps->save) @@ -678,14 +690,14 @@ yyerrhandler: yyerrctx->state = yystate; yyerrctx->errflag = yyerrflag; yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base); - memcpy (yyerrctx->yystack.s_base, yystack.s_base, (yystack.s_mark - yystack.s_base + 1) * sizeof(short)); + memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT)); yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base); - memcpy (yyerrctx->yystack.l_base, yystack.l_base, (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); + memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base); - memcpy (yyerrctx->yystack.p_base, yystack.p_base, (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); + memcpy (yyerrctx->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); #endif - yyerrctx->lexeme = yylvp - yylvals; + yyerrctx->lexeme = (int) (yylvp - yylvals); } yylvp = yylvals + save->lexeme; #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) @@ -694,12 +706,12 @@ yyerrhandler: yylexp = yylexemes + save->lexeme; yychar = YYEMPTY; yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base); - memcpy (yystack.s_base, save->yystack.s_base, (yystack.s_mark - yystack.s_base + 1) * sizeof(short)); + memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT)); yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base); - memcpy (yystack.l_base, save->yystack.l_base, (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); + memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base); - memcpy (yystack.p_base, save->yystack.p_base, (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); + memcpy (yystack.p_base, save->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); #endif ctry = ++save->ctry; yystate = save->state; @@ -729,12 +741,12 @@ yyerrhandler: yylloc = yylpp[-1]; #endif yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base); - memcpy (yystack.s_base, yyerrctx->yystack.s_base, (yystack.s_mark - yystack.s_base + 1) * sizeof(short)); + memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT)); yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base); - memcpy (yystack.l_base, yyerrctx->yystack.l_base, (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); + memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base); - memcpy (yystack.p_base, yyerrctx->yystack.p_base, (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); + memcpy (yystack.p_base, yyerrctx->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); #endif yystate = yyerrctx->state; yyFreeState(yyerrctx); @@ -751,7 +763,7 @@ yyerrhandler: #endif #if !YYBTYACC - goto yyerrlab; + goto yyerrlab; /* redundant goto avoids 'unused label' warning */ yyerrlab: #endif ++yynerrs; @@ -820,7 +832,7 @@ yyinrecovery: #if YYDEBUG if (yydebug) { - yys = yyname[YYTRANSLATE(yychar)]; + if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; fprintf(stderr, "%s[%d]: state %d, error recovery discarding token %d (%s)\n", YYDEBUGSTR, yydepth, yystate, yychar, yys); } @@ -938,8 +950,8 @@ yyreduce: /* in trial mode; save scanner results for future parse attempts */ if (yylvp == yylvlim) { /* Enlarge lexical value queue */ - int p = yylvp - yylvals; - int s = yylvlim - yylvals; + size_t p = (size_t) (yylvp - yylvals); + size_t s = (size_t) (yylvlim - yylvals); s += YYLVQUEUEGROWTH; if ((yylexemes = (short *) realloc(yylexemes, s * sizeof(short))) == NULL) @@ -975,12 +987,11 @@ yyreduce: } while (0); %%endif if (yychar < 0) yychar = YYEOF; - /* if ((yychar = YYLEX) < 0) yychar = YYEOF; */ #if YYDEBUG if (yydebug) { - yys = yyname[YYTRANSLATE(yychar)]; - fprintf(stderr, "%s[%d]: state %d, reading %d (%s)\n", + if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN]; + fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)\n", YYDEBUGSTR, yydepth, YYFINAL, yychar, yys); } #endif @@ -1007,7 +1018,7 @@ yyreduce: } #endif if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; - *++yystack.s_mark = (short) yystate; + *++yystack.s_mark = (YYINT) yystate; *++yystack.l_mark = yyval; #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) *++yystack.p_mark = yyloc; @@ -1042,12 +1053,12 @@ yyvalid: yylexp = yylexemes + yypath->lexeme; yychar = YYEMPTY; yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base); - memcpy (yystack.s_base, yypath->yystack.s_base, (yystack.s_mark - yystack.s_base + 1) * sizeof(short)); + memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT)); yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base); - memcpy (yystack.l_base, yypath->yystack.l_base, (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); + memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE)); #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base); - memcpy (yystack.p_base, yypath->yystack.p_base, (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); + memcpy (yystack.p_base, yypath->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE)); #endif yystate = yypath->state; goto yyloop; Modified: user/alc/PQ_LAUNDRY/contrib/byacc/configure ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/byacc/configure Wed Oct 5 17:18:24 2016 (r306710) +++ user/alc/PQ_LAUNDRY/contrib/byacc/configure Wed Oct 5 17:26:32 2016 (r306711) @@ -1,7 +1,7 @@ #! /bin/sh # From configure.in Revision: 1.21 . # Guess values for system-dependent variables and create Makefiles. -# Generated by Autoconf 2.52.20141204. +# Generated by Autoconf 2.52.20150926. # # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. @@ -767,7 +767,7 @@ This file contains any messages produced running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was -generated by GNU Autoconf 2.52.20141204. Invocation command line was +generated by GNU Autoconf 2.52.20150926. Invocation command line was $ $0 $@ @@ -1949,13 +1949,13 @@ esac echo "$as_me:1949: checking \$CC variable" >&5 echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6 case "$CC" in -(*[\ \ ]-[IUD]*) +(*[\ \ ]-*) echo "$as_me:1953: result: broken" >&5 echo "${ECHO_T}broken" >&6 { echo "$as_me:1955: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5 echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;} # humor him... - cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ]//'` + cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ][ ]*//'` CC=`echo "$CC" | sed -e 's/[ ].*//'` cf_fix_cppflags=no @@ -2036,14 +2036,26 @@ if test -n "$cf_new_extra_cppflags" ; th EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" fi + test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6 + +echo "${as_me:-configure}:2041: testing resulting CC: '$CC' ..." 1>&5 + + test -n "$verbose" && echo " resulting CFLAGS: '$CFLAGS'" 1>&6 + +echo "${as_me:-configure}:2045: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5 + + test -n "$verbose" && echo " resulting CPPFLAGS: '$CPPFLAGS'" 1>&6 + +echo "${as_me:-configure}:2049: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5 + ;; (*) - echo "$as_me:2041: result: ok" >&5 + echo "$as_me:2053: result: ok" >&5 echo "${ECHO_T}ok" >&6 ;; esac -echo "$as_me:2046: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "$as_me:2058: checking whether ${MAKE-make} sets \${MAKE}" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then @@ -2063,11 +2075,11 @@ fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:2066: result: yes" >&5 + echo "$as_me:2078: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else - echo "$as_me:2070: result: no" >&5 + echo "$as_me:2082: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi @@ -2084,7 +2096,7 @@ fi # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:2087: checking for a BSD compatible install" >&5 +echo "$as_me:2099: checking for a BSD compatible install" >&5 echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then @@ -2133,7 +2145,7 @@ fi INSTALL=$ac_install_sh fi fi -echo "$as_me:2136: result: $INSTALL" >&5 +echo "$as_me:2148: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. @@ -2144,7 +2156,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCR test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -echo "$as_me:2147: checking if filesystem supports mixed-case filenames" >&5 +echo "$as_me:2159: checking if filesystem supports mixed-case filenames" >&5 echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6 if test "${cf_cv_mixedcase+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2171,7 +2183,7 @@ else fi fi -echo "$as_me:2174: result: $cf_cv_mixedcase" >&5 +echo "$as_me:2186: result: $cf_cv_mixedcase" >&5 echo "${ECHO_T}$cf_cv_mixedcase" >&6 test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF @@ -2182,7 +2194,7 @@ for ac_prog in exctags ctags do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:2185: checking for $ac_word" >&5 +echo "$as_me:2197: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CTAGS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2197,7 +2209,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_CTAGS="$ac_prog" -echo "$as_me:2200: found $ac_dir/$ac_word" >&5 +echo "$as_me:2212: found $ac_dir/$ac_word" >&5 break done @@ -2205,10 +2217,10 @@ fi fi CTAGS=$ac_cv_prog_CTAGS if test -n "$CTAGS"; then - echo "$as_me:2208: result: $CTAGS" >&5 + echo "$as_me:2220: result: $CTAGS" >&5 echo "${ECHO_T}$CTAGS" >&6 else - echo "$as_me:2211: result: no" >&5 + echo "$as_me:2223: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2219,7 +2231,7 @@ for ac_prog in exetags etags do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:2222: checking for $ac_word" >&5 +echo "$as_me:2234: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ETAGS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2234,7 +2246,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_ETAGS="$ac_prog" -echo "$as_me:2237: found $ac_dir/$ac_word" >&5 +echo "$as_me:2249: found $ac_dir/$ac_word" >&5 break done @@ -2242,10 +2254,10 @@ fi fi ETAGS=$ac_cv_prog_ETAGS if test -n "$ETAGS"; then - echo "$as_me:2245: result: $ETAGS" >&5 + echo "$as_me:2257: result: $ETAGS" >&5 echo "${ECHO_T}$ETAGS" >&6 else - echo "$as_me:2248: result: no" >&5 + echo "$as_me:2260: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2254,7 +2266,7 @@ done # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args. set dummy ${CTAGS:-ctags}; ac_word=$2 -echo "$as_me:2257: checking for $ac_word" >&5 +echo "$as_me:2269: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2269,7 +2281,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_MAKE_LOWER_TAGS="yes" -echo "$as_me:2272: found $ac_dir/$ac_word" >&5 +echo "$as_me:2284: found $ac_dir/$ac_word" >&5 break done @@ -2278,17 +2290,17 @@ fi fi MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS if test -n "$MAKE_LOWER_TAGS"; then - echo "$as_me:2281: result: $MAKE_LOWER_TAGS" >&5 + echo "$as_me:2293: result: $MAKE_LOWER_TAGS" >&5 echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6 else - echo "$as_me:2284: result: no" >&5 + echo "$as_me:2296: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$cf_cv_mixedcase" = yes ; then # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args. set dummy ${ETAGS:-etags}; ac_word=$2 -echo "$as_me:2291: checking for $ac_word" >&5 +echo "$as_me:2303: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2303,7 +2315,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_MAKE_UPPER_TAGS="yes" -echo "$as_me:2306: found $ac_dir/$ac_word" >&5 +echo "$as_me:2318: found $ac_dir/$ac_word" >&5 break done @@ -2312,10 +2324,10 @@ fi fi MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS if test -n "$MAKE_UPPER_TAGS"; then - echo "$as_me:2315: result: $MAKE_UPPER_TAGS" >&5 + echo "$as_me:2327: result: $MAKE_UPPER_TAGS" >&5 echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6 else - echo "$as_me:2318: result: no" >&5 + echo "$as_me:2330: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2339,7 +2351,7 @@ for ac_prog in mawk gawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:2342: checking for $ac_word" >&5 +echo "$as_me:2354: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -2354,7 +2366,7 @@ for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Wed Oct 5 18:03:19 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9F139AF65F2 for ; Wed, 5 Oct 2016 18:03:19 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5872E975; Wed, 5 Oct 2016 18:03:19 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u95I3IKL040061; Wed, 5 Oct 2016 18:03:18 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u95I3Hq1040052; Wed, 5 Oct 2016 18:03:17 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201610051803.u95I3Hq1040052@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Wed, 5 Oct 2016 18:03:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306713 - in user/alc/PQ_LAUNDRY: lib/libc/stdlib lib/msun/ld80 lib/msun/src sys/cam sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Oct 2016 18:03:19 -0000 Author: alc Date: Wed Oct 5 18:03:17 2016 New Revision: 306713 URL: https://svnweb.freebsd.org/changeset/base/306713 Log: MFH r306708-306712 Modified: user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c user/alc/PQ_LAUNDRY/lib/msun/ld80/e_lgammal_r.c user/alc/PQ_LAUNDRY/lib/msun/src/e_lgammaf_r.c user/alc/PQ_LAUNDRY/sys/cam/cam_queue.c user/alc/PQ_LAUNDRY/sys/cam/cam_queue.h user/alc/PQ_LAUNDRY/sys/vm/vm_page.c user/alc/PQ_LAUNDRY/sys/vm/vm_page.h user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Directory Properties: user/alc/PQ_LAUNDRY/ (props changed) Modified: user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c Wed Oct 5 17:32:06 2016 (r306712) +++ user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c Wed Oct 5 18:03:17 2016 (r306713) @@ -270,16 +270,17 @@ void srandomdev(void) { int mib[2]; - size_t len; + size_t expected, len; if (rand_type == TYPE_0) - len = sizeof(state[0]); + expected = len = sizeof(state[0]); else - len = rand_deg * sizeof(state[0]); + expected = len = rand_deg * sizeof(state[0]); mib[0] = CTL_KERN; mib[1] = KERN_ARND; - sysctl(mib, 2, state, &len, NULL, 0); + if (sysctl(mib, 2, state, &len, NULL, 0) == -1 || len != expected) + abort(); if (rand_type != TYPE_0) { fptr = &state[rand_sep]; Modified: user/alc/PQ_LAUNDRY/lib/msun/ld80/e_lgammal_r.c ============================================================================== --- user/alc/PQ_LAUNDRY/lib/msun/ld80/e_lgammal_r.c Wed Oct 5 17:32:06 2016 (r306712) +++ user/alc/PQ_LAUNDRY/lib/msun/ld80/e_lgammal_r.c Wed Oct 5 18:03:17 2016 (r306713) @@ -249,7 +249,7 @@ sin_pil(long double x) long double lgammal_r(long double x, int *signgamp) { - long double nadj,p,p1,p2,p3,q,r,t,w,y,z; + long double nadj,p,p1,p2,q,r,t,w,y,z; uint64_t lx; int i; uint16_t hx,ix; Modified: user/alc/PQ_LAUNDRY/lib/msun/src/e_lgammaf_r.c ============================================================================== --- user/alc/PQ_LAUNDRY/lib/msun/src/e_lgammaf_r.c Wed Oct 5 17:32:06 2016 (r306712) +++ user/alc/PQ_LAUNDRY/lib/msun/src/e_lgammaf_r.c Wed Oct 5 18:03:17 2016 (r306713) @@ -122,7 +122,7 @@ sin_pif(float x) float __ieee754_lgammaf_r(float x, int *signgamp) { - float nadj,p,p1,p2,p3,q,r,t,w,y,z; + float nadj,p,p1,p2,q,r,t,w,y,z; int32_t hx; int i,ix; Modified: user/alc/PQ_LAUNDRY/sys/cam/cam_queue.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/cam/cam_queue.c Wed Oct 5 17:32:06 2016 (r306712) +++ user/alc/PQ_LAUNDRY/sys/cam/cam_queue.c Wed Oct 5 18:03:17 2016 (r306713) @@ -176,8 +176,11 @@ camq_remove(struct camq *queue, int inde { cam_pinfo *removed_entry; - if (index == 0 || index > queue->entries) - return (NULL); + if (index <= 0 || index > queue->entries) + panic("%s: Attempt to remove out-of-bounds index %d " + "from queue %p of size %d", __func__, index, queue, + queue->entries); + removed_entry = queue->queue_array[index]; if (queue->entries != index) { queue->queue_array[index] = queue->queue_array[queue->entries]; Modified: user/alc/PQ_LAUNDRY/sys/cam/cam_queue.h ============================================================================== --- user/alc/PQ_LAUNDRY/sys/cam/cam_queue.h Wed Oct 5 17:32:06 2016 (r306712) +++ user/alc/PQ_LAUNDRY/sys/cam/cam_queue.h Wed Oct 5 18:03:17 2016 (r306713) @@ -197,6 +197,11 @@ cam_ccbq_insert_ccb(struct cam_ccbq *ccb struct ccb_hdr *old_ccb; struct camq *queue = &ccbq->queue; + KASSERT((new_ccb->ccb_h.func_code & XPT_FC_QUEUED) != 0 && + (new_ccb->ccb_h.func_code & XPT_FC_USER_CCB) == 0, + ("%s: Cannot queue ccb %p func_code %#x", __func__, new_ccb, + new_ccb->ccb_h.func_code)); + /* * If queue is already full, try to resize. * If resize fail, push CCB with lowest priority out to the TAILQ. @@ -218,6 +223,7 @@ cam_ccbq_remove_ccb(struct cam_ccbq *ccb { struct ccb_hdr *cccb, *bccb; struct camq *queue = &ccbq->queue; + cam_pinfo *removed_entry __unused; /* If the CCB is on the TAILQ, remove it from there. */ if (ccb->ccb_h.pinfo.index == CAM_EXTRAQ_INDEX) { @@ -228,7 +234,10 @@ cam_ccbq_remove_ccb(struct cam_ccbq *ccb return; } - camq_remove(queue, ccb->ccb_h.pinfo.index); + removed_entry = camq_remove(queue, ccb->ccb_h.pinfo.index); + KASSERT(removed_entry == &ccb->ccb_h.pinfo, + ("%s: Removed wrong entry from queue (%p != %p)", __func__, + removed_entry, &ccb->ccb_h.pinfo)); /* * If there are some CCBs on TAILQ, find the best one and move it Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_page.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_page.c Wed Oct 5 17:32:06 2016 (r306712) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_page.c Wed Oct 5 18:03:17 2016 (r306713) @@ -398,7 +398,6 @@ vm_page_domain_init(struct vm_domain *vm vmd->vmd_free_count = 0; vmd->vmd_segs = 0; vmd->vmd_oom = FALSE; - vmd->vmd_pass = 0; for (i = 0; i < PQ_COUNT; i++) { pq = &vmd->vmd_pagequeues[i]; TAILQ_INIT(&pq->pq_pl); @@ -3829,14 +3828,13 @@ DB_SHOW_COMMAND(pageq, vm_page_print_pag vm_cnt.v_free_count, vm_cnt.v_cache_count); for (dom = 0; dom < vm_ndomains; dom++) { db_printf( - "dom %d page_cnt %d free %d pq_act %d pq_inact %d pq_laund %d pass %d\n", + "dom %d page_cnt %d free %d pq_act %d pq_inact %d pq_laund %d\n", dom, vm_dom[dom].vmd_page_count, vm_dom[dom].vmd_free_count, vm_dom[dom].vmd_pagequeues[PQ_ACTIVE].pq_cnt, vm_dom[dom].vmd_pagequeues[PQ_INACTIVE].pq_cnt, - vm_dom[dom].vmd_pagequeues[PQ_LAUNDRY].pq_cnt, - vm_dom[dom].vmd_pass); + vm_dom[dom].vmd_pagequeues[PQ_LAUNDRY].pq_cnt); } } Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_page.h ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_page.h Wed Oct 5 17:32:06 2016 (r306712) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_page.h Wed Oct 5 18:03:17 2016 (r306713) @@ -227,7 +227,6 @@ struct vm_domain { u_int vmd_free_count; long vmd_segs; /* bitmask of the segments */ boolean_t vmd_oom; - int vmd_pass; /* local pagedaemon pass */ int vmd_oom_seq; int vmd_last_active_scan; struct vm_page vmd_laundry_marker; Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Wed Oct 5 17:32:06 2016 (r306712) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Wed Oct 5 18:03:17 2016 (r306713) @@ -1893,11 +1893,12 @@ static void vm_pageout_worker(void *arg) { struct vm_domain *domain; - int domidx; + int domidx, pass; bool target_met; domidx = (uintptr_t)arg; domain = &vm_dom[domidx]; + pass = 0; target_met = true; /* @@ -1959,9 +1960,9 @@ vm_pageout_worker(void *arg) * and try again later. */ mtx_unlock(&vm_page_queue_free_mtx); - if (domain->vmd_pass > 1) + if (pass > 1) pause("psleep", hz / 2); - domain->vmd_pass++; + pass++; } else { /* * Yes. Sleep until pages need to be reclaimed or @@ -1971,12 +1972,12 @@ vm_pageout_worker(void *arg) &vm_page_queue_free_mtx, PDROP | PVM, "psleep", hz) == 0) { PCPU_INC(cnt.v_pdwakeups); - domain->vmd_pass = 1; + pass = 1; } else - domain->vmd_pass = 0; + pass = 0; } - target_met = vm_pageout_scan(domain, domain->vmd_pass); + target_met = vm_pageout_scan(domain, pass); } } From owner-svn-src-user@freebsd.org Wed Oct 5 22:34:10 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F0879AF50F0 for ; Wed, 5 Oct 2016 22:34:10 +0000 (UTC) (envelope-from pgollucci@p6m7g8.com) Received: from mail-wm0-x22d.google.com (mail-wm0-x22d.google.com [IPv6:2a00:1450:400c:c09::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8666BF62 for ; Wed, 5 Oct 2016 22:34:10 +0000 (UTC) (envelope-from pgollucci@p6m7g8.com) Received: by mail-wm0-x22d.google.com with SMTP id f193so256156419wmg.0 for ; Wed, 05 Oct 2016 15:34:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=p6m7g8-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=gNnInE67WzWD86WvOFqDhta9DUzwv6JgYotibNQtxrg=; b=xEaqSpNQnee8HInfePsxqKsF2tUMUUz8H1rXxFiWGGY2QTvWwlh5XB/HfiEAvsRlvp GH1NrRJHoEYpMv1mqhX9lAzpw0QDdm+ERwpuJf3JjtkW3gNuJSI8Y+o5Fo2+WnJQDUN5 ymIJibdP6mOT9HvY1/2Z4wtL+wtSQKYcDafNF5OMO78dEEozw0+gLY4H9WA1qlt4KQH+ hfU8oq7Osf9SXTcHr7ETdq6sUSY93uLji3Lr1gkgAxfdb7TszFnkCfR6r6JJEg+5QZFl La9Wm7Vd3/YyC6Kk9wba8xKDe2kVe6ry+qKf7Tt11RFmIoq7uMdnwSqmjZ1r/2UQeFte YcBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=gNnInE67WzWD86WvOFqDhta9DUzwv6JgYotibNQtxrg=; b=HxoDV2pS9NPbSyowwUfBViFl6GV0IsYx+EeLH2TR7XhA0uGuTTKFViRpiW1NGuMFnm bQxCgnyTbXp1sPNlOc36NdMLNrrRvgwZg3faNQgV6UPrQ/2B0kCuxSxXtNd/1lh4HXW3 1XxL3+4XN67EuJN3jWND3IeALUaIDn570a40vo0LphAsD8Ilkh5CEOnQzWbTGPsuPOWs y4DrJkpHzL0TmCEFpry9PWem6B02LkJXuvWeZCFwfBEvr+JGhhvQeYqcoTOH2s+yUU6p ys9mG+PoMnNr8Cw4R/bOHksJSdvi4yeUy14Ohw1W0UkiJyimE52ogM5KX9bq9T1jNGAL X8vg== X-Gm-Message-State: AA6/9RlUoBF8TTifD4Maub6s4/WgG+npvsLnaYOrI6BMGE87zuqliit2532lC2jkBh8HizYVoOXwlwGO9aIV3A== X-Received: by 10.28.229.149 with SMTP id c143mr2989322wmh.95.1475706849122; Wed, 05 Oct 2016 15:34:09 -0700 (PDT) MIME-Version: 1.0 Received: by 10.80.183.197 with HTTP; Wed, 5 Oct 2016 15:33:28 -0700 (PDT) X-Originating-IP: [108.31.198.207] In-Reply-To: <201610051803.u95I3Hq1040052@repo.freebsd.org> References: <201610051803.u95I3Hq1040052@repo.freebsd.org> From: "Philip M. Gollucci" Date: Wed, 5 Oct 2016 18:33:28 -0400 Message-ID: Subject: Re: svn commit: r306713 - in user/alc/PQ_LAUNDRY: lib/libc/stdlib lib/msun/ld80 lib/msun/src sys/cam sys/vm To: Alan Cox Cc: src-committers@freebsd.org, svn-src-user@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Oct 2016 22:34:11 -0000 I know you(Alan) didn't write this, its from the MFH, but how would len != expected. neither are initialized or passed in both times its set its expected = len = foo On Wed, Oct 5, 2016 at 2:03 PM, Alan Cox wrote: > Modified: user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c > ============================================================ > ================== > --- user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c Wed Oct 5 > 17:32:06 2016 (r306712) > +++ user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c Wed Oct 5 > 18:03:17 2016 (r306713) > @@ -270,16 +270,17 @@ void > srandomdev(void) > { > int mib[2]; > - size_t len; > + size_t expected, len; > > if (rand_type == TYPE_0) > - len = sizeof(state[0]); > + expected = len = sizeof(state[0]); > else > - len = rand_deg * sizeof(state[0]); > + expected = len = rand_deg * sizeof(state[0]); > > mib[0] = CTL_KERN; > mib[1] = KERN_ARND; > - sysctl(mib, 2, state, &len, NULL, 0); > + if (sysctl(mib, 2, state, &len, NULL, 0) == -1 || len != expected) > + abort(); > > if (rand_type != TYPE_0) { > fptr = &state[rand_sep]; > -- --------------------------------------------------------------------------------- 4096R/D21D2752 ECDF B597 B54B 7F92 753E E0EA F699 A450 D21D 2752 Philip M. Gollucci (pgollucci@p6m7g8.com) c: 703.336.9354 Member, Apache Software Foundation Committer, FreeBSD Foundation Consultant, P6M7G8 Inc. Director Cloud Technology, Capital One What doesn't kill us can only make us stronger; Except it almost kills you. From owner-svn-src-user@freebsd.org Thu Oct 6 00:13:20 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D82A0AF448A for ; Thu, 6 Oct 2016 00:13:20 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail109.syd.optusnet.com.au (mail109.syd.optusnet.com.au [211.29.132.80]) by mx1.freebsd.org (Postfix) with ESMTP id 82ACA9B6; Thu, 6 Oct 2016 00:13:19 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c122-106-163-102.carlnfd1.nsw.optusnet.com.au (c122-106-163-102.carlnfd1.nsw.optusnet.com.au [122.106.163.102]) by mail109.syd.optusnet.com.au (Postfix) with ESMTPS id 44B5FD600A7; Thu, 6 Oct 2016 11:13:11 +1100 (AEDT) Date: Thu, 6 Oct 2016 11:13:10 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: "Philip M. Gollucci" cc: Alan Cox , src-committers@freebsd.org, svn-src-user@freebsd.org Subject: Re: svn commit: r306713 - in user/alc/PQ_LAUNDRY: lib/libc/stdlib lib/msun/ld80 lib/msun/src sys/cam sys/vm In-Reply-To: Message-ID: <20161006101333.N1163@besplex.bde.org> References: <201610051803.u95I3Hq1040052@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=CoZCCSMD c=1 sm=1 tr=0 a=IXAyHK3mFcy+1kvmsno0Fw==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=6I5d2MoRAAAA:8 a=KO4GtmpiOqKhjvcpFJEA:9 a=cV0wJtvhprYiQA4Q:21 a=BLgT7fOEgMPPPvzW:21 a=CjuIK1q_8ugA:10 a=IjZwj45LgO3ly-622nXo:22 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Oct 2016 00:13:20 -0000 On Wed, 5 Oct 2016, Philip M. Gollucci wrote: > I know you(Alan) didn't write this, its from the MFH, but how would len != > expected. > > neither are initialized or passed in > both times its set its expected = len = foo Er, both are initialized. len is passed as an input/output parameter to sysctl(). sysctl() can return a short count. This is now detected by recording the expected value in 'expected' and mishandled. Previously, the error wasn't even detected. > On Wed, Oct 5, 2016 at 2:03 PM, Alan Cox wrote: > >> Modified: user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c >> ============================================================ >> ================== >> --- user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c Wed Oct 5 >> 17:32:06 2016 (r306712) >> +++ user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c Wed Oct 5 >> 18:03:17 2016 (r306713) >> @@ -270,16 +270,17 @@ void >> srandomdev(void) >> { >> int mib[2]; >> - size_t len; >> + size_t expected, len; >> >> if (rand_type == TYPE_0) >> - len = sizeof(state[0]); >> + expected = len = sizeof(state[0]); >> else >> - len = rand_deg * sizeof(state[0]); >> + expected = len = rand_deg * sizeof(state[0]); >> >> mib[0] = CTL_KERN; >> mib[1] = KERN_ARND; >> - sysctl(mib, 2, state, &len, NULL, 0); >> + if (sysctl(mib, 2, state, &len, NULL, 0) == -1 || len != expected) >> + abort(); >> >> if (rand_type != TYPE_0) { >> fptr = &state[rand_sep]; I don't like this set of changes. Originally, srandomdev() read from /dev/random. read() can also return a short count. This was detected and mishandled, but not as badly as now. The non-error of a short count was treated as an error, and both were handled by falling back to the weak method of using gettimeofday(). This was broken by switching to the sysctl and not even checking for errors from the sysctl. The sysctl can and does fail, mainly when a new userland is used with an old kernel. This commit restores some error checking. The implementation uses the style bugs of using the numbered sysctl KERN_ARND. This sysctl shouldn't exist by number, and isn't documented by number. It is too new to need a number or benefit from the careful documentation of old numbered sysctls. It is only documented by name (kern.arandom), only in a wrong place (random(4)), and a naive reader would expect from reading this man page that /dev/random is still the primary interface. Its behaviour of returning a short count might be expected from the device's behaviour, but is not really documented for the sysctl. It is only documented that the sysctl will not return random bytes unless the random device is seeded. The return value for this case is undocumented (is it 0 or -1? Source code seems to say that it is 0). Anyway, errors seems to be possible, so abort() is not acceptable handling. This was handled much better in arc4random() and is still handled better there despite recent regressions: - the sysctl is wrapped by a function that retries for short counts. However, the sysctl usage has even larger style bugs -- the sysctl is by number, and sysctl() is named __sysctl() - error handling was not missing. Perhaps the retry loop can spin forever with a short count of 0, but if the sysctl fails then there was a fallback first to reading /dev/random and then to the weak gettimeofday() method. Now there is no fallback, and the difference is just the retry loop. The first step in the removed fallback in arc4random() was not weaker like the log message says. It is to the primary method according to the man page. According to the man page, reading /dev/random blocks until the RNG is seeded for the first time. Blocking for the sysctl is undocumented. I think the sysctl returns a short count of 0, and we treat this as an error and abort(), so applications running early in the boot crash instead of having the traditional behaviour of hanging. It is unclear if short counts of nonzero can actually occur. I think they could easily occur in older implementations where /dev/random blocked for more cases than before the initial seeding. I think they should still be possible. Even if there is no need to block, it is useful to be able to kill a read() with a preposterously large count. If interrupts are allowed at all, then after one the return value must be either -1 or a short count. That is another reason why abort() in a library is bad error handling. It turns most signals into SIGABRT. Bruce From owner-svn-src-user@freebsd.org Thu Oct 6 00:27:56 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9D1EBAF48DF for ; Thu, 6 Oct 2016 00:27:56 +0000 (UTC) (envelope-from pgollucci@p6m7g8.com) Received: from mail-wm0-x22d.google.com (mail-wm0-x22d.google.com [IPv6:2a00:1450:400c:c09::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 24DC2B4 for ; Thu, 6 Oct 2016 00:27:56 +0000 (UTC) (envelope-from pgollucci@p6m7g8.com) Received: by mail-wm0-x22d.google.com with SMTP id b201so14081579wmb.0 for ; Wed, 05 Oct 2016 17:27:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=p6m7g8-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=wpObL4yyRuvDnJxo5UOHkiWeFlhHxY0gFSvNeGHmz+c=; b=NbfZ/dK0nsIohDAB3f5P681EawOVdAbouOfHMOBdtGiT1/YkzQJObXzqanJ3nEwsb1 dfz0cl8QbCz0urjsQ3pRtzlMSRqvfm2Z7p2p7yXmymLzqZoz15KmgkMQcvt9+bWbigb6 eBEEpvL44RUyKhwZy5itgZmGqySDT2cXKieFz9LPHBgQDDgEEEGH1asg8yGq6+RCBGoB LjLlIjfzXcKjl8IIAXHs5tWNuJv6fQXTp/TKmWKBz6LsJAMwei2MRXeKLtbPw8kz1B6N yT5nb5YqYNY9VNcbLYoDHHowFKIGUUUUgFC9GZxtrg0d4zqPnyhTk331zCf3MwWocstQ +0Dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=wpObL4yyRuvDnJxo5UOHkiWeFlhHxY0gFSvNeGHmz+c=; b=POrmBCk/kLbo2AC3X+EM5F/z0K5aY2f69IrmSKYb4QoJcCcL9UIkXvmgrKaN35tNBV EeNwKKC9oX1Ys8GWbEFmhPAXhH44woVl+OWCZ/OnWgtA7NaSIObYiSREH6Dql+qWkfAM rcrDudYc6ynr32Ti3y+QXPUNbvAAmMCe/9DYDFJvM79WFdoKu/Yocc++svaFVl/KlgXh x5Pfxy4IjBIT+63fULNd2m57wCHYNi1CR+/jH1W74TXtpOswUI2ytxXXlSyLPz/G8LOP hGe+M1Ix8mrfVr+gZU5mQhDHUo2cxG+/vJdT9MJWJ4vEr7R6JleqQIeZYoHPhv1hb9lw 5o7A== X-Gm-Message-State: AA6/9Rn1htekJsGTcvoxUbrDuYywzW/yRrZ/n/6BPjb5QfaTOB/Q4lHljRfhMcd6lJQuPQIIvGx69n1OVqi0Xg== X-Received: by 10.28.133.70 with SMTP id h67mr11487918wmd.61.1475713674688; Wed, 05 Oct 2016 17:27:54 -0700 (PDT) MIME-Version: 1.0 Received: by 10.80.183.197 with HTTP; Wed, 5 Oct 2016 17:27:14 -0700 (PDT) X-Originating-IP: [108.31.198.207] In-Reply-To: <20161006101333.N1163@besplex.bde.org> References: <201610051803.u95I3Hq1040052@repo.freebsd.org> <20161006101333.N1163@besplex.bde.org> From: "Philip M. Gollucci" Date: Wed, 5 Oct 2016 20:27:14 -0400 Message-ID: Subject: Re: svn commit: r306713 - in user/alc/PQ_LAUNDRY: lib/libc/stdlib lib/msun/ld80 lib/msun/src sys/cam sys/vm To: Bruce Evans Cc: Alan Cox , src-committers@freebsd.org, svn-src-user@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Oct 2016 00:27:56 -0000 Duh, I missed that sysctl writes to it. My fault. You're of course correct. On Wed, Oct 5, 2016 at 8:13 PM, Bruce Evans wrote: > On Wed, 5 Oct 2016, Philip M. Gollucci wrote: > > I know you(Alan) didn't write this, its from the MFH, but how would len != >> expected. >> >> neither are initialized or passed in >> both times its set its expected = len = foo >> > > Er, both are initialized. len is passed as an input/output parameter to > sysctl(). sysctl() can return a short count. This is now detected by > recording the expected value in 'expected' and mishandled. Previously, > the error wasn't even detected. > > On Wed, Oct 5, 2016 at 2:03 PM, Alan Cox wrote: >> >> Modified: user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c >>> ============================================================ >>> ================== >>> --- user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c Wed Oct 5 >>> 17:32:06 2016 (r306712) >>> +++ user/alc/PQ_LAUNDRY/lib/libc/stdlib/random.c Wed Oct 5 >>> 18:03:17 2016 (r306713) >>> @@ -270,16 +270,17 @@ void >>> srandomdev(void) >>> { >>> int mib[2]; >>> - size_t len; >>> + size_t expected, len; >>> >>> if (rand_type == TYPE_0) >>> - len = sizeof(state[0]); >>> + expected = len = sizeof(state[0]); >>> else >>> - len = rand_deg * sizeof(state[0]); >>> + expected = len = rand_deg * sizeof(state[0]); >>> >>> mib[0] = CTL_KERN; >>> mib[1] = KERN_ARND; >>> - sysctl(mib, 2, state, &len, NULL, 0); >>> + if (sysctl(mib, 2, state, &len, NULL, 0) == -1 || len != >>> expected) >>> + abort(); >>> >>> if (rand_type != TYPE_0) { >>> fptr = &state[rand_sep]; >>> >> > I don't like this set of changes. > > Originally, srandomdev() read from /dev/random. read() can also return a > short count. This was detected and mishandled, but not as badly as now. > The non-error of a short count was treated as an error, and both were > handled by falling back to the weak method of using gettimeofday(). > > This was broken by switching to the sysctl and not even checking for > errors from the sysctl. The sysctl can and does fail, mainly when a > new userland is used with an old kernel. > > This commit restores some error checking. > > The implementation uses the style bugs of using the numbered sysctl > KERN_ARND. This sysctl shouldn't exist by number, and isn't documented > by number. It is too new to need a number or benefit from the careful > documentation of old numbered sysctls. It is only documented by name > (kern.arandom), only in a wrong place (random(4)), and a naive reader > would expect from reading this man page that /dev/random is still the > primary interface. Its behaviour of returning a short count might be > expected from the device's behaviour, but is not really documented for > the sysctl. It is only documented that the sysctl will not return > random bytes unless the random device is seeded. The return value for > this case is undocumented (is it 0 or -1? Source code seems to say > that it is 0). Anyway, errors seems to be possible, so abort() is not > acceptable handling. > > This was handled much better in arc4random() and is still handled better > there despite recent regressions: > - the sysctl is wrapped by a function that retries for short counts. > However, the sysctl usage has even larger style bugs -- the sysctl is > by number, and sysctl() is named __sysctl() > - error handling was not missing. Perhaps the retry loop can spin forever > with a short count of 0, but if the sysctl fails then there was a > fallback > first to reading /dev/random and then to the weak gettimeofday() method. > > Now there is no fallback, and the difference is just the retry loop. > > The first step in the removed fallback in arc4random() was not weaker > like the log message says. It is to the primary method according to > the man page. According to the man page, reading /dev/random blocks > until the RNG is seeded for the first time. Blocking for the sysctl > is undocumented. I think the sysctl returns a short count of 0, and > we treat this as an error and abort(), so applications running early > in the boot crash instead of having the traditional behaviour of hanging. > > It is unclear if short counts of nonzero can actually occur. I think > they could easily occur in older implementations where /dev/random > blocked for more cases than before the initial seeding. I think they > should still be possible. Even if there is no need to block, it is > useful to be able to kill a read() with a preposterously large count. > If interrupts are allowed at all, then after one the return value must > be either -1 or a short count. That is another reason why abort() in > a library is bad error handling. It turns most signals into SIGABRT. > > Bruce > -- --------------------------------------------------------------------------------- 4096R/D21D2752 ECDF B597 B54B 7F92 753E E0EA F699 A450 D21D 2752 Philip M. Gollucci (pgollucci@p6m7g8.com) c: 703.336.9354 Member, Apache Software Foundation Committer, FreeBSD Foundation Consultant, P6M7G8 Inc. Director Cloud Technology, Capital One What doesn't kill us can only make us stronger; Except it almost kills you. From owner-svn-src-user@freebsd.org Thu Oct 6 03:14:10 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04F14AF7340 for ; Thu, 6 Oct 2016 03:14:10 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BDF6D13BF; Thu, 6 Oct 2016 03:14:09 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u963E8jV055173; Thu, 6 Oct 2016 03:14:08 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u963E8vV055172; Thu, 6 Oct 2016 03:14:08 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201610060314.u963E8vV055172@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Thu, 6 Oct 2016 03:14:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306749 - user/alc/PQ_LAUNDRY/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Oct 2016 03:14:10 -0000 Author: alc Date: Thu Oct 6 03:14:08 2016 New Revision: 306749 URL: https://svnweb.freebsd.org/changeset/base/306749 Log: In contrast to HEAD, the PQ_LAUNDRY page daemon should pause() after a level == 1 pass. Reviewed by: markj Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Thu Oct 6 01:52:00 2016 (r306748) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Thu Oct 6 03:14:08 2016 (r306749) @@ -1244,8 +1244,8 @@ dolaundry: /* * vm_pageout_scan does the dirty work for the pageout daemon. * - * pass 0 - Update active LRU/deactivate pages - * pass 1 - Free inactive pages + * pass == 0: Update active LRU/deactivate pages + * pass >= 1: Free inactive pages * * Returns true if pass was zero or enough pages were freed by the inactive * queue scan to meet the target. @@ -1954,13 +1954,13 @@ vm_pageout_worker(void *arg) * thread during the previous scan, which must have * been a level 0 scan, or vm_pageout_wanted was * already set and the scan failed to free enough - * pages. If we haven't yet performed a level >= 2 - * scan (unlimited dirty cleaning), then upgrade the - * level and scan again now. Otherwise, sleep a bit - * and try again later. + * pages. If we haven't yet performed a level >= 1 + * (page reclamation) scan, then increase the level + * and scan again now. Otherwise, sleep a bit and + * try again later. */ mtx_unlock(&vm_page_queue_free_mtx); - if (pass > 1) + if (pass >= 1) pause("psleep", hz / 2); pass++; } else { From owner-svn-src-user@freebsd.org Thu Oct 6 15:30:27 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 40DB3BE9DA7 for ; Thu, 6 Oct 2016 15:30:27 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 13496D21; Thu, 6 Oct 2016 15:30:27 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u96FUQil040798; Thu, 6 Oct 2016 15:30:26 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u96FUQE2040797; Thu, 6 Oct 2016 15:30:26 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201610061530.u96FUQE2040797@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Thu, 6 Oct 2016 15:30:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306763 - user/alc/PQ_LAUNDRY/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Oct 2016 15:30:27 -0000 Author: alc Date: Thu Oct 6 15:30:26 2016 New Revision: 306763 URL: https://svnweb.freebsd.org/changeset/base/306763 Log: Define the sysctl for the number of laundry thread wakeups. Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c Thu Oct 6 15:20:05 2016 (r306762) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c Thu Oct 6 15:30:26 2016 (r306763) @@ -287,6 +287,7 @@ VM_STATS_VM(v_vnodepgsin, "Vnode pages p VM_STATS_VM(v_vnodepgsout, "Vnode pages paged out"); VM_STATS_VM(v_intrans, "In transit page faults"); VM_STATS_VM(v_reactivated, "Pages reactivated by pagedaemon"); +VM_STATS_VM(v_ltwakeups, "Laundry thread wakeups"); VM_STATS_VM(v_pdwakeups, "Pagedaemon wakeups"); VM_STATS_VM(v_pdpages, "Pages analyzed by pagedaemon"); VM_STATS_VM(v_tcached, "Total pages cached"); From owner-svn-src-user@freebsd.org Thu Oct 6 18:43:10 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 76ED2BECF87 for ; Thu, 6 Oct 2016 18:43:10 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3DB7EE87; Thu, 6 Oct 2016 18:43:10 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u96Ih9UT018448; Thu, 6 Oct 2016 18:43:09 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u96Ih9IS018447; Thu, 6 Oct 2016 18:43:09 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201610061843.u96Ih9IS018447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 6 Oct 2016 18:43:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306776 - user/alc/PQ_LAUNDRY/usr.bin/vmstat X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Oct 2016 18:43:10 -0000 Author: markj Date: Thu Oct 6 18:43:09 2016 New Revision: 306776 URL: https://svnweb.freebsd.org/changeset/base/306776 Log: Revert r306596: it was intended for a downstream branch. Modified: user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c Modified: user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c ============================================================================== --- user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c Thu Oct 6 18:10:19 2016 (r306775) +++ user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c Thu Oct 6 18:43:09 2016 (r306776) @@ -1082,6 +1082,8 @@ dosum(void) sum.v_vforkpages); xo_emit("{:pages-rfork/%9u} {N:pages affected by rfork}()\n", sum.v_rforkpages); + xo_emit("{:pages-total-cached/%9u} {N:pages cached}\n", + sum.v_tcached); xo_emit("{:pages-freed/%9u} {N:pages freed}\n", sum.v_tfree); xo_emit("{:pages-freed-by-daemon/%9u} {N:pages freed by daemon}\n", From owner-svn-src-user@freebsd.org Thu Oct 6 18:45:14 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 76BDEBECFAD for ; Thu, 6 Oct 2016 18:45:14 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 45D03FC0; Thu, 6 Oct 2016 18:45:14 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u96IjDch018629; Thu, 6 Oct 2016 18:45:13 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u96IjAYC018600; Thu, 6 Oct 2016 18:45:10 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201610061845.u96IjAYC018600@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 6 Oct 2016 18:45:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306777 - in user/alc/PQ_LAUNDRY: bin/chio bin/dd bin/echo bin/expr bin/pwd bin/stty bin/test gnu/usr.bin/groff lib/libc/sys lib/libcapsicum sbin/atm/atmconfig sbin/bsdlabel sbin/clri s... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Oct 2016 18:45:14 -0000 Author: markj Date: Thu Oct 6 18:45:10 2016 New Revision: 306777 URL: https://svnweb.freebsd.org/changeset/base/306777 Log: MFH r306776 Added: user/alc/PQ_LAUNDRY/gnu/usr.bin/groff/mdate.sh - copied unchanged from r306776, head/gnu/usr.bin/groff/mdate.sh user/alc/PQ_LAUNDRY/lib/libcapsicum/capsicum_helpers.3 - copied unchanged from r306776, head/lib/libcapsicum/capsicum_helpers.3 user/alc/PQ_LAUNDRY/share/man/man9/dnv.9 - copied unchanged from r306776, head/share/man/man9/dnv.9 Modified: user/alc/PQ_LAUNDRY/bin/chio/chio.1 user/alc/PQ_LAUNDRY/bin/dd/dd.1 user/alc/PQ_LAUNDRY/bin/echo/echo.1 user/alc/PQ_LAUNDRY/bin/expr/expr.1 user/alc/PQ_LAUNDRY/bin/pwd/pwd.1 user/alc/PQ_LAUNDRY/bin/stty/stty.1 user/alc/PQ_LAUNDRY/bin/test/test.1 user/alc/PQ_LAUNDRY/gnu/usr.bin/groff/Makefile.inc user/alc/PQ_LAUNDRY/lib/libc/sys/kqueue.2 user/alc/PQ_LAUNDRY/lib/libcapsicum/Makefile user/alc/PQ_LAUNDRY/sbin/atm/atmconfig/atmconfig.8 user/alc/PQ_LAUNDRY/sbin/bsdlabel/bsdlabel.8 user/alc/PQ_LAUNDRY/sbin/clri/clri.8 user/alc/PQ_LAUNDRY/sbin/devd/devd.8 user/alc/PQ_LAUNDRY/sbin/devfs/devfs.8 user/alc/PQ_LAUNDRY/sbin/fdisk/fdisk.8 user/alc/PQ_LAUNDRY/sbin/fdisk_pc98/fdisk.8 user/alc/PQ_LAUNDRY/sbin/fsck/fsck.8 user/alc/PQ_LAUNDRY/sbin/fsck_ffs/fsck_ffs.8 user/alc/PQ_LAUNDRY/sbin/natd/natd.8 user/alc/PQ_LAUNDRY/sbin/nos-tun/nos-tun.8 user/alc/PQ_LAUNDRY/sbin/savecore/savecore.c user/alc/PQ_LAUNDRY/share/man/man5/src.conf.5 user/alc/PQ_LAUNDRY/share/man/man9/Makefile user/alc/PQ_LAUNDRY/share/man/man9/style.9 user/alc/PQ_LAUNDRY/sys/arm/allwinner/aw_mp.c user/alc/PQ_LAUNDRY/sys/arm/altera/socfpga/socfpga_mp.c user/alc/PQ_LAUNDRY/sys/arm/amlogic/aml8726/aml8726_mp.c user/alc/PQ_LAUNDRY/sys/arm/arm/busdma_machdep-v6.c user/alc/PQ_LAUNDRY/sys/arm/arm/cpufunc_asm_armv7.S user/alc/PQ_LAUNDRY/sys/arm/arm/cpuinfo.c user/alc/PQ_LAUNDRY/sys/arm/arm/locore-v6.S user/alc/PQ_LAUNDRY/sys/arm/arm/mp_machdep.c user/alc/PQ_LAUNDRY/sys/arm/broadcom/bcm2835/bcm2836_mp.c user/alc/PQ_LAUNDRY/sys/arm/freescale/imx/imx6_mp.c user/alc/PQ_LAUNDRY/sys/arm/include/cpu-v6.h user/alc/PQ_LAUNDRY/sys/arm/include/cpufunc.h user/alc/PQ_LAUNDRY/sys/arm/include/cpuinfo.h user/alc/PQ_LAUNDRY/sys/arm/mv/armada38x/pmsu.c user/alc/PQ_LAUNDRY/sys/arm/nvidia/tegra124/tegra124_mp.c user/alc/PQ_LAUNDRY/sys/arm/rockchip/rk30xx_mp.c user/alc/PQ_LAUNDRY/sys/arm/samsung/exynos/exynos5_mp.c user/alc/PQ_LAUNDRY/sys/arm/ti/cpsw/if_cpsw.c user/alc/PQ_LAUNDRY/sys/arm/ti/cpsw/if_cpswreg.h user/alc/PQ_LAUNDRY/sys/arm/ti/cpsw/if_cpswvar.h user/alc/PQ_LAUNDRY/sys/arm/ti/omap4/omap4_mp.c user/alc/PQ_LAUNDRY/sys/arm/xilinx/zy7_mp.c user/alc/PQ_LAUNDRY/sys/boot/efi/boot1/Makefile user/alc/PQ_LAUNDRY/sys/boot/efi/loader/Makefile user/alc/PQ_LAUNDRY/sys/boot/i386/gptzfsboot/Makefile user/alc/PQ_LAUNDRY/sys/boot/i386/zfsboot/Makefile user/alc/PQ_LAUNDRY/sys/boot/userboot/zfs/Makefile user/alc/PQ_LAUNDRY/sys/boot/zfs/Makefile user/alc/PQ_LAUNDRY/sys/cam/cam_compat.c user/alc/PQ_LAUNDRY/sys/cam/cam_compat.h user/alc/PQ_LAUNDRY/sys/dev/atkbdc/psm.c user/alc/PQ_LAUNDRY/sys/dev/netmap/netmap_kern.h user/alc/PQ_LAUNDRY/sys/geom/mirror/g_mirror.c user/alc/PQ_LAUNDRY/sys/geom/mirror/g_mirror.h user/alc/PQ_LAUNDRY/sys/geom/mirror/g_mirror_ctl.c user/alc/PQ_LAUNDRY/sys/kern/vfs_bio.c user/alc/PQ_LAUNDRY/sys/kern/vfs_subr.c user/alc/PQ_LAUNDRY/sys/net/altq/altq_subr.c user/alc/PQ_LAUNDRY/sys/net/if_var.h user/alc/PQ_LAUNDRY/sys/net/route.c user/alc/PQ_LAUNDRY/sys/net/route_var.h user/alc/PQ_LAUNDRY/sys/netinet/cc/cc_cdg.c user/alc/PQ_LAUNDRY/sys/netinet/cc/cc_cubic.c user/alc/PQ_LAUNDRY/sys/netinet/cc/cc_htcp.c user/alc/PQ_LAUNDRY/sys/netinet/khelp/h_ertt.c user/alc/PQ_LAUNDRY/sys/netinet/sctp_bsd_addr.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_debug.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_hostcache.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_hostcache.h user/alc/PQ_LAUNDRY/sys/netinet/tcp_input.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_output.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_seq.h user/alc/PQ_LAUNDRY/sys/netinet/tcp_stacks/fastpath.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_subr.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_usrreq.c user/alc/PQ_LAUNDRY/sys/netinet/tcp_var.h user/alc/PQ_LAUNDRY/sys/sys/vnode.h user/alc/PQ_LAUNDRY/tools/build/options/makeman user/alc/PQ_LAUNDRY/usr.bin/locate/locate/locate.c user/alc/PQ_LAUNDRY/usr.bin/locate/locate/util.c user/alc/PQ_LAUNDRY/usr.bin/login/login_audit.c user/alc/PQ_LAUNDRY/usr.bin/write/write.c user/alc/PQ_LAUNDRY/usr.sbin/trpt/trpt.c Directory Properties: user/alc/PQ_LAUNDRY/ (props changed) Modified: user/alc/PQ_LAUNDRY/bin/chio/chio.1 ============================================================================== --- user/alc/PQ_LAUNDRY/bin/chio/chio.1 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/bin/chio/chio.1 Thu Oct 6 18:45:10 2016 (r306777) @@ -32,7 +32,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 2, 2016 +.Dd October 5, 2016 .Dt CHIO 1 .Os .Sh NAME @@ -287,6 +287,14 @@ Configure the changer to use picker 2 (t .Sh SEE ALSO .Xr mt 1 , .Xr mount 8 +.Sh HISTORY +A +.Nm +utility appeared in +.Nx 1.3 . +.Nm +first appeared in +.Fx 2.2 . .Sh AUTHORS .An -nosplit The Modified: user/alc/PQ_LAUNDRY/bin/dd/dd.1 ============================================================================== --- user/alc/PQ_LAUNDRY/bin/dd/dd.1 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/bin/dd/dd.1 Thu Oct 6 18:45:10 2016 (r306777) @@ -32,7 +32,7 @@ .\" @(#)dd.1 8.2 (Berkeley) 1/13/94 .\" $FreeBSD$ .\" -.Dd August 25, 2016 +.Dd October 5, 2016 .Dt DD 1 .Os .Sh NAME @@ -447,6 +447,11 @@ and values are extensions to the .Tn POSIX standard. +.Sh HISTORY +A +.Nm +command appeared in +.At v5 . .Sh BUGS Protection mechanisms in the .Xr geom 4 Modified: user/alc/PQ_LAUNDRY/bin/echo/echo.1 ============================================================================== --- user/alc/PQ_LAUNDRY/bin/echo/echo.1 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/bin/echo/echo.1 Thu Oct 6 18:45:10 2016 (r306777) @@ -32,7 +32,7 @@ .\" @(#)echo.1 8.1 (Berkeley) 7/22/93 .\" $FreeBSD$ .\" -.Dd November 12, 2010 +.Dd October 5, 2016 .Dt ECHO 1 .Os .Sh NAME @@ -103,3 +103,8 @@ The utility conforms to .St -p1003.1-2001 as amended by Cor.\& 1-2002. +.Sh HISTORY +The +.Nm +command appeared in +.At v2 . Modified: user/alc/PQ_LAUNDRY/bin/expr/expr.1 ============================================================================== --- user/alc/PQ_LAUNDRY/bin/expr/expr.1 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/bin/expr/expr.1 Thu Oct 6 18:45:10 2016 (r306777) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 25, 2012 +.Dd October 5, 2016 .Dt EXPR 1 .Os .Sh NAME @@ -309,3 +309,19 @@ these arguments are treated just as thei The .Fl e flag is an extension. +.Sh HISTORY +An +.Nm +utility first appeared in the Programmer's Workbench (PWB/UNIX). +A public domain version of +.Nm +written by +.An Pace Willisson Aq Mt pace@blitz.com +appeared in +.Bx 386 0.1 . +.Sh AUTHORS +Initial implementation by +.An Pace Willisson Aq Mt pace@blitz.com +was largely rewritten by +.An -nosplit +.An J.T. Conklin Aq Mt jtc@FreeBSD.org . Modified: user/alc/PQ_LAUNDRY/bin/pwd/pwd.1 ============================================================================== --- user/alc/PQ_LAUNDRY/bin/pwd/pwd.1 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/bin/pwd/pwd.1 Thu Oct 6 18:45:10 2016 (r306777) @@ -32,7 +32,7 @@ .\" @(#)pwd.1 8.2 (Berkeley) 4/28/95 .\" $FreeBSD$ .\" -.Dd April 12, 2003 +.Dd October 5, 2016 .Dt PWD 1 .Os .Sh NAME @@ -85,6 +85,11 @@ The .Nm utility conforms to .St -p1003.1-2001 . +.Sh HISTORY +The +.Nm +command appeared in +.At v5 . .Sh BUGS In .Xr csh 1 Modified: user/alc/PQ_LAUNDRY/bin/stty/stty.1 ============================================================================== --- user/alc/PQ_LAUNDRY/bin/stty/stty.1 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/bin/stty/stty.1 Thu Oct 6 18:45:10 2016 (r306777) @@ -32,7 +32,7 @@ .\" @(#)stty.1 8.4 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd August 23, 2008 +.Dd October 5, 2016 .Dt STTY 1 .Os .Sh NAME @@ -601,3 +601,8 @@ and .Fl f are extensions to the standard. +.Sh HISTORY +A +.Nm +command appeared in +.At v2 . Modified: user/alc/PQ_LAUNDRY/bin/test/test.1 ============================================================================== --- user/alc/PQ_LAUNDRY/bin/test/test.1 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/bin/test/test.1 Thu Oct 6 18:45:10 2016 (r306777) @@ -32,7 +32,7 @@ .\" @(#)test.1 8.1 (Berkeley) 5/31/93 .\" $FreeBSD$ .\" -.Dd June 1, 2013 +.Dd October 5, 2016 .Dt TEST 1 .Os .Sh NAME @@ -376,6 +376,11 @@ The primaries and .Fl O are extensions. +.Sh HISTORY +A +.Nm +utility appeared in +.At v7 . .Sh BUGS Both sides are always evaluated in .Fl a Modified: user/alc/PQ_LAUNDRY/gnu/usr.bin/groff/Makefile.inc ============================================================================== --- user/alc/PQ_LAUNDRY/gnu/usr.bin/groff/Makefile.inc Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/gnu/usr.bin/groff/Makefile.inc Thu Oct 6 18:45:10 2016 (r306777) @@ -119,7 +119,7 @@ revision=`sed -e 's/^0$$//' -e 's/^[1-9] -e "s;@TMAC_MDIR@;$(tmacdir)/mm;g" \ -e "s;@BROKEN_SPOOLER_FLAGS@;$(BROKEN_SPOOLER_FLAGS);g" \ -e "s;@VERSION@;$(version)$(revision);g" \ - -e "s;@MDATE@;`$(SHELL) ${GROFF_DIST}/mdate.sh $<`;g" \ + -e "s;@MDATE@;$(MDATE);g" \ -e "s;@g@;$(g);g" \ -e "s;@G@;`echo $(g) | LC_ALL=C tr a-z A-Z`;g" \ $< >$@ @@ -141,4 +141,5 @@ TOPREL?= .. GROFF_DIST= ${.CURDIR}/${TOPREL}/../../../contrib/groff DIST_SUBDIR?= ${.CURDIR:T} DIST_DIR= ${GROFF_DIST}/${DIST_SUBDIR} +MDATE!= sh ${.CURDIR}/${TOPREL}/mdate.sh ${GROFF_DIST}/ChangeLog .PATH: ${DIST_DIR} Copied: user/alc/PQ_LAUNDRY/gnu/usr.bin/groff/mdate.sh (from r306776, head/gnu/usr.bin/groff/mdate.sh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PQ_LAUNDRY/gnu/usr.bin/groff/mdate.sh Thu Oct 6 18:45:10 2016 (r306777, copy of r306776, head/gnu/usr.bin/groff/mdate.sh) @@ -0,0 +1,9 @@ +#!/bin/sh +# $FreeBSD$ + +set -e +test -r "$1" +export LC_ALL=C +changelog_date=$(sed -E -n 's/^([0-9]{4}-[0-9]{2}-[0-9]{2}).*$/\1/p' "$1" |\ + head -n 1) +echo $(date -j -f %Y-%m-%d +"%e %B %Y" $changelog_date) Modified: user/alc/PQ_LAUNDRY/lib/libc/sys/kqueue.2 ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libc/sys/kqueue.2 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/lib/libc/sys/kqueue.2 Thu Oct 6 18:45:10 2016 (r306777) @@ -375,7 +375,7 @@ A file descriptor referencing the monito The closed file descriptor did not have write access. .It Dv NOTE_CLOSE_WRITE A file descriptor referencing the monitored file, was closed. -The closed file descriptor has write access. +The closed file descriptor had write access. .Pp This note, as well as .Dv NOTE_CLOSE , Modified: user/alc/PQ_LAUNDRY/lib/libcapsicum/Makefile ============================================================================== --- user/alc/PQ_LAUNDRY/lib/libcapsicum/Makefile Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/lib/libcapsicum/Makefile Thu Oct 6 18:45:10 2016 (r306777) @@ -4,4 +4,14 @@ PACKAGE=lib${LIB} INCS= capsicum_helpers.h +MAN+= capsicum_helpers.3 + +MLINKS+=capsicum_helpers.3 caph_limit_stream.3 +MLINKS+=capsicum_helpers.3 caph_limit_stdin.3 +MLINKS+=capsicum_helpers.3 caph_limit_stderr.3 +MLINKS+=capsicum_helpers.3 caph_limit_stdout.3 +MLINKS+=capsicum_helpers.3 caph_limit_stdio.3 +MLINKS+=capsicum_helpers.3 caph_cache_tzdata.3 +MLINKS+=capsicum_helpers.3 caph_cache_catpages.3 + .include Copied: user/alc/PQ_LAUNDRY/lib/libcapsicum/capsicum_helpers.3 (from r306776, head/lib/libcapsicum/capsicum_helpers.3) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PQ_LAUNDRY/lib/libcapsicum/capsicum_helpers.3 Thu Oct 6 18:45:10 2016 (r306777, copy of r306776, head/lib/libcapsicum/capsicum_helpers.3) @@ -0,0 +1,110 @@ +.\" Copyright (c) 2016 Mariusz Zaborski +.\" 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 AUTHORS 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 AUTHORS 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$ +.\" +.Dd October 5, 2016 +.Dt CAPSICUM_HELPERS 3 +.Os +.Sh NAME +.Nm caph_limit_stream , +.Nm caph_limit_stdin , +.Nm caph_limit_stderr , +.Nm caph_limit_stdout , +.Nm caph_limit_stdio , +.Nm caph_cache_tzdata , +.Nm caph_cache_catpages +.Nd "set of the functions , part of the libcapsicum" +.Sh LIBRARY +.Lb libcapsicum +.Sh SYNOPSIS +.In capsicum_helpers.h +.Ft int +.Fn caph_limit_stream "int fd, int flags" +.Ft int +.Fn caph_limit_stdin "void" +.Ft int +.Fn caph_limit_stderr "void" +.Ft int +.Fn caph_limit_stdout "void" +.Ft int +.Fn caph_limit_stdio "void" +.Ft void +.Fn caph_cache_tzdata "void" +.Ft void +.Fn caph_cache_catpages "void" +.Sh DESCRIPTION +The +.Nm capsicum helpers +are a set of a inline functions which simplify Capsicumizing programs. +The goal is to reduce duplicated code patterns. +The +.Nm capsicum helpers +are part of +.Nm libcapsicum +but there is no need to link to the library. +.Pp +.Fn caph_limit_stream +restricts capabilities on +.Fa fd +to only those needed by POSIX stream objects (that is, FILEs). +.Pp +The following flags can be provided: +.Pp +.Bl -tag -width "CAPH_IGNORE_EBADF" -compact -offset indent +.It Dv CAPH_IGNORE_EBADF +Do not return an error if file descriptor is invalid. +.It Dv CAPH_READ +Set CAP_READ on limited descriptor. +.It Dv CAPH_WRITE +Set CAP_WRITE on limited descriptor. +.El +.Pp +.Fn caph_limit_stdin , +.Fn caph_limit_stderr +and +.Fn caph_limit_stdout +limit standard descriptors using the +.Nm caph_limit_stream +function. +.Pp +.Fn caph_limit_stdio +limits stdin, stderr and stdout. +.Pp +.Fn caph_cache_tzdata +precaches all timezone data needed to use +.Li libc +local time functions. +.Pp +.Fn caph_cache_catpages +caches Native Language Support (NLS) data. +NLS data is used for localized error printing by +.Xr strerror 3 +and +.Xr err 3 , +among others. +.Ed +.Sh SEE ALSO +.Xr cap_enter 2 , +.Xr rights 4 Modified: user/alc/PQ_LAUNDRY/sbin/atm/atmconfig/atmconfig.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/atm/atmconfig/atmconfig.8 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/atm/atmconfig/atmconfig.8 Thu Oct 6 18:45:10 2016 (r306777) @@ -1,7 +1,7 @@ .\" .\" Copyright (c) 2001-2003 .\" Fraunhofer Institute for Open Communication Systems (FhG Fokus). -.\" All rights reserved. +.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 11, 2003 +.Dd October 5, 2016 .Dt ATMCONFIG 8 .Os .Sh NAME @@ -314,5 +314,10 @@ List all NATM routes. .Sh SEE ALSO .Xr natm 4 , .Xr natmip 4 +.Sh HISTORY +An +.Nm +command appeared in +.Fx 3.0 . .Sh AUTHORS .An Hartmut Brandt Aq Mt harti@FreeBSD.org Modified: user/alc/PQ_LAUNDRY/sbin/bsdlabel/bsdlabel.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/bsdlabel/bsdlabel.8 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/bsdlabel/bsdlabel.8 Thu Oct 6 18:45:10 2016 (r306777) @@ -31,7 +31,7 @@ .\" @(#)disklabel.8 8.2 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd October 1, 2013 +.Dd October 5, 2016 .Dt BSDLABEL 8 .Os .Sh NAME @@ -466,7 +466,7 @@ which could be used as a source file for 8 partitions: # size offset fstype [fsize bsize bps/cpg] - a: 400M 16 4.2BSD 4096 16384 75 # (Cyl. 0 - 812*) + a: 400M 16 4.2BSD 4096 16384 75 # (Cyl. 0 - 812*) b: 1G * swap c: * * unused e: 204800 * 4.2BSD @@ -500,3 +500,8 @@ are not generally compatible. .Xr boot0cfg 8 , .Xr gpart 8 , .Xr newfs 8 +.Sh HISTORY +The +.Nm disklabel +utility appeared in +.Bx 4.3 Tahoe . Modified: user/alc/PQ_LAUNDRY/sbin/clri/clri.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/clri/clri.8 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/clri/clri.8 Thu Oct 6 18:45:10 2016 (r306777) @@ -28,7 +28,7 @@ .\" @(#)clri.8 8.2 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd April 19, 1994 +.Dd October 5, 2016 .Dt CLRI 8 .Os .Sh NAME @@ -70,6 +70,11 @@ will be able to clean up the resulting m .Sh SEE ALSO .Xr fsck 8 , .Xr fsdb 8 +.Sh HISTORY +The +.Nm +utility first appeared in +.At v6 . .Sh BUGS If the file is open, the work of .Nm Modified: user/alc/PQ_LAUNDRY/sbin/devd/devd.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/devd/devd.8 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/devd/devd.8 Thu Oct 6 18:45:10 2016 (r306777) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 14, 2014 +.Dd October 5, 2016 .Dt DEVD 8 .Os .Sh NAME @@ -62,7 +62,8 @@ The default connection limit is 10. Do not process all pending events before becoming a daemon. Instead, call daemon right away. .It Fl q -Quiet mode. Only log messages at priority LOG_WARNING or above. +Quiet mode. +Only log messages at priority LOG_WARNING or above. .El .Sh IMPLEMENTATION NOTES The @@ -153,5 +154,10 @@ A deprecated socket retained for use wit .Sh SEE ALSO .Xr devctl 4 , .Xr devd.conf 5 +.Sh HISTORY +The +.Nm +utility first appeared in +.Fx 5.0 . .Sh AUTHORS .An M. Warner Losh Modified: user/alc/PQ_LAUNDRY/sbin/devfs/devfs.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/devfs/devfs.8 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/devfs/devfs.8 Thu Oct 6 18:45:10 2016 (r306777) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 12, 2013 +.Dd October 5, 2016 .Dt DEVFS 8 .Os .Sh NAME @@ -249,7 +249,8 @@ configuration file. .It Pa /etc/devfs.rules Local .Nm -configuration file. Rulesets in here override those in +configuration file. +Rulesets in here override those in .Pa /etc/defaults/devfs.rules with the same ruleset number, otherwise the two files are effectively merged. .It Pa /etc/devfs.conf @@ -374,5 +375,10 @@ this feature can be used to copy ruleset .Xr chown 8 , .Xr jail 8 , .Xr mknod 8 +.Sh HISTORY +The +.Nm +utility first appeared in +.Fx 5.0 . .Sh AUTHORS .An Dima Dorfman Modified: user/alc/PQ_LAUNDRY/sbin/fdisk/fdisk.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/fdisk/fdisk.8 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/fdisk/fdisk.8 Thu Oct 6 18:45:10 2016 (r306777) @@ -1,6 +1,6 @@ .\" $FreeBSD$ .\" -.Dd October 1, 2013 +.Dd October 5, 2016 .Dt FDISK 8 .Os .Sh NAME @@ -177,19 +177,19 @@ An example follows: Information from DOS bootblock is: The data for partition 1 is: sysid 165,(FreeBSD/NetBSD/386BSD) - start 495, size 380160 (185 Meg), flag 0 + start 495, size 380160 (185 Meg), flag 0 beg: cyl 1/ sector 1/ head 0; end: cyl 768/ sector 33/ head 14 The data for partition 2 is: sysid 164,(unknown) - start 378180, size 2475 (1 Meg), flag 0 + start 378180, size 2475 (1 Meg), flag 0 beg: cyl 764/ sector 1/ head 0; end: cyl 768/ sector 33/ head 14 The data for partition 3 is: The data for partition 4 is: sysid 99,(ISC UNIX, other System V/386, GNU HURD or Mach) - start 380656, size 224234 (109 Meg), flag 80 + start 380656, size 224234 (109 Meg), flag 80 beg: cyl 769/ sector 2/ head 0; end: cyl 197/ sector 33/ head 14 .Ed @@ -485,6 +485,21 @@ The default boot code. .Xr bsdlabel 8 , .Xr gpart 8 , .Xr newfs 8 +.Sh HISTORY +A version of +.Nm +first appeared in the Mach Operating System. +It was subsequently ported to +.Bx 386 . +.Sh AUTHORS +.An -nosplit +.Nm +for Mach Operating System was written by +.An Robert Baron Aq Mt rvb@cs.cmu.edu . +It was ported to +.Bx 386 +by +.An Julian Elischer Aq Mt julian@tfs.com . .Sh BUGS The default boot code will not necessarily handle all slice types correctly, in particular those introduced since Modified: user/alc/PQ_LAUNDRY/sbin/fdisk_pc98/fdisk.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/fdisk_pc98/fdisk.8 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/fdisk_pc98/fdisk.8 Thu Oct 6 18:45:10 2016 (r306777) @@ -1,6 +1,6 @@ .\" $FreeBSD$ .\" -.Dd April 30, 2007 +.Dd October 5, 2016 .Dt FDISK 8 .Os .Sh NAME @@ -448,6 +448,21 @@ Example: to make slice 1 the active slic .Xr bsdlabel 8 , .Xr gpart 8 , .Xr newfs 8 +.Sh HISTORY +A version of +.Nm +first appeared in the Mach Operating System. +It was subsequently ported to +.Bx 386 . +.Sh AUTHORS +.An -nosplit +.Nm +for Mach Operating System was written by +.An Robert Baron Aq Mt rvb@cs.cmu.edu . +It was ported to +.Bx 386 +by +.An Julian Elischer Aq Mt julian@tfs.com . .Sh BUGS The default boot code will not necessarily handle all slice types correctly, in particular those introduced since Modified: user/alc/PQ_LAUNDRY/sbin/fsck/fsck.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/fsck/fsck.8 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/fsck/fsck.8 Thu Oct 6 18:45:10 2016 (r306777) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 23, 2014 +.Dd October 5, 2016 .Dt FSCK 8 .Os .Sh NAME @@ -229,3 +229,15 @@ file system table .Xr fsck_ffs 8 , .Xr fsck_msdosfs 8 , .Xr mount 8 +.Sh HISTORY +A +.Nm +utility appeared in +.Bx 4.0 . +It was reimplemented as a filesystem independent wrapper in +.Nx 1.3 +and first appeared in +.Fx 5.0 . +The original filesystem specific utility became +.Xr fsck_ffs 8 +at this point. Modified: user/alc/PQ_LAUNDRY/sbin/fsck_ffs/fsck_ffs.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/fsck_ffs/fsck_ffs.8 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/fsck_ffs/fsck_ffs.8 Thu Oct 6 18:45:10 2016 (r306777) @@ -29,7 +29,7 @@ .\" @(#)fsck.8 8.4 (Berkeley) 5/9/95 .\" $FreeBSD$ .\" -.Dd July 30, 2013 +.Dd October 5, 2016 .Dt FSCK_FFS 8 .Os .Sh NAME @@ -268,9 +268,9 @@ do not open the file system for writing. Preen file systems (see above). .It Fl R Instruct fsck_ffs to restart itself if it encounters certain errors that -warrant another run. It will limit itself to a maximum of 10 restarts -in a given run in order to avoid an endless loop with extremely corrupted -filesystems. +warrant another run. +It will limit itself to a maximum of 10 restarts in a given run in order +to avoid an endless loop with extremely corrupted filesystems. .It Fl r Free up excess unused inodes. Decreasing the number of preallocated inodes reduces the @@ -393,3 +393,14 @@ are fully enumerated and explained in Ap .Xr fsdb 8 , .Xr newfs 8 , .Xr reboot 8 +.Sh HISTORY +A +.Nm fsck +utility appeared in +.Bx 4.0 . +It became +.Nm +in +.Fx 5.0 +with the introduction of the filesystem independent wrapper as +.Nm fsck . Modified: user/alc/PQ_LAUNDRY/sbin/natd/natd.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/natd/natd.8 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/natd/natd.8 Thu Oct 6 18:45:10 2016 (r306777) @@ -1,5 +1,5 @@ .\" $FreeBSD$ -.Dd June 23, 2008 +.Dd October 5, 2016 .Dt NATD 8 .Os .Sh NAME @@ -426,7 +426,7 @@ Options can be divided to several sectio Each section applies to own .Nm instance. -This ability allows to configure one +This ability allows the configuration of one .Nm process for several NAT instances. The first instance that always exists is a "default" instance. @@ -808,6 +808,11 @@ are forwarded to the appropriate router .Xr init 8 , .Xr ipfw 8 , .Xr ppp 8 +.Sh HISTORY +The +.Nm +utility appeared in +.Fx 3.0 . .Sh AUTHORS This program is the result of the efforts of many people at different times: Modified: user/alc/PQ_LAUNDRY/sbin/nos-tun/nos-tun.8 ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/nos-tun/nos-tun.8 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/nos-tun/nos-tun.8 Thu Oct 6 18:45:10 2016 (r306777) @@ -8,7 +8,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 11, 1998 +.Dd October 5, 2016 .Dt NOS-TUN 8 .Os .Sh NAME @@ -80,6 +80,11 @@ tunnel mode nos tunnel destination 192.168.59.34 tunnel source 192.168.56.45 .Ed +.Sh HISTORY +The +.Nm +utility appeared in +.Fx 3.0 . .Sh AUTHORS .An -nosplit .An Nickolay N. Dudorov Aq Mt nnd@itfs.nsk.su Modified: user/alc/PQ_LAUNDRY/sbin/savecore/savecore.c ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/savecore/savecore.c Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/sbin/savecore/savecore.c Thu Oct 6 18:45:10 2016 (r306777) @@ -436,7 +436,8 @@ DoFile(const char *savedir, const char * { xo_handle_t *xostdout, *xoinfo; static char infoname[PATH_MAX], corename[PATH_MAX], linkname[PATH_MAX]; - static char *buf = NULL, *temp = NULL; + static char *buf = NULL; + char *temp = NULL; struct kerneldumpheader kdhf, kdhl; off_t mediasize, dumpsize, firsthd, lasthd; FILE *info, *fp; @@ -498,12 +499,10 @@ DoFile(const char *savedir, const char * } lasthd = mediasize - sectorsize; + temp = malloc(sectorsize); if (temp == NULL) { - temp = malloc(sectorsize); - if (temp == NULL) { - syslog(LOG_ERR, "%m"); - goto closefd; - } + syslog(LOG_ERR, "%m"); + goto closefd; } if (lseek(fd, lasthd, SEEK_SET) != lasthd || read(fd, temp, sectorsize) != (ssize_t)sectorsize) { @@ -749,6 +748,7 @@ nuke: } xo_close_container_h(xostdout, "crashdump"); xo_finish_h(xostdout); + free(temp); close(fd); return; @@ -756,6 +756,7 @@ closeall: fclose(fp); closefd: + free(temp); close(fd); } Modified: user/alc/PQ_LAUNDRY/share/man/man5/src.conf.5 ============================================================================== --- user/alc/PQ_LAUNDRY/share/man/man5/src.conf.5 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/share/man/man5/src.conf.5 Thu Oct 6 18:45:10 2016 (r306777) @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. -.\" from FreeBSD: head/tools/build/options/makeman 292283 2015-12-15 18:42:30Z bdrewery +.\" from FreeBSD: head/tools/build/options/makeman 306729 2016-10-05 20:12:00Z emaste .\" $FreeBSD$ -.Dd September 21, 2016 +.Dd October 5, 2016 .Dt SRC.CONF 5 .Os .Sh NAME @@ -493,6 +493,15 @@ When set, it also enforces the following .\" from FreeBSD: head/tools/build/options/WITHOUT_DEBUG_FILES 290059 2015-10-27 20:49:56Z emaste Set to avoid building or installing standalone debug files for each executable binary and shared library. +.It Va WITHOUT_DIALOG +.\" from FreeBSD: head/tools/build/options/WITHOUT_DIALOG 306375 2016-09-27 18:08:38Z emaste +Set to not build dialog(1), dialog(1,3), and dpv(1,3). +When set, it also enforces the following options: +.Pp +.Bl -item -compact +.It +.Va WITHOUT_BSDINSTALL +.El .It Va WITHOUT_DICT .\" from FreeBSD: head/tools/build/options/WITHOUT_DICT 156932 2006-03-21 07:50:50Z ru Set to not build the Webster dictionary files. @@ -617,12 +626,6 @@ and related programs. .It Va WITH_EISA .\" from FreeBSD: head/tools/build/options/WITH_EISA 264654 2014-04-18 16:53:06Z imp Set to build EISA kernel modules. -.It Va WITHOUT_ELFCOPY_AS_OBJCOPY -.\" from FreeBSD: head/tools/build/options/WITHOUT_ELFCOPY_AS_OBJCOPY 296193 2016-02-29 16:39:38Z emaste -Set to build and install -.Xr objcopy 1 -from GNU Binutils, instead of the one from ELF Tool Chain. -This option is provided as a transition aid and will be removed in due time. .It Va WITHOUT_ELFTOOLCHAIN_BOOTSTRAP .\" from FreeBSD: head/tools/build/options/WITHOUT_ELFTOOLCHAIN_BOOTSTRAP 295491 2016-02-11 00:14:00Z emaste Set to not build ELF Tool Chain tools @@ -1376,6 +1379,9 @@ Set to not build kernel modules that inc .It Va WITHOUT_SSP .\" from FreeBSD: head/tools/build/options/WITHOUT_SSP 180012 2008-06-25 21:33:28Z ru Set to not build world with propolice stack smashing protection. +.Pp +It is a default setting on +mips/mipsel, mips/mips, mips/mips64el, mips/mips64 and mips/mipsn32. .It Va WITH_STAGING .\" from FreeBSD: head/tools/build/options/WITH_STAGING 290816 2015-11-14 03:24:48Z sjg Enable staging of files to a stage tree. Modified: user/alc/PQ_LAUNDRY/share/man/man9/Makefile ============================================================================== --- user/alc/PQ_LAUNDRY/share/man/man9/Makefile Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/share/man/man9/Makefile Thu Oct 6 18:45:10 2016 (r306777) @@ -114,6 +114,7 @@ MAN= accept_filter.9 \ devstat.9 \ devtoname.9 \ disk.9 \ + dnv.9 \ domain.9 \ drbr.9 \ driver.9 \ @@ -761,6 +762,19 @@ MLINKS+=disk.9 disk_alloc.9 \ disk.9 disk_destroy.9 \ disk.9 disk_gone.9 \ disk.9 disk_resize.9 +MLINKS+=dnv.9 dnvlist.9 \ + dnv.9 dnvlist_get_binary.9 \ + dnv.9 dnvlist_get_bool.9 \ + dnv.9 dnvlist_get_descriptor.9 \ + dnv.9 dnvlist_get_number.9 \ + dnv.9 dnvlist_get_nvlist.9 \ + dnv.9 dnvlist_get_string.9 \ + dnv.9 dnvlist_take_binary.9 \ + dnv.9 dnvlist_take_bool.9 \ + dnv.9 dnvlist_take_descriptor.9 \ + dnv.9 dnvlist_take_number.9 \ + dnv.9 dnvlist_take_nvlist.9 \ + dnv.9 dnvlist_take_string.9 MLINKS+=domain.9 DOMAIN_SET.9 \ domain.9 domain_add.9 \ domain.9 pfctlinput.9 \ @@ -1960,7 +1974,8 @@ MLINKS+=VOP_RDWR.9 VOP_READ.9 \ VOP_RDWR.9 VOP_WRITE.9 MLINKS+=VOP_REMOVE.9 VOP_RMDIR.9 MLINKS+=vnet.9 vimage.9 -MLINKS+=vref.9 VREF.9 +MLINKS+=vref.9 VREF.9 \ + vref.9 vrefl.9 MLINKS+=vrele.9 vput.9 \ vrele.9 vunref.9 MLINKS+=vslock.9 vsunlock.9 Copied: user/alc/PQ_LAUNDRY/share/man/man9/dnv.9 (from r306776, head/share/man/man9/dnv.9) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PQ_LAUNDRY/share/man/man9/dnv.9 Thu Oct 6 18:45:10 2016 (r306777, copy of r306776, head/share/man/man9/dnv.9) @@ -0,0 +1,116 @@ +.\" +.\" Copyright (c) 2016 Adam Starak +.\" 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$ +.\" +.Dd July 26, 2016 +.Dt DNV 9 +.Os +.Sh NAME +.Nm dnvlist_get, +.Nm dnvlist_take, +.Nd "API for getting name/value pairs. Nonexistent pairs do not raise an error." +.Sh LIBRARY +.Lb libnv +.Sh SYNOPSIS +.In sys/dnv.h +.Ft bool +.Fn dnvlist_get_bool "const nvlist_t *nvl" "const char *name" "bool defval" +.Ft uint64_t +.Fn dnvlist_get_number "const nvlist_t *nvl" "const char *name" "uint64_t defval" +.Ft char * +.Fn dnvlist_get_string "const nvlist_t *nvl" "const char *name" "const char *defval" +.Ft nvlist_t * +.Fn dnvlist_get_nvlist "const nvlist_t *nvl" "const char *name" "nvlist_t *defval" +.Ft int +.Fn dnvlist_get_descriptor "const nvlist_t *nvl" "const char *name" "int defval" +.Ft void * +.Fn dnvlist_get_binary "const nvlist_t *nvl" "const char *name" "size_t *sizep" "void *defval" "size_t defsize" +.Ft bool +.Fn dnvlist_take_bool "const nvlist_t *nvl" "const char *name" "bool defval" +.Ft uint64_t +.Fn dnvlist_take_number "const nvlist_t *nvl" "const char *name" "uint64_t defval" +.Ft char * +.Fn dnvlist_take_string "const nvlist_t *nvl" "const char *name" "const char *defval" +.Ft nvlist_t * +.Fn dnvlist_take_nvlist "const nvlist_t *nvl" "const char *name" "nvlist_t *defval" +.Ft int +.Fn dnvlist_take_descriptor "const nvlist_t *nvl" "const char *name" "int defval" +.Ft void * +.Fn dnvlist_take_binary "const nvlist_t *nvl" "const char *name" "size_t *sizep" "void *defval" "size_t defsize" +.Sh DESCRIPTION +The +.Nm libnv +library permits easy management of name/value pairs and can send and receive +them over sockets. +For more information, also see +.Xr nv 9 . +.Pp +The +.Nm dnvlist_get +family of functions returns the value associated with the specified name. +If an element of the specified name does not exist, the function returns the +value provided in +.Fa defval . +Returned strings, nvlists, descriptors, binaries, or arrays must not be modified +by the user. +They still belong to the nvlist. +If the nvlist is in an error state, attempts to use any of these functions will +cause the program to abort. +.Pp +The +.Nm dnvlist_take +family of functions returns the value associated with the specified name and +removes the element from the nvlist. +If an element of the supplied name does not exist, the value provided in +.Nm defval +is returned. +When the value is a string, binary, or array value, the caller is +responsible for freeing returned memory with +.Fn free 3 . +When the value is an nvlist, the caller is responsible for destroying the +returned nvlist with +.Fn nvlist_destroy . +When the value is a descriptor, the caller is responsible for closing the +returned descriptor with +.Fn close 2 . +.Sh SEE ALSO +.Xr close 2 , +.Xr free 3 , +.Xr nv 9 +.Sh HISTORY +The +.Nm dnv +API appeared in +.Fx 11.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm dnv +API was implemented by +.An Pawel Jakub Dawidek Aq Mt pawel@dawidek.net +under sponsorship from the FreeBSD Foundation. +This manual page was written by +.An Adam Starak Aq Mt starak.adam@gmail.com Modified: user/alc/PQ_LAUNDRY/share/man/man9/style.9 ============================================================================== --- user/alc/PQ_LAUNDRY/share/man/man9/style.9 Thu Oct 6 18:43:09 2016 (r306776) +++ user/alc/PQ_LAUNDRY/share/man/man9/style.9 Thu Oct 6 18:45:10 2016 (r306777) @@ -26,7 +26,7 @@ .\" From: @(#)style 1.14 (Berkeley) 4/28/95 .\" $FreeBSD$ .\" -.Dd December 5, 2015 +.Dd October 5, 2016 .Dt STYLE 9 .Os .Sh NAME @@ -114,20 +114,28 @@ static char sccsid[] = "@(#)style 1.14 ( __FBSDID("$FreeBSD$"); .Ed .Pp -Leave another blank line before the header files. +Leave one blank line before the header files. .Pp -Kernel include files (i.e.\& -.Pa sys/*.h ) -come first sorted alphabetically where possible. -Include -.In sys/types.h -OR -.In sys/param.h , -but not both and include it first. +Kernel include files +.Pa ( sys/*.h ) +come first. +If +.In sys/cdefs.h +is needed for +.Fn __FBSDID , +include it first. +If either .In sys/types.h +or +.In sys/param.h +is needed, include it before other include files. +.Po +.In sys/param.h includes -.In sys/cdefs.h , -and it is okay to depend on that. +.In sys/types.h ; +do not include both. +.Pc +The remaining kernel headers should be sorted alphabetically. .Bd -literal #include /* Non-local includes in angle brackets. */ #include @@ -144,9 +152,9 @@ For a network program, put the network i #include .Ed .Pp -Do not use files in +Do not include files from *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Fri Oct 7 14:54:18 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C8C5BEC1FC for ; Fri, 7 Oct 2016 14:54:18 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1FAD81C2; Fri, 7 Oct 2016 14:54:18 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u97EsHj2074689; Fri, 7 Oct 2016 14:54:17 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u97EsHuT074686; Fri, 7 Oct 2016 14:54:17 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201610071454.u97EsHuT074686@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Fri, 7 Oct 2016 14:54:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306810 - in user/alc/PQ_LAUNDRY/sys: sys vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Oct 2016 14:54:18 -0000 Author: alc Date: Fri Oct 7 14:54:16 2016 New Revision: 306810 URL: https://svnweb.freebsd.org/changeset/base/306810 Log: Count page reclamation shortfalls that lead to all-out laundering rather than laundry thread wakeups. Reviewed by: markj Modified: user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Modified: user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h ============================================================================== --- user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h Fri Oct 7 14:46:34 2016 (r306809) +++ user/alc/PQ_LAUNDRY/sys/sys/vmmeter.h Fri Oct 7 14:54:16 2016 (r306810) @@ -77,8 +77,8 @@ struct vmmeter { u_int v_intrans; /* (p) intransit blocking page faults */ u_int v_reactivated; /* (p) pages reactivated by the pagedaemon */ u_int v_pdwakeups; /* (p) times daemon has awaken from sleep */ - u_int v_ltwakeups; /* (p) times laundry thread has been woken */ u_int v_pdpages; /* (p) pages analyzed by daemon */ + u_int v_pdshortfalls; /* (p) page reclamation shortfalls */ u_int v_tcached; /* (p) total pages cached */ u_int v_dfree; /* (p) pages freed by daemon */ Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c Fri Oct 7 14:46:34 2016 (r306809) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_meter.c Fri Oct 7 14:54:16 2016 (r306810) @@ -287,9 +287,9 @@ VM_STATS_VM(v_vnodepgsin, "Vnode pages p VM_STATS_VM(v_vnodepgsout, "Vnode pages paged out"); VM_STATS_VM(v_intrans, "In transit page faults"); VM_STATS_VM(v_reactivated, "Pages reactivated by pagedaemon"); -VM_STATS_VM(v_ltwakeups, "Laundry thread wakeups"); VM_STATS_VM(v_pdwakeups, "Pagedaemon wakeups"); VM_STATS_VM(v_pdpages, "Pages analyzed by pagedaemon"); +VM_STATS_VM(v_pdshortfalls, "Page reclamation shortfalls"); VM_STATS_VM(v_tcached, "Total pages cached"); VM_STATS_VM(v_dfree, "Pages freed by pagedaemon"); VM_STATS_VM(v_pfree, "Pages freed by exiting processes"); Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Fri Oct 7 14:46:34 2016 (r306809) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Fri Oct 7 14:54:16 2016 (r306810) @@ -1485,13 +1485,13 @@ drop_page: starting_page_shortage > 0) { laundryq = &vm_dom[0].vmd_pagequeues[PQ_LAUNDRY]; vm_pagequeue_lock(laundryq); - if (page_shortage > 0) + if (page_shortage > 0) { vm_laundry_request = VM_LAUNDRY_SHORTFALL; - else if (vm_laundry_request != VM_LAUNDRY_SHORTFALL) + PCPU_INC(cnt.v_pdshortfalls); + } else if (vm_laundry_request != VM_LAUNDRY_SHORTFALL) vm_laundry_request = VM_LAUNDRY_BACKGROUND; wakeup(&vm_laundry_request); vm_pagequeue_unlock(laundryq); - PCPU_INC(cnt.v_ltwakeups); } #if !defined(NO_SWAPPING) From owner-svn-src-user@freebsd.org Fri Oct 7 22:17:44 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC22AC050D4 for ; Fri, 7 Oct 2016 22:17:44 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AF55C680; Fri, 7 Oct 2016 22:17:44 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u97MHhiS042584; Fri, 7 Oct 2016 22:17:43 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u97MHh08042582; Fri, 7 Oct 2016 22:17:43 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201610072217.u97MHh08042582@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 7 Oct 2016 22:17:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306831 - in user/alc/PQ_LAUNDRY/usr.bin: systat vmstat X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Oct 2016 22:17:45 -0000 Author: markj Date: Fri Oct 7 22:17:43 2016 New Revision: 306831 URL: https://svnweb.freebsd.org/changeset/base/306831 Log: Teach vmstat and systat about v_pdshortfalls. Modified: user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c Modified: user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c ============================================================================== --- user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c Fri Oct 7 22:17:25 2016 (r306830) +++ user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c Fri Oct 7 22:17:43 2016 (r306831) @@ -95,6 +95,7 @@ static struct Info { u_int v_reactivated; /* number of pages reactivated by pagedaemon */ u_int v_pdwakeups; /* number of times daemon has awaken from sleep */ u_int v_pdpages; /* number of pages analyzed by daemon */ + u_int v_pdshortfalls; /* number of page reclaimation shortfalls */ u_int v_dfree; /* pages freed by daemon */ u_int v_pfree; /* pages freed by exiting processes */ @@ -339,14 +340,15 @@ labelkre(void) mvprintw(VMSTATROW + 8, VMSTATCOL + 9, "react"); mvprintw(VMSTATROW + 9, VMSTATCOL + 9, "pdwak"); mvprintw(VMSTATROW + 10, VMSTATCOL + 9, "pdpgs"); - mvprintw(VMSTATROW + 11, VMSTATCOL + 9, "intrn"); - mvprintw(VMSTATROW + 12, VMSTATCOL + 9, "wire"); - mvprintw(VMSTATROW + 13, VMSTATCOL + 9, "act"); - mvprintw(VMSTATROW + 14, VMSTATCOL + 9, "inact"); - mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "laund"); - mvprintw(VMSTATROW + 16, VMSTATCOL + 9, "free"); - if (LINES - 1 > VMSTATROW + 17) - mvprintw(VMSTATROW + 17, VMSTATCOL + 9, "buf"); + mvprintw(VMSTATROW + 11, VMSTATCOL + 9, "pdshort"); + mvprintw(VMSTATROW + 12, VMSTATCOL + 9, "intrn"); + mvprintw(VMSTATROW + 13, VMSTATCOL + 9, "wire"); + mvprintw(VMSTATROW + 14, VMSTATCOL + 9, "act"); + mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "inact"); + mvprintw(VMSTATROW + 16, VMSTATCOL + 9, "laund"); + mvprintw(VMSTATROW + 17, VMSTATCOL + 9, "free"); + if (LINES - 1 > VMSTATROW + 18) + mvprintw(VMSTATROW + 18, VMSTATCOL + 9, "buf"); mvprintw(GENSTATROW, GENSTATCOL, " Csw Trp Sys Int Sof Flt"); @@ -515,14 +517,15 @@ showkre(void) PUTRATE(v_reactivated, VMSTATROW + 8, VMSTATCOL, 8); PUTRATE(v_pdwakeups, VMSTATROW + 9, VMSTATCOL, 8); PUTRATE(v_pdpages, VMSTATROW + 10, VMSTATCOL, 8); - PUTRATE(v_intrans, VMSTATROW + 11, VMSTATCOL, 8); - putint(pgtokb(s.v_wire_count), VMSTATROW + 12, VMSTATCOL, 8); - putint(pgtokb(s.v_active_count), VMSTATROW + 13, VMSTATCOL, 8); - putint(pgtokb(s.v_inactive_count), VMSTATROW + 14, VMSTATCOL, 8); - putint(pgtokb(s.v_laundry_count), VMSTATROW + 15, VMSTATCOL, 8); - putint(pgtokb(s.v_free_count), VMSTATROW + 16, VMSTATCOL, 8); - if (LINES - 1 > VMSTATROW + 17) - putint(s.bufspace / 1024, VMSTATROW + 17, VMSTATCOL, 8); + PUTRATE(v_pdshortfalls, VMSTATROW + 11, VMSTATCOL, 8); + PUTRATE(v_intrans, VMSTATROW + 12, VMSTATCOL, 8); + putint(pgtokb(s.v_wire_count), VMSTATROW + 13, VMSTATCOL, 8); + putint(pgtokb(s.v_active_count), VMSTATROW + 14, VMSTATCOL, 8); + putint(pgtokb(s.v_inactive_count), VMSTATROW + 15, VMSTATCOL, 8); + putint(pgtokb(s.v_laundry_count), VMSTATROW + 16, VMSTATCOL, 8); + putint(pgtokb(s.v_free_count), VMSTATROW + 17, VMSTATCOL, 8); + if (LINES - 1 > VMSTATROW + 18) + putint(s.bufspace / 1024, VMSTATROW + 18, VMSTATCOL, 8); PUTRATE(v_vnodein, PAGEROW + 2, PAGECOL + 6, 5); PUTRATE(v_vnodeout, PAGEROW + 2, PAGECOL + 12, 5); PUTRATE(v_swapin, PAGEROW + 2, PAGECOL + 19, 5); @@ -786,6 +789,7 @@ getinfo(struct Info *ls) GETSYSCTL("vm.stats.vm.v_reactivated", ls->v_reactivated); GETSYSCTL("vm.stats.vm.v_pdwakeups", ls->v_pdwakeups); GETSYSCTL("vm.stats.vm.v_pdpages", ls->v_pdpages); + GETSYSCTL("vm.stats.vm.v_pdshortfalls", ls->v_pdshortfalls); GETSYSCTL("vm.stats.vm.v_dfree", ls->v_dfree); GETSYSCTL("vm.stats.vm.v_pfree", ls->v_pfree); GETSYSCTL("vm.stats.vm.v_tfree", ls->v_tfree); Modified: user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c ============================================================================== --- user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c Fri Oct 7 22:17:25 2016 (r306830) +++ user/alc/PQ_LAUNDRY/usr.bin/vmstat/vmstat.c Fri Oct 7 22:17:43 2016 (r306831) @@ -567,6 +567,7 @@ fill_vmmeter(struct vmmeter *vmmp) GET_VM_STATS(vm, v_reactivated); GET_VM_STATS(vm, v_pdwakeups); GET_VM_STATS(vm, v_pdpages); + GET_VM_STATS(vm, v_pdshortfalls); GET_VM_STATS(vm, v_dfree); GET_VM_STATS(vm, v_pfree); GET_VM_STATS(vm, v_tfree); @@ -1058,6 +1059,8 @@ dosum(void) sum.v_pdwakeups); xo_emit("{:page-daemon-pages/%9u} {N:pages examined by the page daemon}\n", sum.v_pdpages); + xo_emit("{:page-reclaimation-shortfalls/%9u} {N:clean page reclaimation shortfalls}\n", + sum.v_pdshortfalls); xo_emit("{:reactivated/%9u} {N:pages reactivated by the page daemon}\n", sum.v_reactivated); xo_emit("{:copy-on-write-faults/%9u} {N:copy-on-write faults}\n", From owner-svn-src-user@freebsd.org Fri Oct 7 22:25:10 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2AEAC052D7 for ; Fri, 7 Oct 2016 22:25:10 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B0C66C03; Fri, 7 Oct 2016 22:25:10 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u97MPART046395; Fri, 7 Oct 2016 22:25:10 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u97MP7Zj046371; Fri, 7 Oct 2016 22:25:07 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201610072225.u97MP7Zj046371@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 7 Oct 2016 22:25:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306832 - in user/alc/PQ_LAUNDRY: contrib/netbsd-tests/lib/libc/locale contrib/netbsd-tests/lib/libc/string etc/mtree include sbin/init sys/boot/common sys/cddl/contrib/opensolaris/uts/... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Oct 2016 22:25:11 -0000 Author: markj Date: Fri Oct 7 22:25:07 2016 New Revision: 306832 URL: https://svnweb.freebsd.org/changeset/base/306832 Log: MFH r306831 Added: user/alc/PQ_LAUNDRY/sys/mips/conf/AR5312_BASE.hints - copied unchanged from r306831, head/sys/mips/conf/AR5312_BASE.hints user/alc/PQ_LAUNDRY/sys/mips/conf/AR5315_BASE.hints - copied unchanged from r306831, head/sys/mips/conf/AR5315_BASE.hints user/alc/PQ_LAUNDRY/sys/mips/conf/std.AR5312 - copied unchanged from r306831, head/sys/mips/conf/std.AR5312 user/alc/PQ_LAUNDRY/sys/mips/conf/std.AR5315 - copied unchanged from r306831, head/sys/mips/conf/std.AR5315 user/alc/PQ_LAUNDRY/sys/sys/disk/ - copied from r306831, head/sys/sys/disk/ Replaced: user/alc/PQ_LAUNDRY/sys/sys/apm.h - copied unchanged from r306831, head/sys/sys/apm.h user/alc/PQ_LAUNDRY/sys/sys/disklabel.h - copied unchanged from r306831, head/sys/sys/disklabel.h user/alc/PQ_LAUNDRY/sys/sys/diskmbr.h - copied unchanged from r306831, head/sys/sys/diskmbr.h user/alc/PQ_LAUNDRY/sys/sys/diskpc98.h - copied unchanged from r306831, head/sys/sys/diskpc98.h user/alc/PQ_LAUNDRY/sys/sys/gpt.h - copied unchanged from r306831, head/sys/sys/gpt.h user/alc/PQ_LAUNDRY/sys/sys/vtoc.h - copied unchanged from r306831, head/sys/sys/vtoc.h Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/locale/t_mbstowcs.c user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/string/t_memmem.c user/alc/PQ_LAUNDRY/etc/mtree/BSD.include.dist user/alc/PQ_LAUNDRY/include/Makefile user/alc/PQ_LAUNDRY/sbin/init/init.c user/alc/PQ_LAUNDRY/sys/boot/common/self_reloc.c user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_ioctl.h user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_main.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_hw.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_hw.h user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_os.c user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_ver.h user/alc/PQ_LAUNDRY/sys/kern/vfs_cache.c user/alc/PQ_LAUNDRY/sys/kern/vfs_mount.c user/alc/PQ_LAUNDRY/sys/kern/vfs_mountroot.c user/alc/PQ_LAUNDRY/sys/netinet/sctp_output.c user/alc/PQ_LAUNDRY/sys/netinet6/in6.c user/alc/PQ_LAUNDRY/sys/netinet6/in6_ifattach.c user/alc/PQ_LAUNDRY/sys/netinet6/nd6.c user/alc/PQ_LAUNDRY/sys/netinet6/nd6.h user/alc/PQ_LAUNDRY/sys/netinet6/nd6_rtr.c user/alc/PQ_LAUNDRY/sys/sys/vnode.h user/alc/PQ_LAUNDRY/tools/tools/cxgbetool/cxgbetool.8 user/alc/PQ_LAUNDRY/tools/tools/cxgbetool/cxgbetool.c user/alc/PQ_LAUNDRY/usr.bin/cmp/cmp.c user/alc/PQ_LAUNDRY/usr.bin/col/col.c user/alc/PQ_LAUNDRY/usr.bin/dtc/checking.cc user/alc/PQ_LAUNDRY/usr.bin/dtc/checking.hh user/alc/PQ_LAUNDRY/usr.bin/dtc/dtb.cc user/alc/PQ_LAUNDRY/usr.bin/dtc/dtb.hh user/alc/PQ_LAUNDRY/usr.bin/dtc/dtc.1 user/alc/PQ_LAUNDRY/usr.bin/dtc/dtc.cc user/alc/PQ_LAUNDRY/usr.bin/dtc/fdt.cc user/alc/PQ_LAUNDRY/usr.bin/dtc/fdt.hh user/alc/PQ_LAUNDRY/usr.bin/dtc/input_buffer.cc user/alc/PQ_LAUNDRY/usr.bin/dtc/input_buffer.hh user/alc/PQ_LAUNDRY/usr.bin/dtc/string.cc user/alc/PQ_LAUNDRY/usr.bin/dtc/util.hh user/alc/PQ_LAUNDRY/usr.bin/elfdump/elfdump.c user/alc/PQ_LAUNDRY/usr.bin/kdump/kdump.c user/alc/PQ_LAUNDRY/usr.bin/localedef/ctype.c user/alc/PQ_LAUNDRY/usr.bin/localedef/parser.y (contents, props changed) user/alc/PQ_LAUNDRY/usr.bin/tee/tee.c user/alc/PQ_LAUNDRY/usr.bin/tr/tr.c user/alc/PQ_LAUNDRY/usr.sbin/arp/arp.4 user/alc/PQ_LAUNDRY/usr.sbin/makefs/cd9660.c user/alc/PQ_LAUNDRY/usr.sbin/pmcstat/pmcstat.c user/alc/PQ_LAUNDRY/usr.sbin/portsnap/portsnap/portsnap.sh Directory Properties: user/alc/PQ_LAUNDRY/ (props changed) user/alc/PQ_LAUNDRY/contrib/netbsd-tests/ (props changed) user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/ (props changed) Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/locale/t_mbstowcs.c ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/locale/t_mbstowcs.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/locale/t_mbstowcs.c Fri Oct 7 22:25:07 2016 (r306832) @@ -88,7 +88,7 @@ static struct test { 0xFFFF, 0x5D, 0x5B, 0x10000, 0x10FFFF, 0x5D, 0x0A }, #ifdef __FreeBSD__ - { 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, + { 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, #else { 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, #endif Modified: user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/string/t_memmem.c ============================================================================== --- user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/string/t_memmem.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/contrib/netbsd-tests/lib/libc/string/t_memmem.c Fri Oct 7 22:25:07 2016 (r306832) @@ -51,6 +51,8 @@ char p6[] = "9"; int lp6 = 1; char p7[] = "654"; int lp7 = 3; +char p8[] = "89abc"; +int lp8 = 5; char b0[] = ""; int lb0 = 0; @@ -94,6 +96,7 @@ ATF_TC_BODY(memmem_basic, tc) expect(memmem(b2, lb2, p4, lp4) == NULL); expect(memmem(b2, lb2, p7, lp7) == NULL); + expect(memmem(b2, lb2, p8, lp8) == NULL); } ATF_TP_ADD_TCS(tp) Modified: user/alc/PQ_LAUNDRY/etc/mtree/BSD.include.dist ============================================================================== --- user/alc/PQ_LAUNDRY/etc/mtree/BSD.include.dist Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/etc/mtree/BSD.include.dist Fri Oct 7 22:25:07 2016 (r306832) @@ -336,6 +336,8 @@ ssp .. sys + disk + .. .. teken .. Modified: user/alc/PQ_LAUNDRY/include/Makefile ============================================================================== --- user/alc/PQ_LAUNDRY/include/Makefile Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/include/Makefile Fri Oct 7 22:25:07 2016 (r306832) @@ -59,6 +59,7 @@ LSUBDIRS= cam/ata cam/nvme cam/scsi \ security/audit \ security/mac_biba security/mac_bsdextended security/mac_lomac \ security/mac_mls security/mac_partition \ + sys/disk \ ufs/ffs ufs/ufs LSUBSUBDIRS= dev/mpt/mpilib Modified: user/alc/PQ_LAUNDRY/sbin/init/init.c ============================================================================== --- user/alc/PQ_LAUNDRY/sbin/init/init.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sbin/init/init.c Fri Oct 7 22:25:07 2016 (r306832) @@ -870,6 +870,7 @@ single_user(void) sigset_t mask; const char *shell; char *argv[2]; + struct timeval tv, tn; #ifdef SECURE struct ttyent *typ; struct passwd *pp; @@ -884,8 +885,13 @@ single_user(void) if (Reboot) { /* Instead of going single user, let's reboot the machine */ sync(); - reboot(howto); - _exit(0); + if (reboot(howto) == -1) { + emergency("reboot(%#x) failed, %s", howto, + strerror(errno)); + _exit(1); /* panic and reboot */ + } + warning("reboot(%#x) returned", howto); + _exit(0); /* panic as well */ } shell = get_shell(); @@ -1002,7 +1008,14 @@ single_user(void) * reboot(8) killed shell? */ warning("single user shell terminated."); - sleep(STALL_TIMEOUT); + gettimeofday(&tv, NULL); + tn = tv; + tv.tv_sec += STALL_TIMEOUT; + while (tv.tv_sec > tn.tv_sec || (tv.tv_sec == + tn.tv_sec && tv.tv_usec > tn.tv_usec)) { + sleep(1); + gettimeofday(&tn, NULL); + } _exit(0); } else { warning("single user shell terminated, restarting"); Modified: user/alc/PQ_LAUNDRY/sys/boot/common/self_reloc.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/boot/common/self_reloc.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/boot/common/self_reloc.c Fri Oct 7 22:25:07 2016 (r306832) @@ -108,12 +108,18 @@ self_reloc(Elf_Addr baseaddr, ElfW_Dyn * break; case RELOC_TYPE_RELATIVE: - /* Address relative to the base address. */ newaddr = (Elf_Addr *)(rel->r_offset + baseaddr); - *newaddr += baseaddr; - /* Add the addend when the ABI uses them */ #ifdef ELF_RELA - *newaddr += rel->r_addend; + /* + * For R_AARCH64_RELATIVE we need to calculate the + * delta between the address we are run from and the + * address we are linked at. As the latter is 0 we + * just use the address we are run from for this. + */ + *newaddr = baseaddr + rel->r_addend; +#else + /* Address relative to the base address. */ + *newaddr += baseaddr; #endif break; default: Modified: user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h ============================================================================== --- user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h Fri Oct 7 22:25:07 2016 (r306832) @@ -355,6 +355,8 @@ extern zil_get_data_t zfs_get_data; extern zil_replay_func_t *zfs_replay_vector[TX_MAX_TYPE]; extern int zfsfstype; +extern int zfs_znode_parent_and_name(znode_t *zp, znode_t **dzpp, char *buf); + #endif /* _KERNEL */ extern int zfs_obj_to_path(objset_t *osp, uint64_t obj, char *buf, int len); Modified: user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Fri Oct 7 22:25:07 2016 (r306832) @@ -1843,7 +1843,7 @@ zfsvfs_teardown(zfsvfs_t *zfsvfs, boolea */ (void) dnlc_purge_vfsp(zfsvfs->z_parent->z_vfs, 0); #ifdef FREEBSD_NAMECACHE - cache_purgevfs(zfsvfs->z_parent->z_vfs); + cache_purgevfs(zfsvfs->z_parent->z_vfs, true); #endif } Modified: user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Fri Oct 7 22:25:07 2016 (r306832) @@ -5934,8 +5934,19 @@ zfs_vptocnp(struct vop_vptocnp_args *ap) } if (zp->z_id != parent || zfsvfs->z_parent == zfsvfs) { + char name[MAXNAMLEN + 1]; + znode_t *dzp; + size_t len; + + error = zfs_znode_parent_and_name(zp, &dzp, name); + if (error == 0) { + len = strlen(name); + *ap->a_buflen -= len; + bcopy(name, ap->a_buf + *ap->a_buflen, len); + *ap->a_vpp = ZTOV(dzp); + } ZFS_EXIT(zfsvfs); - return (vop_stdvptocnp(ap)); + return (error); } ZFS_EXIT(zfsvfs); Modified: user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Fri Oct 7 22:25:07 2016 (r306832) @@ -1936,7 +1936,6 @@ zfs_create_fs(objset_t *os, cred_t *cr, mutex_destroy(&zfsvfs->z_hold_mtx[i]); kmem_free(zfsvfs, sizeof (zfsvfs_t)); } - #endif /* _KERNEL */ static int @@ -2192,3 +2191,35 @@ zfs_obj_to_stats(objset_t *osp, uint64_t zfs_release_sa_handle(hdl, db, FTAG); return (error); } + +#ifdef _KERNEL +int +zfs_znode_parent_and_name(znode_t *zp, znode_t **dzpp, char *buf) +{ + zfsvfs_t *zfsvfs = zp->z_zfsvfs; + uint64_t parent; + int is_xattrdir; + int err; + + /* Extended attributes should not be visible as regular files. */ + if ((zp->z_pflags & ZFS_XATTR) != 0) + return (SET_ERROR(EINVAL)); + + err = zfs_obj_to_pobj(zfsvfs->z_os, zp->z_sa_hdl, zfsvfs->z_attr_table, + &parent, &is_xattrdir); + if (err != 0) + return (err); + ASSERT0(is_xattrdir); + + /* No name as this is a root object. */ + if (parent == zp->z_id) + return (SET_ERROR(EINVAL)); + + err = zap_value_search(zfsvfs->z_os, parent, zp->z_id, + ZFS_DIRENT_OBJ(-1ULL), buf); + if (err != 0) + return (err); + err = zfs_zget(zfsvfs, parent, dzpp); + return (err); +} +#endif /* _KERNEL */ Modified: user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_ioctl.h ============================================================================== --- user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_ioctl.h Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_ioctl.h Fri Oct 7 22:25:07 2016 (r306832) @@ -56,6 +56,7 @@ enum { T4_SET_SCHED_QUEUE, /* set queue class */ T4_GET_TRACER, /* get information about a tracer */ T4_SET_TRACER, /* program a tracer */ + T4_LOAD_CFG, /* copy a config file to card's flash */ }; struct t4_reg { @@ -344,4 +345,5 @@ struct t4_tracer { struct t4_sched_queue) #define CHELSIO_T4_GET_TRACER _IOWR('f', T4_GET_TRACER, struct t4_tracer) #define CHELSIO_T4_SET_TRACER _IOW('f', T4_SET_TRACER, struct t4_tracer) +#define CHELSIO_T4_LOAD_CFG _IOW('f', T4_LOAD_CFG, struct t4_data) #endif Modified: user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_main.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_main.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/dev/cxgbe/t4_main.c Fri Oct 7 22:25:07 2016 (r306832) @@ -549,6 +549,7 @@ static int set_tcb_rpl(struct sge_iq *, struct mbuf *); static int get_sge_context(struct adapter *, struct t4_sge_context *); static int load_fw(struct adapter *, struct t4_data *); +static int load_cfg(struct adapter *, struct t4_data *); static int read_card_mem(struct adapter *, int, struct t4_mem_range *); static int read_i2c(struct adapter *, struct t4_i2c_data *); #ifdef TCP_OFFLOAD @@ -7099,7 +7100,7 @@ sysctl_pm_stats(SYSCTL_HANDLER_ARGS) }; static const char *rx_stats[MAX_PM_NSTATS] = { "Read:", "Write bypass:", "Write mem:", "Flush:", - " Rx FIFO wait", NULL, "Rx latency" + "Rx FIFO wait", NULL, "Rx latency" }; rc = sysctl_wire_old_buffer(req, 0); @@ -8620,6 +8621,38 @@ done: return (rc); } +static int +load_cfg(struct adapter *sc, struct t4_data *cfg) +{ + int rc; + uint8_t *cfg_data = NULL; + + rc = begin_synchronized_op(sc, NULL, SLEEP_OK | INTR_OK, "t4ldcf"); + if (rc) + return (rc); + + if (cfg->len == 0) { + /* clear */ + rc = -t4_load_cfg(sc, NULL, 0); + goto done; + } + + cfg_data = malloc(cfg->len, M_CXGBE, M_WAITOK); + if (cfg_data == NULL) { + rc = ENOMEM; + goto done; + } + + rc = copyin(cfg->data, cfg_data, cfg->len); + if (rc == 0) + rc = -t4_load_cfg(sc, cfg_data, cfg->len); + + free(cfg_data, M_CXGBE); +done: + end_synchronized_op(sc, 0); + return (rc); +} + #define MAX_READ_BUF_SIZE (128 * 1024) static int read_card_mem(struct adapter *sc, int win, struct t4_mem_range *mr) @@ -9177,6 +9210,9 @@ t4_ioctl(struct cdev *dev, unsigned long case CHELSIO_T4_SET_TRACER: rc = t4_set_tracer(sc, (struct t4_tracer *)data); break; + case CHELSIO_T4_LOAD_CFG: + rc = load_cfg(sc, (struct t4_data *)data); + break; default: rc = ENOTTY; } Modified: user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_hw.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_hw.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_hw.c Fri Oct 7 22:25:07 2016 (r306832) @@ -1128,12 +1128,21 @@ qla_config_intr_coalesce(qla_host_t *ha, * Can be unicast, multicast or broadcast. */ static int -qla_config_mac_addr(qla_host_t *ha, uint8_t *mac_addr, uint32_t add_mac) +qla_config_mac_addr(qla_host_t *ha, uint8_t *mac_addr, uint32_t add_mac, + uint32_t num_mac) { q80_config_mac_addr_t *cmac; q80_config_mac_addr_rsp_t *cmac_rsp; uint32_t err; device_t dev = ha->pci_dev; + int i; + uint8_t *mac_cpy = mac_addr; + + if (num_mac > Q8_MAX_MAC_ADDRS) { + device_printf(dev, "%s: %s num_mac [0x%x] > Q8_MAX_MAC_ADDRS\n", + __func__, (add_mac ? "Add" : "Del"), num_mac); + return (-1); + } cmac = (q80_config_mac_addr_t *)ha->hw.mbox; bzero(cmac, (sizeof (q80_config_mac_addr_t))); @@ -1149,9 +1158,13 @@ qla_config_mac_addr(qla_host_t *ha, uint cmac->cmd |= Q8_MBX_CMAC_CMD_CAM_INGRESS; - cmac->nmac_entries = 1; + cmac->nmac_entries = num_mac; cmac->cntxt_id = ha->hw.rcv_cntxt_id; - bcopy(mac_addr, cmac->mac_addr[0].addr, 6); + + for (i = 0; i < num_mac; i++) { + bcopy(mac_addr, cmac->mac_addr[i].addr, Q8_ETHER_ADDR_LEN); + mac_addr = mac_addr + ETHER_ADDR_LEN; + } if (qla_mbx_cmd(ha, (uint32_t *)cmac, (sizeof (q80_config_mac_addr_t) >> 2), @@ -1165,11 +1178,14 @@ qla_config_mac_addr(qla_host_t *ha, uint err = Q8_MBX_RSP_STATUS(cmac_rsp->regcnt_status); if (err) { - device_printf(dev, "%s: %s " - "%02x:%02x:%02x:%02x:%02x:%02x failed1 [0x%08x]\n", - __func__, (add_mac ? "Add" : "Del"), - mac_addr[0], mac_addr[1], mac_addr[2], - mac_addr[3], mac_addr[4], mac_addr[5], err); + device_printf(dev, "%s: %s failed1 [0x%08x]\n", __func__, + (add_mac ? "Add" : "Del"), err); + for (i = 0; i < num_mac; i++) { + device_printf(dev, "%s: %02x:%02x:%02x:%02x:%02x:%02x\n", + __func__, mac_cpy[0], mac_cpy[1], mac_cpy[2], + mac_cpy[3], mac_cpy[4], mac_cpy[5]); + mac_cpy += ETHER_ADDR_LEN; + } return (-1); } @@ -2254,6 +2270,7 @@ ql_del_hw_if(qla_host_t *ha) (void)qla_stop_nic_func(ha); qla_del_rcv_cntxt(ha); + qla_del_xmt_cntxt(ha); if (ha->hw.flags.init_intr_cnxt) { @@ -2270,6 +2287,7 @@ ql_del_hw_if(qla_host_t *ha) ha->hw.flags.init_intr_cnxt = 0; } + return; } @@ -2368,7 +2386,7 @@ ql_init_hw_if(qla_host_t *ha) } ha->hw.max_tx_segs = 0; - if (qla_config_mac_addr(ha, ha->hw.mac_addr, 1)) + if (qla_config_mac_addr(ha, ha->hw.mac_addr, 1, 1)) return(-1); ha->hw.flags.unicast_mac = 1; @@ -2376,7 +2394,7 @@ ql_init_hw_if(qla_host_t *ha) bcast_mac[0] = 0xFF; bcast_mac[1] = 0xFF; bcast_mac[2] = 0xFF; bcast_mac[3] = 0xFF; bcast_mac[4] = 0xFF; bcast_mac[5] = 0xFF; - if (qla_config_mac_addr(ha, bcast_mac, 1)) + if (qla_config_mac_addr(ha, bcast_mac, 1, 1)) return (-1); ha->hw.flags.bcast_mac = 1; @@ -2733,14 +2751,14 @@ qla_del_rcv_cntxt(qla_host_t *ha) bcast_mac[0] = 0xFF; bcast_mac[1] = 0xFF; bcast_mac[2] = 0xFF; bcast_mac[3] = 0xFF; bcast_mac[4] = 0xFF; bcast_mac[5] = 0xFF; - if (qla_config_mac_addr(ha, bcast_mac, 0)) + if (qla_config_mac_addr(ha, bcast_mac, 0, 1)) return; ha->hw.flags.bcast_mac = 0; } if (ha->hw.flags.unicast_mac) { - if (qla_config_mac_addr(ha, ha->hw.mac_addr, 0)) + if (qla_config_mac_addr(ha, ha->hw.mac_addr, 0, 1)) return; ha->hw.flags.unicast_mac = 0; } @@ -2926,12 +2944,20 @@ qla_init_xmt_cntxt(qla_host_t *ha) } static int -qla_hw_add_all_mcast(qla_host_t *ha) +qla_hw_all_mcast(qla_host_t *ha, uint32_t add_mcast) { int i, nmcast; + uint32_t count = 0; + uint8_t *mcast; nmcast = ha->hw.nmcast; + QL_DPRINT2(ha, (ha->pci_dev, + "%s:[0x%x] enter nmcast = %d \n", __func__, add_mcast, nmcast)); + + mcast = ha->hw.mac_addr_arr; + memset(mcast, 0, (Q8_MAX_MAC_ADDRS * ETHER_ADDR_LEN)); + for (i = 0 ; ((i < Q8_MAX_NUM_MULTICAST_ADDRS) && nmcast); i++) { if ((ha->hw.mcast[i].addr[0] != 0) || (ha->hw.mcast[i].addr[1] != 0) || @@ -2940,52 +2966,80 @@ qla_hw_add_all_mcast(qla_host_t *ha) (ha->hw.mcast[i].addr[4] != 0) || (ha->hw.mcast[i].addr[5] != 0)) { - if (qla_config_mac_addr(ha, ha->hw.mcast[i].addr, 1)) { - device_printf(ha->pci_dev, "%s: failed\n", - __func__); - return (-1); + bcopy(ha->hw.mcast[i].addr, mcast, ETHER_ADDR_LEN); + mcast = mcast + ETHER_ADDR_LEN; + count++; + + if (count == Q8_MAX_MAC_ADDRS) { + if (qla_config_mac_addr(ha, ha->hw.mac_addr_arr, + add_mcast, count)) { + device_printf(ha->pci_dev, + "%s: failed\n", __func__); + return (-1); + } + + count = 0; + mcast = ha->hw.mac_addr_arr; + memset(mcast, 0, + (Q8_MAX_MAC_ADDRS * ETHER_ADDR_LEN)); } nmcast--; } } + + if (count) { + if (qla_config_mac_addr(ha, ha->hw.mac_addr_arr, add_mcast, + count)) { + device_printf(ha->pci_dev, "%s: failed\n", __func__); + return (-1); + } + } + QL_DPRINT2(ha, (ha->pci_dev, + "%s:[0x%x] exit nmcast = %d \n", __func__, add_mcast, nmcast)); + return 0; } static int -qla_hw_del_all_mcast(qla_host_t *ha) +qla_hw_add_all_mcast(qla_host_t *ha) { - int i, nmcast; + int ret; - nmcast = ha->hw.nmcast; + ret = qla_hw_all_mcast(ha, 1); - for (i = 0 ; ((i < Q8_MAX_NUM_MULTICAST_ADDRS) && nmcast); i++) { - if ((ha->hw.mcast[i].addr[0] != 0) || - (ha->hw.mcast[i].addr[1] != 0) || - (ha->hw.mcast[i].addr[2] != 0) || - (ha->hw.mcast[i].addr[3] != 0) || - (ha->hw.mcast[i].addr[4] != 0) || - (ha->hw.mcast[i].addr[5] != 0)) { + return (ret); +} - if (qla_config_mac_addr(ha, ha->hw.mcast[i].addr, 0)) - return (-1); +static int +qla_hw_del_all_mcast(qla_host_t *ha) +{ + int ret; - nmcast--; - } - } - return 0; + ret = qla_hw_all_mcast(ha, 0); + + bzero(ha->hw.mcast, (sizeof (qla_mcast_t) * Q8_MAX_NUM_MULTICAST_ADDRS)); + ha->hw.nmcast = 0; + + return (ret); } static int -qla_hw_add_mcast(qla_host_t *ha, uint8_t *mta) +qla_hw_mac_addr_present(qla_host_t *ha, uint8_t *mta) { int i; for (i = 0; i < Q8_MAX_NUM_MULTICAST_ADDRS; i++) { - if (QL_MAC_CMP(ha->hw.mcast[i].addr, mta) == 0) - return 0; /* its been already added */ + return (0); /* its been already added */ } + return (-1); +} + +static int +qla_hw_add_mcast(qla_host_t *ha, uint8_t *mta, uint32_t nmcast) +{ + int i; for (i = 0; i < Q8_MAX_NUM_MULTICAST_ADDRS; i++) { @@ -2996,29 +3050,28 @@ qla_hw_add_mcast(qla_host_t *ha, uint8_t (ha->hw.mcast[i].addr[4] == 0) && (ha->hw.mcast[i].addr[5] == 0)) { - if (qla_config_mac_addr(ha, mta, 1)) - return (-1); - bcopy(mta, ha->hw.mcast[i].addr, Q8_MAC_ADDR_LEN); ha->hw.nmcast++; - return 0; + mta = mta + ETHER_ADDR_LEN; + nmcast--; + + if (nmcast == 0) + break; } + } return 0; } static int -qla_hw_del_mcast(qla_host_t *ha, uint8_t *mta) +qla_hw_del_mcast(qla_host_t *ha, uint8_t *mta, uint32_t nmcast) { int i; for (i = 0; i < Q8_MAX_NUM_MULTICAST_ADDRS; i++) { if (QL_MAC_CMP(ha->hw.mcast[i].addr, mta) == 0) { - if (qla_config_mac_addr(ha, mta, 0)) - return (-1); - ha->hw.mcast[i].addr[0] = 0; ha->hw.mcast[i].addr[1] = 0; ha->hw.mcast[i].addr[2] = 0; @@ -3028,7 +3081,11 @@ qla_hw_del_mcast(qla_host_t *ha, uint8_t ha->hw.nmcast--; - return 0; + mta = mta + ETHER_ADDR_LEN; + nmcast--; + + if (nmcast == 0) + break; } } return 0; @@ -3036,30 +3093,75 @@ qla_hw_del_mcast(qla_host_t *ha, uint8_t /* * Name: ql_hw_set_multi - * Function: Sets the Multicast Addresses provided the host O.S into the + * Function: Sets the Multicast Addresses provided by the host O.S into the * hardware (for the given interface) */ int -ql_hw_set_multi(qla_host_t *ha, uint8_t *mcast, uint32_t mcnt, +ql_hw_set_multi(qla_host_t *ha, uint8_t *mcast_addr, uint32_t mcnt, uint32_t add_mac) { + uint8_t *mta = mcast_addr; int i; - uint8_t *mta = mcast; int ret = 0; + uint32_t count = 0; + uint8_t *mcast; + + mcast = ha->hw.mac_addr_arr; + memset(mcast, 0, (Q8_MAX_MAC_ADDRS * ETHER_ADDR_LEN)); for (i = 0; i < mcnt; i++) { - if (add_mac) { - ret = qla_hw_add_mcast(ha, mta); - if (ret) - break; - } else { - ret = qla_hw_del_mcast(ha, mta); - if (ret) - break; + if (mta[0] || mta[1] || mta[2] || mta[3] || mta[4] || mta[5]) { + if (add_mac) { + if (qla_hw_mac_addr_present(ha, mta) != 0) { + bcopy(mta, mcast, ETHER_ADDR_LEN); + mcast = mcast + ETHER_ADDR_LEN; + count++; + } + } else { + if (qla_hw_mac_addr_present(ha, mta) == 0) { + bcopy(mta, mcast, ETHER_ADDR_LEN); + mcast = mcast + ETHER_ADDR_LEN; + count++; + } + } + } + if (count == Q8_MAX_MAC_ADDRS) { + if (qla_config_mac_addr(ha, ha->hw.mac_addr_arr, + add_mac, count)) { + device_printf(ha->pci_dev, "%s: failed\n", + __func__); + return (-1); + } + + if (add_mac) { + qla_hw_add_mcast(ha, ha->hw.mac_addr_arr, + count); + } else { + qla_hw_del_mcast(ha, ha->hw.mac_addr_arr, + count); + } + + count = 0; + mcast = ha->hw.mac_addr_arr; + memset(mcast, 0, (Q8_MAX_MAC_ADDRS * ETHER_ADDR_LEN)); } mta += Q8_MAC_ADDR_LEN; } + + if (count) { + if (qla_config_mac_addr(ha, ha->hw.mac_addr_arr, add_mac, + count)) { + device_printf(ha->pci_dev, "%s: failed\n", __func__); + return (-1); + } + if (add_mac) { + qla_hw_add_mcast(ha, ha->hw.mac_addr_arr, count); + } else { + qla_hw_del_mcast(ha, ha->hw.mac_addr_arr, count); + } + } + return (ret); } Modified: user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_hw.h ============================================================================== --- user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_hw.h Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_hw.h Fri Oct 7 22:25:07 2016 (r306832) @@ -210,7 +210,7 @@ #define Q8_NUM_MBOX 512 -#define Q8_MAX_NUM_MULTICAST_ADDRS 1023 +#define Q8_MAX_NUM_MULTICAST_ADDRS 1022 #define Q8_MAC_ADDR_LEN 6 /* @@ -511,8 +511,9 @@ typedef struct _q80_config_intr_coalesc_ /* * Configure MAC Address */ +#define Q8_ETHER_ADDR_LEN 6 typedef struct _q80_mac_addr { - uint8_t addr[6]; + uint8_t addr[Q8_ETHER_ADDR_LEN]; uint16_t vlan_tci; } __packed q80_mac_addr_t; @@ -1548,7 +1549,7 @@ typedef struct _qla_hw_tx_cntxt { typedef struct _qla_mcast { uint16_t rsrvd; - uint8_t addr[6]; + uint8_t addr[ETHER_ADDR_LEN]; } __packed qla_mcast_t; typedef struct _qla_rdesc { @@ -1660,6 +1661,7 @@ typedef struct _qla_hw { /* multicast address list */ uint32_t nmcast; qla_mcast_t mcast[Q8_MAX_NUM_MULTICAST_ADDRS]; + uint8_t mac_addr_arr[(Q8_MAX_MAC_ADDRS * ETHER_ADDR_LEN)]; /* reset sequence */ #define Q8_MAX_RESET_SEQ_IDX 16 Modified: user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_os.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_os.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_os.c Fri Oct 7 22:25:07 2016 (r306832) @@ -243,6 +243,8 @@ qla_watchdog(void *arg) ha->flags.qla_watchdog_pause = 1; ha->qla_initiate_recovery = 0; ha->err_inject = 0; + device_printf(ha->pci_dev, + "%s: taskqueue_enqueue(err_task) \n", __func__); taskqueue_enqueue(ha->err_tq, &ha->err_task); } else if (ha->flags.qla_interface_up) { @@ -452,7 +454,7 @@ qla_pci_attach(device_t dev) TASK_INIT(&ha->tx_task, 0, qla_tx_done, ha); - ha->tx_tq = taskqueue_create_fast("qla_txq", M_NOWAIT, + ha->tx_tq = taskqueue_create("qla_txq", M_NOWAIT, taskqueue_thread_enqueue, &ha->tx_tq); taskqueue_start_threads(&ha->tx_tq, 1, PI_NET, "%s txq", device_get_nameunit(ha->pci_dev)); @@ -470,13 +472,13 @@ qla_pci_attach(device_t dev) qla_watchdog, ha); TASK_INIT(&ha->err_task, 0, qla_error_recovery, ha); - ha->err_tq = taskqueue_create_fast("qla_errq", M_NOWAIT, + ha->err_tq = taskqueue_create("qla_errq", M_NOWAIT, taskqueue_thread_enqueue, &ha->err_tq); taskqueue_start_threads(&ha->err_tq, 1, PI_NET, "%s errq", device_get_nameunit(ha->pci_dev)); TASK_INIT(&ha->async_event_task, 0, qla_async_event, ha); - ha->async_event_tq = taskqueue_create_fast("qla_asyncq", M_NOWAIT, + ha->async_event_tq = taskqueue_create("qla_asyncq", M_NOWAIT, taskqueue_thread_enqueue, &ha->async_event_tq); taskqueue_start_threads(&ha->async_event_tq, 1, PI_NET, "%s asyncq", device_get_nameunit(ha->pci_dev)); Modified: user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_ver.h ============================================================================== --- user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_ver.h Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/dev/qlxgbe/ql_ver.h Fri Oct 7 22:25:07 2016 (r306832) @@ -36,6 +36,6 @@ #define QLA_VERSION_MAJOR 3 #define QLA_VERSION_MINOR 10 -#define QLA_VERSION_BUILD 30 +#define QLA_VERSION_BUILD 31 #endif /* #ifndef _QL_VER_H_ */ Modified: user/alc/PQ_LAUNDRY/sys/kern/vfs_cache.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/kern/vfs_cache.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/kern/vfs_cache.c Fri Oct 7 22:25:07 2016 (r306832) @@ -1756,7 +1756,7 @@ cache_purge_negative(struct vnode *vp) * Flush all entries referencing a particular filesystem. */ void -cache_purgevfs(struct mount *mp) +cache_purgevfs(struct mount *mp, bool force) { TAILQ_HEAD(, namecache) ncps; struct mtx *vlp1, *vlp2; @@ -1768,7 +1768,7 @@ cache_purgevfs(struct mount *mp) /* Scan hash tables for applicable entries */ SDT_PROBE1(vfs, namecache, purgevfs, done, mp); - if (mp->mnt_nvnodelistsize <= ncpurgeminvnodes) + if (!force && mp->mnt_nvnodelistsize <= ncpurgeminvnodes) return; TAILQ_INIT(&ncps); n_nchash = nchash + 1; Modified: user/alc/PQ_LAUNDRY/sys/kern/vfs_mount.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/kern/vfs_mount.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/kern/vfs_mount.c Fri Oct 7 22:25:07 2016 (r306832) @@ -1352,7 +1352,7 @@ dounmount(struct mount *mp, int flags, s mp->mnt_flag &= ~MNT_ASYNC; mp->mnt_kern_flag &= ~MNTK_ASYNC; MNT_IUNLOCK(mp); - cache_purgevfs(mp); /* remove cache entries for this file sys */ + cache_purgevfs(mp, false); /* remove cache entries for this file sys */ vfs_deallocate_syncvnode(mp); /* * For forced unmounts, move process cdir/rdir refs on the fs root Modified: user/alc/PQ_LAUNDRY/sys/kern/vfs_mountroot.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/kern/vfs_mountroot.c Fri Oct 7 22:17:43 2016 (r306831) +++ user/alc/PQ_LAUNDRY/sys/kern/vfs_mountroot.c Fri Oct 7 22:25:07 2016 (r306832) @@ -298,9 +298,9 @@ vfs_mountroot_shuffle(struct thread *td, TAILQ_INSERT_TAIL(&mountlist, mpdevfs, mnt_list); mtx_unlock(&mountlist_mtx); - cache_purgevfs(mporoot); + cache_purgevfs(mporoot, true); if (mporoot != mpdevfs) - cache_purgevfs(mpdevfs); + cache_purgevfs(mpdevfs, true); VFS_ROOT(mporoot, LK_EXCLUSIVE, &vporoot); @@ -315,7 +315,7 @@ vfs_mountroot_shuffle(struct thread *td, /* Set up the new rootvnode, and purge the cache */ mpnroot->mnt_vnodecovered = NULL; set_rootvnode(); - cache_purgevfs(rootvnode->v_mount); + cache_purgevfs(rootvnode->v_mount, true); if (mporoot != mpdevfs) { /* Remount old root under /.mount or /mnt */ Copied: user/alc/PQ_LAUNDRY/sys/mips/conf/AR5312_BASE.hints (from r306831, head/sys/mips/conf/AR5312_BASE.hints) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PQ_LAUNDRY/sys/mips/conf/AR5312_BASE.hints Fri Oct 7 22:25:07 2016 (r306832, copy of r306831, head/sys/mips/conf/AR5312_BASE.hints) @@ -0,0 +1,29 @@ +# $FreeBSD$ +hint.apb.0.at="nexus0" +hint.apb.0.irq=4 + +# uart0 +hint.uart.0.at="apb0" +# see atheros/uart_cpu_ar71xx.c why +3 +hint.uart.0.maddr=0x1C000003 +hint.uart.0.msize=0x20 +#hint.uart.0.irq=4 +#hint.uart.0.flags="0x30" + +# Watchdog +hint.ar5315_wdog.0.at="apb0" +hint.ar5315_wdog.0.irq=6 + +# Ethernet +hint.are.0.at="nexus0" +hint.are.0.maddr=0x18100000 +hint.are.0.msize=0x00100000 +hint.are.0.irq=1 + +hint.are.1.at="nexus0" +hint.are.1.maddr=0x18200000 +hint.are.1.msize=0x00100000 +hint.are.1.irq=2 + +# GEOM redboot FIS directory offset +#hint.redboot.0.fisoffset="0x007e0000" Copied: user/alc/PQ_LAUNDRY/sys/mips/conf/AR5315_BASE.hints (from r306831, head/sys/mips/conf/AR5315_BASE.hints) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PQ_LAUNDRY/sys/mips/conf/AR5315_BASE.hints Fri Oct 7 22:25:07 2016 (r306832, copy of r306831, head/sys/mips/conf/AR5315_BASE.hints) @@ -0,0 +1,34 @@ +# $FreeBSD$ +hint.apb.0.at="nexus0" +hint.apb.0.irq=0 + +# uart0 +hint.uart.0.at="apb0" +hint.uart.0.maddr=0x11100003 +hint.uart.0.msize=0x20 +#hint.uart.0.irq=0 +#hint.uart.0.flags="0x30" + +# Watchdog +hint.ar5315_wdog.0.at="apb0" +hint.ar5315_wdog.0.irq=7 + +# SPI +hint.spi.0.at="nexus0" +hint.spi.0.maddr=0x11300000 +hint.spi.0.msize=0x0000000c +#hint.spi.0.irq=2 + +# Ethernet +hint.are.0.at="nexus0" +hint.are.0.maddr=0x10500000 +hint.are.0.msize=0x500000 +hint.are.0.irq=2 + +# Flash +hint.mx25l.0.at="spibus0" +hint.mx25l.0.cs=0 + +# GEOM redboot FIS directory offset +#hint.redboot.0.fisoffset="0x007e0000" + Copied: user/alc/PQ_LAUNDRY/sys/mips/conf/std.AR5312 (from r306831, head/sys/mips/conf/std.AR5312) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PQ_LAUNDRY/sys/mips/conf/std.AR5312 Fri Oct 7 22:25:07 2016 (r306832, copy of r306831, head/sys/mips/conf/std.AR5312) @@ -0,0 +1,80 @@ +# +# AR5312 -- Kernel configuration file for FreeBSD/MIPS for Atheros 5312 systems +# +# This includes all the common drivers for the AR5312 boards +# +# $FreeBSD$ +# + +machine mips mips +#ident AR5312_BASE +cpu CPU_MIPS4KC +makeoptions KERNLOADADDR=0x80050000 +options HZ=1000 + +makeoptions MODULES_OVERRIDE="" + +files "../atheros/ar531x/files.ar5315" + +options INTRNG +options AR531X_1ST_GENERATION + +# For now, hints are per-board. + +hints "AR5312_BASE.hints" + +makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols + +# For small memory footprints +options VM_KMEM_SIZE_SCALE=1 + +options DDB +options KDB + +options SCHED_4BSD #4BSD scheduler +options INET #InterNETworking +options INET6 # IPv6 + +# options NFSCL #Network Filesystem Client + +options PSEUDOFS #Pseudo-filesystem framework +options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions + +# options NFS_LEGACYRPC +# Debugging for use in -current +options INVARIANTS +options INVARIANT_SUPPORT +options WITNESS +options WITNESS_SKIPSPIN +options DEBUG_REDZONE +options DEBUG_MEMGUARD + +options FFS #Berkeley Fast Filesystem +# options SOFTUPDATES #Enable FFS soft updates support +# options UFS_ACL #Support for access control lists +# options UFS_DIRHASH #Improve performance on big directories +# options MSDOSFS # Read MSDOS filesystems; useful for USB/CF + +device mii +device are + +device cfi +options CFI_HARDWAREBYTESWAP +device geom_redboot + +device ar5315_wdog + +device uart +device uart_ar5315 + +device loop +device ether +device md +device bpf +device random + +options ARGE_DEBUG # Enable if_arge debugging for now + +# Enable GPIO +device gpio +device gpioled Copied: user/alc/PQ_LAUNDRY/sys/mips/conf/std.AR5315 (from r306831, head/sys/mips/conf/std.AR5315) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/alc/PQ_LAUNDRY/sys/mips/conf/std.AR5315 Fri Oct 7 22:25:07 2016 (r306832, copy of r306831, head/sys/mips/conf/std.AR5315) @@ -0,0 +1,80 @@ +# +# AR5315 -- Kernel configuration file for FreeBSD/MIPS for Atheros 5315 systems +# +# This includes all the common drivers for the AR5315 boards +# +# $FreeBSD$ +# + +machine mips mips +#ident AR5315_BASE +cpu CPU_MIPS4KC +makeoptions KERNLOADADDR=0x80050000 +options HZ=1000 + +makeoptions MODULES_OVERRIDE="" + +files "../atheros/ar531x/files.ar5315" + +options INTRNG + +# For now, hints are per-board. + +hints "AR5315_BASE.hints" + +makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols + +# For small memory footprints +options VM_KMEM_SIZE_SCALE=1 + +options DDB +options KDB + +options SCHED_4BSD #4BSD scheduler +options INET #InterNETworking +options INET6 # IPv6 + +# options NFSCL #Network Filesystem Client + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Fri Oct 7 23:36:10 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45F6CC05401 for ; Fri, 7 Oct 2016 23:36:10 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail109.syd.optusnet.com.au (mail109.syd.optusnet.com.au [211.29.132.80]) by mx1.freebsd.org (Postfix) with ESMTP id E7A2C22B; Fri, 7 Oct 2016 23:36:09 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c122-106-149-109.carlnfd1.nsw.optusnet.com.au (c122-106-149-109.carlnfd1.nsw.optusnet.com.au [122.106.149.109]) by mail109.syd.optusnet.com.au (Postfix) with ESMTPS id A20CFD63817; Sat, 8 Oct 2016 10:36:00 +1100 (AEDT) Date: Sat, 8 Oct 2016 10:35:59 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Mark Johnston cc: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: Re: svn commit: r306831 - in user/alc/PQ_LAUNDRY/usr.bin: systat vmstat In-Reply-To: <201610072217.u97MHh08042582@repo.freebsd.org> Message-ID: <20161008093219.O2989@besplex.bde.org> References: <201610072217.u97MHh08042582@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=VIkg5I7X c=1 sm=1 tr=0 a=R/f3m204ZbWUO/0rwPSMPw==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=l4ehqzH4_d9zZRUFdhcA:9 a=CjuIK1q_8ugA:10 a=chvjmp5bT-K0Np4W8Gpx:22 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Oct 2016 23:36:10 -0000 On Fri, 7 Oct 2016, Mark Johnston wrote: > Log: > Teach vmstat and systat about v_pdshortfalls. systat has a negative amount of space available for expansion. > Modified: user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c > ============================================================================== > --- user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c Fri Oct 7 22:17:25 2016 (r306830) > +++ user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c Fri Oct 7 22:17:43 2016 (r306831) > @@ -339,14 +340,15 @@ labelkre(void) > mvprintw(VMSTATROW + 8, VMSTATCOL + 9, "react"); > mvprintw(VMSTATROW + 9, VMSTATCOL + 9, "pdwak"); > mvprintw(VMSTATROW + 10, VMSTATCOL + 9, "pdpgs"); > - mvprintw(VMSTATROW + 11, VMSTATCOL + 9, "intrn"); > - mvprintw(VMSTATROW + 12, VMSTATCOL + 9, "wire"); > - mvprintw(VMSTATROW + 13, VMSTATCOL + 9, "act"); > - mvprintw(VMSTATROW + 14, VMSTATCOL + 9, "inact"); > - mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "laund"); > - mvprintw(VMSTATROW + 16, VMSTATCOL + 9, "free"); > - if (LINES - 1 > VMSTATROW + 17) > - mvprintw(VMSTATROW + 17, VMSTATCOL + 9, "buf"); > + mvprintw(VMSTATROW + 11, VMSTATCOL + 9, "pdshort"); > + mvprintw(VMSTATROW + 12, VMSTATCOL + 9, "intrn"); > + mvprintw(VMSTATROW + 13, VMSTATCOL + 9, "wire"); > + mvprintw(VMSTATROW + 14, VMSTATCOL + 9, "act"); > + mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "inact"); > + mvprintw(VMSTATROW + 16, VMSTATCOL + 9, "laund"); > + mvprintw(VMSTATROW + 17, VMSTATCOL + 9, "free"); > + if (LINES - 1 > VMSTATROW + 18) > + mvprintw(VMSTATROW + 18, VMSTATCOL + 9, "buf"); > > mvprintw(GENSTATROW, GENSTATCOL, " Csw Trp Sys Int Sof Flt"); Already the display of 'buf' was broken by expansion: on freefall now: 30 users Load 0.21 0.18 0.13 Oct 7 22:32 Mem usage: 82%Phy 10%Kmem Mem: KB REAL VIRTUAL VN PAGER SWAP PAGER Tot Share Tot Share Free in out in out Act 784512 23764 7319516 42640 4515744 count All 893752 129672 7995532 624636 pages Proc: Interrupts r p d s w Csw Trp Sys Int Sof Flt ioflt 569 total 422 3216 49 362 232 33 5 1 cow uart0 4 2 zfod 29 cpu0:timer 0.3%Sys 0.0%Intr 0.0%User 0.0%Nice 99.7%Idle ozfod 4 igb0:que 0 | | | | | | | | | | %ozfod 1 igb0:que 1 daefr 12 igb0:que 2 1 dtbuf 93 prcfr 1 igb0:que 3 Namei Name-cache Dir-cache 485980 desvn 117 totfr 10 igb0:que 4 Calls hits % hits % 485400 numvn react 1 igb0:que 5 17 17 100 179227 frevn pdwak 1 igb0:que 6 147 pdpgs 4 igb0:que 7 Disks da0 da1 da2 da3 da4 da5 da6 intrn igb0:link KB/t 20.12 19.75 19.75 20.00 19.62 20.00 0.00 5096864 wire 196 ciss0 274 tps 31 31 31 31 31 31 0 330628 act 27 cpu1:timer MB/s 0.61 0.60 0.60 0.60 0.59 0.60 0.00 14524764 inact 6 cpu18:time %busy 15 13 16 16 18 15 0 cache 7 cpu8:timer 4515744 free 3 cpu10:time 2 cpu16:time 'buf' is not important, but 'free' is. The last line is not available for the main display, but is used for the cpu16:time. This line is used for input, so and everything displayed on it is cleared for input and then messed up in an uglier way by redisplaying only parts (for the cpu16: field, the count is re-displayed on screen refresh but the description is not re-displayed without a switch to another screen and back). The interrupts column and the input line are generally broken. With 24 CPUs and also some other per-cpu interrupt counts, it takes about a 200-row terminal to display all the interrupts and then 1 more row to stop the input line running into the interrupts. The rest of the display is tuned for 25 rows and looks strange when it is 7/8 unused. Per-CPU interrupts are also miscounted in totals... Bruce From owner-svn-src-user@freebsd.org Fri Oct 7 23:46:38 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8B61DC05822 for ; Fri, 7 Oct 2016 23:46:38 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-pa0-x243.google.com (mail-pa0-x243.google.com [IPv6:2607:f8b0:400e:c03::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6444F9CD; Fri, 7 Oct 2016 23:46:38 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-pa0-x243.google.com with SMTP id cd13so3353307pac.3; Fri, 07 Oct 2016 16:46:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=IQgcJ0c6F6HN3avtAzylQggqtRssGust73X5Gasg6Vo=; b=NckIlF3T3ZyLGuxhi8bGTRNULQ4S/+i8YtGsy6S2v1tSriGKBjREGoFe/nVGI9VjVL Dv28Mm8RBOEgtMHb74SJRJ4Bcv81+KNUBbWt/IjyxIyNmMGKGSPI6MUTtIa6tR3GiZhV ystXPXb+q33LqkkKKPc/EqbXHOWZeNNnua+sF3PaZjw+e/zGQC4v4s7hjgUUDKADW4+M u/MdUt43vgyxXjdQFhQGqLsvFlwPr6cIqZmHQrZ5YQoC4MPKrpFvdgbXgBMDmh8n2nPK pWTHGIKYbH+JT8gwht39Nk1W9X2tUz8lM5pWBLMwNHcC2KWmrlNdr7WHHZEGy5kHf/NP bV0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=IQgcJ0c6F6HN3avtAzylQggqtRssGust73X5Gasg6Vo=; b=j/tAizEo/Yu8Jo0kxXKhCufe63tqPfQn3Y8SR5od8QjCXqyKuDz8so+9SslhDmEEG0 kLgTuN/mq1b5yp9w06p0FDB5ycVlyB7FztR+nYDOrSEgMOY9hetuS9hIF9NEO5bBnP06 mZmFzRpcZ9JDZ82/pgH6e7uuBzAXUmNy0NDs9gwHfkv8OT92VkpS4CIDtj3S/Hh8H1In FE4V7dp6Rnwcu0Vaotb2s+GI52IsCIJiXJ7ALKp3n+3ecbeQWhpb3fcl/jzofAQi2N52 kvoQ99mCQT/mJ9BbOW/i4xk6Qcavt+AeCLw9NPn4l/pgetfhx2hHSSGWGoFsF41sb6sw l1gw== X-Gm-Message-State: AA6/9RlO9mBpfTeajHnNC9uS7r9hw/GA7uj1opvnBYjwbjJ/c2Kmapx1XdFuY44fxAJz8A== X-Received: by 10.66.16.74 with SMTP id e10mr1056243pad.148.1475883997872; Fri, 07 Oct 2016 16:46:37 -0700 (PDT) Received: from wkstn-mjohnston.west.isilon.com (c-76-104-201-218.hsd1.wa.comcast.net. [76.104.201.218]) by smtp.gmail.com with ESMTPSA id s29sm16585999pfi.55.2016.10.07.16.46.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 07 Oct 2016 16:46:37 -0700 (PDT) Sender: Mark Johnston Date: Fri, 7 Oct 2016 16:52:36 -0700 From: Mark Johnston To: Bruce Evans Cc: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: Re: svn commit: r306831 - in user/alc/PQ_LAUNDRY/usr.bin: systat vmstat Message-ID: <20161007235236.GC65501@wkstn-mjohnston.west.isilon.com> References: <201610072217.u97MHh08042582@repo.freebsd.org> <20161008093219.O2989@besplex.bde.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20161008093219.O2989@besplex.bde.org> User-Agent: Mutt/1.6.1 (2016-04-27) X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Oct 2016 23:46:38 -0000 On Sat, Oct 08, 2016 at 10:35:59AM +1100, Bruce Evans wrote: > On Fri, 7 Oct 2016, Mark Johnston wrote: > > > Log: > > Teach vmstat and systat about v_pdshortfalls. > > systat has a negative amount of space available for expansion. Hm, I see. I'll revert the systat modifications then. It isn't particularly handy to have the rate of shortfall wakeups given what's already available in the vmstat display. > > > Modified: user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c > > ============================================================================== > > --- user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c Fri Oct 7 22:17:25 2016 (r306830) > > +++ user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c Fri Oct 7 22:17:43 2016 (r306831) > > @@ -339,14 +340,15 @@ labelkre(void) > > mvprintw(VMSTATROW + 8, VMSTATCOL + 9, "react"); > > mvprintw(VMSTATROW + 9, VMSTATCOL + 9, "pdwak"); > > mvprintw(VMSTATROW + 10, VMSTATCOL + 9, "pdpgs"); > > - mvprintw(VMSTATROW + 11, VMSTATCOL + 9, "intrn"); > > - mvprintw(VMSTATROW + 12, VMSTATCOL + 9, "wire"); > > - mvprintw(VMSTATROW + 13, VMSTATCOL + 9, "act"); > > - mvprintw(VMSTATROW + 14, VMSTATCOL + 9, "inact"); > > - mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "laund"); > > - mvprintw(VMSTATROW + 16, VMSTATCOL + 9, "free"); > > - if (LINES - 1 > VMSTATROW + 17) > > - mvprintw(VMSTATROW + 17, VMSTATCOL + 9, "buf"); > > + mvprintw(VMSTATROW + 11, VMSTATCOL + 9, "pdshort"); > > + mvprintw(VMSTATROW + 12, VMSTATCOL + 9, "intrn"); > > + mvprintw(VMSTATROW + 13, VMSTATCOL + 9, "wire"); > > + mvprintw(VMSTATROW + 14, VMSTATCOL + 9, "act"); > > + mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "inact"); > > + mvprintw(VMSTATROW + 16, VMSTATCOL + 9, "laund"); > > + mvprintw(VMSTATROW + 17, VMSTATCOL + 9, "free"); > > + if (LINES - 1 > VMSTATROW + 18) > > + mvprintw(VMSTATROW + 18, VMSTATCOL + 9, "buf"); > > > > mvprintw(GENSTATROW, GENSTATCOL, " Csw Trp Sys Int Sof Flt"); > > Already the display of 'buf' was broken by expansion: on freefall now: > > 30 users Load 0.21 0.18 0.13 Oct 7 22:32 > Mem usage: 82%Phy 10%Kmem > Mem: KB REAL VIRTUAL VN PAGER SWAP PAGER > Tot Share Tot Share Free in out in out > Act 784512 23764 7319516 42640 4515744 count > All 893752 129672 7995532 624636 pages > Proc: Interrupts > r p d s w Csw Trp Sys Int Sof Flt ioflt 569 total > 422 3216 49 362 232 33 5 1 cow uart0 4 > 2 zfod 29 cpu0:timer > 0.3%Sys 0.0%Intr 0.0%User 0.0%Nice 99.7%Idle ozfod 4 igb0:que 0 > | | | | | | | | | | %ozfod 1 igb0:que 1 > daefr 12 igb0:que 2 > 1 dtbuf 93 prcfr 1 igb0:que 3 > Namei Name-cache Dir-cache 485980 desvn 117 totfr 10 igb0:que 4 > Calls hits % hits % 485400 numvn react 1 igb0:que 5 > 17 17 100 179227 frevn pdwak 1 igb0:que 6 > 147 pdpgs 4 igb0:que 7 > Disks da0 da1 da2 da3 da4 da5 da6 intrn igb0:link > KB/t 20.12 19.75 19.75 20.00 19.62 20.00 0.00 5096864 wire 196 ciss0 274 > tps 31 31 31 31 31 31 0 330628 act 27 cpu1:timer > MB/s 0.61 0.60 0.60 0.60 0.59 0.60 0.00 14524764 inact 6 cpu18:time > %busy 15 13 16 16 18 15 0 cache 7 cpu8:timer > 4515744 free 3 cpu10:time > 2 cpu16:time > > 'buf' is not important, but 'free' is. > > The last line is not available for the main display, but is used for the > cpu16:time. This line is used for input, > so and everything displayed on it is cleared for input and then messed up > in an uglier way by redisplaying only parts (for the cpu16: field, the > count is re-displayed on screen refresh but the description is not > re-displayed without a switch to another screen and back). > > The interrupts column and the input line are generally broken. With > 24 CPUs and also some other per-cpu interrupt counts, it takes about > a 200-row terminal to display all the interrupts and then 1 more row > to stop the input line running into the interrupts. The rest of the > display is tuned for 25 rows and looks strange when it is 7/8 unused. > Per-CPU interrupts are also miscounted in totals... > > Bruce From owner-svn-src-user@freebsd.org Fri Oct 7 23:52:31 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A2322C05917 for ; Fri, 7 Oct 2016 23:52:31 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 70267D67; Fri, 7 Oct 2016 23:52:31 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u97NqUJ8079566; Fri, 7 Oct 2016 23:52:30 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u97NqUNK079565; Fri, 7 Oct 2016 23:52:30 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201610072352.u97NqUNK079565@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 7 Oct 2016 23:52:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306833 - user/alc/PQ_LAUNDRY/usr.bin/systat X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Oct 2016 23:52:31 -0000 Author: markj Date: Fri Oct 7 23:52:30 2016 New Revision: 306833 URL: https://svnweb.freebsd.org/changeset/base/306833 Log: Revert the systat modifications from r306831. The information provided by the rate of page reclaimation shortfalls doesn't really justify the extra space required to display it. The occurrence of shortfall can be deduced from information that's already available in the vmstat display. Reported by: bde Modified: user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c Modified: user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c ============================================================================== --- user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c Fri Oct 7 22:25:07 2016 (r306832) +++ user/alc/PQ_LAUNDRY/usr.bin/systat/vmstat.c Fri Oct 7 23:52:30 2016 (r306833) @@ -95,7 +95,6 @@ static struct Info { u_int v_reactivated; /* number of pages reactivated by pagedaemon */ u_int v_pdwakeups; /* number of times daemon has awaken from sleep */ u_int v_pdpages; /* number of pages analyzed by daemon */ - u_int v_pdshortfalls; /* number of page reclaimation shortfalls */ u_int v_dfree; /* pages freed by daemon */ u_int v_pfree; /* pages freed by exiting processes */ @@ -340,15 +339,14 @@ labelkre(void) mvprintw(VMSTATROW + 8, VMSTATCOL + 9, "react"); mvprintw(VMSTATROW + 9, VMSTATCOL + 9, "pdwak"); mvprintw(VMSTATROW + 10, VMSTATCOL + 9, "pdpgs"); - mvprintw(VMSTATROW + 11, VMSTATCOL + 9, "pdshort"); - mvprintw(VMSTATROW + 12, VMSTATCOL + 9, "intrn"); - mvprintw(VMSTATROW + 13, VMSTATCOL + 9, "wire"); - mvprintw(VMSTATROW + 14, VMSTATCOL + 9, "act"); - mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "inact"); - mvprintw(VMSTATROW + 16, VMSTATCOL + 9, "laund"); - mvprintw(VMSTATROW + 17, VMSTATCOL + 9, "free"); - if (LINES - 1 > VMSTATROW + 18) - mvprintw(VMSTATROW + 18, VMSTATCOL + 9, "buf"); + mvprintw(VMSTATROW + 11, VMSTATCOL + 9, "intrn"); + mvprintw(VMSTATROW + 12, VMSTATCOL + 9, "wire"); + mvprintw(VMSTATROW + 13, VMSTATCOL + 9, "act"); + mvprintw(VMSTATROW + 14, VMSTATCOL + 9, "inact"); + mvprintw(VMSTATROW + 15, VMSTATCOL + 9, "laund"); + mvprintw(VMSTATROW + 16, VMSTATCOL + 9, "free"); + if (LINES - 1 > VMSTATROW + 17) + mvprintw(VMSTATROW + 17, VMSTATCOL + 9, "buf"); mvprintw(GENSTATROW, GENSTATCOL, " Csw Trp Sys Int Sof Flt"); @@ -517,15 +515,14 @@ showkre(void) PUTRATE(v_reactivated, VMSTATROW + 8, VMSTATCOL, 8); PUTRATE(v_pdwakeups, VMSTATROW + 9, VMSTATCOL, 8); PUTRATE(v_pdpages, VMSTATROW + 10, VMSTATCOL, 8); - PUTRATE(v_pdshortfalls, VMSTATROW + 11, VMSTATCOL, 8); - PUTRATE(v_intrans, VMSTATROW + 12, VMSTATCOL, 8); - putint(pgtokb(s.v_wire_count), VMSTATROW + 13, VMSTATCOL, 8); - putint(pgtokb(s.v_active_count), VMSTATROW + 14, VMSTATCOL, 8); - putint(pgtokb(s.v_inactive_count), VMSTATROW + 15, VMSTATCOL, 8); - putint(pgtokb(s.v_laundry_count), VMSTATROW + 16, VMSTATCOL, 8); - putint(pgtokb(s.v_free_count), VMSTATROW + 17, VMSTATCOL, 8); - if (LINES - 1 > VMSTATROW + 18) - putint(s.bufspace / 1024, VMSTATROW + 18, VMSTATCOL, 8); + PUTRATE(v_intrans, VMSTATROW + 11, VMSTATCOL, 8); + putint(pgtokb(s.v_wire_count), VMSTATROW + 12, VMSTATCOL, 8); + putint(pgtokb(s.v_active_count), VMSTATROW + 13, VMSTATCOL, 8); + putint(pgtokb(s.v_inactive_count), VMSTATROW + 14, VMSTATCOL, 8); + putint(pgtokb(s.v_laundry_count), VMSTATROW + 15, VMSTATCOL, 8); + putint(pgtokb(s.v_free_count), VMSTATROW + 16, VMSTATCOL, 8); + if (LINES - 1 > VMSTATROW + 17) + putint(s.bufspace / 1024, VMSTATROW + 17, VMSTATCOL, 8); PUTRATE(v_vnodein, PAGEROW + 2, PAGECOL + 6, 5); PUTRATE(v_vnodeout, PAGEROW + 2, PAGECOL + 12, 5); PUTRATE(v_swapin, PAGEROW + 2, PAGECOL + 19, 5); @@ -789,7 +786,6 @@ getinfo(struct Info *ls) GETSYSCTL("vm.stats.vm.v_reactivated", ls->v_reactivated); GETSYSCTL("vm.stats.vm.v_pdwakeups", ls->v_pdwakeups); GETSYSCTL("vm.stats.vm.v_pdpages", ls->v_pdpages); - GETSYSCTL("vm.stats.vm.v_pdshortfalls", ls->v_pdshortfalls); GETSYSCTL("vm.stats.vm.v_dfree", ls->v_dfree); GETSYSCTL("vm.stats.vm.v_pfree", ls->v_pfree); GETSYSCTL("vm.stats.vm.v_tfree", ls->v_tfree); From owner-svn-src-user@freebsd.org Sat Oct 8 00:07:22 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 30782C05D6B for ; Sat, 8 Oct 2016 00:07:22 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EA566617; Sat, 8 Oct 2016 00:07:21 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u9807LVV083503; Sat, 8 Oct 2016 00:07:21 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u9807Lrd083502; Sat, 8 Oct 2016 00:07:21 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201610080007.u9807Lrd083502@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Sat, 8 Oct 2016 00:07:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r306835 - user/alc/PQ_LAUNDRY/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Oct 2016 00:07:22 -0000 Author: alc Date: Sat Oct 8 00:07:20 2016 New Revision: 306835 URL: https://svnweb.freebsd.org/changeset/base/306835 Log: Revert one line of r306595. The variable "shortfall" is reset each time that the laundry thread wakes up, so it can't be used to tell if a shortfall laundering is in progress. Reviewed by: markj Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c ============================================================================== --- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Sat Oct 8 00:01:07 2016 (r306834) +++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Sat Oct 8 00:07:20 2016 (r306835) @@ -1217,7 +1217,7 @@ dolaundry: * a cluster minus one. */ target -= min(vm_pageout_launder(domain, launder, - shortfall > 0), target); + prev_shortfall > 0), target); /* * Sleep for a little bit if we're in the middle of a laundering From owner-svn-src-user@freebsd.org Sat Oct 8 00:32:21 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3576CAF730B for ; Sat, 8 Oct 2016 00:32:21 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail108.syd.optusnet.com.au (mail108.syd.optusnet.com.au [211.29.132.59]) by mx1.freebsd.org (Postfix) with ESMTP id EC8193C5; Sat, 8 Oct 2016 00:32:20 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c122-106-149-109.carlnfd1.nsw.optusnet.com.au (c122-106-149-109.carlnfd1.nsw.optusnet.com.au [122.106.149.109]) by mail108.syd.optusnet.com.au (Postfix) with ESMTPS id 02D801A2A7D; Sat, 8 Oct 2016 11:12:45 +1100 (AEDT) Date: Sat, 8 Oct 2016 11:12:40 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Mark Johnston cc: Bruce Evans , src-committers@freebsd.org, svn-src-user@freebsd.org Subject: Re: svn commit: r306831 - in user/alc/PQ_LAUNDRY/usr.bin: systat vmstat In-Reply-To: <20161007235236.GC65501@wkstn-mjohnston.west.isilon.com> Message-ID: <20161008105722.U3341@besplex.bde.org> References: <201610072217.u97MHh08042582@repo.freebsd.org> <20161008093219.O2989@besplex.bde.org> <20161007235236.GC65501@wkstn-mjohnston.west.isilon.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=EfU1O6SC c=1 sm=1 tr=0 a=R/f3m204ZbWUO/0rwPSMPw==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=_9EzZIGtKA1D0DcN19MA:9 a=CjuIK1q_8ugA:10 a=chvjmp5bT-K0Np4W8Gpx:22 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Oct 2016 00:32:21 -0000 On Fri, 7 Oct 2016, Mark Johnston wrote: > On Sat, Oct 08, 2016 at 10:35:59AM +1100, Bruce Evans wrote: >> On Fri, 7 Oct 2016, Mark Johnston wrote: >> >>> Log: >>> Teach vmstat and systat about v_pdshortfalls. >> >> systat has a negative amount of space available for expansion. > > Hm, I see. I'll revert the systat modifications then. It isn't > particularly handy to have the rate of shortfall wakeups given what's > already available in the vmstat display. Thanks. If you have important new fields to display, then it is a problem to find space for them. Probably needs another screen. The -v screen is already very dense but only partly well-organized. I would move the swap stats off it first, since I haven't used swap for almost 20 years. I also find the top lines with memory statistics almost useless. The least useful vm fields seem to be ozfod, %ozfod, intrn and cache, and the most useless field is still 'buf'. Bruce