| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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]
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
sfxge(4): cleanup: remove now-unused function flags
Submitted by: Mark Spender <mspender at solarflare.com>
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
| |
sfxge(4): cleanup: check deferred packet list tunables once
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
|
|
| |
sfxge(4): cleanup: clarify/unify variable name used for put-list length
get_count is used for get-list.
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
|
| |
sfxge(4): sync up tlv_layout.h (from firmwaresrc 82cd8a5715e9)
Submitted by: Matthew Slattery <mslattery at solarflare.com>
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
| |
sfxge(4): regenerate MCDI headers from firmwaresrc .yml
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
| |
sfxge(4): fix typo in pseudo header accessor function names
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
|
| |
sfxge(4): delete hunt_phy.c
Submitted by: Mark Spender <mspender at solarflare.com>
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
sfxge(4): cleanup: simplify disable scatter logic in ef10_rx_qcreate
Submitted by: Andy Moreton <amoreton at solarflare.com>
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
| |
sfxge(4): provide a way to find out which MAC stats are supported
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Improve vm_object_scan_all_shadowed() to also check swap backing objects.
|
|
|
|
| |
Some optimizations for kqueue timers.
|
|
|
|
| |
Some style.
|
|
|
|
|
|
| |
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...)
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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(..)
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
vfs: avoid VOP_ISLOCKED in the common case in lookup
==
vfs: fix a whitespace nit in r309307
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Mark a bunch of mpsafe sysctls as such.
This gives me a sysctl Giant-free buildworld.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Happy New Year 2017!
|
|
|
|
|
|
| |
ktrace: do a lockless check on fork to see if tracing is enabled
This saves 2 lock acquisitions in the common case.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
sfxge(4): fix common code for non-Siena builds
Submitted by: Andy Moreton <amoreton at solarflare.com>
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
|
| |
sfxge(4): fix misuse of siena_build_filter in common code
Submitted by: Andy Moreton <amoreton at solarflare.com>
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
sfxge(4): add UEFI ROM support to the common code
Submitted by: Andrew Lee <alee at solarflare.com>
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
sfxge(4): add possibility to control event queue performance profile
It is ignored on SFN5xxx/6xxx (aka Siena).
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
sfxge(4): do not initialize enumerated type variable to another type
Fix build warning generated by ICC.
Sponsored by: Solarflare Communications, Inc.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
sfxge(4): rename hunt_bist_* methods to ef10_bist_*
Submitted by: Mark Spender <mspender at solarflare.com>
Sponsored by: Solarflare Communications, Inc.
|