|
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0, release/12.0.0 |
|
| #
d12e91d5 |
| 21-Aug-2018 |
Matt Macy <[email protected]> |
Make dnode definition uniform on !x86
gcc4 requires -fms-extensions to accept anonymous union members
|
|
Revision tags: release/11.2.0, release/10.4.0, release/11.1.0 |
|
| #
193d9e76 |
| 04-Mar-2017 |
Enji Cooper <[email protected]> |
sys/modules: normalize .CURDIR-relative paths to SRCTOP
This simplifies make output/logic
Tested with: `cd sys/modules; make ALL_MODULES=` on amd64 MFC after: 1 month Sponsored by: Dell EMC Isilon
|
| #
7fa27112 |
| 24-Feb-2017 |
Andriy Gapon <[email protected]> |
zfs: clean up unused files and definitions
MFC after: 1 month X-MFC after: r314048
|
| #
d9dbd70b |
| 31-Jan-2017 |
Justin Hibbits <[email protected]> |
Update CFLAGS for clang compatibility
* Clang/llvm does not (yet) support -m(no-)spe, so make it gcc-only * Clang now supports -msoft-float, and does not appear to recognize "-disable-ppc-float-in
Update CFLAGS for clang compatibility
* Clang/llvm does not (yet) support -m(no-)spe, so make it gcc-only * Clang now supports -msoft-float, and does not appear to recognize "-disable-ppc-float-in-variadic", which appears to have been a crutch until soft-float was implemented. It's now implemented for both 32- and 64-bit. * Clang/llvm use a 'medium' code model by default for powerpc64, supporting up to 4GB TOC, and does not support the '-mminimal-toc' option. Given both of these, make -mminimal-toc gcc-only.
MFC after: 2 weeks
show more ...
|
|
Revision tags: release/11.0.1, release/11.0.0 |
|
| #
0144ad3e |
| 31-May-2016 |
Allan Jude <[email protected]> |
Connect the SHA-512t256 and Skein hashing algorithms to ZFS
Support for the new hashing algorithms in ZFS was introduced in r289422 However it was disconnected because FreeBSD lacked implementations
Connect the SHA-512t256 and Skein hashing algorithms to ZFS
Support for the new hashing algorithms in ZFS was introduced in r289422 However it was disconnected because FreeBSD lacked implementations of SHA-512 (truncated to 256 bits), and Skein.
These implementations were introduced in r300921 and r300966 respectively
This commit connects them to ZFS and enabled these new checksum algorithms
This new algorithms are not supported by the boot blocks, so do not use them on your root dataset if you boot from ZFS.
Relnotes: yes Sponsored by: ScaleEngine Inc.
show more ...
|
|
Revision tags: release/10.3.0 |
|
| #
7a3f5d11 |
| 27-Dec-2015 |
Allan Jude <[email protected]> |
Replace sys/crypto/sha2/sha2.c with lib/libmd/sha512c.c
cperciva's libmd implementation is 5-30% faster
The same was done for SHA256 previously in r263218
cperciva's implementation was lacking SHA
Replace sys/crypto/sha2/sha2.c with lib/libmd/sha512c.c
cperciva's libmd implementation is 5-30% faster
The same was done for SHA256 previously in r263218
cperciva's implementation was lacking SHA-384 which I implemented, validated against OpenSSL and the NIST documentation
Extend sbin/md5 to create sha384(1)
Chase dependancies on sys/crypto/sha2/sha2.{c,h} and replace them with sha512{c.c,.h}
Reviewed by: cperciva, des, delphij Approved by: secteam, bapt (mentor) MFC after: 2 weeks Sponsored by: ScaleEngine Inc. Differential Revision: https://reviews.freebsd.org/D3929
show more ...
|
| #
e945651a |
| 08-Sep-2015 |
Enji Cooper <[email protected]> |
Revert r286984 (adding opt_random.h to sys/modules/zfs/Makefile)
opt_random.h is no longer needed/referenced in the kernel build
X-MFC with: r287558
|
| #
23d10468 |
| 21-Aug-2015 |
Andriy Gapon <[email protected]> |
fix standalone build of zfs module
Not sure if this is a proper fix, but it does the job.
|
|
Revision tags: release/10.2.0 |
|
| #
79b7e3e2 |
| 05-Aug-2015 |
Li-Wen Hsu <[email protected]> |
Fix `make depend` in sys/modules
Reviewed by: delphij Differential Revision: https://reviews.freebsd.org/D3291
|
| #
306a82f8 |
| 09-Jul-2015 |
Mariusz Zaborski <[email protected]> |
Rename zfs nvpair files to not colidate with our nvlist.
PR: 201356 Approved by: pjd (mentor)
|
| #
4906cdc8 |
| 03-Jan-2015 |
Warner Losh <[email protected]> |
Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support CWARNFALGS.$file centrally so we don't have to have it in all the places. Remove a few warning flags that are no longer needed.
Re-support CWARNFLAGS, lost when bsd.sys.mk was removed. Also, support CWARNFALGS.$file centrally so we don't have to have it in all the places. Remove a few warning flags that are no longer needed. Also, always use -Wno-unknown-pragma to (hopefully temporarily) work around #pragma ident in debug.h in the opensolaris code. Remove some stale warning suppression that's no longer necessary.
show more ...
|
|
Revision tags: release/10.1.0 |
|
| #
afb13fc2 |
| 01-Oct-2014 |
Will Andrews <[email protected]> |
Instead of requiring an edit to turn on ZFS debugging, define ZFS_DEBUG.
MFC after: 1 month
|
| #
71f3caaf |
| 18-Sep-2014 |
Steven Hartland <[email protected]> |
Add dtrace probe support for zfs SET_ERROR(..)
MFC after: 1 week Sponsored by: Multiplay
|
| #
0327754b |
| 26-Jul-2014 |
Marcel Moolenaar <[email protected]> |
Avoid using ${.CURDIR} so that the module can be built from multiple directories.
Obtained from: Juniper Networks, Inc.
|
|
Revision tags: release/9.3.0 |
|
| #
f225bcd1 |
| 16-Mar-2014 |
John-Mark Gurney <[email protected]> |
I clearly didn't test the modules... add sha256c.c to the various modules that included sha2.c...
|
|
Revision tags: release/10.0.0, release/9.2.0 |
|
| #
c319ea15 |
| 06-Aug-2013 |
Andriy Gapon <[email protected]> |
opensolaris code: translate INVARIANTS to DEBUG and ZFS_DEBUG
Do this by forcing inclusion of sys/cddl/compat/opensolaris/sys/debug_compat.h via -include option into all source files from OpenSolari
opensolaris code: translate INVARIANTS to DEBUG and ZFS_DEBUG
Do this by forcing inclusion of sys/cddl/compat/opensolaris/sys/debug_compat.h via -include option into all source files from OpenSolaris. Note that this -include option must always be after -include opt_global.h.
Additionally, remove forced definition of DEBUG for some modules and fix their build without DEBUG.
Also, meaning of DEBUG was overloaded to enable WITNESS support for some OpenSolaris (primarily ZFS) locks. Now this overloading is removed and that use of DEBUG is replaced with a new option OPENSOLARIS_WITNESS.
MFC after: 17 days
show more ...
|
|
Revision tags: release/8.4.0 |
|
| #
89f6b863 |
| 09-Mar-2013 |
Attilio Rao <[email protected]> |
Switch the vm_object mutex to be a rwlock. This will enable in the future further optimizations where the vm_object lock will be held in read mode most of the time the page cache resident pool of pa
Switch the vm_object mutex to be a rwlock. This will enable in the future further optimizations where the vm_object lock will be held in read mode most of the time the page cache resident pool of pages are accessed for reading purposes.
The change is mostly mechanical but few notes are reported: * The KPI changes as follow: - VM_OBJECT_LOCK() -> VM_OBJECT_WLOCK() - VM_OBJECT_TRYLOCK() -> VM_OBJECT_TRYWLOCK() - VM_OBJECT_UNLOCK() -> VM_OBJECT_WUNLOCK() - VM_OBJECT_LOCK_ASSERT(MA_OWNED) -> VM_OBJECT_ASSERT_WLOCKED() (in order to avoid visibility of implementation details) - The read-mode operations are added: VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(), VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED() * The vm/vm_pager.h namespace pollution avoidance (forcing requiring sys/mutex.h in consumers directly to cater its inlining functions using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h consumers now must include also sys/rwlock.h. * zfs requires a quite convoluted fix to include FreeBSD rwlocks into the compat layer because the name clash between FreeBSD and solaris versions must be avoided. At this purpose zfs redefines the vm_object locking functions directly, isolating the FreeBSD components in specific compat stubs.
The KPI results heavilly broken by this commit. Thirdy part ports must be updated accordingly (I can think off-hand of VirtualBox, for example).
Sponsored by: EMC / Isilon storage division Reviewed by: jeff Reviewed by: pjd (ZFS specific review) Discussed with: alc Tested by: pho
show more ...
|
|
Revision tags: release/9.1.0 |
|
| #
bcb77be2 |
| 23-Sep-2012 |
Pawel Jakub Dawidek <[email protected]> |
Add TRIM support.
The code builds a map of regions that were freed. On every write the code consults the map and eventually removes ranges that were freed before, but are now overwritten.
Freed blo
Add TRIM support.
The code builds a map of regions that were freed. On every write the code consults the map and eventually removes ranges that were freed before, but are now overwritten.
Freed blocks are not TRIMed immediately. There is a tunable that defines how many txg we should wait with TRIMming freed blocks (64 by default).
There is a low priority thread that TRIMs ranges when the time comes. During TRIM we keep in-flight ranges on a list to detect colliding writes - we have to delay writes that collide with in-flight TRIMs in case something will be reordered and write will reached the disk before the TRIM. We don't have to do the same for in-flight writes, as colliding writes just remove ranges to TRIM.
Sponsored by: multiplay.co.uk
This work includes some important fixes and some improvements obtained from the zfsonlinux project, including TRIMming entire vdevs on pool create/add/attach and on pool import for spare and cache vdevs.
Obtained from: zfsonlinux Submitted by: Etienne Dechamps <[email protected]>
show more ...
|
|
Revision tags: release/8.3.0, release/7.4.0, release/8.2.0, release/8.1.0 |
|
| #
665b912a |
| 24-May-2010 |
Pawel Jakub Dawidek <[email protected]> |
MFC r207920,r207934,r207936,r207937,r207970,r208142,r208147,r208148,r208166, r208454,r208455,r208458:
r207920:
Back out r205134. It is not stable.
r207934:
Add missing new line characters to the
MFC r207920,r207934,r207936,r207937,r207970,r208142,r208147,r208148,r208166, r208454,r208455,r208458:
r207920:
Back out r205134. It is not stable.
r207934:
Add missing new line characters to the warnings.
r207936:
Eventhough r203504 eliminates taste traffic provoked by vdev_geom.c, ZFS still like to open all vdevs, close them and open them again, which in turn provokes taste traffic anyway.
I don't know of any clean way to fix it, so do it the hard way - if we can't open provider for writing just retry 5 times with 0.5 pauses. This should elimitate accidental races caused by other classes tasting providers created on top of our vdevs.
Reported by: James R. Van Artsdalen <[email protected]> Reported by: Yuri Pankov <[email protected]>
r207937:
I added vfs_lowvnodes event, but it was only used for a short while and now it is totally unused. Remove it.
r207970:
When there is no memory or KVA, try to help by reclaiming some vnodes. This helps with 'kmem_map too small' panics.
No objections from: kib Tested by: Alexander V. Ribchansky <[email protected]>
r208142:
The whole point of having dedicated worker thread for each leaf VDEV was to avoid calling zio_interrupt() from geom_up thread context. It turns out that when provider is forcibly removed from the system and we kill worker thread there can still be some ZIOs pending. To complete pending ZIOs when there is no worker thread anymore we still have to call zio_interrupt() from geom_up context. To avoid this race just remove use of worker threads altogether. This should be more or less fine, because I also thought that zio_interrupt() does more work, but it only makes small UMA allocation with M_WAITOK. It also saves one context switch per I/O request.
PR: kern/145339 Reported by: Alex Bakhtin <[email protected]>
r208147:
Add task structure to zio and use it instead of allocating one. This eliminates the only place where we can sleep when calling zio_interrupt(). As a side-effect this can actually improve performance a little as we allocate one less thing for every I/O.
Prodded by: kib
r208148:
Allow to configure UMA usage for ZIO data via loader and turn it on by default for amd64. On i386 I saw performance degradation when UMA was used, but for amd64 it should help.
r208166:
Fix userland build by making io_task available only for the kernel and by providing taskq_dispatch_safe() macro.
r208454:
Remove ZIO_USE_UMA from arc.c as well.
r208455:
ZIO_USE_UMA is no longer used.
r208458:
Create UMA zones unconditionally.
show more ...
|
| #
3a482ccc |
| 18-Apr-2010 |
Pawel Jakub Dawidek <[email protected]> |
MFC r203504,r204067,r204073,r204101,r204804,r205079,r205080,r205132,r205133, r205134,r205231,r205253,r205264,r205346,r206051,r206667,r206792,r206793, r206794,r206795,r206796,r206797:
r203504
MFC r203504,r204067,r204073,r204101,r204804,r205079,r205080,r205132,r205133, r205134,r205231,r205253,r205264,r205346,r206051,r206667,r206792,r206793, r206794,r206795,r206796,r206797:
r203504:
Open provider for writting when we find the right one. Opening too much providers for writing provokes huge traffic related to taste events send by GEOM on close. This can lead to various problems with opening GEOM providers that are created on top of other GEOM providers.
Reorted by: Kurt Touet <[email protected]>, mr Tested by: mr, Baginski Darren <[email protected]>
r204067:
Update comment. We also look for GPT partitions.
r204073:
Add tunable and sysctl to skip hostid check on pool import.
r204101:
Don't set f_bsize to recordsize. It might confuse some software (like squid).
Submitted by: Alexander Zagrebin <[email protected]>
r204804:
Remove racy assertion.
Reported by: Attila Nagy <[email protected]> Obtained from: OpenSolaris, Bug ID 6827260
r205079:
Remove bogus assertion.
Reported by: Johan Ström <[email protected]> Obtained from: OpenSolaris, Bug ID 6920880
r205080:
Force commit to correct Bug ID:
Obtained from: OpenSolaris, Bug ID 6920880
r205132:
Don't bottleneck on acquiring the stream locks - this avoids a massive drop off in throughput with large numbers of simultaneous reads
r205133:
fix compilation under ZIO_USE_UMA
r205134:
make UMA the default allocator for ZFS buffers - this avoids a great deal of contention in kmem_alloc
r205231:
- reduce contention by breaking up ARC state locks in to 16 for data and 16 for metadata - export L2ARC tunables as sysctls - add several kstats to track L2ARC state more precisely - avoid holding a contended lock when atomically incrementing a contended counter (no lock protection needed for atomics)
r205253:
use CACHE_LINE_SIZE instead of hardcoding 128 for lock pad
pointed out by Marius Nuennerich and jhb@
r205264:
- cache line align arcs_lock array (h/t Marius Nuennerich) - fix ARCS_LOCK_PAD to use architecture defined CACHE_LINE_SIZE - cache line align buf_hash_table ht_locks array
r205346:
The same code is used to import and to create pool. The order of operations is the following: 1. Try to open vdev by remembered path and guid. 2. If 1 failed, try to find vdev which guid matches and ignore the path. 3. If 2 failed this means either that the vdev we're looking for is gone or that pool is being created and vdev doesn't contain proper guid yet. To be able to handle pool creation we open vdev by path anyway.
Because of 3 it is possible that we open wrong vdev on import which can lead to confusions.
The solution for this is to check spa_load_state. On pool creation it will be equal to SPA_LOAD_NONE and we can open vdev only by path immediately and if it is not equal to SPA_LOAD_NONE we first open by path+guid and when that fails, we open by guid. We no longer open wrong vdev on import.
r206051:
IOCPARM_MAX defines maximum size of a structure that can be passed directly to ioctl(2). Because of how ioctl command is build using _IO*() macros we have only 13 bits to encode structure size. So the structure can be up to 8kB-1.
Currently we define IOCPARM_MAX as PAGE_SIZE.
This is IMHO wrong for three main reasons:
1. It is confusing on archs with page size larger than 8kB (not really sure if we support such archs (sparc64?)), as even if PAGE_SIZE is bigger than 8kB, we won't be able to encode anything larger in ioctl command.
2. It is a waste. Why the structure can be only 4kB on most archs if we have 13 bits dedicated for that, not 12?
3. It shouldn't depend on architecture and page size. My ioctl command can work on one arch, but can't on the other?
Increase IOCPARM_MAX to 8kB and make it independed of PAGE_SIZE and architecture it is compiled for. This allows to use all the bits on all the archs for size. Note that this doesn't mean we will copy more on every ioctl(2) call. No. We still copyin(9)/copyout(9) only exact number of bytes encoded in ioctl command.
Practical use for this change is ZFS. zfs_cmd_t structure used for ZFS ioctls is larger than 4kB.
Silence on: arch@
r206667:
Fix 3-way deadlock that can happen because of ZFS and vnode lock order reversal.
thread0 (vfs_fhtovp) thread1 (vop_getattr) thread2 (zfs_recv) -------------------- --------------------- ------------------ vn_lock rrw_enter_read rrw_enter_write (hangs) rrw_enter_read (hangs) vn_lock (hangs)
Reported by: Attila Nagy <[email protected]>
r206792:
Set ARC_L2_WRITING on L2ARC header creation.
Obtained from: OpenSolaris
r206793:
Remove racy assertion.
Obtained from: OpenSolaris
r206794:
Extend locks scope to match OpenSolaris.
r206795:
Add missing list and lock destruction.
r206796:
Style fixes.
r206797:
Restore previous order.
show more ...
|
|
Revision tags: release/7.3.0, release/8.0.0 |
|
| #
e43f1736 |
| 17-Aug-2009 |
Pawel Jakub Dawidek <[email protected]> |
MFC r196295:
Remove OpenSolaris taskq port (it performs very poorly in our kernel) and replace it with wrappers around our taskqueue(9). To make it possible implement taskqueue_member() function whi
MFC r196295:
Remove OpenSolaris taskq port (it performs very poorly in our kernel) and replace it with wrappers around our taskqueue(9). To make it possible implement taskqueue_member() function which returns 1 if the given thread was created by the given taskqueue.
Approved by: re (kib)
show more ...
|
| #
2d9cf57e |
| 11-Jun-2012 |
Martin Matuska <[email protected]> |
Introduce "feature flags" for ZFS pools (bump SPA version to 5000). Add first feature "com.delphix:async_destroy" (asynchronous destroy of ZFS datasets). Implement features support in ZFS boot code.
Introduce "feature flags" for ZFS pools (bump SPA version to 5000). Add first feature "com.delphix:async_destroy" (asynchronous destroy of ZFS datasets). Implement features support in ZFS boot code.
Illumos revisions merged: 13700:2889e2596bd6 13701:1949b688d5fb 2619 asynchronous destruction of ZFS file systems 2747 SPA versioning with zfs feature flags
References: https://www.illumos.org/issues/2619 https://www.illumos.org/issues/2747
Obtained from: illumos (issue #2619, #2747) MFC after: 1 month
show more ...
|
| #
664015e2 |
| 25-Oct-2011 |
Pawel Jakub Dawidek <[email protected]> |
Don't look for includes in userland directories. There is no need for it and it breaks building the kernel without userland sources.
Reported by: andre, imp MFC after: 3 days
|
| #
f1321be2 |
| 01-Mar-2011 |
Nathan Whitehorn <[email protected]> |
Fix misuse of TARGET_ARCH. This should be MACHINE_ARCH.
|
| #
10b9d77b |
| 27-Feb-2011 |
Pawel Jakub Dawidek <[email protected]> |
Finally... Import the latest open-source ZFS version - (SPA) 28.
Few new things available from now on:
- Data deduplication. - Triple parity RAIDZ (RAIDZ3). - zfs diff. - zpool split. - Snapshot ho
Finally... Import the latest open-source ZFS version - (SPA) 28.
Few new things available from now on:
- Data deduplication. - Triple parity RAIDZ (RAIDZ3). - zfs diff. - zpool split. - Snapshot holds. - zpool import -F. Allows to rewind corrupted pool to earlier transaction group. - Possibility to import pool in read-only mode.
MFC after: 1 month
show more ...
|