aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | Move ioctl frontend defines where they belong.Alexander Motin2015-09-262-12/+12
| | | | | | | | Notes: svn path=/head/; revision=288261
* | Remove few more unused variables.Alexander Motin2015-09-262-4/+0
| | | | | | | | Notes: svn path=/head/; revision=288260
* | Remove some duplicate, legacy, dead and questionable code.Alexander Motin2015-09-2611-1003/+50
| | | | | | | | Notes: svn path=/head/; revision=288259
* | Make the __bitcount*() functions unconditionally available, by movingKonstantin Belousov2015-09-261-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | them out of the #if _BSD_VISIBLE block. Other headers may depend on __bitcount(). The dependencies can be a header not specified by POSIX, and then namespace restrictions by _XOPEN_SOURCE are not applicable, as it was reported. Or, we might grow an implementation of some POSIX facility using __bitcount(), which also should work. Reported by: Jason Schulz <schulz.j@gmail.com> Discussed with: jhb Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Notes: svn path=/head/; revision=288258
* | * Add 11n HT40 support - i needed to send both HTINFO and HTCAP fieldsAdrian Chadd2015-09-261-23/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in the join message so the firmware would pick it up. * Strip out the direct hardware fiddling for 40MHz mode - the firmware we're using doesn't require it (the rtl8712su firmware does; it is less 'fullmac' than what we're using.) * Fix the mbuf handling during errors - rsu_tx shouldn't free mbufs; it's up to the caller to do so. This brings it in line with what other drivers do or should be doing. Tested: * RTL8712, HT40 channel, STA mode (during this commit) Notes: svn path=/head/; revision=288257
* | Exploit r288122 to address a cosmetic issue. Since PV chunk pages don'tAlan Cox2015-09-266-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | belong to a vm object, they can't be paged out. Since they can't be paged out, they are never enqueued in a paging queue. Nonetheless, passing PQ_INACTIVE to vm_page_unwire() creates the appearance that these pages are being enqueued in the inactive queue. As of r288122, we can avoid this false impression by passing PQ_NONE. Submitted by: kmacy (an earlier version) Differential Revision: https://reviews.freebsd.org/D1674 Notes: svn path=/head/; revision=288256
* | Fix a bug in the TX command handling - log when a too-large payload isAdrian Chadd2015-09-261-1/+9
| | | | | | | | | | | | | | sent, and fix a bug I found when doing so. Notes: svn path=/head/; revision=288255
* | Add man pages for the AR9170 and AR9170 firmware.Adrian Chadd2015-09-263-0/+340
| | | | | | | | Notes: svn path=/head/; revision=288254
* | Add an initial driver for the AR9170 series draft-11n hardware fromAdrian Chadd2015-09-2610-0/+4210
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Atheros. Thanks to OpenBSD for providing a driver based on the original Atheros open source driver circa 2008. This uses the early, pre-carl9170 atheros provided firmware. It only supports 11bg at the moment. I've not tested it with 11a (and so the TX rate control logic may be slightly wrong!) so if you do have the dual-band version of this hardware please do let me know. Tested: * AR9170, TP-Link WN821N 2GHz. TODO: * Hook this up to a non-module build. Notes: svn path=/head/; revision=288253
* | Update USB device IDs for the upcoming AR9170 support.Adrian Chadd2015-09-261-0/+30
| | | | | | | | Notes: svn path=/head/; revision=288252
* | META_MODE: Make it easier to keep the bootstrap-tools args in sync.Bryan Drewery2015-09-262-14/+15
| | | | | | | | | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288251
* | Add SUBDIR_PARALLEL.Bryan Drewery2015-09-261-1/+2
| | | | | | | | | | | | | | | | MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288249
* | Remove disconnected directories.Bryan Drewery2015-09-264-68/+0
| | | | | | | | | | | | | | | | | | These were added disconnected in 2005 in r145524. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288248
* | Pass to sobind() copy of the address, not the original.Alexander Motin2015-09-261-2/+6
| | | | | | | | Notes: svn path=/head/; revision=288247
* | Add missing CLEANFILES.Bryan Drewery2015-09-261-0/+1
| | | | | | | | | | | | | | | | | | MFC after: 1 week X-MFC-With: r288199 Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288246
* | Perform some rather amusing layering violations to add mbuf tags to theAdrian Chadd2015-09-265-34/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | net80211 receive path. This allows drivers (notably USB right now, but anything/everything!) to optionally defer bulk RX of 802.11 frames until /outside/ of the driver lock(s), rather than doing: UNLOCK(sc); ieee80211_input*() LOCK(sc); .. which is really stupid. The existing API is maintaned - if ieee80211_input() / ieee80211_input_all() is called then the RSSI/NF values are used. If the MIMO versions are called with a given rx status pointer then it's used. Else, it'll use whatever is in the RX mbuf tag. Notes: svn path=/head/; revision=288245
* | Compare the newly allocated array elements to NULL in order to seeBjoern A. Zeeb2015-09-251-2/+2
| | | | | | | | | | | | | | | | | | | | if the malloc succeeded. Spotted by: reading kernel compile time log MFC after: 2 weeks Notes: svn path=/head/; revision=288242
* | Remove 'set -e' that are no longer needed as it is already default.Bryan Drewery2015-09-252-6/+4
| | | | | | | | | | | | | | | | | | | | | | When bmake was initially imported at r241298 shell commands were no longer ran with 'set -e' as they were before. This was fixed in r254980 so they again always use 'set -e'. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288241
* | Explicitly enable .MAKE.ALWAYS_PASS_JOB_QUEUE for bmake.Bryan Drewery2015-09-251-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a NOP as r254419 enabled this by default in bmake. Add it here though to ensure it is known that we are using this as a default and in case a bmake import removes the default we have. This tells bmake to always pass job tokens into sub-commands. Otherwise it would only do so if the target being built depended on the special .MAKE target (which causes _all_ commands to be executed with -n as well) or if the command matches '${MAKE}/${.MAKE}/$(MAKE)/$(.MAKE)/make' (before expansion, so ${LIB32WMAKE} would not qualify). Using '+' on a command (which runs the command with -n) would not pass the job token even though it is a documented way to achieve the .MAKE effect on a command. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288240
* | Properly lock LUN in ctl_failover_lun().Alexander Motin2015-09-251-7/+25
| | | | | | | | Notes: svn path=/head/; revision=288239
* | MFV c3ccd112: Correct off-by-ones in free_exception of emergency bufferConrad Meyer2015-09-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Note, this has been broken since import in r227825. PR: https://github.com/pathscale/libcxxrt/issues/29 Reviewed by: emaste (earlier version), kan (informally) Obtained from: Anton Rang Relnotes: yes Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3733 Notes: svn path=/head/; revision=288238
* | Remove apostrophe from AP's for consistency (arm64 mp_machdep)Ed Maste2015-09-251-1/+1
| | | | | | | | Notes: svn path=/head/; revision=288235
* | Add missing binutils ldscripts.Bryan Drewery2015-09-251-0/+182
| | | | | | | | | | | | | | | | | | | | Some of these are after the fix in r288230 to install them. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288234
* | Fix subdir -j build after r287983 by adding missing dependencies.Bryan Drewery2015-09-255-0/+5
| | | | | | | | | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288233
* | Build ofwdump(8) on MIPS tooEd Maste2015-09-251-0/+1
| | | | | | | | | | | | | | | | | | It will be useful as FDT sees increasing usage on FreeBSD/mips. Sponsored by: DARPA, AFRL Notes: svn path=/head/; revision=288232
* | xinstall: renumber UCB clauses to avoid skipping #3Ed Maste2015-09-252-2/+2
| | | | | | | | Notes: svn path=/head/; revision=288231
* | Fix emulation ldscripts not being installed since r131832.Bryan Drewery2015-09-251-1/+1
| | | | | | | | | | | | | | | | | | | | For example, 32bit scripts on 64bit host. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288230
* | Fix bit masks changed for the wrong commands in r288221.Alexander Motin2015-09-251-4/+4
| | | | | | | | Notes: svn path=/head/; revision=288229
* | META_MODE: Remove DEP_MACHINE from Makefile.depend files.Bryan Drewery2015-09-2546-92/+0
| | | | | | | | | | | | | | | | | | This has not been needed since r246865 in projects/bmake. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288228
* | META_MODE: Checkin a proper Makefile.depend.Bryan Drewery2015-09-251-3/+10
| | | | | | | | | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288227
* | META_MODE: Remove DEP_RELDIR from Makefile.depend files.Bryan Drewery2015-09-25164-328/+0
| | | | | | | | | | | | | | | | | | This has not been needed since r284171 in projects/bmake. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288226
* | Add missing SVN keywords.Bryan Drewery2015-09-250-0/+0
| | | | | | | | | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288225
* | Constify ctl_serialize_table.Alexander Motin2015-09-252-2/+2
| | | | | | | | Notes: svn path=/head/; revision=288224
* | sbuf: Process more than one char at a timeConrad Meyer2015-09-251-35/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revamp sbuf_put_byte() to sbuf_put_bytes() in the obvious fashion and fixup callers. Add a thin shim around sbuf_put_bytes() with the old ABI to avoid ugly changes to some callers. Reviewed by: jhb, markj Obtained from: Dan Sledz Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3717 Notes: svn path=/head/; revision=288223
* | Remove some dead code found by Clang analyzer.Alexander Motin2015-09-2510-220/+17
| | | | | | | | Notes: svn path=/head/; revision=288221
* | Remove stale comments and some excessive empty lines.Alexander Motin2015-09-252-84/+10
| | | | | | | | Notes: svn path=/head/; revision=288220
* | The bsd.progs.mk -> bsd.prog.mk rework did not pan out yet.Bryan Drewery2015-09-251-1/+1
| | | | | | | | | | | | | | | | It may still in the future but for now unmark this deprecated. bsd.progs.mk is less bad after r288158. Notes: svn path=/head/; revision=288219
* | PROGS: Let the parent run the children in parallel.Bryan Drewery2015-09-251-2/+0
| | | | | | | | | | | | | | | | | | | | This seems to work fine. MFC after: 3 weeks Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288218
* | Fix non-POSIX-compliant use of getaddrinfo in libfetchMichael Gmelin2015-09-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | Submitted by: Boris Kolpackov <boris@codesynthesis.com> Reviewed by: bapt Approved by: bapt MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D3724 Notes: svn path=/head/; revision=288217
* | Use per-cpu values for base and last in tc_cpu_ticks(). The valuesKonstantin Belousov2015-09-251-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | are updated lockess, different CPUs write its own view of timecounter state. The critical section is done for safety, callers of tc_cpu_ticks() are supposed to already enter critical section, or to own a spinlock. The change fixes sporadical reports of too high values reported for the (W)CPU on platforms that do not provide cpu ticker and use tc_cpu_ticks(), in particular, arm*. Diagnosed and reviewed by: jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Notes: svn path=/head/; revision=288216
* | Switch I/O time accounting from system time to uptime.Alexander Motin2015-09-254-24/+24
| | | | | | | | | | | | | | While there, make num_dmas accounted independently of CTL_TIME_IO. Notes: svn path=/head/; revision=288215
* | Collect DMA statistics on secondary HA node.Alexander Motin2015-09-251-3/+13
| | | | | | | | Notes: svn path=/head/; revision=288214
* | Make HA handle datamove and done in a universal way, using port methods.Alexander Motin2015-09-251-236/+171
| | | | | | | | | | | | | | | | Now from primary node point of view requests transferred from secondary node should look almost normal and always have valid port. Notes: svn path=/head/; revision=288213
* | Fix two cases where "const" were washed off pointers with strchr(3)Poul-Henning Kamp2015-09-251-4/+6
| | | | | | | | Notes: svn path=/head/; revision=288212
* | Remove some control_softc references.Alexander Motin2015-09-256-52/+25
| | | | | | | | Notes: svn path=/head/; revision=288211
* | META_MODE: Fix staging not respecting _DIR overrides.Bryan Drewery2015-09-252-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes atf-c.h not properly being installed to /usr/include/ (in the stagedir) via its override of 'INCSDIR_atf-c.h= ${INCLUDEDIR}'. This fixes building things that depend on atf. Staging seems to ignore OWN/GRP/MODE settings and needs further exploration. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288210
* | Fix typo.Josh Paetzel2015-09-251-1/+1
| | | | | | | | | | | | | | Sponsored by: iXsystems Notes: svn path=/head/; revision=288208
* | Add double size 16x32 VGA ROM fontEd Maste2015-09-252-0/+588
| | | | | | | | | | | | | | | | | | | | This was created from vgarom-8x16.hex, and should be useful for higher resolution displays. Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=288207
* | MFV r288063: make dataset property de-registration operation O(1)Xin LI2015-09-258-203/+171
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A change to a property on a dataset must be propagated to its descendants in case that property is inherited. For datasets whose information is not currently loaded into memory (e.g. a snapshot that isn't currently mounted), there is nothing to do; the property change will take effect the next time that dataset is loaded. To handle updates to datasets that are in-core, ZFS registers a callback entry for each property of each loaded dataset with the dsl directory that holds that dataset. There is a dsl directory associated with each live dataset that references both the live dataset and any snapshots of the live dataset. A property change is effected by doing a traversal of the tree of dsl directories for a pool, starting at the directory sourcing the change, and invoking these callbacks. The current implementation both registers and de-registers properties individually for each loaded dataset. While registration for a property is O(1) (insert into a list), de-registration is O(n) (search list and then remove). The 'n' for de-registration, however, is not limited to the size (number of snapshots + 1) of the dsl directory. The eviction portion of the life cycle for the in core state of datasets is asynchronous, which allows multiple copies of the dataset information to be in-core at once. Only one of these copies is active at any time with the rest going through tear down processing, but all copies contribute to the cost of performing a dsl_prop_unregister(). One way to create multiple, in-flight copies of dataset information is by performing "zfs list" operations from multiple threads concurrently. In-core dataset information is loaded on demand and then evicted when reference counts drops to zero. For datasets that are not mounted, there is no persistent reference count to keep them resident. So, a list operation will load them, compute the information required to do the list operation, and then evict them. When performing this operation from multiple threads it is possible that some of the in-core dataset information will be reused, but also possible to lose the race and load the dataset again, even while the same information is being torn down. Compounding the performance issue further is a change made for illumos issue 5056 which made dataset eviction single threaded. In environments using automation to manage ZFS datasets, it is now possible to create enough of a backlog of dataset evictions to consume excessive amounts of kernel memory and to bog down the system. The fix employed here is to make property de-registration O(1). With this change in place, it is hoped that a single thread is more than sufficient to handle eviction processing. If it isn't, the problem can be solved by increasing the number of threads devoted to the eviction taskq. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_prop.h: Associate dsl property callback records with both the dsl directory and the dsl dataset that is registering the callback. Both connections are protected by the dsl directory's "dd_lock". When linking callbacks into a dsl directory, group them by the property type. This helps reduce the space penalty for the double association (the property name pointer is stored once per dsl_dir instead of in each record) and reduces the number of strcmp() calls required to do callback processing when updating a single property. Property types are stored in a linked list since currently ZFS registers a maximum of 10 property types for each dataset. Note that the property buckets/records associated with a dsl directory are created on demand, but only freed when the dsl directory is freed. Given the static nature of property types and their small number, there is no benefit to freeing the few bytes of memory used to represent the property record earlier. When a property record becomes empty, the dsl directory is either going to become unreferenced a little later in this thread of execution, or there is a high chance that another dataset is going to be loaded that would recreate the bucket anyway. Replace dsl_prop_unregister() with dsl_prop_unregister_all(). All callers of dsl_prop_unregister() are trying to remove all property registrations for a given dsl dataset anyway. By changing the API, we can avoid doing any lookups of callbacks by property type and just traverse the list of all callbacks for the dataset and free each one. sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c: Replace use of dsl_prop_unregister() with the new dsl_prop_unregister_all() API. illumos/illumos-gate@03bad06fbb261fd4a7151a70dfeff2f5041cce1f Author: Justin Gibbs <gibbs@scsiguy.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Prakash Surya <prakash.surya@delphix.com> Approved by: Dan McDonald <danmcd@omniti.com> Illumos issue: 6171 dsl_prop_unregister() slows down dataset eviction https://www.illumos.org/issues/6171 MFC after: 2 weeks Notes: svn path=/head/; revision=288204
| * | 6171 dsl_prop_unregister() slows down dataset eviction.Andriy Gapon2015-09-218-204/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/illumos/illumos-gate/commit/03bad06fbb261fd4a7151a70dfeff2f5041cce1f https://www.illumos.org/issues/6171 A change to a property on a dataset must be propagated to its descendants in case that property is inherited. For datasets whose information is not currently loaded into memory (e.g. a snapshot that isn't currently mounted), there is nothing to do; the property change will take effect the next time that dataset is loaded. To handle updates to datasets that are in-core, ZFS registers a callback entry for each property of each loaded dataset with the dsl directory that holds that dataset. There is a dsl directory associated with each live dataset that references both the live dataset and any snapshots of the live dataset. A property change is effected by doing a traversal of the tree of dsl directories for a pool, starting at the directory sourcing the change, and invoking these callbacks. The current implementation both registers and de-registers properties individually for each loaded dataset. While registration for a property is O(1) (insert into a list), de-registration is O(n) (search list and then remove). The 'n' for de-registration, however, is not limited to the size (number of snapshots + 1) of the dsl directory. The eviction portion of the life cycle for the in core state of datasets is asynchronous, which allows multiple copies of the dataset information to be in-core at once. Only one of these copies is active at any time with the rest going through tear down processing, but all copies contribute to the cost of performing a dsl_prop_unregister(). ... The fix employed here is to make property de-registration O(1). With this change in place, it is hoped that a single thread is more than sufficient to handle eviction processing. If it isn't, the problem can be solved by increasing the number of threads devoted to the eviction taskq. Author: Justin Gibbs <gibbs@scsiguy.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Prakash Surya <prakash.surya@delphix.com> Approved by: Dan McDonald <danmcd@omniti.com> Notes: svn path=/vendor-sys/illumos/dist/; revision=288063