aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix an intermittent bug in sbin/devd/client_test.streamAlan Somers2016-04-111-39/+27
| | | | | | | | | | | | | | In case where the two events were being received in separate reads, the event buffer was being null-terminated at the wrong offset. Also, factored out some common code between the tests, and fixed a comment. Submitted by: will MFC after: 3 days Sponsored by: Spectra Logic Corp Notes: svn path=/head/; revision=297838
* Bruce Evans reported that there was a performance regression betweenRick Macklem2016-04-112-4/+6
| | | | | | | | | | | | | | | the old and new NFS clients. He did a good job of isolating the problem which was caused by the new NFS client not setting the post write mtime correctly. The new NFS client code was cloned from the old client, but was incorrect, because the mtime in the nfs vnode's cache wasn't yet updated. This patch fixes this problem. The patch also adds missing mutex locking. Reported and tested by: bde MFC after: 2 weeks Notes: svn path=/head/; revision=297837
* Fix appending -O0 to CFLAGSEnji Cooper2016-04-111-3/+3
| | | | | | | | | | | | The previous method would completely nerf CFLAGS once bsd.progs.mk had recursed into the per-PROG logic and make the CFLAGS for tap testcases to -O0, instead of appending to CFLAGS for all of the tap testcases. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=297836
* META_MODE: Support targets that already have .OBJDIR in them for META_COOKIE.Bryan Drewery2016-04-111-1/+2
| | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=297835
* Revert r297833 which committed the wrong fileBryan Drewery2016-04-111-1/+0
| | | | Notes: svn path=/head/; revision=297834
* META_MODE: Support targets that already have .OBJDIR in them for META_COOKIE.Bryan Drewery2016-04-111-0/+1
| | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=297833
* MFV r297831: 6322 ZFS indirect block predictive prefetchAlexander Motin2016-04-115-23/+90
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Paul Dagnelie <pcd@delphix.com> Author: Alexander Motin <mav@FreeBSD.org> Improve speculative prefetch of indirect blocks. Scalability of many operations on wide ZFS pool can be limited by requirement to prefetch indirect blocks first. Recently added asynchronous indirect block read partially helped, but did not solve the problem completely. This patch extends existing prefetcher functionality to explicitly work with indirect blocks. Before this change prefetcher issued reads for up to 8MB of data in advance. With this change it also issues indirect block reads for up to 64MB of data in advance, so that when it will be time to actually read those data, it can be done immediately. Alike effect can be achieved by just increasing maximal data prefetch distance, but at higher memory cost. Also this change introduces indirect block prefetch for rewrite operations, that was never done before. Previously ARC miss for Indirect blocks regularly blocked rewrites, converting perfectly aligned asynchronous operations into synchronous read-write pairs, significantly reducing maximal rewrite speed. While being there this issue was also fixed: - prefetch was done always, even if caching for the dataset was completely disabled. Testing on FreeBSD with zvol on top of 6x striped 2x mirrored pool of 12 assorted HDDs shown me such performance numbers: ------- BEFORE -------- Write 491363677 bytes/sec Read 312430631 bytes/sec Rewrite 97680464 bytes/sec -------- AFTER -------- Write 493524146 bytes/sec Read 438598079 bytes/sec Rewrite 277506044 bytes/sec Closes #65 Closes #80 openzfs/openzfs@792fd28ac04f78cc5e43ead2d72a96f244ea84e8 Notes: svn path=/head/; revision=297832
| * 6322 ZFS indirect block predictive prefetchAlexander Motin2016-04-115-23/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Paul Dagnelie <pcd@delphix.com> Author: Alexander Motin <mav@FreeBSD.org> Improve speculative prefetch of indirect blocks. Scalability of many operations on wide ZFS pool can be limited by requirement to prefetch indirect blocks first. Recently added asynchronous indirect block read partially helped, but did not solve the problem completely. This patch extends existing prefetcher functionality to explicitly work with indirect blocks. Before this change prefetcher issued reads for up to 8MB of data in advance. With this change it also issues indirect block reads for up to 64MB of data in advance, so that when it will be time to actually read those data, it can be done immediately. Alike effect can be achieved by just increasing maximal data prefetch distance, but at higher memory cost. Also this change introduces indirect block prefetch for rewrite operations, that was never done before. Previously ARC miss for Indirect blocks regularly blocked rewrites, converting perfectly aligned asynchronous operations into synchronous read-write pairs, significantly reducing maximal rewrite speed. While being there this issue was also fixed: - prefetch was done always, even if caching for the dataset was completely disabled. Testing on FreeBSD with zvol on top of 6x striped 2x mirrored pool of 12 assorted HDDs shown me such performance numbers: ------- BEFORE -------- Write 491363677 bytes/sec Read 312430631 bytes/sec Rewrite 97680464 bytes/sec -------- AFTER -------- Write 493524146 bytes/sec Read 438598079 bytes/sec Rewrite 277506044 bytes/sec Closes #65 Closes #80 openzfs/openzfs@792fd28ac04f78cc5e43ead2d72a96f244ea84e8 Notes: svn path=/vendor-sys/illumos/dist/; revision=297831
* | libc: cleanup unnecessary semicolons (part 2).Pedro F. Giffuni2016-04-112-2/+2
| | | | | | | | | | | | | | Found with devel/coccinelle. Notes: svn path=/head/; revision=297829
* | libc: cleanup unnecessary semicolons.Pedro F. Giffuni2016-04-111-7/+7
| | | | | | | | | | | | | | Found with devel/coccinelle. Notes: svn path=/head/; revision=297828
* | libdtrace: Add a missing unlock to an error handler.Mark Johnston2016-04-111-0/+1
| | | | | | | | | | | | | | | | Submitted by: Jihyun Yu <yjh0502@gmail.com> MFC after: 3 days Notes: svn path=/head/; revision=297827
* | rcp(1): replace 0 with NULL for pointers.Pedro F. Giffuni2016-04-111-1/+1
| | | | | | | | | | | | | | Found with devel/coccinelle. Notes: svn path=/head/; revision=297826
* | Fix the problem, when gpart(8) can't write both bootcode and partcodeAndrey V. Elsukov2016-04-111-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | in one command due to wrong file size limit. Do not use bootcode size to calculate partsize limit. Also add report message about successful partcode writing. Reported by: Trond Endrestøl MFC after: 2 weeks Notes: svn path=/head/; revision=297820
* | Only include sysctl in kernel buildSteven Hartland2016-04-111-37/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | Only include sysctl in kernel builds fixing warning about implicit declaration of function 'sysctl_handle_int'. PR: 204140 MFC after: 1 week X-MFC-With: r297813 Sponsored by: Multiplay Notes: svn path=/head/; revision=297819
* | Update 25xx chips firmware from 7.03.00 to 8.03.00.Alexander Motin2016-04-111-14487/+15003
| | | | | | | | | | | | | | | | | | | | | | While the same update is also available for 24xx chips, it seems have a problem with disabling virtual ports -- firmware handles the request, but does not respong on it, causing timeout in driver. MFC after: 1 month Notes: svn path=/head/; revision=297818
* | Polish debugging IOCB dumping.Alexander Motin2016-04-112-31/+42
| | | | | | | | | | | | | | | | | | Add few more missing cases, unify byte order. MFC after: 1 month Notes: svn path=/head/; revision=297817
* | During if_vmove() we call if_detach_internal() which in turn calls the eventBjoern A. Zeeb2016-04-113-0/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | handler notifying about interface departure and one of the consumers will detach if_bpf. There is no way for us to re-attach this easily as the DLT and hdrlen are only given on interface creation. Add a function to allow us to query the DLT and hdrlen from a current BPF attachment and after if_attach_internal() manually re-add the if_bpf attachment using these values. Found by panics triggered by nd6 packets running past BPF_MTAP() with no proper if_bpf pointer on the interface. Also add a basic DDB show function to investigate the if_bpf attachment of an interface. Reviewed by: gnn MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D5896 Notes: svn path=/head/; revision=297816
* | hyperv: TypoSepherosa Ziehau2016-04-111-1/+1
| | | | | | | | | | | | | | | | | | Noticed by: kib MFC after: 1 week Sponsored by: Microsoft OSTC Notes: svn path=/head/; revision=297815
* | Only include sysctl in kernel buildSteven Hartland2016-04-111-2/+2
| | | | | | | | | | | | | | | | | | | | Only include sysctl in kernel builds fixing warning about implicit declaration of function 'sysctl_handle_int'. Sponsored by: Multiplay Notes: svn path=/head/; revision=297813
* | zio: align use of "no dump" flag between use_uma and !use_uma casesAndriy Gapon2016-04-111-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the moment no ZFS buffers are included into a crash dump unless ZFS_DEBUG (or INVARIANTS) kernel option is enabled. That's not very helpful for debugging of ZFS problems, because important information often resides in metadata buffers. This change switches the dumping behavior when UMA is used from the illumos behavior to a more useful behavior that we have on FreeBSD when ZFS buffers are allocated via malloc. Reviewed by: smh, mav MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D5892 Notes: svn path=/head/; revision=297812
* | hyperv/hn: Remove unnecessary NULL checksSepherosa Ziehau2016-04-112-10/+5
| | | | | | | | | | | | | | | | | | | | | | Submitted by: Jun Su <junsu microsoft com> Reviewed by: sephe MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5905 Notes: svn path=/head/; revision=297811
* | hyperv/hn: By default enable multiple TX/RX rings, aka vRSS.Sepherosa Ziehau2016-04-111-2/+2
| | | | | | | | | | | | | | | | | | | | Reviewed by: Dexuan Cui <decui microsoft com> MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5880 Notes: svn path=/head/; revision=297810
* | hyperv/hn: Cap default # of rings to 8.Sepherosa Ziehau2016-04-111-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | 8 gives the best performance in both Azure and local Hyper-V on both 10Ge and 40Ge. More rings are still allowed by manual configuration. Reviewed by: Dexuan Cui <decui microsoft com> MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5879 Notes: svn path=/head/; revision=297809
* | hyperv: Define macro for Hyper-V interfaceSepherosa Ziehau2016-04-111-1/+2
| | | | | | | | | | | | | | | | | | Suggested by: rpokala MFC after: 1 week Sponsored by: Microsoft OSTC Notes: svn path=/head/; revision=297808
* | hyperv: Print more featuresSepherosa Ziehau2016-04-112-20/+57
| | | | | | | | | | | | | | | | | | | | And add comment about the MSR features. MFC after: 1 week Sponsored by: Microsoft OSTC Notes: svn path=/head/; revision=297807
* | Allow guest writes to AMD microcode update[0xc0010020] MSR without updating ↵Anish Gupta2016-04-111-0/+5
| | | | | | | | | | | | | | | | | | | | | | actual hardware MSR. This allows guest microcode update to go through which otherwise failing because wrmsr() was returning EINVAL. Submitted by:Yamagi Burmeister Approved by:grehan MFC after:2 weeks Notes: svn path=/head/; revision=297806
* | hyperv: Break long lineSepherosa Ziehau2016-04-111-1/+2
| | | | | | | | | | | | | | | | MFC after: 1 week Sponsored by: Microsoft OSTC Notes: svn path=/head/; revision=297805
* | hyperv: Declare hyperv_{features,recommends} properlySepherosa Ziehau2016-04-111-0/+3
| | | | | | | | | | | | | | | | MFC after: 1 week Sponsored by: Microsoft OSTC Notes: svn path=/head/; revision=297804
* | hyperv: Resurrect r297481Sepherosa Ziehau2016-04-111-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | This time we make sure that the TIME_REF_COUNT MSR exists. Submitted by: Jun Su <junsu microsoft com> Reviewed by: sephe, Dexuan Cui <decui microsoft com> MFC after: 1 week Sponsored by: Microsoft OSTC Notes: svn path=/head/; revision=297803
* | hyperv: Identify Hyper-V features and recommends properlySepherosa Ziehau2016-04-112-2/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Features bits will be used to detect devices, e.g. timers, which do not have corresponding event channels. Submitted by: Jun Su <junsu microsoft com> Reviewed by: sephe, Dexuan Cui <decui microsoft com> Rearranged by: sephe MFC after: 1 week Sponsored by: Microsoft OSTC Notes: svn path=/head/; revision=297802
* | hyperv/vmbus: Get rid of max_leaf detection; this is actually not used.Sepherosa Ziehau2016-04-111-32/+0
| | | | | | | | | | | | | | | | | | | | It will be replaced by a new one. MFC after: 1 week Sponsored by: Microsoft OSTC Notes: svn path=/head/; revision=297801
* | hyperv/vmbus: Nuke unused functionSepherosa Ziehau2016-04-112-13/+0
| | | | | | | | | | | | | | | | MFC after: 1 week Sponsored by: Microsoft OSTC Notes: svn path=/head/; revision=297800
* | cxgbe(4): Provide an explicit value for nqpcq in the firmwareNavdeep Parhar2016-04-111-1/+2
| | | | | | | | | | | | | | configuration file. Notes: svn path=/head/; revision=297797
* | ext2fs: replace 0 with NULL for pointers.Pedro F. Giffuni2016-04-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | While here do late initialization of ebap, similar as was done in UFS. Found with devel/coccinelle. MFC after: 2 weeks Notes: svn path=/head/; revision=297796
* | lpr: replace 0 with NULL for pointers.Pedro F. Giffuni2016-04-108-23/+23
| | | | | | | | | | | | | | | | | | Found with devel/coccinelle. Reviewed by: gad Notes: svn path=/head/; revision=297795
* | Fix IIC "how" argument dereferencing on big-endian platformsOleksandr Tymoshenko2016-04-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | "how" argument is passed as value of int* pointer to callback function but dereferenced as char* so only one byte taken into into account. On little-endian systems it happens to work because first byte is LSB that contains actual value, on big-endian it's MSB and in this case it's always equal zero PR: 207786 Submitted by: chadf@triularity.org Notes: svn path=/head/; revision=297794
* | Cleanup unnecessary semicolons from the kernel.Pedro F. Giffuni2016-04-10117-293/+291
| | | | | | | | | | | | | | Found with devel/coccinelle. Notes: svn path=/head/; revision=297793
* | Since r296250 it is no longer possible for devices to use bus spaceMarius Strobl2016-04-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | addresses exceeding 32 bit, so bump BUS_SPACE_MAXADDR to 64 bit. The whole situation is sub par, though; prior to r296250 and despite what their names imply, BUS_SPACE_MAX* were primarily, even almost exclusively used for bus_dma(9). Now these macros also have a vital role for bus_space(9). However, it does not necessarily hold that both bus DMA and space addresses universally have the same limits per platform. As for sparc64, 64 bit clearly is beyond what can be addressed via the various IOMMUs. With this change in place, we now rely on the parent bus DMA tags of the host-to-foo drivers causing the child tags to be capped as necessary. PR: 207998 Notes: svn path=/head/; revision=297792
* | ufs: replace 0 with NULL for pointers.Pedro F. Giffuni2016-04-104-22/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | While here also do late initialization of the variables we are changing. Found with devel/coccinelle. Reviewed by: mckusick MFC after: 2 weeks Notes: svn path=/head/; revision=297791
* | libc: replace 0 with NULL for pointers.Pedro F. Giffuni2016-04-1022-52/+49
| | | | | | | | | | | | | | | | | | | | | | | | While here also cleanup some surrounding code; particularly drop some malloc() casts. Found with devel/coccinelle. Reviewed by: bde (previous version - all new bugs are mine) Notes: svn path=/head/; revision=297790
* | Add bofh@ in calendar.freebsdMuhammad Moinur Rahman2016-04-101-0/+1
| | | | | | | | Notes: svn path=/head/; revision=297788
* | VM_MAXUSER_ADDRESS is highest page start, not highest address.Justin Hibbits2016-04-101-1/+1
| | | | | | | | | | | | | | | | In case a single page mapping is requested first, which might overlap the user address space, fix the device map block to the next page. Notes: svn path=/head/; revision=297785
* | Restructure device mappings for Book-E.Justin Hibbits2016-04-102-18/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: There is currently a 1GB hole between user and kernel address spaces into which direct (1:1 PA:VA) device mappings go. This appears to go largely unused, leaving all devices to contend with the 128MB block at the end of the 32-bit space (0xf8000000-0xffffffff). This easily fills up, and needs to be densely packed. However, dense packing wastes precious TLB1 space, of which there are only 16 (e500v2) or 64(e5500) entries available. Change this by using the 1GB space for all device mappings, and allow the kernel to use the entire upper 1GB for KVA. This also allows us to use sparse device mappings, freeing up TLB entries. Test Plan: Boot tested on p5020. Differential Revision: https://reviews.freebsd.org/D5832 Notes: svn path=/head/; revision=297784
* | More complete implementation of /proc/self/limits.Dmitry Chagin2016-04-102-42/+76
| | | | | | | | | | | | | | | | | | | | | | Fix the way the code accesses process limits struct - pointed out by mjg@. PR: 207386 Reviewed by: no objection form des@ MFC after: 3 weeks Notes: svn path=/head/; revision=297781
* | Add a 'show t4 devlog <nexus>' DDB command.John Baldwin2016-04-101-0/+93
| | | | | | | | | | | | | | | | | | | | This command displays the adapter's firmware device log similar to the dev.<nexus>.misc.devlog sysctl. Sponsored by: Chelsio Communications Notes: svn path=/head/; revision=297779
* | Allow the location of the kernel source tree to be overridden.Peter Grehan2016-04-101-1/+3
| | | | | | | | | | | | | | | | This makes it easier for the bhyve executable to be built out of the tree. Notes: svn path=/head/; revision=297778
* | Add a 'show t4 tcb <nexus> <tid>' command to dump a TCB from DDB.John Baldwin2016-04-103-25/+86
| | | | | | | | | | | | | | | | This allows the contents of a TCB to be extracted from a T4/T5 card in DDB after a panic. Notes: svn path=/head/; revision=297777
* | Add a function to lookup a device_t object by name.John Baldwin2016-04-102-6/+17
| | | | | | | | | | | | | | | | | | This just walks the global list of devices looking for one with the requested name. The one use case outside of devctl2's implementation is for DDB commands that wish to lookup devices by name. Notes: svn path=/head/; revision=297776
* | [net80211] correctly (i hope, wow) do a ticks comparison to limit A-MPDU ↵Adrian Chadd2016-04-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | attempts I was seeing the stack constantly attempt to renegotiate A-MPDU TX even after 3 failures. My hunch is that the direct ticks comparison is failing around the ticks wrap-around point. This failure shouldn't /really/ happen normally, but it turns out being the IBSS master node on FreeBSD doesn't quite setup 11n right, so negotiating A-MPDU TX fails. Notes: svn path=/head/; revision=297775
* | [net80211] unconditionally do A-MPDU RX aging.Adrian Chadd2016-04-101-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's 2016 and vendors (including us!) still have 802.11n TX/RX sequence handling bugs. It's suboptimal, but I'd rather see us default to handling things in a sensible way. So, just delete the #ifdef'ed code for now. I'll leave the option in so it doesn't break existing configurations. This all started because I've started getting reports about urtwn not working after I enabled 802.11n support, and it's because the ARM kernel configs don't include A-MPDU RX aging. Notes: svn path=/head/; revision=297774