ƒ¸251507 139 222 205 229 629 257 811 251 474 453 312 260 245 224 2253 145 265 242 894 299 317 166 148 168 157 141 848 848 196 196 307 307 636 438 320 318 354 288 635 294 154 722 110 522 387 441 504 292 176 119 443 869 356 434 138 828 368 206 111 214 279 250 206 426 506 283 154 804 403 311 186 337 133 543 270 176 267 267 688 267 224 123 1401 697 364 319 173 171 217 217 162 101 193 203 1151 329 99 99 297 296 160 240 159 240 160 228 165 152 225 226 298 581 557 241 240 218 240 243 247 191 248 234 645 217 404 262 218 262 276 228 278 290 239 298 456 8009 136 296 300 726 K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-07T20:21:30.288794Z K 7 svn:log V 125 Make 'portsnap alfred' overwrite ports tree if it's not created by a portsnap. Discussed with: alfred Reviewed by: cperciva END K 10 svn:author V 6 andrew K 8 svn:date V 27 2013-06-07T21:06:19.779871Z K 7 svn:log V 109 Remove an extra copy of _setjmp from libstand. We have used the libc version of this function since r183876. END K 10 svn:author V 6 andrew K 8 svn:date V 27 2013-06-07T21:13:28.952077Z K 7 svn:log V 133 Include machine/setjmp.h to get the definition of _JB_MAGIC__SETJMP. This allows us to remove it from the ARM copy of machine/asm.h. END K 10 svn:author V 6 andrew K 8 svn:date V 27 2013-06-07T21:23:11.053812Z K 7 svn:log V 533 Reduce the difference to NetBSD. * Stop pretending we support anything other than ELF by removing code surrounded by #ifdef __ELF__ ... #endif. * Remove _JB_MAGIC_SETJMP and _JB_MAGIC__SETJMP, they are defined in setjmp.h, which is able to be included from asm. * Fix the spelling of dependent. * Rename END _END and add END and ASEND to complement ENTRY and ASENTRY respectively * Add macros to simplify accessing the Global Offset Table, some of these will be used in the upcoming update to the setjmp functions. END K 10 svn:author V 6 obrien K 8 svn:date V 27 2013-06-07T21:39:46.972819Z K 7 svn:log V 161 MF9: r237968, r251504: MFC: r251368, r251382: Match the options of the kernel. MFC: r237279: install filemon.h into /usr/include for userland consumption. END K 10 svn:author V 6 emaste K 8 svn:date V 27 2013-06-07T21:40:02.109189Z K 7 svn:log V 715 Add a new knob WITH_DEBUG_FILES to control the building of standalone debug files for userland programs and libraries. The "-g" debug flag is automatically applied when WITH_DEBUG_FILES is set. The debug files are now named ${prog}.debug and ${shlib}.debug for consistency with other systems and documentation. In addition they are installed under /usr/lib/debug, to simplify the process of installing them if needed after a crash. Users of bsd.{prog,lib}.mk outside of the base system place the standalone debug files in a .debug subdirectory. GDB automatically searches both of these directories for standalone debug files. Thanks to everyone who contributed changes, review, and testing during development. END K 10 svn:author V 6 emaste K 8 svn:date V 27 2013-06-07T21:51:10.734751Z K 7 svn:log V 155 Add WITH_DEBUG_FILES makeman currently generates a src.conf that claims every option also enforces WITHOUT_BIND_UTILS, so I applied this section by hand. END K 10 svn:author V 6 andrew K 8 svn:date V 27 2013-06-07T22:01:06.122158Z K 7 svn:log V 378 Finish pulling in the NetBSD setjmp/longjmp updates on ARM. Store/restore the VFP registers in setjmp/longjmp on ARM EABI if VFP is enabled in the kernel. It checks the hw.floatingpoint sysctl to see if floating-point is available and uses this to determine if it should store them. If it does it uses a different magic value so longjmp is able to know if it should load them. END K 10 svn:author V 8 hselasky K 8 svn:date V 27 2013-06-07T22:35:58.582500Z K 7 svn:log V 355 Fix some recent regression issues: 1) Only multi-TD isochronous transfers should use NORMAL type after specific type as per XHCI specification. 2) BEI bit is only available in NORMAL and ISOCHRONOUS TRB types. Don't use this bit for other types to avoid hardware asserts. Reserved bits should be don't care though ... MFC after: 1 week PR: usb/179342 END K 10 svn:author V 6 sbruno K 8 svn:date V 27 2013-06-08T02:54:59.348371Z K 7 svn:log V 216 Implement foreign volume handling. Allows admins to view foreign metadata and clear or import it for use. PR: kern/172091 Submitted by: smh@freebsd.org Reviewed by: jhb@freebsd.org MFC after: 2 weeks END K 10 svn:author V 6 andrew K 8 svn:date V 27 2013-06-08T07:16:22.734139Z K 7 svn:log V 164 Merge in changes from NetBSD: * Remove support for non-elf files. * Add the VFP setjmp magic numbers. * Add the offsets for the VFP registers within the buffer. END K 10 svn:author V 2 np K 8 svn:date V 27 2013-06-08T07:23:26.378185Z K 7 svn:log V 153 cxgbe/tom: Fix bad signed/unsigned mixup in the stid allocator. This fixes a panic when allocating a mixture of IPv6 and IPv4 stids. MFC after: 1 week END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-08T08:51:22.674991Z K 7 svn:log V 127 Update vendor-sys/illumos/dist to illumos-gate 14041:cb4a51285eeb Illumos ZFS issues: 3805 arc shouldn't cache freed blocks END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-08T09:11:20.502726Z K 7 svn:log V 2155 MFV r251519: * Illumos ZFS issue #3805 arc shouldn't cache freed blocks Quote from the Illumos issue: ZFS should proactively evict freed blocks from the cache. Even though these freed blocks will never be used again, and thus will eventually be evicted, this causes us to use memory inefficiently for 2 reasons: 1. A block that is freed has no chance of being accessed again, but will be kept in memory preferentially to a block that was accessed before it (and is thus older) but has not been freed and thus has at least some chance of being accessed again. 2. We partition the ARC into several buckets: user data that has been accessed only once (MRU) metadata that has been accessed only once (MRU) user data that has been accessed more than once (MFU) metadata that has been accessed more than once (MFU) The user data vs metadata split is somewhat arbitrary, and the primary control on how much memory is used to cache data vs metadata is to simply try to keep the proportion the same as it has been in the past (each bucket "evicts against" itself). The secondary control is to evict data before evicting metadata. Because of this bucketing, we may end up with one bucket mostly containing freed blocks that are very old, while another bucket has more recently accessed, still-allocated blocks. Data in the useful bucket (with still-allocated blocks) may be evicted in preference to data in the useless bucket (with old, freed blocks). On dcenter, we saw that the MFU metadata bucket was 230MB, while the MFU data bucket was 27GB and the MRU metadata bucket was 256GB. However, the vast majority of data in the MRU metadata bucket (256GB) was freed blocks, and thus useless. Meanwhile, the MFU metadata bucket (230MB) was constantly evicting useful blocks that will be soon needed. The problem of cache segmentation is a larger problem that needs more investigation. However, if we stop caching freed blocks, it should reduce the impact of this more fundamental issue. MFC after: 2 weeks END K 10 svn:author V 3 hrs K 8 svn:date V 27 2013-06-08T12:10:52.884548Z K 7 svn:log V 53 Document that CVS repository is no longer supported. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2013-06-08T13:02:43.183071Z K 7 svn:log V 168 Separate LIO_SYNC processing into a separate function aio_process_sync(), and rename aio_process() into aio_process_rw(). Reviewed by: kib Sponsored by: Nginx, Inc. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2013-06-08T13:13:40.938270Z K 7 svn:log V 145 Make sys_mlock() function just a wrapper around vm_mlock() function that does all the job. Reviewed by: kib, jilles Sponsored by: Nginx, Inc. END K 10 svn:author V 2 ed K 8 svn:date V 27 2013-06-08T13:19:11.335426Z K 7 svn:log V 802 Add proper __sync_*() intrinsics for MIPS. To make work on MIPS (and ARM) using GCC, we need to provide implementations of the __sync_*() functions. I already added these functions for 4 and 8 byte types to libcompiler-rt some time ago, based on top of . Unfortunately, only provides a subset of the features needed to implement . This means that in some cases we had to do compare-and-exchange calls in loops, where a simple ll/sc would suffice. Also implement these functions for 1 and 2 byte types. MIPS only provides ll/sc instructions for 4 and 8 byte types, but this is of course no limitation. We can simply load 4 bytes and use some bitmask tricks to modify only the bytes affected. Discussed on: mips, arch Tested with: QEMU END K 10 svn:author V 2 ed K 8 svn:date V 27 2013-06-08T13:22:53.404431Z K 7 svn:log V 207 Use improved __sync_*() intrinsics for MIPS in userspace as well. r251524 introduced custom tailored versions for MIPS of these functions for kernel-space code. We can just reuse them in userspace as well. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2013-06-08T13:27:57.223023Z K 7 svn:log V 220 Add new system call - aio_mlock(). The name speaks for itself. It allows to perform the mlock(2) operation, which can consume a lot of time, under control of aio(4). Reviewed by: kib, jilles Sponsored by: Nginx, Inc. END K 10 svn:author V 7 glebius K 8 svn:date V 27 2013-06-08T13:30:13.392204Z K 7 svn:log V 70 aio_mlock() added: - Regen for r251526. - Bump __FreeBSD_version. END K 10 svn:author V 3 hrs K 8 svn:date V 27 2013-06-08T13:40:36.426041Z K 7 svn:log V 56 s/RELEASE_8_4_0/RELENG_8_4_0_RELEASE/ Spotted by: nyan END K 10 svn:author V 6 jilles K 8 svn:date V 27 2013-06-08T13:45:43.386967Z K 7 svn:log V 73 sigaction(2): Document various non-POSIX functions as async-signal safe. END K 10 svn:author V 3 hrs K 8 svn:date V 27 2013-06-08T13:45:43.496657Z K 7 svn:log V 65 One more s/RELEASE_8_4_0/RELENG_8_4_0_RELEASE/ Spotted by: nyan END K 10 svn:author V 3 hrs K 8 svn:date V 27 2013-06-08T13:48:27.057622Z K 7 svn:log V 49 Revert the previous change and fix the tag name. END K 10 svn:author V 5 markj K 8 svn:date V 27 2013-06-08T15:45:01.393230Z K 7 svn:log V 753 MFC r235647 for newsyslog (by gleb): Hide DIR definition by making it an opaque struct typedef. Introduce dirfd() libc exported symbol replacing macro with same name, preserve _dirfd() macro for internal use. Replace dirp->dd_fd with dirfd() call. Avoid using dirfd as variable name to prevent shadowing global symbol. MFC r250545: Some filesystems (NFS in particular) do not fill out the d_type field when returning directory entries through readdir(3). In this case we need to obtain the file type ourselves; otherwise newsyslog -t will not be able to find archived log files and will fail to both delete old log files and to do interval-based rotations properly. MFC r251240: We want to stat the archived log file rather than the logfile itself. END K 10 svn:author V 5 markj K 8 svn:date V 27 2013-06-08T15:46:09.062315Z K 7 svn:log V 753 MFC r235647 for newsyslog (by gleb): Hide DIR definition by making it an opaque struct typedef. Introduce dirfd() libc exported symbol replacing macro with same name, preserve _dirfd() macro for internal use. Replace dirp->dd_fd with dirfd() call. Avoid using dirfd as variable name to prevent shadowing global symbol. MFC r250545: Some filesystems (NFS in particular) do not fill out the d_type field when returning directory entries through readdir(3). In this case we need to obtain the file type ourselves; otherwise newsyslog -t will not be able to find archived log files and will fail to both delete old log files and to do interval-based rotations properly. MFC r251240: We want to stat the archived log file rather than the logfile itself. END K 10 svn:author V 5 markj K 8 svn:date V 27 2013-06-08T15:46:42.666360Z K 7 svn:log V 101 MFC r250941: Include descriptions of the flags and fields printed when dumping the IPv6 prefix list. END K 10 svn:author V 5 markj K 8 svn:date V 27 2013-06-08T15:47:18.897638Z K 7 svn:log V 101 MFC r250941: Include descriptions of the flags and fields printed when dumping the IPv6 prefix list. END K 10 svn:author V 5 markj K 8 svn:date V 27 2013-06-08T15:48:01.706680Z K 7 svn:log V 212 MFC r250939: Correct the description of the -a option: rtsol(d) -a will in fact send out router solicitations on multiple interfaces. MFC r251059: - Fix wording. - Improve the descriptions in the FILES section. END K 10 svn:author V 5 markj K 8 svn:date V 27 2013-06-08T15:48:29.172960Z K 7 svn:log V 212 MFC r250939: Correct the description of the -a option: rtsol(d) -a will in fact send out router solicitations on multiple interfaces. MFC r251059: - Fix wording. - Improve the descriptions in the FILES section. END K 10 svn:author V 6 rpaulo K 8 svn:date V 27 2013-06-08T16:02:31.753393Z K 7 svn:log V 540 Import Kevin Lo's port of urtwn(4) from OpenBSD. urtwn(4) is a driver for the Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless cards. This driver requires microcode which is available in FreeBSD ports: net/urtwn-firmware-kmod. Hiren ported the urtwn(4) man page from OpenBSD and Glen just commited a port for the firmware. TODO: - 802.11n support - Stability fixes - the driver can sustain lots of traffic but has trouble coping with simultaneous iperf sessions. - fix debugging MFC after: 2 months Tested by: kevlo, hiren, gjb END K 10 svn:author V 2 ed K 8 svn:date V 27 2013-06-08T16:24:49.003863Z K 7 svn:log V 346 Actually make the 2-byte atomics work. Even though I tested the 1-byte operations on arbitrarily aligned bytes, it seems I did not do this for the 2-byte operations. Create easy to read functions that are used to get/put bytes and halfwords in words. To keep the compiler happy, explicitly read two bytes into a union to obtain a 16-bit value. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T16:28:08.597685Z K 7 svn:log V 224 Remove extraneous characters ('<<<') from `Exit' menutag in the "Security" and "Startup"->"Misc" modules to make the menus appear more consistent with the numerous other modules and look a little cleaner. PR: ports/169316 END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T16:49:19.527015Z K 7 svn:log V 222 Reduce verbosity in the "Console"->"Saver" module (bsdconfig syscons_saver) by replacing the infinitive [verb] phrase "Simply blank the screen" with a simple description of what you get; "Blank screen". PR: ports/169316 END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T17:36:31.724151Z K 7 svn:log V 258 Fix a regression in the "Login Management" module introduced by r251242 in which choosing to cancel the manual input of expiration time (in seconds since the UNIX epoch) for either account expiration or password expiration would see the original value lost. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T17:46:39.259918Z K 7 svn:log V 192 Track defaultitem in the password and account expiry menus; if the user presses ESC or chooses Cancel/No in any of the sub-menus, we want to return to the expiry menu with that item selected. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T18:08:17.799494Z K 7 svn:log V 539 Check for ESC as a separate choice from "NO" when asking if the operator would like to disable password management for an account while adding either a user or group. When being prompted to answer questions while adding a group or user, two things are trow: 1. You can hit ENTER to blast through all the questions and in the end, the group or user is created with sensible defaults for all values. 2. You can press ESC during any prompt to cancel the operation as a whole. This fix is shoring up an inconsistency in the latter (#2). END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T18:13:42.015309Z K 7 svn:log V 198 Fix a regression introduced by r251544; if user chooses "NO" when being asked if they would like to disable password authentication for the account, loop back to prompt them for the password again. END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2013-06-08T18:16:41.803944Z K 7 svn:log V 58 Update locking scheme, mostly transition from sched_lock. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T18:23:41.878759Z K 7 svn:log V 626 Curb another regression (this one introduced by r251545, itself trying to fix the regression introduced by r251544; which was trying to make things consistent w/respect to ESC versus YES versus NO in the password disable prompt in "Login Management". (need stronger coffee; very sorry for the churn) With this revision, the "YES", "NO", and implied ESC options all work as- expected. Choosing "YES" allows you to proceed and the password will be disabled. Choosing "NO" will bring back around to enter a password for the account. Pressing ESC will drop you out of either user or group input and back to the usermgmt screen. END K 10 svn:author V 7 pluknet K 8 svn:date V 27 2013-06-08T18:25:08.889535Z K 7 svn:log V 14 Minor markup. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T19:13:49.351167Z K 7 svn:log V 426 Add a prompt to the "Add User" and "Add Group" sub-menu items (under the "Login Management" module): Use default values for all account details? If you select "Yes" (the default is "No"), you'll jump past all the prompts and jump straight to the review screen with all-default values. Makes adding a lot of users/groups faster/easier if you don't need to customize more than one or two different values from their defaults. END K 10 svn:author V 6 adrian K 8 svn:date V 27 2013-06-08T20:12:14.220457Z K 7 svn:log V 291 Add support for two new winbond SPI flash parts. The 8devices carambola 2 board uses the 16MB part. Here's how it looks: spibus0: on spi0 mx25l0: at cs 0 on spibus0 mx25l0: w25q128, sector 65536 bytes, 256 sectors Tested: * 8devices Carambola 2 board END K 10 svn:author V 6 adrian K 8 svn:date V 27 2013-06-08T20:21:17.466379Z K 7 svn:log V 345 Add 8devices CARAMBOLA2 support. This is based on the AR933x (Hornet) SoC from Qualcomm Atheros. It's a much nicer board to do development on - 64MB RAM, 16MB flash. The development board breaks out the GPIO pins, ethernet, serial (via a USB<->RS232 chip), USB host and of course a small wifi antenna. Everything but the wifi works thus far. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T20:27:16.163488Z K 7 svn:log V 408 Fix a one-character typo. The effects of which were "Console"->"Ttys" menu would not launch (and gave no error). This was easily diagnosed by running `bsdconfig -d' as root and seeing the following error right after selecting the "Ttys" sub-menu: DEBUG: f_getvar: var=[text] value=[ Error: Expected at least 6 tokens for --menu, have 4. Use --help to list options.] r=0 Typo was introduced by SVN r251361. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T20:43:13.440856Z K 7 svn:log V 196 Prevent getting hung-up on the following prompt (found while testing with `chflags schg /etc/ttys'): override rw-r--r-- root/wheel for /etc/ttys? (y/n [n]) Simply by adding `-f' flag to mv(1). END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T20:47:43.488512Z K 7 svn:log V 81 Don't silently ignore errors (found while testing with `chflags schg /etc/ttys). END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T21:11:26.686374Z K 7 svn:log V 24 Fix a typo in comments. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T21:33:09.506917Z K 7 svn:log V 347 Fix a bug introduced with r249751, in which a small hunk was forgotten in the performance conversion process. The effect of this was, when your /etc/defaults/rc.conf file changed (based on md5(1)) and re-generating the file startup_rcconf_map.cache in /var/run/bsdconfig/ you would get a screen-dump of its contents before the menu would appear. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-08T21:45:32.045939Z K 7 svn:log V 773 Fix a bug introduced with r251190, in which a small hunk was forgotten in the performance conversion process. The effect of this was the following error when selecting the menu "Startup"->"View/Edit Startup Configuration"->"Add New"->"Add From List": [: -eq: unexpected operator By running `bsdconfig -d' as root to enable debugging, this turns into: DEBUG: f_getvar: var=[text] value=[ Error: Expected a number for token 4 of --menu. Use --help to list options.] r=0 [: -eq: unexpected operator Indicating that the fourth token for --menu which should be $height was instead a string (the first item of $menu_list) because it was using the old size-calculation method and $size was now null (needed to use instead the new size variables of $height $width and $rows). END K 10 svn:author V 2 ed K 8 svn:date V 27 2013-06-08T22:44:49.185252Z K 7 svn:log V 264 Add testing utility for behavior of atomic ops. This small utility performs a sequence of atomic operations with random parameters on an atomic variable. For every type, we also create 16 variables, to ensure that we test the correctness at different alignments. END K 10 svn:author V 2 ed K 8 svn:date V 27 2013-06-08T23:45:11.333576Z K 7 svn:log V 342 Merge the 1 and 2 byte versions of the atomic functions into one. After pushing in my fix for the 2 byte functions, I realized that the functions for 1 and 2 byte operations had become identical. Reduce the code size by merging the functions for 1 and 2 byte operations together. While there, slightly improve variable naming and comments. END K 10 svn:author V 4 bapt K 8 svn:date V 27 2013-06-08T23:48:13.740109Z K 7 svn:log V 45 Fix a bad calloc(3) call MFC after: 2 weeks END K 10 svn:author V 3 pfg K 8 svn:date V 27 2013-06-09T01:19:22.858206Z K 7 svn:log V 735 libstand: Reset the seek pointer in ext2fs as done in UFS. Based on r134760: Reset the seek pointer to 0 when a file is successfully opened, since otherwise the initial seek offset will contain the directory offset of the filesystem block that contained its directory entry. This bug was mostly harmless because typically the directory is less than one filesystem block in size so the offset would be zero. It did however generally break loading a kernel from the (large) kernel compile directory. Also reset the seek pointer when a new inode is opened in read_inode(), though this is not actually necessary now because all callers set it afterwards. PR: 177328 Submitted by: Eric van Gyzen Reviewed by: iedowse MFC after: 5 days END K 10 svn:author V 3 pfg K 8 svn:date V 27 2013-06-09T01:38:51.450956Z K 7 svn:log V 275 e2fs_bpg and e2fs_isize are always unsigned. The superblock in ext2fs defines all the fields as unsigned but for some reason the in-memory superblock was carrying e2fs_bpg and e2fs_isize as signed. We should preserve the specified types for consistency. MFC after: 5 days END K 10 svn:author V 3 gjb K 8 svn:date V 27 2013-06-09T06:13:51.332256Z K 7 svn:log V 113 Add freebsd-update.conf(5) to OptionalObsoleteFiles.inc PR: 179437 Approved by: kib (mentor) MFC after: 1 week END K 10 svn:author V 4 joel K 8 svn:date V 27 2013-06-09T07:15:43.294175Z K 7 svn:log V 18 Minor mdoc fixes. END K 10 svn:author V 2 jh K 8 svn:date V 27 2013-06-09T08:06:26.101885Z K 7 svn:log V 122 Print file names without stdio buffering to avoid mixing buffered and unbuffered ouput. PR: bin/176886 Reviewed by: mjg END K 10 svn:author V 2 ed K 8 svn:date V 27 2013-06-09T08:28:23.973240Z K 7 svn:log V 187 Fix the way atomic_is_lock_free() is defined for Clang. When using Clang atomics, atomic types are not placed in a structure. There is thus no reason why we should get the __val member. END K 10 svn:author V 6 marius K 8 svn:date V 27 2013-06-09T12:39:21.661180Z K 7 svn:log V 154 MFC: r249213 (partial) - Remove unused headers from the SRCS of some modules. - Use __FBSDID. - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers. END K 10 svn:author V 6 marius K 8 svn:date V 27 2013-06-09T12:46:41.943599Z K 7 svn:log V 110 MFC: r251115 - Remove pointless returns. - Make cm_data a void pointer and cm_flags unsigned as appropriate. END K 10 svn:author V 6 marius K 8 svn:date V 27 2013-06-09T12:51:42.897510Z K 7 svn:log V 330 MFC: r251133 - Merge from r249476: Ensure that PCI bus BUS_GET_DMA_TAG() method sees the actual PCI device which makes the request for DMA tag, instead of some descendant of the PCI device, by creating a pass-through trampoline. - Sprinkle const on tables. - Use NULL instead of 0 for pointers. - Take advantage of nitems(). END K 10 svn:author V 6 marius K 8 svn:date V 27 2013-06-09T12:55:44.584919Z K 7 svn:log V 410 MFC: r251142 - As a follow-up to r247565 (MFC'ed to stable/9 in r248036), make firmware images that do not require patching at runtime actually const. - Remove pointless softc members by employing the corresponding constants directly. - Remove pointless returns. - Remove unnecessary inclusion of opt_device_polling.h. - Replace an outdated and now bogus comment in bce_tick() with the appropriate one. END K 10 svn:author V 6 marius K 8 svn:date V 27 2013-06-09T13:17:52.797959Z K 7 svn:log V 187 MFC: r251394 CAM_DEV_QFREEZE handling should only be done on request submission but neither on completion nor by SIM drivers in the first place. This issue has been revealed by r249466. END K 10 svn:author V 6 marius K 8 svn:date V 27 2013-06-09T13:24:16.022875Z K 7 svn:log V 59 MFC: r251402 (partial) Handle/mark/nuke unused arguments. END K 10 svn:author V 6 marius K 8 svn:date V 27 2013-06-09T13:50:14.583528Z K 7 svn:log V 708 MFC: r251146 (partial) - Do not supply arguments as pointers to bce_get_{pg,rx}_buf() that are not altered or actually needed there any longer. - Honor errors passed to the DMA mapping callbacks. - In bce_get_rx_buf(), do not reserve stack space for more DMA segments than actually necessary. - In bce_rx_intr(), remove a pointless check for an empty mbuf pointer which can only happen in case of a severe programming error. Moreover, recovering from that situation would require way more actions with header splitting enabled (which it is by default). - Fix VLAN tagging in the RX path; do not attach the VLAN tag twice if the firmware has been told to keep it. [1] Obtained from: OpenBSD [1] END K 10 svn:author V 6 marius K 8 svn:date V 27 2013-06-09T13:58:37.428626Z K 7 svn:log V 307 MFC: r251159 - Checking for spurious interrupts is only necessary when using INTx. Actually, this may be further optimized for controller variants supporting one-shot MSIs but I'm lacking the necessary hardware for testing. - Add some missing synchronization of the statistics and status DMA maps. END K 10 svn:author V 6 jilles K 8 svn:date V 27 2013-06-09T14:31:59.722888Z K 7 svn:log V 215 Make recv() and send() cancellation points, as required by POSIX. Call the recvfrom() and sendto() functions overridden by libthr instead of the _recvfrom() and _sendto() versions that are not cancellation points. END K 10 svn:author V 3 hrs K 8 svn:date V 27 2013-06-09T15:08:51.243540Z K 7 svn:log V 94 - Remove bge(4) item [*]. - Add jail_parameters incompatibility. Discussed with: yongari [*] END K 10 svn:author V 3 hrs K 8 svn:date V 27 2013-06-09T15:17:38.727079Z K 7 svn:log V 244 - Fix VMDK and VHD header. - Add chunksize and padding parameter to support aligned blocks in rawcopy() and writebuf(). These are required for upcoming VDI support. - Move uuid handling functions to common.c. - Rename member variable names. END K 10 svn:author V 3 hrs K 8 svn:date V 27 2013-06-09T15:19:33.765843Z K 7 svn:log V 41 Add a header file for VDI specification. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-09T15:36:13.398541Z K 7 svn:log V 447 Fix a bug introduced by r251236; product of bug was the following error in "Startup"->"View/Edit Startup Configuration"->"Add New"->"Add From List": [: -eq: unexpected operator NOTE: Previously mentioned in r251557 Problem caused by removal of $retval to capture exit status of call to f_dialog_input_rclist(). While we're here, enhance f_dialog_input_rclist() to accept a default-item to make selecting multiple values to-add more efficient. END K 10 svn:author V 3 hrs K 8 svn:date V 27 2013-06-09T16:33:32.144578Z K 7 svn:log V 177 - Add file system type number (vfc_typenum) in the list. This is useful for debugging when changing vfs.typenumhash configuration. - Refactor fmt_flags(). MFC after: 1 week END K 10 svn:author V 3 hrs K 8 svn:date V 27 2013-06-09T17:40:06.976255Z K 7 svn:log V 84 Fix a bug that the gateway address was not shown when a -gateway modifier was used. END K 10 svn:author V 5 markj K 8 svn:date V 27 2013-06-09T17:47:01.638662Z K 7 svn:log V 172 MFC r247221: Merge part of r1712 from elftoolchain, making it possible to resize ELF sections and indirectly change the layout of an ELF file when ELF_F_LAYOUT is not set. END K 10 svn:author V 5 markj K 8 svn:date V 27 2013-06-09T17:47:16.171917Z K 7 svn:log V 172 MFC r247221: Merge part of r1712 from elftoolchain, making it possible to resize ELF sections and indirectly change the layout of an ELF file when ELF_F_LAYOUT is not set. END K 10 svn:author V 3 hrs K 8 svn:date V 27 2013-06-09T18:11:36.508195Z K 7 svn:log V 595 Add :ifname modifier to specify interface-specific routes into {,ipv6_}static_routes and rc.d/routing. For example: static_routes="foo bar:em0" route_foo="-net 10.0.0.0/24 -gateway 192.168.2.1" route_bar="-net 192.168.1.0/24 -gateway 192.168.0.2" At boot time, all of the static routes are installed as before. The differences are: - "/etc/rc.d/netif start/stop " now configures static routes with : if any. - "/etc/rc.d/routing start/stop " works as well. cannot be omitted when is specified, but a keyword "any" or "all" can be used for and . END K 10 svn:author V 8 rmacklem K 8 svn:date V 27 2013-06-09T21:54:19.924859Z K 7 svn:log V 169 Modify nfsstat.c so that it prints out an error when a non-root user attempts to use the "-m" option and it fails. Requested by: danny@cs.huji.ac.il MFC after: 2 weeks END K 10 svn:author V 6 cognet K 8 svn:date V 27 2013-06-09T22:51:11.705144Z K 7 svn:log V 128 Increase the maximum KVM available on TI chips. Not sure why we suddenly need that much, but that lets me boot with 1GB of RAM. END K 10 svn:author V 6 marcel K 8 svn:date V 27 2013-06-09T23:12:43.562230Z K 7 svn:log V 28 Remove stub implementation. END K 10 svn:author V 6 marcel K 8 svn:date V 27 2013-06-09T23:34:26.382678Z K 7 svn:log V 1304 Change the set and unset ctlreqs by making the index argument optional. This allows setting attributes on tables. One simply does not provide an index in that case. Otherwise the entry corresponding the index has the attribute set or unset. Use this change to fix a relatively longstanding bug in our GPT scheme that's the result of rev 198097 (relatively harmless) followed by rev 237057 (damaging). The damaging part being that our GPT scheme always has the active flag set on the PMBR slice. This is in violation with EFI. Existing EFI implementions for both x86 and ia64 reject the GPT. As such, GPT disks created by us aren't usable under EFI because of that. After this change, GPT disks never have the active flag set on the PMBR slice. In order to make the GPT disk bootable under some x86 BIOSes, the reason of rev 198097, one must now set the active attribute on the gpt table. The kernel will apply this to the PMBR slice For (S)ATA: gpart set -a active ada0 To fix an existing GPT disk that has the active flag set in the PMBR, and that does not need the flag, use (again for (S)ATA): gpart unset -a active ada0 The EBR, MBR & PC98 schemes, which also impement at least 1 attribute, now check to make sure the entry passed is valid. They do not have attributes that apply to the table. END K 10 svn:author V 6 marius K 8 svn:date V 27 2013-06-09T23:50:30.799645Z K 7 svn:log V 601 - The method introduced as part of r234898 for not altering the boot path when booting from ZFS turned out to also cause the boot path not being adjusted if booting from CD-ROM with firmware versions that do not employ the "cdrom" alias in that case. So shuffle the code around instead in order to achieve the original intent. Ideally, we shouldn't fiddle with the boot path when booting from UFS on a disk either; unfortunately, there doesn't seem to be an universal way of telling disks and CD-ROMs apart, though. [1] - Use NULL instead of 0 for pointers. PR: 179289 MFC after: 1 week END K 10 svn:author V 6 marcel K 8 svn:date V 27 2013-06-09T23:51:26.913083Z K 7 svn:log V 268 Add vfs_mounted and vfs_unmounted events so that components can be informed about mount and unmount events. This is used by Juniper to implement a more optimal implementation of NetBSD's veriexec. Submitted by: stevek@juniper.net Obtained from: Juniper Networks, Inc END K 10 svn:author V 3 alc K 8 svn:date V 27 2013-06-10T01:48:21.317097Z K 7 svn:log V 226 Revise the interface between vm_object_madvise() and vm_page_dontneed() so that pointless calls to pmap_is_modified() can be easily avoided when performing madvise(..., MADV_FREE). Sponsored by: EMC / Isilon Storage Division END K 10 svn:author V 3 kib K 8 svn:date V 27 2013-06-10T04:05:18.132374Z K 7 svn:log V 81 MFC r251591: The vm_page lock is not needed around the call to vm_page_insert(). END K 10 svn:author V 3 kib K 8 svn:date V 27 2013-06-10T04:09:14.096175Z K 7 svn:log V 79 MFC r251283: MFamd64: when printing the trap information, show the %esp value. END K 10 svn:author V 3 kib K 8 svn:date V 27 2013-06-10T04:12:48.284647Z K 7 svn:log V 124 MFC r251324: Assert that interrupts are enabled in the trap handlers on x86 before calling generic code to deliver signals. END K 10 svn:author V 3 kib K 8 svn:date V 27 2013-06-10T04:23:11.838046Z K 7 svn:log V 124 MFC r251324: Assert that interrupts are enabled in the trap handlers on x86 before calling generic code to deliver signals. END K 10 svn:author V 6 rpaulo K 8 svn:date V 27 2013-06-10T05:45:16.056631Z K 7 svn:log V 67 Use STRUCT_USB_HOST_ID to make sure we have the right ELF section. END K 10 svn:author V 6 rpaulo K 8 svn:date V 27 2013-06-10T05:45:53.791211Z K 7 svn:log V 7 Regen. END K 10 svn:author V 3 das K 8 svn:date V 27 2013-06-10T06:03:03.340622Z K 7 svn:log V 100 Fix some bugs in the complex trig tests so that they test both double and float precision properly. END K 10 svn:author V 3 das K 8 svn:date V 27 2013-06-10T06:04:58.890263Z K 7 svn:log V 110 Add implementations of acoshl(), asinhl(), and atanhl(). This is a merge of the work done by bde and myself. END K 10 svn:author V 7 yongari K 8 svn:date V 27 2013-06-10T07:31:49.817341Z K 7 svn:log V 1053 Avoid unnecessary controller reinitialization by checking driver running state. fxp(4) requires controller reinitialization for the following cases. o RX lockup condition on i82557 o promiscuous mode change o multicast filter change o WOL configuration o TSO/VLAN hardware tagging/checksum offloading configuration o MAC reprogramming after speed/duplex/flow-control resolution o Any events that result in MAC reprogramming(link UP/DOWN, remote link partner's restart of auto-negotiation etc) o Microcode loading/unloading Apart from above cases which come from hardware limitation, upper stack also blindly reinitializes controller whenever an IP address is assigned. After r194573, fxp(4) no longer needs to reinitialize the controller to program multicast filter after upping the interface. So keeping track of driver running state should remove all unnecessary controller reinitializations. This change will also address endless controller reinitialization triggered by dhclient(8). Tested by: hrs, Alban Hertroys END K 10 svn:author V 6 emaste K 8 svn:date V 27 2013-06-10T13:55:03.560861Z K 7 svn:log V 233 Handle options that override other options This is a workaround for WITH_LDNS_UTILS forcing BIND_UTILS off. It can be reverted when we no longer have these conflicting options, or made more general if we grow more cases like this. END K 10 svn:author V 7 attilio K 8 svn:date V 27 2013-06-10T14:17:10.208236Z K 7 svn:log V 4 MFC END K 10 svn:author V 7 attilio K 8 svn:date V 27 2013-06-10T14:22:04.724166Z K 7 svn:log V 4 MFC END K 10 svn:author V 6 marcel K 8 svn:date V 27 2013-06-10T15:22:27.579284Z K 7 svn:log V 201 Revert r251590. It unexpectedly broke the build and there were some questions on locking. As part of commit-bit grooming, I'd like Steve to handle this, but can't leave things broken in the mean time. END K 10 svn:author V 7 davidcs K 8 svn:date V 27 2013-06-10T17:12:22.486374Z K 7 svn:log V 199 There is a one-to-one correspondence between the MSI-X vector # and the Status Descriptor Ring Index. Hence there is no need to check the Interrupt Source Register. Approved by: George Neville-Neil END K 10 svn:author V 6 adrian K 8 svn:date V 27 2013-06-10T20:10:34.907546Z K 7 svn:log V 65 Add another comment about WB195 (AR9285+AR3011) when using ASPM. END K 10 svn:author V 3 dim K 8 svn:date V 27 2013-06-10T20:36:52.635017Z K 7 svn:log V 147 Vendor import of llvm tags/RELEASE_33/final r183502 (effectively, 3.3 release): http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_33/final@183502 END K 10 svn:author V 3 dim K 8 svn:date V 27 2013-06-10T20:37:56.719485Z K 7 svn:log V 67 Tag llvm tags/RELEASE_33/final r183502 (effectively, 3.3 release). END K 10 svn:author V 3 dim K 8 svn:date V 27 2013-06-10T20:45:12.365358Z K 7 svn:log V 147 Vendor import of clang tags/RELEASE_33/final r183502 (effectively, 3.3 release): http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_33/final@183502 END K 10 svn:author V 3 dim K 8 svn:date V 27 2013-06-10T20:46:07.108726Z K 7 svn:log V 68 Tag clang tags/RELEASE_33/final r183502 (effectively, 3.3 release). END K 10 svn:author V 6 brooks K 8 svn:date V 27 2013-06-10T23:09:45.273190Z K 7 svn:log V 132 MFC r251424: New install flags were merged to 9-STABLE and will appear in FreeBSD-9.2. Sponsored by: DARPA, AFRL Submitted by: ru END K 10 svn:author V 3 pfg K 8 svn:date V 27 2013-06-11T02:47:07.847615Z K 7 svn:log V 73 s/file system/filesystem/g Based on r96755 from UFS. MFC after: 3 days END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-06-11T03:37:29.105818Z K 7 svn:log V 57 Make the default choice for FTP media access use "auto". END K 10 svn:author V 8 hselasky K 8 svn:date V 27 2013-06-11T06:18:51.872625Z K 7 svn:log V 127 MFC r251249, r251251, r251252, r2512, r251254 and r251515: Correct XHCI DMA descriptor programming. Correct maximum IRQ rate. END K 10 svn:author V 8 hselasky K 8 svn:date V 27 2013-06-11T06:22:09.891442Z K 7 svn:log V 128 MFC r251249, r251251, r251252, r251253, r251254 and r251515: Correct XHCI DMA descriptor programming. Correct maximum IRQ rate. END K 10 svn:author V 3 mav K 8 svn:date V 27 2013-06-11T10:06:07.946607Z K 7 svn:log V 205 Don't update provider properties and don't set DISKFLAG_OPEN if d_open() disk method call returned error. GEOM considers devices in such case as still closed, and won't call symmetric d_close() for them. END K 10 svn:author V 3 jhb K 8 svn:date V 27 2013-06-11T15:37:07.147530Z K 7 svn:log V 488 Store a reference to the vnode associated with a file descriptor in the linux_file structure and use it instead of directly accessing td_fpop when destroying the linux_file structure. The td_fpop pointer is not valid when a cdevpriv destructor is run, and the type-specific close method has already been called, so f_vnode may not be valid (and the vnode might have been recycled without our own reference). Tested by: Julian Stecklina MFC after: 1 week END K 10 svn:author V 3 flo K 8 svn:date V 27 2013-06-11T17:46:32.720751Z K 7 svn:log V 464 Move the check whether the clear flag is set. This has 2 advantages - When operating on a core file (-M) and -c is specified we don't clear the message buffer of the running system. - If we don't have permission to clear the buffer print the error message only. That's what Linux does in this case, where this feature was ported from, and it ensures that the error message doesn't get lost in the noise. Discussed with: antoine, cognet Approved by: cognet END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T18:28:25.938355Z K 7 svn:log V 144 Update vendor/illumos/dist and vendor-sys/illumos/dist to illumos-gate 14045:9475b3fef59d Illumos ZFS issues: 3741 zfs needs better comments END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T18:32:47.972986Z K 7 svn:log V 143 Update vendor-sys/illumos/dist to illumos-gate 14046:6a5a2f4a47db Illumos ZFS issues: 3742 zfs comments need cleaner, more consistent style END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T18:34:08.185795Z K 7 svn:log V 121 Update vendor-sys/illumos/dist to illumos-gate 14047:e8c1f215cb15 Illumos ZFS issues: 3743 zfs needs a refcount audit END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T18:35:14.381213Z K 7 svn:log V 143 Update vendor-sys/illumos/dist to illumos-gate 14048:ce96ca723606 Illumos ZFS issues: 3744 zfs shouldn't ignore errors unmounting snapshots END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T18:39:38.102002Z K 7 svn:log V 146 Update vendor/illumos/dist to illumos-gate 14049:4a7f6353bcf0 Illumos ZFS issues: 3745 zpool create should treat -O mountpoint and -m the same END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T18:43:25.526152Z K 7 svn:log V 150 Update vendor/illumos/dist and vendor-sys/illumos/dist to illumos-gate 14050:0c8d9998d589 Illumos ZFS issues: 3747 txg commit callbacks don't work END K 10 svn:author V 7 ghelmer K 8 svn:date V 27 2013-06-11T18:43:27.370258Z K 7 svn:log V 95 Prevent races running the queue by serializing access to the queue directory. PR: bin/113239 END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T18:46:37.630298Z K 7 svn:log V 151 Update vendor-sys/illumos/dist to illumos-gate 14051:849852750426 Illumos ZFS issues: 3749 zfs event processing should work on R/O root filesystems END K 10 svn:author V 7 ghelmer K 8 svn:date V 27 2013-06-11T18:46:46.588902Z K 7 svn:log V 137 Add the name of the file that could not be opened to the error message regarding the failure. Suggested while working on PR bin/113239. END K 10 svn:author V 7 attilio K 8 svn:date V 27 2013-06-11T19:02:10.826696Z K 7 svn:log V 548 - Fix a mismerge which happened recently. - When a page is only read, rather than using indiscriminately page holding, soft busy it. Page hold mechanism is cheaper than wiring but it is also dangerous in a way that it does mostly break LRU. Unless this is absolutely necessary, avoid to hold the page. This patch clens up page busying for all the page copy cases. The only left usage of page holding are vm_fault_hold_pages(), vm_fault_hold() (which should be fixed for the proc_rwmem() case too) and finally exec_map_first_page(). END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T19:02:36.694664Z K 7 svn:log V 120 MFV r251619: ZFS needs better comments. Illumos ZFS issues: 3741 zfs needs better comments MFC after: 2 weeks END K 10 svn:author V 3 jhb K 8 svn:date V 27 2013-06-11T19:05:29.643240Z K 7 svn:log V 311 Bump the CPU/WCPU column width by one so that it fits values from 100% up to 999.99% CPU. It still won't be aligned if you have a multithreaded process using more than 1000% CPU (e.g. idle process on an idle 12-way system), but 100% is a common case. Submitted by: Jeremy Chadwick (partial) MFC after: 1 week END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T19:12:06.456947Z K 7 svn:log V 165 MFV r251620: ZFS comments need cleaner, more consistent style Illumos ZFS issues: 3741 zfs comments need cleaner, more consistent style MFC after: 2 weeks END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T19:16:14.791738Z K 7 svn:log V 121 MFV r251621: ZFS needs a refcount audit Illumos ZFS issues: 3741 zfs needs a refcount audit MFC after: 2 weeks END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T19:22:20.954976Z K 7 svn:log V 165 MFV r251622: ZFS shouldn't ignore errors unmounting snapshots Illumos ZFS issues: 3744 zfs shouldn't ignore errors unmounting snapshots MFC after: 2 weeks END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T19:25:49.100306Z K 7 svn:log V 179 MFV r251623: zpool create should treat -O mountpoint and -m the same Illumos ZFS issues: 3745 zpool create should treat -O mountpoint and -m the same MFC after: 2 weeks END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T19:29:31.734595Z K 7 svn:log V 131 MFV r251624: txg commit callbacks don't work Illumos ZFS issues: 3747 txg commit callbacks don't work MFC after: 2 weeks END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-11T19:35:44.447351Z K 7 svn:log V 181 MFV r251626: ZFS event processing should work on R/O root filesystems Illumos ZFS issues: 3749 zfs event processing should work on R/O root filesystems MFC after: 2 weeks END K 10 svn:author V 3 jhb K 8 svn:date V 27 2013-06-11T20:00:49.659517Z K 7 svn:log V 197 Borrow the algorithm from kvm_getprocs() to fix procstat_getprocs() to handle the case where the process tables grows in between the calls to fetch the size and fetch the table. MFC after: 1 week END K 10 svn:author V 2 np K 8 svn:date V 27 2013-06-11T21:20:23.896836Z K 7 svn:log V 147 cxgbe/tom: Allow caller to select the queue (control or data) used to send the CPL_SET_TCB_FIELD request in t4_set_tcb_field(). MFC after: 1 week END K 10 svn:author V 6 jilles K 8 svn:date V 27 2013-06-11T21:40:20.654974Z K 7 svn:log V 202 pthread_testcancel(3): Update list of cancellation points. This should be a fairly complete list of cancellation points in libc, libthr and librt, including standard as well as non-standard functions. END K 10 svn:author V 6 eadler K 8 svn:date V 27 2013-06-11T21:47:16.556585Z K 7 svn:log V 360 Merge latest NetBSD changes. This adds some new NetBSD releases and makes some simple formatting changes. With this commit NetBSD and FreeBSD should have identical files. DragonflyFBSD has the version immediately prior to this commit. When committing to this file please try to coordinate with all three groups. Submitted by: Alan Barrett END K 10 svn:author V 3 ken K 8 svn:date V 27 2013-06-11T23:19:02.376569Z K 7 svn:log V 7915 MFC NFS FHA changes 249592 and 249596: ------------------------------------------------------------------------ r249592 | ken | 2013-04-17 15:00:22 -0600 (Wed, 17 Apr 2013) | 180 lines Revamp the old NFS server's File Handle Affinity (FHA) code so that it will work with either the old or new server. The FHA code keeps a cache of currently active file handles for NFSv2 and v3 requests, so that read and write requests for the same file are directed to the same group of threads (reads) or thread (writes). It does not currently work for NFSv4 requests. They are more complex, and will take more work to support. This improves read-ahead performance, especially with ZFS, if the FHA tuning parameters are configured appropriately. Without the FHA code, concurrent reads that are part of a sequential read from a file will be directed to separate NFS threads. This has the effect of confusing the ZFS zfetch (prefetch) code and makes sequential reads significantly slower with clients like Linux that do a lot of prefetching. The FHA code has also been updated to direct write requests to nearby file offsets to the same thread in the same way it batches reads, and the FHA code will now also send writes to multiple threads when needed. This improves sequential write performance in ZFS, because writes to a file are now more ordered. Since NFS writes (generally less than 64K) are smaller than the typical ZFS record size (usually 128K), out of order NFS writes to the same block can trigger a read in ZFS. Sending them down the same thread increases the odds of their being in order. In order for multiple write threads per file in the FHA code to be useful, writes in the NFS server have been changed to use a LK_SHARED vnode lock, and upgrade that to LK_EXCLUSIVE if the filesystem doesn't allow multiple writers to a file at once. ZFS is currently the only filesystem that allows multiple writers to a file, because it has internal file range locking. This change does not affect the NFSv4 code. This improves random write performance to a single file in ZFS, since we can now have multiple writers inside ZFS at one time. I have changed the default tuning parameters to a 22 bit (4MB) window size (from 256K) and unlimited commands per thread as a result of my benchmarking with ZFS. The FHA code has been updated to allow configuring the tuning parameters from loader tunable variables in addition to sysctl variables. The read offset window calculation has been slightly modified as well. Instead of having separate bins, each file handle has a rolling window of bin_shift size. This minimizes glitches in throughput when shifting from one bin to another. sys/conf/files: Add nfs_fha_new.c and nfs_fha_old.c. Compile nfs_fha.c when either the old or the new NFS server is built. sys/fs/nfs/nfsport.h, sys/fs/nfs/nfs_commonport.c: Bring in changes from Rick Macklem to newnfs_realign that allow it to operate in blocking (M_WAITOK) or non-blocking (M_NOWAIT) mode. sys/fs/nfs/nfs_commonsubs.c, sys/fs/nfs/nfs_var.h: Bring in a change from Rick Macklem to allow telling nfsm_dissect() whether or not to wait for mallocs. sys/fs/nfs/nfsm_subs.h: Bring in changes from Rick Macklem to create a new nfsm_dissect_nonblock() inline function and NFSM_DISSECT_NONBLOCK() macro. sys/fs/nfs/nfs_commonkrpc.c, sys/fs/nfsclient/nfs_clkrpc.c: Add the malloc wait flag to a newnfs_realign() call. sys/fs/nfsserver/nfs_nfsdkrpc.c: Setup the new NFS server's RPC thread pool so that it will call the FHA code. Add the malloc flag argument to newnfs_realign(). Unstaticize newnfs_nfsv3_procid[] so that we can use it in the FHA code. sys/fs/nfsserver/nfs_nfsdsocket.c: In nfsrvd_dorpc(), add NFSPROC_WRITE to the list of RPC types that use the LK_SHARED lock type. sys/fs/nfsserver/nfs_nfsdport.c: In nfsd_fhtovp(), if we're starting a write, check to see whether the underlying filesystem supports shared writes. If not, upgrade the lock type from LK_SHARED to LK_EXCLUSIVE. sys/nfsserver/nfs_fha.c: Remove all code that is specific to the NFS server implementation. Anything that is server-specific is now accessed through a callback supplied by that server's FHA shim in the new softc. There are now separate sysctls and tunables for the FHA implementations for the old and new NFS servers. The new NFS server has its tunables under vfs.nfsd.fha, the old NFS server's tunables are under vfs.nfsrv.fha as before. In fha_extract_info(), use callouts for all server-specific code. Getting file handles and offsets is now done in the individual server's shim module. In fha_hash_entry_choose_thread(), change the way we decide whether two reads are in proximity to each other. Previously, the calculation was a simple shift operation to see whether the offsets were in the same power of 2 bucket. The issue was that there would be a bucket (and therefore thread) transition, even if the reads were in close proximity. When there is a thread transition, reads wind up going somewhat out of order, and ZFS gets confused. The new calculation simply tries to see whether the offsets are within 1 << bin_shift of each other. If they are, the reads will be sent to the same thread. The effect of this change is that for sequential reads, if the client doesn't exceed the max_reqs_per_nfsd parameter and the bin_shift is set to a reasonable value (22, or 4MB works well in my tests), the reads in any sequential stream will largely be confined to a single thread. Change fha_assign() so that it takes a softc argument. It is now called from the individual server's shim code, which will pass in the softc. Change fhe_stats_sysctl() so that it takes a softc parameter. It is now called from the individual server's shim code. Add the current offset to the list of things printed out about each active thread. Change the num_reads and num_writes counters in the fha_hash_entry structure to 32-bit values, and rename them num_rw and num_exclusive, respectively, to reflect their changed usage. Add an enable sysctl and tunable that allows the user to disable the FHA code (when vfs.XXX.fha.enable = 0). This is useful for before/after performance comparisons. nfs_fha.h: Move most structure definitions out of nfs_fha.c and into the header file, so that the individual server shims can see them. Change the default bin_shift to 22 (4MB) instead of 18 (256K). Allow unlimited commands per thread. sys/nfsserver/nfs_fha_old.c, sys/nfsserver/nfs_fha_old.h, sys/fs/nfsserver/nfs_fha_new.c, sys/fs/nfsserver/nfs_fha_new.h: Add shims for the old and new NFS servers to interface with the FHA code, and callbacks for the The shims contain all of the code and definitions that are specific to the NFS servers. They setup the server-specific callbacks and set the server name for the sysctl and loader tunable variables. sys/nfsserver/nfs_srvkrpc.c: Configure the RPC code to call fhaold_assign() instead of fha_assign(). sys/modules/nfsd/Makefile: Add nfs_fha.c and nfs_fha_new.c. sys/modules/nfsserver/Makefile: Add nfs_fha_old.c. Reviewed by: rmacklem Sponsored by: Spectra Logic ------------------------------------------------------------------------ r249596 | ken | 2013-04-17 16:42:43 -0600 (Wed, 17 Apr 2013) | 7 lines Move the NFS FHA (File Handle Affinity) code from sys/nfsserver to sys/nfs, since it is now shared by the two NFS servers. Suggested by: rmacklem Sponsored by: Spectra Logic ------------------------------------------------------------------------ Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-12T00:33:30.831646Z K 7 svn:log V 40 MFC r250626: Add less to rescue build. END K 10 svn:author V 6 adrian K 8 svn:date V 27 2013-06-12T06:01:53.812376Z K 7 svn:log V 200 Remove the AR9285 specific structure for LNA diversity and use the HAL. The AR9300 HAL update included the LNA diversity configuration information so it can be used in the AR9485 configuration code. END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-06-12T06:56:15.892181Z K 7 svn:log V 203 Update vendor/illumos/dist and vendor-sys/illumos/dist to illumos-gate 14052:1a272fe1337b Illumos ZFS issues: 3740 Poor ZFS send / receive performance due to snapshot hold / release processing END K 10 svn:author V 3 dim K 8 svn:date V 27 2013-06-12T07:04:27.176032Z K 7 svn:log V 633 MFC r251431: Pull in r183297 from upstream llvm trunk: PR15662: Optimized debug info produces out of order function parameters When a function is inlined we lazily construct the variables representing the function's parameters. After that, we add any remaining unused parameters. If the function doesn't use all the parameters, or uses them out of order, then the DWARF would produce them in that order, producing a parameter order that doesn't match the source. This fix causes us to always keep the arg variables at the start of the variable list & in the original order from the source. Reported by: avg END