summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* MFC: r268273rmacklem2014-08-031-2/+4
| | | | | | | | | | | | The new NFSv3 server did not generate directory postop attributes for the reply to ReaddirPlus when the server failed within the loop that calls VFS_VGET(). This failure is most likely an error return from VFS_VGET() caused by a bogus d_fileno that was truncated to 32bits. This patch fixes the server so that it will return directory postop attributes for the failure. It does not fix the underlying issue caused by d_fileno being uint32_t when a file system like ZFS generates a fileno that is greater than 32bits.
* MFC 259910, 260023, 260028, 260600 & 260701:marcel2014-08-021-75/+158
| | | | | | | | o Fix "kptdir is itself virtual" error, caused by having the kptdir in PBVM. o Allow building a cross libkvm for ia64. o Add support for virtual cores (aka minidumps). o We don't have to worry about page sizes when working on virtual cores. o Handle truncation of the size returned by _kvm_kvatop().
* MFC r269139:hselasky2014-08-022-22/+22
| | | | | Split the XHCI TRB allocations into smaller parts, so that we don't end up allocating contiguous busdma buffers above PAGE_SIZE bytes.
* Partial MFC of r267961, r267973, r267985, r267992, r267993 and r268005:hselasky2014-08-022-13/+22
| | | | | Backport some macro definitions to make backporting code from FreeBSD current easier.
* MFC: r268866rmacklem2014-08-021-2/+2
| | | | | | r243637 changed the default number of nfsd threads created, but the man page did not reflect this. This is a content change.
* Define both ttyu0 and ttyu1 as onifconsole. This is ideal for ia64marcel2014-08-021-2/+2
| | | | where the console can be on either, depending on the platform.
* MFC r269123:mav2014-08-021-3/+88
| | | | | | | | | | | | | Implement separate I/O dispatch method for ZVOLs in "dev" mode. Unlike disk devices ZVOLs process all requests synchronously. That makes impossible sending multiple requests to them from single thread. From the other side ZVOLs have real d_read/d_write methods, which unlike d_strategy can handle uio scatter/gather and have no strict I/O size limitations. So, if ZVOL in "dev" mode is detected, use of d_read/d_write methods instead of d_strategy allows to avoid pointless splitting of large requests into MAXPHYS (128K) sized chunks.
* MFC r268865: MFV r268852:delphij2014-08-027-17/+130
| | | | | | | | | | | | | Reduce lock contention on the z_teardown_lock under heavily cached read workload by splitting the single teardown rrw lock into RRM_NUM_LOCKS (17) of them. Read acquisitions are randomly distributed among these locks based on curthread pointer. Write acquisitions are going to all the locks, which for the usage of this type of lock should be rare. Illumos issue: 5008 lock contention (rrw_exit) while running a read only load
* MFC r268859: MFV r268851:delphij2014-08-025-6/+44
| | | | | | | | | When a sync task is waiting for a txg to complete, we should hurry it along by increasing the number of outstanding async writes (i.e. make vdev_queue_max_async_writes() return a larger number). Illumos issue: 4753 increase number of outstanding async writes when sync task is waiting
* MFC r268858: MFV r268850:delphij2014-08-023-81/+64
| | | | | | | | | | | | | | | Change the interaction between the DMU and ARC so that when the DMU is shutting down an objset, we do not evict the data from the ARC. Instead we simply coordinate the destruction of the DMU's data with the ARC. The only case where we actually need to explicitly evict from the ARC is when dbuf_rele_and_unlock() determines that the administrator has requested that it not be kept in memory, via the primarycache/secondarycache properties. In this case, we evict the data from the ARC by its blkptr_t, the same way as when a block is freed we explicitly evict it from the ARC. Illumos issue: 4631 zvol_get_stats triggering too many reads
* MFC r268855: MFV r268848:delphij2014-08-028-45/+130
| | | | | | | | | | | | | | | | | | Instead of asserting all zio's be properly aligned, only assert on the logical ones. Cap uberblocks at 8k, otherwise with ashift=17, there would be only one uberblock. This fixes a problem that zdb would trip assert on pools with ashift >= 0xe (8k). While there, also change the code so it only attempt to condense space map unless the uncondensed size consumes greater than zfs_metaslab_condense_block_threshold blocks. Illumos issue: 4958 zdb trips assert on pools with ashift >= 0xe
* MFC r258436: Refactor amd64 startup SMAP parsingemaste2014-08-011-33/+44
| | | | | | Extracted from the projects/uefi branch, this change is a reasonable cleanup and will reduce the diffs to review when bringing in the UEFI work.
* Add an UPDATING entry for the __FreeBSD_version bump relatedrmacklem2014-08-011-0/+5
| | | | to r269398.
* Bump __FreeBSD_version for r269398, since it changes thermacklem2014-08-011-1/+1
| | | | | internal interfaces between the NFS related modules. This is a direct commit to stable/10.
* MFC r266902: Add missing libexec/bsdconfig subdirectoriesemaste2014-08-011-0/+4
|
* MFC: r268115rmacklem2014-08-0124-333/+2694
| | | | | | | | Merge the NFSv4.1 server code in projects/nfsv4.1-server over into head. The code is not believed to have any effect on the semantics of non-NFSv4.1 server behaviour. It is a rather large merge, but I am hoping that there will not be any regressions for the NFS server.
* MFC 256657,257423,264837,267559:jhb2014-08-011-35/+95
| | | | | | | | | | | Sync vmrun.sh with HEAD: - Add -e option to vmrun.sh passed to bhyveload(8) to set loader environment variables. - Stop passing unused -I option to bhyve(8). - Reformat the usage to fit in 80 colums and other cleanups. - Add -C option to specify the console device. - Add -H option to pass a host path to bhyveload(8). - Support for multiple disk and tap devices.
* MFC r268780truckman2014-08-013-113/+16
| | | | | | | | | | | | | | | | | | Nuke the never-used RF_TIMESHARE feature, reducing the complexity of the code. The consensus on arch@ is that this feature might have been useful in the distant past, but is now just unnecessary bloat. The int_rman_activate_resource() and int_rman_deactivate_resource() functions become trivial, so manually inline them. The special deferred handling of RF_ACTIVE is no longer needed in reserve_resource_bound(), so eliminate the associated code at the end of the function. These changes reduce the object file size by more than 500 bytes on i386. Update the rman.9 man page to reflect the removal of the RF_TIMESHARE feature.
* MFC r269205:kib2014-08-011-1/+1
| | | | Simplify the expression.
* MFC r269106:np2014-07-311-2/+51
| | | | | | | | | | | | | | | | | | | | Add a 'raw' parameter to the 'modinfo' subcommand. This is handy when trying to figure out why a QSFP+/SFP+ connector or cable wasn't identified correctly by cxgbe(4). Its output looks like this: # cxgbetool t5nex0 modinfo 0 raw 00: 03 04 21 00 00 00 00 00 ..!. .... 08: 04 00 00 00 67 00 00 00 .... g... 10: 00 00 05 00 41 6d 70 68 .... Amph 18: 65 6e 6f 6c 20 20 20 20 enol 20: 20 20 20 20 00 41 50 48 .APH 28: 35 37 31 35 34 30 30 30 5715 4000 30: 33 20 20 20 20 20 20 20 3 38: 4b 20 20 20 01 00 00 fa K .... 40: 00 00 00 00 41 50 46 31 .... APF1 48: 30 30 34 30 30 33 30 30 0040 0300 50: 30 33 20 20 31 30 30 31 03 1001 58: 33 30 20 20 00 00 00 97 30 ....
* MFC r268971 and r269032.np2014-07-313-36/+99
| | | | | | | | | | | | | r268971: Simplify r267600, there's no need to distinguish between allocated and inlined mbufs. r269032: cxgbe(4): Keep track of the clusters that have to be freed by the custom free routine (rxb_free) in the driver. Fail MOD_UNLOAD with EBUSY if any such cluster has been handed up to the kernel but hasn't been freed yet. This prevents a panic later when the cluster finally needs to be freed but rxb_free is gone from the kernel.
* MFC r264434:markj2014-07-314-11/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DTrace's pid provider works by inserting breakpoint instructions at probe sites and installing a hook at the kernel's trap handler. The fasttrap code will emulate the overwritten instruction in some common cases, but otherwise copies it out into some scratch space in the traced process' address space and ensures that it's executed after returning from the trap. In Solaris and illumos, this (per-thread) scratch space comes from some reserved space in TLS, accessible via the fs segment register. This approach is somewhat unappealing on FreeBSD since it would require some modifications to rtld and jemalloc (for static TLS) to ensure that TLS is executable, and would thus introduce dependencies on their implementation details. I think it would also be impossible to safely trace static binaries compiled without these modifications. This change implements the functionality in a different way, by having fasttrap map pages into the target process' address space on demand. Each page is divided into 64-byte chunks for use by individual threads, and fasttrap's process descriptor struct has been extended to keep track of any scratch space allocated for the corresponding process. With this change it's possible to trace all libc functions in a program, e.g. with pid$target:libc.so.*::entry {@[probefunc] = count();} Previously this would generally cause the victim process to crash, as tracing memcpy on amd64 requires the functionality described above.
* MFC 268931:wblock2014-07-312-10/+10
| | | | | Correct spelling errors in ctld.8. While here, correct similar errors in ctl.conf.5 and fix a couple of contractions.
* MFC r268300:rpaulo2014-07-311-0/+12
| | | | | bsd.dep.mk: add support for generating DTrace header files from .d files.
* MFC r268808:mav2014-07-305-8/+7
| | | | | | | | Increase maximal number of SCSI ports in CTL from 32 to 128. After I gave each iSCSI target its own port, the old limit appeared to be not so big. This change almost proportionally increases per-LUN memory use, but it is still three times better then it was before r268807.
* MFC r268807:mav2014-07-302-81/+69
| | | | | | | | | | Reduce per-LUN memory usage from 18MB to 1.8MB. CTL never had use for CA support code since SPI has gone, and there is no even frontends supporting that. But it still was reserving 256 bytes of memory per LUN per every possible initiator on every possible port. Wrap unused code with ifdef's in case somebody ever need it.
* MFC r268767:mav2014-07-3015-47/+2385
| | | | | | | | | | | | | | | | Add support for VMWare dialect of EXTENDED COPY command, aka VAAI Clone. This allows to clone VMs and move them between LUNs inside one storage host without generating extra network traffic to the initiator and back, and without being limited by network bandwidth. LUNs participating in copy operation should have UNIQUE NAA or EUI IDs set. For LUNs without these IDs VMWare will use traditional copy operations. Beware: the above LUN IDs explicitly set to values non-unique from the VM cluster point of view may cause data corruption if wrong LUN is addressed! Sponsored by: iXsystems, Inc.
* MFC r268581:mav2014-07-303-91/+83
| | | | Merge several equal serialization indexes.
* MFC r269149:mav2014-07-301-10/+12
| | | | Fix several cases of NULL dereference when INQUIRY sent to absent LUN.
* MFC r269160:kib2014-07-304-117/+4
| | | | | | | Remove man page for non-existent VOPs. MFC r269240 (by pluknet): Add VOP_GETVOBJECT.9 to obsolete files, un-xref.
* MFC r269159:kib2014-07-301-11/+8
| | | | | | | | Correct the locking statement. MFC r269161: Explicitely mention that inactivated or reclaimed vnode is locked exclusively.
* MFC r268765:kib2014-07-301-1/+0
| | | | Remove unused header.
* MFC r268764:kib2014-07-307-41/+9
| | | | | Check for the cross-device cross-link attempt in the VFS, instead of VOP_LINK() implemenations.
* MFC r265276:markj2014-07-291-1/+1
| | | | Fix a typo.
* MFC r264435:markj2014-07-291-1/+7
| | | | | Ensure that all eight syscall arguments are available to dtrace_probe(), rather than just the first five.
* MFC r268929:hselasky2014-07-292-0/+2
| | | | | | Add new device ID. PR: 191959
* MFC r269127:hselasky2014-07-294-2/+6
| | | | Fix for division by zero.
* MFC r264486:markj2014-07-291-0/+5
| | | | | Use the correct format specifiers for wide characters and strings of wide characters.
* MFC r268446:markj2014-07-291-1/+1
| | | | Fix a typo.
* MFC: r268726rmacklem2014-07-291-1/+1
| | | | | | | Move the "retry:" label so that the calls to m_pullup() are not done after the call to m_defrag(). This fixes a problem where m_pullup() would prepend an mbuf to the list created by m_defrag() making the chain greater than 32 again.
* MFH (r266114, r266138): upgrade to latest ldns and unbounddes2014-07-29262-18907/+36893
| | | | | | | | | | | MFH (r266139-r266143, r266145, r266149, r266150): fix props MFH (r266179, r266180, r266193, r266238, r266777): misc cleanup MFH (r266863): create and use /var/unbound/conf.d MFH (r268839): import unblock-lan-zones patch from upstream MFH (r268840): fix reverse lookups on private networks MFH (r268883): avoid spamming source tree during build PR: 190739 (for r268883)
* MFC r264363:markj2014-07-291-3/+3
| | | | | Update the SDT(9) example to reflect the removal of the sname parameter in r258622.
* MFC r263329:markj2014-07-292-38/+42
| | | | | | | Only invoke fasttrap hooks for traps from user mode, and ensure that they're called with interrupts enabled. Calling fasttrap_pid_probe() with interrupts disabled can lead to deadlock if fasttrap writes to the process' address space.
* MFC r262669:markj2014-07-291-30/+58
| | | | | | | | | | When our linker merges .SUNW_dof sections from multiple files, it simply concatenates the DOF tables into one section. Previously, the USDT init code in drti.o would only look at the first table in the DOF section; with this change, it iterates over all the tables, passing each DOF table to the kernel. PR: 186821
* MFC: r269051marius2014-07-291-0/+8
| | | | | | | | | | | | | | | | | Copying pages via temporary mappings in the !DMAP case of pmap_copy_pages() involves updating the corresponding page tables followed by accesses to the pages in question. This sequence is subject to the situation exactly described in the "AMD64 Architecture Programmer's Manual Volume 2: System Programming" rev. 3.23, "7.3.1 Special Coherency Considerations" [1, p. 171 f.]. Therefore, issuing the INVLPG right after modifying the PTE bits is crucial (see also r269050, MFCed to stable/10 in r269235). For the amd64 PMAP code, the order of instructions was already correct. The above fact still is worth documenting, though. 1: http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/24593_APM_v21.pdf Reviewed by: alc Sponsored by: Bally Wulff Games & Entertainment GmbH
* MFC: r269050marius2014-07-291-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | - Copying and zeroing pages via temporary mappings involves updating the corresponding page tables followed by accesses to the pages in question. This sequence is subject to the situation exactly described in the "AMD64 Architecture Programmer's Manual Volume 2: System Programming" rev. 3.23, "7.3.1 Special Coherency Considerations" [1, p. 171 f.]. Therefore, issuing the INVLPG right after modifying the PTE bits is crucial. For pmap_copy_page(), this has been broken in r124956 and later on carried over to pmap_copy_pages() derived from the former, while all other places in the i386 PMAP code use the correct order of instructions in this regard. Fixing the latter breakage solves the problem of data corruption seen with unmapped I/O enabled when running at least bare metal on AMD R-268D APUs. However, this might also fix similar corruption reported for virtualized environments. - In pmap_copy_pages(), correctly set the cache bits on the source page being copied. This change is thought to be a NOP for the real world, though. [2] 1: http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/24593_APM_v21.pdf Submitted by: kib [2] Reviewed by: alc, kib Sponsored by: Bally Wulff Games & Entertainment GmbH
* MFC r269122:mav2014-07-291-2/+3
| | | | Fix infinite loop, when doing WRITE SAME on file-backed LUN.
* MFC r268727 (by delphij):pluknet2014-07-291-0/+1
| | | | Add a bandaid to fix GCC build (on sparc64 et al).
* MFC r268979:delphij2014-07-291-0/+2
| | | | | | | | | | | Don't save entropy inside jails. As of r126744, we no longer feed the entropy device in jails upon start, and collecting them is no longer useful. PR: conf/126744 Submitted by: Eugene Grosbein <eugen grosbein net> (with minor changes) Approved by: so (des)
* MFC r268720: MFV r268714:delphij2014-07-292-15/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve extreme rewind import. When doing an "extreme rewind" import ("zpool import -XF"), we attempt to verify all data in the pool, essentially scrubbing the entire pool. The problem is that spa_load_verify_cb() issues an unbounded number of concurrent scrub i/os. This can lead to all of memory being used for these zio's, wedging the system. Like normal scrub, we need to put a cap on the number of outstanding i/os, and have the traverse thread block when we reach this cap. For this purpose the cap can be very large (10,000) to optimize the elevator algorithm. Three kernel tunables have been added: vfs.zfs.spa_load_verify_maxinflight vfs.zfs.spa_load_verify_metadata vfs.zfs.spa_load_verify_data The latter two tunables controls whether metadata and/or user data when doing extreme rewind. Make 'zpool import -T' imply scrub. Make zpool import -T <txg> accept hexadecimal values for the txg when prefixed with 0x. Skip txg's for which there is no uberblock when doing extreme rewind. Skip reading all user data twice by skipping prefetches when doing extreme rewinds as we do not access via the ARC. Illumos issues: 4970 need controls on i/o issued by zpool import -XF 4971 zpool import -T should accept hex values 4972 zpool import -T implies extreme rewind, and thus a scrub 4973 spa_load_retry retries the same txg 4974 spa_load_verify() reads all data twice
OpenPOWER on IntegriCloud