summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* MFC r309300,r309363,r309405,r309523,r309590,r310185,r310623:mm2017-01-0289-615/+1629
| | | | | | | | | | | | | | | | | | | | | | | Sync libarchive with vendor. Fixed vendor issues (relevant to FreeBSD) #825, #832: Add sanity check of tar "uid, "gid" and "mtime" fields #830, #831, #833, #846: Spelling fixes #850: Fix issues with reading certain jar files Fixed issues found by Google OSS-Fuzz: OSS-Fuzz #15: Fix heap-buffer-overflow in archive_le16dec() OSS-Fuzz #16: Fix possible hang in uudecode_filter_read() OSS-Fuzz #139, #145, #152: Fix heap-buffer-overflow in uudecode_bidder_bid() OSS-Fuzz #220: Reject an 'ar' filename table larger than 1GB or a filename larger than 1MB OSS-Fuzz #227, #230, #239: Fix possible memory leak in archive_read_free() OSS-Fuzz #237: Fix heap buffer overflow when reading invalid ar archives OSS-Fuzz #286: Bugfix in archive_strncat_l() More information: https://github.com/libarchive/libarchive/issues/[libarchive_issue_number] https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=[oss_fuzz_issue_number]
* MFC r310820arybchik2017-01-011-12/+12
| | | | | | | sfxge(4): move queue size checks to after the NIC config has been populated Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310819arybchik2017-01-014-14/+16
| | | | | | | | | | | | sfxge(4): cleanup: add efsys_lock_state_t for type of state param in EFSYS_LOCK() This allows the common code to use the correct type for the lock state local variable passed to EFSYS_LOCK() and EFSYS_UNLOCK(). On Windows, this allows warning supression pragmas to be removed. Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310812arybchik2017-01-014-9/+72
| | | | | | | | | | sfxge(4): support non-interrupting event queues creation Poll-mode driver does not use interrupts and number of used event queues should not be limitted by the number of interrupts allocated for the NIC. Sponsored by: Solarflare Communications, Inc.
* MFC r310811arybchik2017-01-012-36/+0
| | | | | | | sfxge(4): cleanup: remove now-unused function flags Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310810arybchik2017-01-011-22/+23
| | | | | | sfxge(4): cleanup: check deferred packet list tunables once Sponsored by: Solarflare Communications, Inc.
* MFC r310770arybchik2017-01-011-5/+5
| | | | | | | | sfxge(4): cleanup: clarify/unify variable name used for put-list length get_count is used for get-list. Sponsored by: Solarflare Communications, Inc.
* MFC r310764arybchik2017-01-011-18/+19
| | | | | | | sfxge(4): sync up tlv_layout.h (from firmwaresrc 82cd8a5715e9) Submitted by: Matthew Slattery <mslattery at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310762arybchik2017-01-011-30/+676
| | | | | | sfxge(4): regenerate MCDI headers from firmwaresrc .yml Sponsored by: Solarflare Communications, Inc.
* MFC r310760arybchik2017-01-013-9/+9
| | | | | | sfxge(4): fix typo in pseudo header accessor function names Sponsored by: Solarflare Communications, Inc.
* MFC r310758arybchik2017-01-013-41/+1
| | | | | | | sfxge(4): delete hunt_phy.c Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310756arybchik2017-01-014-16/+16
| | | | | | | | | | sfxge(4): do not use enum type when values are bitmask ICC complains that enumerated type mixed with another type. Found by DPDK upstream build sanity check. Sponsored by: Solarflare Communications, Inc.
* MFC r310755arybchik2017-01-013-21/+23
| | | | | | | | | | | sfxge(4): do not use enum for filter flags It is not 100% correct to assign non-enum values to enum type variables. Found by ICC build (DPDK PMD upstreaming). Sponsored by: Solarflare Communications, Inc.
* MFC r310754arybchik2017-01-011-13/+43
| | | | | | | | | | | sfxge(4): don't use Tx descriptor push with TSO option descriptors It is not safe to push TSO option descriptors if pacer bypass is enabled, so to make sure that doesn't happen never push TSO option descriptors. Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310752arybchik2017-01-013-13/+20
| | | | | | | | | sfxge(4): allow to have no NIC handle on Rx datapath in DPDK PMD It is required to minimize RxQ context in the driver or avoid chaising for the NIC handle in adapter (global per-interface) structure. Sponsored by: Solarflare Communications, Inc.
* MFC r310749arybchik2017-01-011-6/+9
| | | | | | | | | | | | | | sfxge(4): use correct port number in sensor decoding The port mask used for per-port sensors in mcdi_sensor_map assumes zero-based port numbering. The port mask used in the code is based on the one-based MCDI port number. Fix this to lookup the correct per-port sensors, and to allow reporting of sensor events from higher port numbers. Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310748arybchik2017-01-011-5/+3
| | | | | | | sfxge(4): cleanup: simplify disable scatter logic in ef10_rx_qcreate Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310747arybchik2017-01-018-0/+284
| | | | | | sfxge(4): provide a way to find out which MAC stats are supported Sponsored by: Solarflare Communications, Inc.
* MFC r310746arybchik2017-01-013-0/+56
| | | | | | | sfxge(4): make the common code determine the number of PFs Submitted by: Ivan Malov <Ivan.Malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc.
* MFC r310745arybchik2017-01-013-4/+18
| | | | | | | sfxge(4): make the common code retrieve the number of FATSOv2 contexts Submitted by: Ivan Malov <Ivan.Malov at oktetlabs.ru> Sponsored by: Solarflare Communications, Inc.
* MFC r310234:kib2017-01-013-20/+63
| | | | Improve vm_object_scan_all_shadowed() to also check swap backing objects.
* MFC r310554:kib2017-01-011-24/+28
| | | | Some optimizations for kqueue timers.
* MFC r310552:kib2017-01-011-5/+5
| | | | Some style.
* MFC r310996:ngie2017-01-011-1/+1
| | | | | | Look for list.h in ${.CURDIR} to unbreak the build with a ports-based copy of llvm38 on ^/stable/11 (oh, the bugs you find when you set CC,CXX,CPP manually and it skips the bootstrap stage for the toolchain...)
* MFC r310763:ngie2017-01-011-2/+2
| | | | | | | | Use uint32_t instead of u_int32_t for or_last_change and services in "struct systemg" This is being done to match "struct systemg" in snmpmod(3) No functional change
* MFC r310498,r310591:ngie2017-01-014-21/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r310498: Allow SNMPv3 authNoPriv and noAuthNoPriv protocols to discover snmpEngineTime as discussed in RFC-5343 This fixes interoperability with net-snmp. Tested with the following invocations of snmpwalk (from net-snmp): - noAuthNoPriv: % snmpwalk -v 3 -n '' -u public localhost snmpEngineTime - authNoPriv: % snmpwalk -v 3 -n '' -u bsnmp -A bsnmptest -l authNoPriv -a sha localhost \ localhost snmpEngineTime - authPriv: % snmpwalk -v 3 -n '' -u bsnmp -A bsnmptest -l authPriv -a sha -x des \ -X bsnmptest localhost snmpEngineTime Obtained from: Isilon OneFS (5ec6d772cacbc, with minor tweaks) r310591: Update engine time using update_snmpd_engine_time(..)
* MFC 310336:jhb2016-12-311-1/+2
| | | | | | | | | | Don't spin in pause() during early boot for kthreads other than thread0. pause() uses a spin loop to simulate a sleep during early boot. However, we only need this for thread0 to get far enough in the boot process to enable timers (at which point pause() can sleep). For other kthreads, sleeping in pause() is ok as the callout will be scheduled and will eventually fire once thread0 initializes timers.
* MFC r309307,r309308:mjg2016-12-311-3/+2
| | | | | | | | vfs: avoid VOP_ISLOCKED in the common case in lookup == vfs: fix a whitespace nit in r309307
* MFC r309111:mjg2016-12-311-2/+2
| | | | | | | wait: avoid relocking the child if proc_to_reap returns 1 proc_to_reap would always unlock. However, if it returned 1, kern_wait6 would immediately lock it again. Save the dance.
* MFC r307653:mjg2016-12-313-14/+15
| | | | | | Mark a bunch of mpsafe sysctls as such. This gives me a sysctl Giant-free buildworld.
* MFC r305856:mjg2016-12-311-18/+2
| | | | | | | linprocfs: garbage collect meminfo fields not present in linux In particular memshared not only does not exist in linux, it was extremely expensive to calculate.
* MFC r304927:mjg2016-12-311-16/+8
| | | | | | | vfs: provide a common exit point in namei for error cases This shortens the function, adds the SDT_PROBE use for error cases and consistenly unrefs rootdir last.
* Bump copyright year.bapt2016-12-312-2/+2
| | | | Happy New Year 2017!
* MFC r303921:mjg2016-12-311-1/+6
| | | | | | ktrace: do a lockless check on fork to see if tracing is enabled This saves 2 lock acquisitions in the common case.
* MFC r303921:mjg2016-12-311-0/+2
| | | | | | | sigio: do a lockless check in funsetownlist There is no need to grab the lock first to see if sigio is used, and it typically is not.
* MFC r305482:mjg2016-12-311-0/+4
| | | | | | | cv: do a lockless check for no waiters in cv_signal and cv_broadcastpri In case of some consumers like zfs there are no waiters vast majority of the time
* MFC r305378,r305379,r305386,r305684,r306224,r306608,r306803,r307650,r307685,mjg2016-12-316-216/+1168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r308407,r308665,r308667,r309067: cache: put all negative entry management code into dedicated functions == cache: manage negative entry list with a dedicated lock Since negative entries are managed with a LRU list, a hit requires a modificaton. Currently the code tries to upgrade the global lock if needed and is forced to retry the lookup if it fails. Provide a dedicated lock for use when the cache is only shared-locked. == cache: defer freeing entries until after the global lock is dropped This also defers vdrop for held vnodes. == cache: improve scalability by introducing bucket locks An array of bucket locks is added. All modifications still require the global cache_lock to be held for writing. However, most readers only need the relevant bucket lock and in effect can run concurrently to the writer as long as they use a different lock. See the added comment for more details. This is an intermediate step towards removal of the global lock. == cache: get rid of the global lock Add a table of vnode locks and use them along with bucketlocks to provide concurrent modification support. The approach taken is to preserve the current behaviour of the namecache and just lock all relevant parts before any changes are made. Lookups still require the relevant bucket to be locked. == cache: ignore purgevfs requests for filesystems with few vnodes purgevfs is purely optional and induces lock contention in workloads which frequently mount and unmount filesystems. In particular, poudriere will do this for filesystems with 4 vnodes or less. Full cache scan is clearly wasteful. Since there is no explicit counter for namecache entries, the number of vnodes used by the target fs is checked. The default limit is the number of bucket locks. == (by kib) Limit scope of the optimization in r306608 to dounmount() caller only. Other uses of cache_purgevfs() do rely on the cache purge for correct operations, when paths are invalidated without unmount. == cache: split negative entry LRU into multiple lists This splits the ncneg_mtx lock while preserving the hit ratio at least during buildworld. Create N dedicated lists for new negative entries. Entries with at least one hit get promoted to the hot list, where they get requeued every M hits. Shrinking demotes one hot entry and performs a round-robin shrinking of regular lists. == cache: fix up a corner case in r307650 If no negative entry is found on the last list, the ncp pointer will be left uninitialized and a non-null value will make the function assume an entry was found. Fix the problem by initializing to NULL on entry. == (by kib) vn_fullpath1() checked VV_ROOT and then unreferenced vp->v_mount->mnt_vnodecovered unlocked. This allowed unmount to race. Lock vnode after we noticed the VV_ROOT flag. See comments for explanation why unlocked check for the flag is considered safe. == cache: fix a race between entry removal and demotion The negative list shrinker can demote an entry with only hotlist + neglist locks held. On the other hand entry removal possibly sets the NCF_DVDROP without aformentioned locks held prior to detaching it from the respective netlist., which can lose the update made by the shrinker. == cache: plug a write-only variable in cache_negative_zap_one == cache: ensure that the number of bucket locks does not exceed hash size The size can be changed by side effect of modifying kern.maxvnodes. Since numbucketlocks was not modified, setting a sufficiently low value would give more locks than actual buckets, which would then lead to corruption. Force the number of buckets to be not smaller. Note this should not matter for real world cases.
* MFC r309893,r309929:mjg2016-12-317-31/+54
| | | | | | | | | | | | | | vfs: add vrefact, to be used when the vnode has to be already active This allows blind increment of relevant counters which under contention is cheaper than inc-not-zero loops at least on amd64. Use it in some of the places which are guaranteed to see already active vnodes. == vfs: use vrefact in getcwd and fchdir
* MFC r310742arybchik2016-12-311-4/+2
| | | | | | | sfxge(4): fix common code for non-Siena builds Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310741arybchik2016-12-311-1/+4
| | | | | | | sfxge(4): fix misuse of siena_build_filter in common code Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310719arybchik2016-12-311-4/+8
| | | | | | | | | | sfxge(4): cleanup: remove last use of deprecated function flags with privilege check The function flags were changed to mirror the privileges, but the privileges are preferred. Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310717arybchik2016-12-314-186/+181
| | | | | | | sfxge(4): move BIST methods from hunt_phy.c to ef10_phy.c Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310716arybchik2016-12-312-1/+6
| | | | | | | sfxge(4): add UEFI ROM support to the common code Submitted by: Andrew Lee <alee at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310715arybchik2016-12-311-2/+7
| | | | | | | | | | | | sfxge(4): fix GET_RXDP_CONFIG usage for multi-PF on Medford On Medford, using MC_CMD_GET_RXDP_CONFIG to query the RX end padding setting is in the ADMIN group, and so fails for unprivileged functions. In that case, assume the largest size supported by Medford hardware (256bytes) to prevent overrun. Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310714arybchik2016-12-311-56/+147
| | | | | | | | | | | | | | sfxge(4): support Medford bootcfg partition layout in common code For Siena and Huntington, the per-port bootcfg (aka expcfg) is stored in a dedicated 4Kbyte partition for each port. For Medford, the per-PF bootcfg is stored in a 2Kbyte sector within a single shared partition. Update the common code to support the new bootcfg layout. Submitted by: Andy Moreton <amoreton at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310713arybchik2016-12-316-29/+77
| | | | | | | | sfxge(4): add possibility to control event queue performance profile It is ignored on SFN5xxx/6xxx (aka Siena). Sponsored by: Solarflare Communications, Inc.
* MFC r310709arybchik2016-12-311-1/+1
| | | | | | | | sfxge(4): fix invalid type of eft_unicst_filter_count Found by clang when boolean_t is defined as bool for DPDK PMD. Sponsored by: Solarflare Communications, Inc.
* MFC r310708arybchik2016-12-311-1/+1
| | | | | | | | sfxge(4): do not initialize enumerated type variable to another type Fix build warning generated by ICC. Sponsored by: Solarflare Communications, Inc.
* MFC r310704arybchik2016-12-311-0/+2
| | | | | | | | | | sfxge(4): translate MC_CMD_ERR_ERANGE to host errno value This is needed because MCDI command MC_CMD_REKEY can return MC_CMD_ERR_ERANGE. Submitted by: Tom Millington <tmillington at solarflare.com> Sponsored by: Solarflare Communications, Inc.
* MFC r310699arybchik2016-12-313-14/+13
| | | | | | | sfxge(4): rename hunt_bist_* methods to ef10_bist_* Submitted by: Mark Spender <mspender at solarflare.com> Sponsored by: Solarflare Communications, Inc.
OpenPOWER on IntegriCloud