ƒ·K252663 100 309 525 431 284 356 227 298 529 932 172 1185 637 179 297 580 187 128 427 136 482 955 238 132 192 586 160 150 577 146 189 188 858 322 191 383 117 233 214 399 728 1201 604 262 413 554 768 518 908 197 98 223 310 209 196 539 270 126 1550 896 433 7456 202 157 180 1234 506 130 448 217 289 167 120 101 165 171 170 346 105 166 309 298 156 775 417 245 432 934 934 827 827 120 1016 1016 403 403 1681 1681 647 647 4214 K 10 svn:author V 9 jimharris K 8 svn:date V 27 2013-07-03T23:54:36.036748Z K 7 svn:log V 210 MFC r252270: Create #defines for NVME_CTRLR_PREFIX and NVME_NS_PREFIX for the "nvme" and "ns" strings, rather than hardcoding the string values throughout the nvmecontrol code base. Sponsored by: Intel END K 10 svn:author V 9 jimharris K 8 svn:date V 27 2013-07-03T23:56:41.750073Z K 7 svn:log V 426 MFC r252271: Use MAXPHYS to specify the maximum I/O size for nvme(4). Also allow admin commands to transfer up to this maximum I/O size, rather than the artificial limit previously imposed. The larger I/O size is very beneficial for upcoming firmware download support. This has the added benefit of simplifying the code since both admin and I/O commands now use the same maximum I/O size. Sponsored by: Intel END K 10 svn:author V 9 jimharris K 8 svn:date V 27 2013-07-03T23:58:09.051184Z K 7 svn:log V 332 MFC r252272: Fail any passthrough command whose transfer size exceeds the controller's max transfer size. This guards against rogue commands coming in from userspace. Also add KASSERTS for the virtual address and unmapped bio cases, if the transfer size exceeds the controller's max transfer size. Sponsored by: Intel END K 10 svn:author V 9 jimharris K 8 svn:date V 27 2013-07-03T23:59:08.606021Z K 7 svn:log V 185 MFC r252273: Remove remaining uio-related code. The nvme_physio() function was removed quite a while ago, which was the only user of this uio-related code. Sponsored by: Intel END K 10 svn:author V 9 jimharris K 8 svn:date V 27 2013-07-04T00:00:59.570696Z K 7 svn:log V 257 MFC r252274: Ensure that a device node is specified when invoking the identify or reset commands. Also improve the checking of device node names, so that better error messages are displayed when incorrect names are specified. Sponsored by: Intel END K 10 svn:author V 4 ache K 8 svn:date V 27 2013-07-04T00:02:10.772123Z K 7 svn:log V 133 After fixing ranges restore POSIX requirement: rand() call without srand() must be the same as srand(1); rand(); (yet one increment) END K 10 svn:author V 9 jimharris K 8 svn:date V 27 2013-07-04T00:03:30.688910Z K 7 svn:log V 199 MFC r252275: Add generalized helper functions for printing hex data as part of nvmecontrol commands. Submitted by: Joe Golio Obtained from: EMC / Isilon Storage Division END K 10 svn:author V 9 jimharris K 8 svn:date V 27 2013-07-04T00:06:11.358744Z K 7 svn:log V 430 MFC r252277: Add log page support to nvmecontrol(8) through a new logpage command. This includes pretty printers for all of the standard NVMe log pages (Error, SMART/Health, Firmware), as well as hex output for non-standard or vendor-specific log pages. Also add missing static keyword that glebius@ fixed as part of r252302. Submitted by: Joe Golio Obtained from: EMC / Isilon Storage Division END K 10 svn:author V 9 jimharris K 8 svn:date V 27 2013-07-04T00:16:43.553364Z K 7 svn:log V 833 MFC r252278: Add firmware replacement and activation support to nvmecontrol(8) through a new firmware command. NVMe controllers may support up to 7 firmware slots for storing of different firmware revisions. This new firmware command supports firmware replacement (i.e. firmware download) with or without immediate activation, or activation of a previously stored firmware image. It also supports selection of the firmware slot during replacement operations, using IDENTIFY information from the controller to check that the specified slot is valid. Newly activated firmware does not take effect until the new controller reset, either via a reboot or separate 'nvmecontrol reset' command to the same controller. Submitted by: Joe Golio Obtained from: EMC / Isilon Storage Division END K 10 svn:author V 9 jimharris K 8 svn:date V 27 2013-07-04T00:26:24.032082Z K 7 svn:log V 74 Fix printf argument mismatch reported by gcc on i386. Reported by: kargl END K 10 svn:author V 8 rmacklem K 8 svn:date V 27 2013-07-04T00:54:23.091712Z K 7 svn:log V 1086 A problem with the old NFS client where large writes to large files would sometimes result in a corrupted file was reported via email. This problem appears to have been caused by r251719 (reverting r251719 fixed the problem). Although I have not been able to reproduce this problem, I suspect it is caused by another thread increasing np->n_size after the mtx_unlock(&np->n_mtx) but before the vnode_pager_setsize() call. Since the np->n_mtx mutex serializes updates to np->n_size, doing the vnode_pager_setsize() with the mutex locked appears to avoid the problem. Unfortunately, vnode_pager_setsize() where the new size is smaller, cannot be called with a mutex held. This patch returns the semantics to be close to pre-r251719 such that the call to the vnode_pager_setsize() is only delayed until after the mutex is unlocked when np->n_size is shrinking. Since the file is growing when being written, I believe this will fix the corruption. Reported by: David G. Lawrence (dg@dglawrence.com) Tested by: David G. Lawrence (pending, to happen soon) Reviewed by: kib MFC after: 1 week END K 10 svn:author V 8 rmacklem K 8 svn:date V 27 2013-07-04T01:15:44.285497Z K 7 svn:log V 539 MFC: r252138 Add a new "-o" option to the gssd which forces gss_init_sec_context() to use DES and the associated old style GSS initialization token. This appears to be required for some non-FreeBSD servers to get a kerberized NFS mount to work. Also, ignore some signals when daemonized, which might fix the gssd from "disappearing" without leaving a core dump. Given the tight timeframe for the FreeBSD9.2 release, I have committed this while waiting for code review. I will commit changes recommended by the review in a separate commit. END K 10 svn:author V 8 rmacklem K 8 svn:date V 27 2013-07-04T01:18:38.828291Z K 7 svn:log V 82 MFC: r252139 Document the "-o" option added by r252138. This is a content change. END K 10 svn:author V 8 rmacklem K 8 svn:date V 27 2013-07-04T01:22:52.876331Z K 7 svn:log V 199 MFC: r252483 Document that NFSv4 mounts won't work if hostid_enable="NO" is set in /etc/rc.conf because the host uuid is used to uniquely identify the client to the server. This is a content change. END K 10 svn:author V 3 pfg K 8 svn:date V 27 2013-07-04T01:40:32.522375Z K 7 svn:log V 487 MFC r252364: Bring some updates from ufs/ufs_lookup to ext2fs. Don't set IN_CHANGE and IN_UPDATE on inodes for potentially suspended file systems. Only set i_offset in the parent directory's i-node during a lookup for non-LOOKUP operations. Relax a VOP assertion for a DELETE lookup. Move the code from ufs_lookup.c used to do dotdot lookup, into the helper function. It is supposed to be useful for any filesystem that has to unlock dvp to walk to the ".." entry in lookup routine. END K 10 svn:author V 4 loos K 8 svn:date V 27 2013-07-04T01:48:55.017690Z K 7 svn:log V 94 - add myself to the committers list and add adrian as my mentor Approved by: adrian (mentor) END K 10 svn:author V 5 kevlo K 8 svn:date V 27 2013-07-04T03:24:58.388460Z K 7 svn:log V 34 Remove unnecessary cast to pid_t. END K 10 svn:author V 6 bryanv K 8 svn:date V 27 2013-07-04T04:19:59.780638Z K 7 svn:log V 331 virtio_scsi: Fix SIM lock not owned panic The CAM locking requirements of registering an async callback has changed so the SIM lock must be held. Remove code that explicitly dropped the lock around the register. Also return CAM_SEL_TIMEOUT instead of CAM_TID_INVALID for bad targets to avoid a lot console spam during bus scans. END K 10 svn:author V 6 bryanv K 8 svn:date V 27 2013-07-04T04:26:19.252670Z K 7 svn:log V 41 virtio_blk: Remove unneeded curly braces END K 10 svn:author V 6 grehan K 8 svn:date V 27 2013-07-04T05:35:56.999255Z K 7 svn:log V 386 Support an optional "mac=" parameter to virtio-net config, to allow users to set the MAC address for a device. Clean up some obsolete code in pci_virtio_net.c Allow an error return from a PCI device emulation's init routine to be propagated all the way back to the top-level and result in the process exiting. Submitted by: Dinakar Medavaram dinnu sun at gmail (original version) END K 10 svn:author V 6 alfred K 8 svn:date V 27 2013-07-04T05:53:05.621417Z K 7 svn:log V 859 The change in r236456 (atomic_store_rel not locked) exposed a bug in the ithread code where we could lose ithread interrupts if intr_event_schedule_thread() is called while the ithread is already running. Effectively memory writes could be ordered incorrectly such that the unatomic write of 0 to ithd->it_need (in ithread_loop) could be delayed until after it was set to be triggered again by intr_event_schedule_thread(). This was particularly a big problem for CAM because CAM optimizes scheduling of ithreads such that it only signals camisr() when it queues to an empty queue. This means that additional completion events would not unstick CAM and quickly lead to a complete lockup of the CAM stack. To fix this use atomics in all places where ithd->it_need is accessed. Submitted by: delphij, mav Obtained from: TrueOS, iXsystems MFC After: 1 week END K 10 svn:author V 4 jkim K 8 svn:date V 27 2013-07-04T05:58:53.979246Z K 7 svn:log V 144 Make it little bit more C++ friendly. This explicit casting fixes some ports, emulators/virtualbox-ose and sysutils/smartmontools for example. END K 10 svn:author V 3 pho K 8 svn:date V 27 2013-07-04T06:11:51.679431Z K 7 svn:log V 40 Added host specific configuration file. END K 10 svn:author V 6 rpaulo K 8 svn:date V 27 2013-07-04T07:32:40.076951Z K 7 svn:log V 97 wpa_supplicant should be able to reassociate when resuming, so remove a comment saying it can't. END K 10 svn:author V 4 neel K 8 svn:date V 27 2013-07-04T07:37:29.120528Z K 7 svn:log V 492 Revert r252545. Change r252545 was misguided because of my misinterpretation of the role of VPIDs when nested page tables are in use. As it turns out they are indeed useful to allow the TLB to cache guest mappings in a safe manner. A side-effect of r252545 was turning off the "enable VPID" VM execution control that in turn caused all guest mappings to be flushed on every VM entry and exit. This is necessary for correctness but is probably a drag on performance. Pointed out by: grehan END K 10 svn:author V 3 des K 8 svn:date V 27 2013-07-04T07:59:11.847344Z K 7 svn:log V 68 Fall back to sha512 if passwd_format is not set. MFC after: 3 days END K 10 svn:author V 6 adrian K 8 svn:date V 27 2013-07-04T08:09:54.417431Z K 7 svn:log V 55 Add the missing link back to the EEPROM firmware name. END K 10 svn:author V 6 adrian K 8 svn:date V 27 2013-07-04T08:13:14.847280Z K 7 svn:log V 481 Add in a configuration file and hints for the Engenius ENH-200. This is an AR7240 based device with an AR9285 on-board. I've tested the initial boot and wifi support; however at the moment the ethernet switch driver doesn't seem to be picking up carrier on the active ethernet port. Basic flood pinging works however, so I think we're on the right track. Thank you to Adrian Woodley for purchasing me one of these devices to bootstrap FreeBSD-HEAD on. END K 10 svn:author V 6 adrian K 8 svn:date V 27 2013-07-04T08:42:20.714220Z K 7 svn:log V 51 Oops - fix bad hint numbering for the ART section. END K 10 svn:author V 2 ae K 8 svn:date V 27 2013-07-04T08:57:13.898025Z K 7 svn:log V 98 MFC r252026: Use IPSECSTAT_INC() and IPSEC6STAT_INC() macros for ipsec statistics accounting. END K 10 svn:author V 2 ae K 8 svn:date V 27 2013-07-04T08:59:34.605277Z K 7 svn:log V 97 MFC r252028: Use corresponding macros to update statistics for AH, ESP, IPIP, IPCOMP, PFKEY. END K 10 svn:author V 4 gber K 8 svn:date V 27 2013-07-04T10:38:14.551013Z K 7 svn:log V 764 Fix modified bit emulation for ARMv6/v7 When doing pmap_enter_locked(), enable write permission only when access type indicates attempt to write. Otherwise, leave the page read only but mark it writable in pv_flags. This will result in: 1. Marking page writable during pmap_enter() but only when ensured that it will be written right away so that we will not get redundant permissions fault on write attempt. 2. Keeping page read only when it is permitted to be written but there was no actual write attempt. Hence, we will get permissions fault on write access and mark page writable in pmap_fault_fixup() what will indicate modification status. Submitted by: Zbigniew Bodek Sponsored by: The FreeBSD Foundation, Semihalf END K 10 svn:author V 4 gber K 8 svn:date V 27 2013-07-04T10:40:24.542825Z K 7 svn:log V 228 Remove redundant clearing of the PGA_WRITEABLE flag in pmap_remove_all() This flag should already be cleared by pmap_nuke_pv() Submitted by: Zbigniew Bodek Sponsored by: The FreeBSD Foundation, Semihalf END K 10 svn:author V 6 wblock K 8 svn:date V 27 2013-07-04T12:24:39.971738Z K 7 svn:log V 96 Put the power modes in a list to make them easier to find. Reviewed by: joel MFC after: 1 week END K 10 svn:author V 3 pjd K 8 svn:date V 27 2013-07-04T12:27:10.535133Z K 7 svn:log V 290 Fix dhclient for interfaces that are down. The discover_interfaces() function that looks for interface skips interfaces that are not UP. We need to call dhclient-script PREINIT before we call discover_interfaces(), so the script has a chance to bring the interface UP. Reported by: alfred END K 10 svn:author V 4 ache K 8 svn:date V 27 2013-07-04T12:35:39.513968Z K 7 svn:log V 24 Style fix noted by bde@ END K 10 svn:author V 3 des K 8 svn:date V 27 2013-07-04T14:26:42.103292Z K 7 svn:log V 140 Protect the #define MALLOC_PRODUCTION directive in case it was also defined on the command line (due to MALLOC_PRODUCTION=yes in src.conf). END K 10 svn:author V 3 mav K 8 svn:date V 27 2013-07-04T15:19:45.775017Z K 7 svn:log V 121 MFC r240774: Don't use global nfs_root_node variable as per-file storage. There are fields that should be file-specific. END K 10 svn:author V 3 mav K 8 svn:date V 27 2013-07-04T15:21:27.261124Z K 7 svn:log V 306 MFC r240780, r252468: Make nfs_readdir() more careful about using response data, cached in global buffer. For now it fixes bug when following `ls` command will return data from previous one aborted by pager. Also it should allow to read several directories same time, for example, for recursive tracerse. END K 10 svn:author V 6 bryanv K 8 svn:date V 27 2013-07-04T17:50:11.461941Z K 7 svn:log V 632 Convert VirtIO to use ithreads instead of taskqueues Contains projects/virtio commits: r245709: Each VirtIO device was scheduling its own taskqueue(9) to do the off-level interrupt handling. ithreads(9) is the more nature way to do this. The primary motivation for this work to better support network multiqueue. r245710: virtio: Change virtqueue intr handlers to return void r245711: virtio_blk: Remove interrupt taskqueue r245721: vtnet: Remove interrupt taskqueue r245722: virtio_scsi: Remove interrupt taskqueue r245747: vtnet: Remove taskqueue fields missed in r245721 MFC after: 1 month END K 10 svn:author V 6 bryanv K 8 svn:date V 27 2013-07-04T17:53:02.363181Z K 7 svn:log V 1104 Merge several virtio_blk changes from projects/virtio The notable changes of this commit are support for disk resizing and chases updates to the spec regarding write caching. Contains projects/virtio commits: r245713: virtio_blk: Replace __FUNCTION__ with __func__ r245714: virtio_blk: Use more consistent mutex name r245715: virtio_blk: Print device name too if failed to reinit during dump r245716: virtio_blk: Remove an unuseful ASSERT r245723: virtio_blk: Record the vendor and device information r245724: virtio_blk: Add resize support r245726: virtio_blk: More verbose ASSERT messages r245730: virtio_blk: Tweak resize announcement message r246061: virtio_blk: Do not always read entire config r246062: virtio_blk: Use topology to set the stripe size/offset r246307: virtio_blk: Correct stripe offset calculation r246063: virtio_blk: Add support for write cache enable feature r246303: virtio_blk: Expand a comment r252529: virtio_blk: Improve write cache handling r252681: virtio_blk: Remove unneeded curly braces MFC after: 1 month END K 10 svn:author V 6 bryanv K 8 svn:date V 27 2013-07-04T17:54:46.473993Z K 7 svn:log V 508 Merge virtio_balloon changes from projects/virtio Contains projects/virtio commits: r245717: virtio_balloon: Make the softc lock a regular mutex r245718: virtio_balloon: Remove two unuseful ASSERTs r245719: virtio_balloon: More verbose ASSERT messages r245720: virtio_balloon: Simplify lowmem handling in vtballoon_inflate() r252530: virtio_balloon: Use just a kthread instead of dedciated kproc r252568: virtio_balloon: Need to use kthread_exit() after r252530 MFC after: 1 month END K 10 svn:author V 2 np K 8 svn:date V 27 2013-07-04T17:55:52.052637Z K 7 svn:log V 170 - Read all TP parameters in one place. - Read the filter mode, calculate various shifts, and use them properly during active open (in select_ntuple). MFC after: 1 day END K 10 svn:author V 6 bryanv K 8 svn:date V 27 2013-07-04T17:55:58.389337Z K 7 svn:log V 317 Merge vtnet changes from projects/virtio Minor changes to the network driver. A multiqueue driver that is a significant rewrite will be in merged shortly. Contains projects/virtio commits: r246058: vtnet: Move an mbuf ASSERT to the calling function r246059: vtnet: Tweak ASSERT message MFC after: 1 month END K 10 svn:author V 6 bryanv K 8 svn:date V 27 2013-07-04T17:57:26.896444Z K 7 svn:log V 458 Merge virtio changes from projects/virtio Contains projects/virtio commits: r245738: virtio: Minor man page tweaks r246060: virtio: Cleanup feature description printing r246306: virtio: Remove old debugging flag r247238: virtio: Remove PRIx64 macros from format strings r247239: virtio: Constify some fields r247240: virtio: Minor code simplifications r249962: virtio: Update to my freebsd.org email address MFC after: 1 month END K 10 svn:author V 6 bryanv K 8 svn:date V 27 2013-07-04T17:59:09.531052Z K 7 svn:log V 672 Merge virtio_pci changes from projects/virtio This commit is primarily a significant cleanup to the interrupt allocation code that had gotten a bit jumbled from having to support per-vq MSIX, shared MSIX, MSI, and legacy style interrupts. Contains projects/virtio commits: r246064: virtio_pci: Rewrite allocation of interrupts r246065: virtio_pci: Remove spaces before a tab r246066: virtio_pci: Dynamically allocate the virtqueue array r246304: virtio_pci: Clean up after failed virtqueue alloc attempt r246305: virtio_pci: Move no interrupt check into the PCI interrupt handlers r246308: virtio_pci: Remove unused variable MFC after: 1 month END K 10 svn:author V 6 bryanv K 8 svn:date V 27 2013-07-04T18:00:27.343803Z K 7 svn:log V 422 Merge virtio_scsi change from projects/virtio r252680: Fix SIM lock not owned panic The CAM locking requirements of registering an async callback has changed so the SIM lock must be held. Remove code that explicitly dropped the lock around the register. Also return CAM_SEL_TIMEOUT instead of CAM_TID_INVALID for bad targets to avoid a lot console spam during bus scans. MFC after: 1 month END K 10 svn:author V 7 trociny K 8 svn:date V 27 2013-07-04T18:38:00.955782Z K 7 svn:log V 811 In r227207, to fix the issue with possible NULL inp_socket pointer dereferencing, when checking for SO_REUSEPORT option (and SO_REUSEADDR for multicast), INP_REUSEPORT flag was introduced to cache the socket option. It was decided then that one flag would be enough to cache both SO_REUSEPORT and SO_REUSEADDR: when processing SO_REUSEADDR setsockopt(2), it was checked if it was called for a multicast address and INP_REUSEPORT was set accordingly. Unfortunately that approach does not work when setsockopt(2) is called before binding to a multicast address: the multicast check fails and INP_REUSEPORT is not set. Fix this by adding INP_REUSEADDR flag to unconditionally cache SO_REUSEADDR. PR: 179901 Submitted by: Michael Gmelin freebsd grem.de (initial version) Reviewed by: rwatson MFC after: 1 week END K 10 svn:author V 2 np K 8 svn:date V 27 2013-07-04T18:41:21.554259Z K 7 svn:log V 105 The T5 allows the driver to specify the ISS. Do so; use the ISS picked by the kernel. MFC after: 1 day END K 10 svn:author V 6 bryanv K 8 svn:date V 27 2013-07-04T18:56:07.225968Z K 7 svn:log V 4 MFC END K 10 svn:author V 6 wblock K 8 svn:date V 27 2013-07-04T18:59:58.433290Z K 7 svn:log V 127 Whitespace fixes: remove tabs on blank links, spaces following content, tabs after spaces. Reviewed by: gjb MFC after: 1 week END K 10 svn:author V 3 kib K 8 svn:date V 27 2013-07-04T19:01:18.132285Z K 7 svn:log V 217 The tvp vnode on rename is usually unlinked. Drop the cached null vnode for tvp to allow the free of the lower vnode, if needed. PR: kern/180236 Tested by: smh Sponsored by: The FreeBSD Foundation MFC after: 1 week END K 10 svn:author V 2 np K 8 svn:date V 27 2013-07-04T19:15:41.940769Z K 7 svn:log V 117 Ring the egress queue's doorbell as soon as there are 8 or more descriptors ready to be processed. MFC after: 1 day END K 10 svn:author V 2 np K 8 svn:date V 27 2013-07-04T19:44:30.644279Z K 7 svn:log V 104 Pay attention to TCP_NODELAY when it's set/unset after the connection is established. MFC after: 1 day END K 10 svn:author V 6 adrian K 8 svn:date V 27 2013-07-04T19:45:34.117822Z K 7 svn:log V 443 Enable the station-side power management flag. It's not enabled by default in net80211 so this is a no-op unless if you enable it (ifconfig wlan0 powersave). Tested: * iwn0: mem 0xf4300000-0xf4301fff irq 17 at device 0.0 on pci3 TODO: * .. test on all the other NICs * See if I have to disable it during scan and such * Make it configurable live, rather than only after it's done its initial receive calibration. END K 10 svn:author V 6 tuexen K 8 svn:date V 27 2013-07-04T19:47:46.214044Z K 7 svn:log V 174 When processing an incoming ABORT, SHUTDOWN_COMPLETE or ERROR (NAT related) chunk, take always the T-bit into account, when checking the verification tag. MFC after: 3 days END K 10 svn:author V 5 gonzo K 8 svn:date V 27 2013-07-04T20:08:42.247661Z K 7 svn:log V 32 Add nodes for PWMSS1 and PWMSS2 END K 10 svn:author V 3 dim K 8 svn:date V 27 2013-07-04T20:10:33.724442Z K 7 svn:log V 1456 Pull in r185594 from llvm trunk: Add MachineBasicBlock::addLiveIn(). This function adds a live-in physical register to an MBB and ensures that it is copied to a virtual register immediately. Pull in r185615 from llvm trunk: Live-in copies go *after* EH_LABELs. This will soon be tested by exception handling working at all. Pull in r185617 from llvm trunk: Simplify landing pad lowering. Stop using the ISD::EXCEPTIONADDR and ISD::EHSELECTION when lowering landing pad arguments. These nodes were previously legalized into CopyFromReg nodes, but that never worked properly because the CopyFromReg node weren't guaranteed to be scheduled at the top of the basic block. This meant the exception pointer and selector registers could be clobbered before being copied to a virtual register. This patch copies the two physical registers to virtual registers at the beginning of the basic block, and lowers the landingpad instruction directly to two CopyFromReg nodes reading the *virtual* registers. This is safe because virtual registers don't get clobbered. A future patch will remove the ISD::EXCEPTIONADDR and ISD::EHSELECTION nodes. Together, these changes fix llvm PR 16038 ('qt4 webcore file results in "Bad machine code: Using an undefined physical register"'), and should make it possible again to compile the www/qt4-webkit port again on the i386 arch, without using a CPUTYPE=i686 or higher setting. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-07-04T20:12:12.856168Z K 7 svn:log V 800 Implement $probe_only for the media access modules. sysinstall(8) was allowed to ignore the probe_only argument of its member functions solely because in the C language, the file accessor methods open and return a file descriptor and reading of the data is optional. In shell, the file accessor methods return data on stdout and that data should not be ignored (large files could block execution). So, we must adhere to the probe_only flags and in some cases (in the case of FTP, for example) change the `get' strategy to simply test existence and return an appropriate status. This was required because the up-coming package management stuff makes heavy use of the probe_only argument to try different package suffixes. Every media access module must implement $probe_only for the `get' accessor. END K 10 svn:author V 5 gonzo K 8 svn:date V 27 2013-07-04T20:13:22.725587Z K 7 svn:log V 338 Add support for ePWM submodule of PWMSS ePWM is controlled by sysctl nodes dev.am335x_pwm.N.period, dev.am335x_pwm.N.dutyA and dev.am335x_pwm.N.dutyB that controls PWM period and duty cycles for channels A and B respectively. Period and duty cycle are measured in clock ticks. Default clock frequency for AM335x PWM subsystem is 100MHz END K 10 svn:author V 3 dim K 8 svn:date V 27 2013-07-04T20:17:04.742800Z K 7 svn:log V 7362 Merge clang 3.3 release and various fixes: r241214, r246705, r248548, r249423, r249817, r250217, r250593, r250616, r250997, r251216, r251662, r251761, r251785, r251790, r252039. MFC r241214 (by jkim): Do not install incomplete unwind.h from clang. This header file was meant to be a wrapper for the canonical system header file. Unfortunately, we do not have one (yet) and some times it is causing weird failures when clang is used for building ports. More complete and correct file will come from libcxxrt in the future. Discussed with: dim, kib, theraven MFC r246705 (by andrew): Allow us to build clang for ARM EABI. Clang and llvm use the arm-gnueabi-freebsd10.0 triple for EABI. Use this when we are on arm or armv6 and are building for EABI. Reviewed by: dim MFC r248548 (by andrew): Pull in r177252 from upstream clang trunk: Make sure to use same EABI version for external assembler as for integrated as. This allows us to use gcc on a world built with clang on ARM. MFC r249423: Upgrade our copy of llvm/clang to trunk r178860, in preparation of the upcoming 3.3 release (branching and freezing expected in a few weeks). Preliminary release notes can be found at the usual location: An MFC is planned once the actual 3.3 release is finished. MFC r249817: Pull in r180121 from upstream llvm trunk: LoopVectorizer: Fix 15830. When scalarizing and unrolling stores make sure that the order in which the elements are scalarized is the same as the original order. This fixes a miscompilation in FreeBSD's regex library. This should fix lib/libc/regex/regcomp.c at -O3 with clang 3.3 r178860 on CPUs with SSE. Before this change, the vectorizer could incorrectly rearrange the second loop in computejumps(), leading to possibly invalid entries in the re_gets::charjump table. The net result was that for example "sed s/@CC@/foo/" failed to work correctly, leading to trouble with many configure scripts. MFC r250217: Allow building clang on older FreeBSD releases, where log2() does not exist yet. With this change, I have verified that building head on 8.1-RELEASE works. Noticed by: Ryan Stone MFC r250593: Pull in r181286 from upstream llvm trunk: LoopVectorize: getConsecutiveVector must respect signed arithmetic We were passing an i32 to ConstantInt::get where an i64 was needed and we must also pass the sign if we pass negatives numbers. The start index passed to getConsecutiveVector must also be signed. Should fix PR15882. This should fix Firefox crashes some people have been reporting, when it is compiled with -O3. MFC r250616: Use an ugly hack to get around bootstrapping problems when building clang on head between r239347 and r245428. The former revision introduced CLOCK_PROCESS_CPUTIME_ID as a clock id for the clock_gettime() function and friends, but it was only added in , not in . Any program including would therefore not be able to use CLOCK_PROCESS_CPUTIME_ID, even though the value of _POSIX_CPUTIME indicates its existence. The latter revision synchronized the defines again. Work around this problem by defining the id on the command line for the particular .cpp file that needs it. If the id ever changes value, this hack will need to be updated. MFC r250997: Pull in r182656 from upstream llvm trunk: LoopVectorize: LoopSimplify can't canonicalize loops with an indirectbr in it, don't assert on those cases. Fixes PR16139. This should fix clang assertion failures when optimizing at -O3, similar to: Assertion failed: (TheLoop->getLoopPreheader() && "No preheader!!"), function canVectorize, file contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp, line 2171. Reported by: O. Hartmann PR: ports/178332, ports/178977 MFC r251216 (by ed): Pull in r183033 and r183036 from LLVM trunk: Add support for optimized (non-generic) atomic libcalls. For integer types of sizes 1, 2, 4 and 8, libcompiler-rt (and libgcc) provide atomic functions that pass parameters by value and return results directly. libgcc and libcompiler-rt only provide optimized libcalls for __atomic_fetch_*, as generic libcalls on non-integer types would make little sense. This means that we can finally make __atomic_fetch_* work on architectures for which we don't provide these operations as builtins (e.g. ARM). This should fix the dreaded "cannot compile this atomic library call yet" error that would pop up once every while. This should make it possible for me to get C11 atomics working on all of our platforms. MFC r251662: Upgrade our copy of llvm/clang to 3.3 release. Release notes are still in the works, these will follow soon. MFC r251761: Pull in r181620 from llvm trunk: [ms-inline asm] Fix a crasher when we fail on a direct match. The issue was that the MatchingInlineAsm and VariantID args to the MatchInstructionImpl function weren't being set properly. Specifically, when parsing intel syntax, the parser thought it was parsing inline assembly in the at&t dialect; that will never be the case. The crash was caused when the emitter tried to emit the instruction, but the operands weren't set. When parsing inline assembly we only set the opcode, not the operands, which is used to lookup the instruction descriptor. rdar://13854391 and PR15945 Also, this commit reverts r176036. Now that we're correctly parsing the intel syntax the pushad/popad don't match properly. I've reimplemented that fix using a MnemonicAlias. Pull in r183907 from llvm trunk: X86: Make the cmov aliases work with intel syntax too. These commits make a number of Intel-style inline assembly mnemonics aliases (occurring in several ports) work properly, which could cause assertions otherwise. Reported by: kwm, bapt MFC r251785 (by ed) Pull in r184040 from upstream clang trunk: Emit native implementations of atomic operations on FreeBSD/armv6. Just like on Linux, FreeBSD/armv6 assumes the system supports ldrex/strex unconditionally. It is also used by the kernel. We can therefore enable support for it, like we do on Linux. While there, change one of the unit tests to explicitly test against armv5 instead of armv7, as it actually tests whether libcalls are emitted. MFC r251790 (by andrew): Pull in r183926 from LLVM trunk: Allow clang to build __clear_cache on ARM. __clear_cache is special. It needs no signature, but is a real function in compiler_rt or libgcc. Patch by Andrew Turner. This allows us to build the __clear_cache function in compiler-rt. MFC r252039: Pull in r183984 from llvm trunk: Make PrologEpilogInserter save/restore all callee saved registers in functions which call __builtin_unwind_init() __builtin_unwind_init() is an undocumented gcc intrinsic which has this effect, and is used in libgcc_eh. Goes part of the way toward fixing PR8541. This obsoletes the ugly hack to libgcc's unwind code from r245272, and should also work for other arches, so revert the hack too. END K 10 svn:author V 2 np K 8 svn:date V 27 2013-07-04T20:17:39.153198Z K 7 svn:log V 110 On-the-fly changes to the interrupt coalescing timer should apply to the TOE rx queues too. MFC after: 1 day END K 10 svn:author V 6 rpaulo K 8 svn:date V 27 2013-07-04T20:57:15.194687Z K 7 svn:log V 62 Set ic_cryptocaps to make sure wpa_supplicant works with WEP. END K 10 svn:author V 6 rpaulo K 8 svn:date V 27 2013-07-04T21:12:58.171676Z K 7 svn:log V 85 Merge hostapd / wpa_supplicant 2.0. Reviewed by: adrian (driver_bsd + usr.sbin/wpa) END K 10 svn:author V 6 adrian K 8 svn:date V 27 2013-07-04T21:16:49.196592Z K 7 svn:log V 1137 Implement basic 802.11n awareness in the PHY and AMRR rate control code. * Add 802.11n 2ghz and 5ghz tables, including legacy rates and up to MCS23 rates (3x3.) * Populate the rate code -> rate index lookup table with MCS _and_ normal rates, but _not_ the basic rate flag. Since the basic rate flag is the same as the MCS flag, we can only use one. * Introduce some accessor inlines that do PLCP and rate table lookup/access and enforce that it doesn't set the basic rate bit. They're not designed for MCS rates, so it will panic. * Start converting drivers that use the rate table stuff to use the accessor inlines and strip the basic flag. * Teach AMRR about basic 11n - it's still as crap for MCS as it is being used by iwn, so it's not a step _backwardS_. * Convert iwn over to accept 11n MCS rates rather than 'translate' legacy to MCS rates. It doesn't use a lookup table any longer; instead it's a function which takes the current node (for HT parameters) and the rate code, and returns the hardware PLCP code to use. Tested: * ath - it's a no-op, and it works that way * iwn - both 11n and non-11n END K 10 svn:author V 2 np K 8 svn:date V 27 2013-07-04T21:19:01.002971Z K 7 svn:log V 414 - Make note of interface MTU change if the rx queues exist, and not just when the interface is up. - Add a tunable to control the TOE's rx coalesce feature (enabled by default as it always has been). Consider the interface MTU or the coalesce size when deciding which cluster zone to use to fill the offload rx queue's free list. The tunable is: dev.{t4nex,t5nex}..toe.rx_coalesce MFC after: 1 day END K 10 svn:author V 6 rpaulo K 8 svn:date V 27 2013-07-04T21:31:28.966007Z K 7 svn:log V 35 Remove unused files / directories. END K 10 svn:author V 3 smh K 8 svn:date V 27 2013-07-04T21:57:09.265410Z K 7 svn:log V 355 MFC r249940: Teach GEOM and CAM about the difference between the max "size" of r/w and delete requests. MFC r252657: Bump disk(9) ABI version to signify the addition of d_delmaxsize. Make the addition of the d_delmaxsize binary compatible. This allows storage drivers compiled for 9.0 and 9.1 to work by preserving the ABI for disks. Reviewed by: mav END K 10 svn:author V 3 dim K 8 svn:date V 27 2013-07-04T22:09:14.361119Z K 7 svn:log V 124 MFC r252387: Make libsupc++'s __cxa_call_terminate() prototype consistent with the definition. Submitted by: dt71@gmx.com END K 10 svn:author V 2 mm K 8 svn:date V 27 2013-07-04T22:26:38.041244Z K 7 svn:log V 197 Fix misleading or remove irrelevant illumos messages and manpage references in the zfs command. PR: bin/178996 Submitted by: Peter Schaefer MFC after: 3 days END K 10 svn:author V 6 rpaulo K 8 svn:date V 27 2013-07-04T23:01:24.442699Z K 7 svn:log V 72 Restore the dbus directory that was not meant to be deleted in r252729. END K 10 svn:author V 6 rpaulo K 8 svn:date V 27 2013-07-04T23:05:28.368192Z K 7 svn:log V 25 Delete .gitignore files. END K 10 svn:author V 2 np K 8 svn:date V 27 2013-07-04T23:08:27.662923Z K 7 svn:log V 10 All done. END K 10 svn:author V 6 adrian K 8 svn:date V 27 2013-07-05T00:03:53.718496Z K 7 svn:log V 70 Document the current 11n rate selection shortcoming in the AMRR code. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-07-05T01:18:54.612964Z K 7 svn:log V 76 Set name of device to directory path (displayed during package operations). END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-07-05T01:21:01.562546Z K 7 svn:log V 75 Allow global default as general fall-back for package management routines. END K 10 svn:author V 8 rmacklem K 8 svn:date V 27 2013-07-05T01:22:37.864091Z K 7 svn:log V 248 MFC: r252067 Since some NFSv4 servers enforce the requirement for a reserved port#, enable use of the (no)resvport mount option for NFSv4. I had thought that the RFC required that non-reserved port #s be allowed, but I couldn't find it in the RFC. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-07-05T01:28:30.290637Z K 7 svn:log V 10 Comments. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-07-05T01:30:13.168603Z K 7 svn:log V 71 Get rid of place-holder in preparation for incoming package mgmt code. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-07-05T01:32:39.258610Z K 7 svn:log V 213 Remove separate processing of dependent packages from the "Review" screen since f_package_add (packageAdd resword) processes dependencies itself. NOTE: This is in preparation for incoming package management code. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-07-05T01:37:35.977643Z K 7 svn:log V 202 Add mustberoot.subr to the list of includes for scripts, exposing the helper function f_mustberoot_init() to make it easy to write scripts that can more easily transition to the super-user via sudo(8). END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-07-05T01:38:42.438217Z K 7 svn:log V 61 Add debugging for each of the initialized default variables. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-07-05T01:44:59.528503Z K 7 svn:log V 679 Add the necessary code to install packages (uninstall and re-install still pending). Both scripted access (packageAdd) and UI access have been tested successfully with a variation of different situations including: + Install a package with no dependencies + Install a package with dependencies that are already installed + Install a package with dependencies where some are already installed + Repeat each of the above from FTP and local Directory + Purposefully do things like try to install a package that does not exist + Try to install a package for which a dependency could not be loaded + Try to install a package that is in the INDEX bot not on the media + And many more. END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-07-05T01:49:20.377809Z K 7 svn:log V 321 Add the beginnings of the old networking services functionality of sysinstall(8). The UI for this will come later while this exposes the functionality to the scripted interface. Tested successfully to first install the pcnfsd package from the `Latest' repository, and second to configure mountd_flags="-n" in rc.conf(5). END K 10 svn:author V 2 np K 8 svn:date V 27 2013-07-05T01:53:51.966238Z K 7 svn:log V 153 - Show the reason why link is down if this information is available. - Display the temperature and PHY firmware version of the BT PHY. MFC after: 1 day END K 10 svn:author V 6 rpaulo K 8 svn:date V 27 2013-07-05T02:06:59.523595Z K 7 svn:log V 336 Merge r252230: Implement ifconfig_wlanX="HOSTAP". Not only this is a bit cleaner, it allows multiple instances of hostapd to be running on the system host, useful for simultaneous dual-band WiFi. This is similar to ifconfig_wlanX="WPA" but it uses /etc/hostapd-wlanX.conf. Compatibility with hostapd_enable=YES/NO was kept. END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:01:35.685523Z K 7 svn:log V 837 MFC r251629: 3741 zfs needs better comments Embellish the comments in various components of ZFS. Move some comments around closer to what they describe. Specifically, answer the questions: - What are some of the edge cases of the dbuf state machine? - What does a txg quiesce do? - When does the DMU notify threads waiting on txg's that they may proceed? - How do the calculations for RAIDZ map allocations work? - What process do the RAIDZ I/O start and done callbacks follow? While here, adjust the function prototype of dmu_zfetch.c:dmu_zfetch_colinear() to match its comment which describes its return as a boolean. Submitted by: asomers, gibbs, will Reviewed by: Matthew Ahrens , Eric Schrock , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:02:19.448522Z K 7 svn:log V 837 MFC r251629: 3741 zfs needs better comments Embellish the comments in various components of ZFS. Move some comments around closer to what they describe. Specifically, answer the questions: - What are some of the edge cases of the dbuf state machine? - What does a txg quiesce do? - When does the DMU notify threads waiting on txg's that they may proceed? - How do the calculations for RAIDZ map allocations work? - What process do the RAIDZ I/O start and done callbacks follow? While here, adjust the function prototype of dmu_zfetch.c:dmu_zfetch_colinear() to match its comment which describes its return as a boolean. Submitted by: asomers, gibbs, will Reviewed by: Matthew Ahrens , Eric Schrock , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:05:59.561553Z K 7 svn:log V 730 MFC r251631: illumos #3742 zfs comments need cleaner, more consistent style - Make more of ZFS's comments use a natural English writing flow. - Break up long paragraphs, fix various typos and spelling errors. - Don't prefix a function description with its name when the function definition immediately follows. - Remove useless comments. - Add extra whitespace where it makes the comments more readable. New comments were separated from this change and added in r251629. Submitted by: asomers, gibbs, will Reviewed by: Matthew Ahrens , George Wilson , Eric Schrock , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:06:36.812567Z K 7 svn:log V 730 MFC r251631: illumos #3742 zfs comments need cleaner, more consistent style - Make more of ZFS's comments use a natural English writing flow. - Break up long paragraphs, fix various typos and spelling errors. - Don't prefix a function description with its name when the function definition immediately follows. - Remove useless comments. - Add extra whitespace where it makes the comments more readable. New comments were separated from this change and added in r251629. Submitted by: asomers, gibbs, will Reviewed by: Matthew Ahrens , George Wilson , Eric Schrock , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 6 dteske K 8 svn:date V 27 2013-07-05T03:12:29.450416Z K 7 svn:log V 25 Fix a typo in a comment. END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:38:06.153052Z K 7 svn:log V 919 MFC r251632: illumos #3743 zfs needs a refcount audit Audit zap cursor usage and correct missing calls to zap_cursor_fini(). sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c: Correct early exit handling of several functions that previously failed to close a cursor prior to returning. Submitted by: gibbs Audit holders of dmu_bufs and correct missing calls to dmu_buf_rele(). sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c: Correct early exit handling of several functions that previously failed to release a dmu_buf prior to returning. Submitted by: will Reviewed by: Matthew Ahrens , Eric Schrock , George Wilson , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:38:53.968831Z K 7 svn:log V 919 MFC r251632: illumos #3743 zfs needs a refcount audit Audit zap cursor usage and correct missing calls to zap_cursor_fini(). sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c: Correct early exit handling of several functions that previously failed to close a cursor prior to returning. Submitted by: gibbs Audit holders of dmu_bufs and correct missing calls to dmu_buf_rele(). sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c: Correct early exit handling of several functions that previously failed to release a dmu_buf prior to returning. Submitted by: will Reviewed by: Matthew Ahrens , Eric Schrock , George Wilson , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:44:08.297208Z K 7 svn:log V 306 MFC r251633: illumos #3744 zfs shouldn't ignore errors unmounting snapshots Propagate errors from zfs_unmount_snap() up to its callers wherever feasible. Submitted by: will Reviewed by: Matthew Ahrens , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:44:49.633053Z K 7 svn:log V 306 MFC r251633: illumos #3744 zfs shouldn't ignore errors unmounting snapshots Propagate errors from zfs_unmount_snap() up to its callers wherever feasible. Submitted by: will Reviewed by: Matthew Ahrens , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:49:52.385196Z K 7 svn:log V 1583 MFC r251634: illumos #3745 zpool create should treat -O mountpoint and -m the same cddl/contrib/opensolaris/cmd/zpool/zpool_main.c: (change 644608) This allows specifying a mountpoint using the latter form and having its value checked and used as it would be using the former form. As a consequence of this change: 1. The mountpoint property is set in the fsprops nvlist prior to creating the pool, rather than being set after creating the pool. To me, this is the proper approach, since it avoids creating the pool if the mountpoint setting would cause the command to fail. 2. The mountpoint property, unlike all others, can be specified more than once. Only the last setting takes effect. This is to avoid breaking potential existing users that specify -m more than once. Submitted by: will cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Fix "zpool create -R -m ". Ever since change 644608, this has been broken. The problem is that some old code in libzfs_pool.c would force a pool's mountpoint to "/" when creating a pool with an altroot. That probably implemented some old policy decision regarding altroots, but it conflicts with the current manpage. It also had no effect until 644608, because the zpool command would _always_ change the pool's mountpoint after creating it. The solution is to delete the old code from libzfs_pool.c. Submitted by: asomers Reviewed by: Matthew Ahrens , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:50:11.489558Z K 7 svn:log V 1583 MFC r251634: illumos #3745 zpool create should treat -O mountpoint and -m the same cddl/contrib/opensolaris/cmd/zpool/zpool_main.c: (change 644608) This allows specifying a mountpoint using the latter form and having its value checked and used as it would be using the former form. As a consequence of this change: 1. The mountpoint property is set in the fsprops nvlist prior to creating the pool, rather than being set after creating the pool. To me, this is the proper approach, since it avoids creating the pool if the mountpoint setting would cause the command to fail. 2. The mountpoint property, unlike all others, can be specified more than once. Only the last setting takes effect. This is to avoid breaking potential existing users that specify -m more than once. Submitted by: will cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Fix "zpool create -R -m ". Ever since change 644608, this has been broken. The problem is that some old code in libzfs_pool.c would force a pool's mountpoint to "/" when creating a pool with an altroot. That probably implemented some old policy decision regarding altroots, but it conflicts with the current manpage. It also had no effect until 644608, because the zpool command would _always_ change the pool's mountpoint after creating it. The solution is to delete the old code from libzfs_pool.c. Submitted by: asomers Reviewed by: Matthew Ahrens , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:54:13.820308Z K 7 svn:log V 550 MFC r251635: illumos #3747 txg commit callbacks don't work sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c: Fix commit callbacks by moving them to the task's list. Previously, list_move_tail() returned without doing anything because the task list was passed as the source rather than destination. cddl/contrib/opensolaris/cmd/ztest/ztest.c: Check the commit callback threshold correctly. Submitted by: will Reviewed by: Matthew Ahrens , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T03:55:13.299011Z K 7 svn:log V 550 MFC r251635: illumos #3747 txg commit callbacks don't work sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c: Fix commit callbacks by moving them to the task's list. Previously, list_move_tail() returned without doing anything because the task list was passed as the source rather than destination. cddl/contrib/opensolaris/cmd/ztest/ztest.c: Check the commit callback threshold correctly. Submitted by: will Reviewed by: Matthew Ahrens , Christopher Siden Sponsored by: Spectra Logic END K 10 svn:author V 7 delphij K 8 svn:date V 27 2013-07-05T04:01:25.561668Z K 7 svn:log V 4116 MFC r251636: illumos #3749 zfs event processing should work on R/O root filesystems This log is a modified version of the original one written by gibbs@, to account for changes made during the illumos RTI process. Allow ZFS asynchronous event handling to proceed even if the root file system is mounted read-only. This restriction appears to have been put in place to avoid errors with updating the configuration cache file. However: o The majority of asynchronous event handling does not involve configuration cache file updates. o The configuration cache file need not be on the root file system, so the check was not complete. o Other classes of errors (e.g. file system full) can also prevent a successful update yet do not prevent asynchronous event processing. o Configurations such as NanoBSD never have a read-write root, so ZFS event processing is permanently disabled in these systems. o Failure to handle asynchronous events promptly can extend the window of time that a pool is in a critical state. At worst, a missed configuration cache update will force the operator to perform a manual "zfs import" (note -f is not required) to inform the system about a newly created pool. To minimize the likelihood of this rare occurrence, configuration cache write failures now emit FMA events (via devctl) so the operator can take corrective action, and the write is retried every 5 minutes. The retry interval, in seconds, is tunable via the sysctl "vfs.zfs.ccw_retry_interval". As a side effect of reporting configuration cache events, other sysevents, such as re-silver start/stop, are now also reported via devctl. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c: o As is done in zfs_fm.c, provide a manual declaration for devctl_notify(). Both declarations could be combined into spa_impl.h, but the declaration is fault management related, not spa specific. sys/fm/fs/zfs.h would be ideal if it weren't so public and reserved for FMA string definitions. I'm open to suggestions on how to improve this nit while minimizing our divergence from Solaris. o Use devctl_notify() to implement sysevent support in spa_event_notify(). The subsystem is EC_ZFS so that these events can never collide with those emitted in zfs_fm.c. o Add the sysctl "vfs.zfs.ccw_retry_interval". The value defaults to 5 minutes and is used to rate limit, on a per-pool basis, configuration cache file write attempts. o Modify spa_async_dispatch to honor configuration cache write limiting. If other events are pending, a configuration cache write will be attempted at the same time, so the rate limiting only applies when the asynchronous dispatch system is otherwise idle. Async events should be rare (e.g. device arrival/departure) and configuration cache writes rarer, so a more complicated system to strictly honor the retry limit seems unwarranted. o Remove check in spa_async_dispatch() for the root file system being read-write. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c: Instead of silently ignoring configuration cache write failures, report them via a new FMA event as well as to the console. The current zfs_ereport_post() doesn't allow arbitrary name=value pairs to be appended to the report, so the configuration cache file name is only available on the console output. This limitation should be addressed in a future update. Note: This error report is only posted once per incident, to avoid spamming. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h: Add a hrtime_t to the spa data structure to track the time (via gethrtime()) of the last configuration cache file write failure. This is referenced in spa_async_dispatch() to effect the rate limiting. sys/cddl/contrib/opensolaris/uts/common/sys/fm/fs/zfs.h: Add FM_EREPORT_ZFS_CONFIG_CACHE_WRITE as an ereport class. Submitted by: gibbs Reviewed by: Matthew Ahrens , Eric Schrock , Christopher Siden Sponsored by: Spectra Logic END