aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib
Commit message (Collapse)AuthorAgeFilesLines
* OpenZFS merge main-gf11b09Matt Macy2021-01-08471-6691/+34096
| | | | | | | | - add dRAID support - fix duplicate close handling - fix memory leak in prefetch - fix problem with SIMD benchmarking on FreeBSD boot ...
* open(2): Add O_DSYNC flag.Thomas Munro2021-01-082-1/+2
| | | | | | | | | | | | | | | POSIX O_DSYNC means that writes include an implicit fdatasync(2), just as O_SYNC implies fsync(2). VOP_WRITE() functions that understand the new IO_DATASYNC flag can act accordingly, but we'll still pass down IO_SYNC so that file systems that don't understand it will continue to provide the stronger O_SYNC behaviour. Flag also applies to fcntl(2). Reviewed by: kib, delphij Differential Revision: https://reviews.freebsd.org/D25090
* libprivatezstd: Restrict symbol visibility similar to upstreamConrad Meyer2021-01-032-0/+6
| | | | | We have to relax three symbols to dynamically link zstd(1), but the rest are the same.
* zstd: Fix non-FreeBSD CI libzstd buildConrad Meyer2021-01-031-3/+4
| | | | | | | | | | | | | Fix non-FreeBSD CI build after v1.4.8. This definition was only used in zstd(1), which isn't part of non-FreeBSD CI (I guess). The ifdef was added in v1.4.5 import. Upstream does not currently support shared-linked zstd(1), but I have proposed https://github.com/facebook/zstd/pull/2450 . If that is adopted, we can add -DZSTD_PROGRAMS_LINK_SHARED to our libzstd build and drop some diffs. Reported by: uqs
* vfs: denote vnode being a mount point with VIRF_MOUNTPOINTMateusz Guzik2021-01-031-2/+2
| | | | | Reviewed by: kib (previous version) Differential Revision: https://reviews.freebsd.org/D27794
* Improve error message printing in krping.Hans Petter Selasky2020-12-281-5/+4
| | | | | | | Don't print completion queue flush as an error. MFC after: 1 week Sponsored by: Mellanox Technologies // NVIDIA Networking
* Merge commit d8a09b3a0 from openzfs git (by Ryan Libby):Ryan Libby2020-12-271-4/+6
| | | | | | | | | | | | | | | | | | lua: avoid gcc -Wreturn-local-addr bug Avoid a bug with gcc's -Wreturn-local-addr warning with some obfuscation. In buggy versions of gcc, if a return value is an expression that involves the address of a local variable, and even if that address is legally converted to a non-pointer type, a warning may be emitted and the value of the address may be replaced with zero. Howerver, buggy versions don't emit the warning or replace the value when simply returning a local variable of non-pointer type. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90737 Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ryan Libby <rlibby@FreeBSD.org> Closes #11337
* Merge commit 956f94010 from openzfs git (by Ryan Libby):Ryan Libby2020-12-271-1/+1
| | | | | | | | | | | | | | | | spa: avoid type narrowing warning Building the spa module for i386 caused gcc to emit -Wint-to-pointer-cast "cast to pointer from integer of different size" because spa.spa_did was uint64_t but pthread_join (via thread_join in spa_deactivate) takes a pointer (32-bit on i386). Define spa_did to be pointer-size instead. For now spa_did is in fact never non-zero and the thread_join could instead be ifdef'd out, but changing the size of spa_did may be more useful for the future. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ryan Libby <rlibby@FreeBSD.org> Closes #11336
* Merge commit c7500ded3 from openzfs git (by Ryan Libby):Ryan Libby2020-12-271-1/+1
| | | | | | | | | | | | | | | FreeBSD libzfs: gcc requires __thread after static Building libzfs with gcc on FreeBSD failed because gcc is picky about the order of keywords in declarations with __thread, whereas clang is more relaxed. https://gcc.gnu.org/onlinedocs/gcc/Thread-Local.html Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Ryan Moeller <ryan@iXsystems.com> Signed-off-by: Ryan Libby <rlibby@FreeBSD.org> Closes #11331
* Merge commit 3fcd73747 from openzfs git (by Adrian Chadd):Ryan Libby2020-12-271-12/+20
| | | | | | | | | | | | | | | | | | | | Fix compiling on FreeBSD + gcc - don't assume illmnos bits This looks like it was once from the illumnos compat code. FreeBSD doesn't have cmn_err as a compiler format attribute, so it definitely errors out. It doesn't show up on LLVM because it doesn't trigger at all. Add in the format flags but keep them behind #if 0 for now; there are too many format issues that trigger when one does format checking in the shared code. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Ryan Moeller <ryan@iXsystems.com> Signed-off-by: adrian chadd <adrian@freebsd.org> Closes #11068 Closes #11069
* Merge commit 79a357c2a from openzfs git (by Adrian Chadd):Ryan Libby2020-12-271-2/+2
| | | | | | | | | | | | | Fix pointer-is-uint64_t-sized assumption in the ioctl path This shows up when compiling freebsd-head on amd64 using gcc-6.4. The lib32 compat build ends up tripping over this assumption. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Ryan Moeller <ryan@iXsystems.com> Signed-off-by: adrian chadd <adrian@freebsd.org> Closes #11068 Closes #11069
* ARM: Enhance common Nvidia Tegra drivers by support for Tegra210 SoC.Michal Meloun2020-12-261-0/+2950
| | | | MFC after: 4 weeks
* sys/contrib/zstd: Import zstd 1.4.8Conrad Meyer2020-12-2589-3081/+6820
| | | | | | | | | | | | Merge commit 'f6ae97673c28bdb9ae795bd235ab6f26f2536a2d' into main Changes from 1.4.5: * https://github.com/facebook/zstd/releases/tag/v1.4.8 * https://github.com/facebook/zstd/releases/tag/v1.4.7 (and there was no public v1.4.6) Conflicts: sys/contrib/zstd/lib/common/zstd_internal.h (new ZSTD_NO_INTRINSICS)
* Make MAXPHYS tunable. Bump MAXPHYS to 1M.Konstantin Belousov2020-11-282-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace MAXPHYS by runtime variable maxphys. It is initialized from MAXPHYS by default, but can be also adjusted with the tunable kern.maxphys. Make b_pages[] array in struct buf flexible. Size b_pages[] for buffer cache buffers exactly to atop(maxbcachebuf) (currently it is sized to atop(MAXPHYS)), and b_pages[] for pbufs is sized to atop(maxphys) + 1. The +1 for pbufs allow several pbuf consumers, among them vmapbuf(), to use unaligned buffers still sized to maxphys, esp. when such buffers come from userspace (*). Overall, we save significant amount of otherwise wasted memory in b_pages[] for buffer cache buffers, while bumping MAXPHYS to desired high value. Eliminate all direct uses of the MAXPHYS constant in kernel and driver sources, except a place which initialize maxphys. Some random (and arguably weird) uses of MAXPHYS, e.g. in linuxolator, are converted straight. Some drivers, which use MAXPHYS to size embeded structures, get private MAXPHYS-like constant; their convertion is out of scope for this work. Changes to cam/, dev/ahci, dev/ata, dev/mpr, dev/mpt, dev/mvs, dev/siis, where either submitted by, or based on changes by mav. Suggested by: mav (*) Reviewed by: imp, mav, imp, mckusick, scottl (intermediate versions) Tested by: pho Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D27225 Notes: svn path=/head/; revision=368124
* Add the firmware blob required to use the sdma hardware in the imx6Ian Lepore2020-11-262-0/+147
| | | | | | | | | | | | processor, and its associated license text (which is similar to a bsd-3-clause, but with a prohibition against decompiling). Install a copy of the license in /usr/share/doc/legal/imx, to comply with the license terms that requires a copy of the license to be delivered along with the firmware. Obtained from: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/imx/sdma/sdma-imx6q.bin https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/LICENSE.sdma_firmware Notes: svn path=/head/; revision=368042
* Adjust ENA driver files to latest ena-com changesMarcin Wojtas2020-11-1810-344/+503
| | | | | | | | | | | | | | | | | * Use the new API of ena_trace_* * Fix typo syndrom --> syndrome * Remove validation of the Rx req ID (already performed in the ena-com) * Remove usage of deprecated ENA_ASSERT macro Submitted by: Ido Segev <idose@amazon.com> Submitted by: Michal Krawczyk <mk@semihalf.com> Obtained from: Semihalf Sponsored by: Amazon, Inc MFC after: 1 week Differential revision: https://reviews.freebsd.org/D27115 Notes: svn path=/head/; revision=367799
* Fix completion descriptors alignment for the ENAMarcin Wojtas2020-11-183-17/+33
| | | | | | | | | | | | | | | | | | | | The latest generation hardware requires IO CQ (completion queue) descriptors memory to be aligned to a 4K. It needs that feature for the best performance. Allocating unaligned descriptors will have a big performance impact as the packet processing in a HW won't be optimized properly. For that purpose adjust ena_dma_alloc() to support it. It's a critical fix, especially for the arm64 EC2 instances. Submitted by: Ido Segev <idose@amazon.com> Obtained from: Amazon, Inc MFC after: 1 week Differential revision: https://reviews.freebsd.org/D27114 Notes: svn path=/head/; revision=367795
* Restore identification of VDEVs using non-native block size.Cy Schubert2020-11-181-0/+7
| | | | | | | | | | | | | | | | | | | | | | NAME STATE READ WRITE CKSUM dsk02 ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 ada1s4a ONLINE 0 0 0 ada2s4a ONLINE 0 0 0 block size: 512B configured, 4096B native Reviewed by: tsoome (previous FreeBSD phab version) Differential Revision: https://reviews.freebsd.org/D26880 Upstream commit: 3928ec53395fcc26be7844dd6b63df757166c281 Reviewed-by: Matt Macy <mmacy@FreeBSD.org> Reviewed-by: Toomas Soome <tsoome@me.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed off by: Cy Schubert <cy@FreeBSD.org> Closes #11088 Notes: svn path=/head/; revision=367779
* vchiq: Rename timer func so they do not conflict with linuxkpiEmmanuel Vadot2020-11-173-19/+19
| | | | Notes: svn path=/head/; revision=367764
* zfs: disable periodic arc updatesMateusz Guzik2020-11-141-0/+2
| | | | | | | | | They are only there to provide less innacurate statistics for debuggers. However, this is quite heavy-weight and instead it would be better to teach debuggers how to obtain the necessary information. Notes: svn path=/head/; revision=367696
* MFV: r367652Jung-uk Kim2020-11-1319-99/+311
|\ | | | | | | | | | | | | Merge ACPICA 20201113. Notes: svn path=/head/; revision=367654
* | zfs: combine zio caches if possibleMateusz Guzik2020-11-101-24/+55
| | | | | | | | | | | | | | | | | | | | This deduplicates 2 sets of caches using the same sizes. Memory savings fluctuate a lot, one sample result is buildworld on zfs saving ~180MB RAM in reduced page count associated with zio caches. Notes: svn path=/head/; revision=367569
* | zfs: g/c unused data_alloc_arenaMateusz Guzik2020-11-101-3/+1
| | | | | | | | Notes: svn path=/head/; revision=367568
* | Check if the ZVOL has been written before calling zil_async_to_sync.Mariusz Zaborski2020-11-081-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The ZIL will be opened on the first write, not earlier. Reviewed-by: Ryan Moeller <ryan@iXsystems.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Mariusz Zaborski <oshogbo@vexillium.org> OpenZFS Pull Request: https://github.com/openzfs/zfs/pull/11152 PR: 250934 Notes: svn path=/head/; revision=367487
* | zfs: remove 2 assertions that teardown lock is not heldMateusz Guzik2020-11-071-45/+0
| | | | | | | | | | | | | | | | | | They are not very useful and hard to implement with rms. This has a side effect of simplying the code. Notes: svn path=/head/; revision=367454
* | Add firmware modules for qat(4), take twoMark Johnston2020-11-0610-0/+0
| | | | | | | | | | | | | | | | | | | | | | My script to convert git commits to svn patch does not handle binary files correctly, and r367387 committed a set of empty files as a result. MFC with: r367387 Sponsored by: Rubicon Communications, LLC (Netgate) Notes: svn path=/head/; revision=367422
* | Add firmware modules for qat(4)Mark Johnston2020-11-0511-0/+11
| | | | | | | | | | | | | | | | MFC after: 3 days Sponsored by: Rubicon Communications, LLC (Netgate) Notes: svn path=/head/; revision=367387
* | zfs: lz4: add optional kmem_alloc supportMateusz Guzik2020-11-051-4/+57
| | | | | | | | | | | | | | | | | | lz4 port from illumos to Linux added a 16KB per-CPU cache to accommodate for the missing 16KB malloc. FreeBSD supports this size, making the extra cache harmful as it can't share buckets. Notes: svn path=/head/; revision=367360
* | zfs: use rms lock for teardown handlingMateusz Guzik2020-11-041-0/+43
| | | | | | | | | | | | | | | | | | | | This deserializes otherwise non-contending operations. The previous scheme of using 17 locks hashed by curthread runs into conflicts very quickly. Notes: svn path=/head/; revision=367346
* | zfs: macroify teardown handlingMateusz Guzik2020-11-048-44/+77
| | | | | | | | Notes: svn path=/head/; revision=367345
* | zfs: rename teardown inactive macros to mimick rrm conventionMateusz Guzik2020-11-044-34/+34
| | | | | | | | Notes: svn path=/head/; revision=367344
* | zfs: add branch prediction to ZFS_ENTER and ZFS_VERIFY_ZP macrosMateusz Guzik2020-11-042-4/+4
| | | | | | | | | | | | | | They are expected to fail only in corner cases. Notes: svn path=/head/; revision=367343
* | zfs: even up assertMateusz Guzik2020-11-041-1/+2
| | | | | | | | Notes: svn path=/head/; revision=367342
* | zfs: zstd: short-circuit cleaning buffers if none existMateusz Guzik2020-11-021-0/+7
| | | | | | | | | | | | | | This avoids a barrage of locking every minute. Notes: svn path=/head/; revision=367276
* | Fix 32-bit build after r367229.Brandon Bergren2020-10-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The use of atomic_sub_64() in zfs_zstd.c was breaking the 32-bit build on platforms without native 64-bit atomics due to atomic_sub_64() not being available, and no fallback being provided in _STANDALONE. Provide a standalone stub to match atomic_add_64() using simple math. While this is not actually atomic, it does not matter in libsa context, since it always runs single-threaded and does not run under a scheduler. Reviewed by: mjg (in email) Notes: svn path=/head/; revision=367235
* | zfs: zstd: track allocator statisticsMateusz Guzik2020-10-312-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This applies: commit c4ede65bdfca11b532403620bbf0d6e33f0c1c1d Author: Mateusz Guzik <mjguzik@gmail.com> Date: Fri Oct 30 23:26:10 2020 +0100 zstd: track allocator statistics Note that this only tracks sizes as requested by the caller. Actual allocated space will almost always be bigger (e.g., rounded up to the next power of 2 or page size). Additionally the allocated buffer may be holding other areas hostage. Nonetheless, this is a starting point for tracking memory usage in zstd. from openzfs Notes: svn path=/head/; revision=367229
* | cache: add cache_vop_mkdir and rename cache_rename to cache_vop_renameMateusz Guzik2020-10-301-3/+13
| | | | | | | | Notes: svn path=/head/; revision=367162
* | Drop "All rights reserved" from all my stuff. This includesEdward Tomasz Napierala2020-10-281-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | Foundation copyrights, approved by emaste@. It does not include files which carry other people's copyrights; if you're one of those people, feel free to make similar change. Reviewed by: emaste, imp, gbe (manpages) Differential Revision: https://reviews.freebsd.org/D26980 Notes: svn path=/head/; revision=367105
* | zfs: remove unused support for zfs_znode_moveMateusz Guzik2020-10-262-31/+1
| | | | | | | | Notes: svn path=/head/; revision=367054
* | Skip RAW kstat sysctls by defaultRyan Moeller2020-10-241-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hese kstats are often expensive to compute so we want to avoid them unless specifically requested. The following kstats are affected by this change: kstat.zfs.${pool}.multihost kstat.zfs.${pool}.misc.state kstat.zfs.${pool}.txgs kstat.zfs.misc.fletcher_4_bench kstat.zfs.misc.vdev_raidz_bench kstat.zfs.misc.dbufs kstat.zfs.misc.dbgmsg PR: 249258 Reported by: mjg Reviewed by: mjg, allanjude Obtained from: https://github.com/openzfs/zfs/pull/11099 Sponsored by: iXsystems, Inc. Notes: svn path=/head/; revision=367010
* | vfs: drop spurious cache_purge on rmdirMateusz Guzik2020-10-231-2/+0
| | | | | | | | | | | | | | | | | | | | The removed directory gets cache_purged which is sufficient to remove any entries related to the parent. Note only tmpfs, ufs and zfs are patched. Notes: svn path=/head/; revision=366975
* | vfs: drop the de facto curthread argument from VOP_INACTIVEMateusz Guzik2020-10-201-2/+1
| | | | | | | | Notes: svn path=/head/; revision=366870
* | vfs: drop spurious cred argument from VOP_VPTOCNPMateusz Guzik2020-10-201-2/+1
| | | | | | | | Notes: svn path=/head/; revision=366869
* | Update OpenZFS to 2.0.0-rc3-gfc5966Matt Macy2020-10-17198-515/+748
| | | | | | | | | | | | | | | | | | | | | | - fix panic due to tqid overflow - Improve libzfs_error_init messages - Expose zfetch_max_idistance tunable - Make dbufstat work on FreeBSD - Fix EIO after resuming receive of new dataset over an existing one Notes: svn path=/head/; revision=366780
* | zfs: g/c unused vop_vector zfsctl_ops_shares_dirMateusz Guzik2020-10-151-3/+1
| | | | | | | | Notes: svn path=/head/; revision=366718
* | zfs: add missing fplookup vopsMateusz Guzik2020-10-152-0/+4
| | | | | | | | | | | | | | | | | | | | Some vnodes come with a hack which inherits the fplookup flag despite having vops which don't provide the routine. Reported by: YAMAMOTO Shigeru <shigeru@os-hackers.jp> Notes: svn path=/head/; revision=366717
* | FreeBSD: fix panic due to tqid overflowMateusz Guzik2020-10-131-10/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 32-bit counter eventually wraps to 0 which is a sentinel for invalid id. Make it 64-bit on LP64 platforms and 0-check otherwise. Note: Linux counterpart uses id stored per queue instead of a global. I did not check going that way is feasible with the goal being the minimal fix doing the job. Reported by: YAMAMOTO Shigeru <shigeru@os-hackers.jp> Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D26759 Notes: svn path=/head/; revision=366685
* | Add zstd support to the boot loader.Warner Losh2020-10-1220-34/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support to the _STANDALONE environment enough bits of the kernel that we can compile it. We still have a small zstd_shim.c since there were 3 items that were a bit hard to nail down and may be cleaned up in the future. These go hand in hand with a number of commits to sys/sys in the past weeks, should this need be MFCd. Discussed with: mmacy (in review and on IRC/Slack) Reviewed by: freqlabs (on openzfs repo) Differential Revision: https://reviews.freebsd.org/D26218 Notes: svn path=/head/; revision=366657
* | zfs: use cache_renameMateusz Guzik2020-10-101-4/+1
| | | | | | | | Notes: svn path=/head/; revision=366598
* | MFV: r366539Jung-uk Kim2020-10-0933-108/+516
|\| | | | | | | | | | | | | Merge ACPICA 20200925. Notes: svn path=/head/; revision=366562