Commit Graph

150 Commits

Author SHA1 Message Date
Brian Behlendorf 31cc6992c5 Merge branch 'fix-stack-dsl_dir_open_spa' into refs/top-bases/fix-branch 2010-06-16 12:40:39 -07:00
Brian Behlendorf 0c524122bd Add fix-stack-dsl_dir_open_spa topic branch
Reduce stack usage by 256 bytes by moving buf char array from
the stack to the heap.
2010-06-16 12:39:44 -07:00
Brian Behlendorf 2f30cc0188 Merge branch 'fix-stack-lzjb' into refs/top-bases/fix-branch 2010-06-14 16:45:33 -07:00
Brian Behlendorf b8cc785fb6 Add fix-stack-lzjb topic branch
Reduce kernel stack usage by lzjb_compress() by moving uint16 array
off the stack and on to the heap.  The exact performance implications
of this I have not measured but we absolutely need to keep stack
usage to a minimum.  If/when this becomes and issue we optimize.
2010-06-14 16:45:01 -07:00
Brian Behlendorf 51322821f3 Merge branch 'fix-kstat-xuio' into refs/top-bases/fix-branch 2010-06-14 16:43:32 -07:00
Brian Behlendorf f61a7ce9e1 Add fix-kstat-xuio topic branch
Move xiou stat structures from a header to the dmu.c source as is
done with all the other kstat interfaces.  This information is local
to dmu.c registered the xuio kstat and should stay that way.
2010-06-14 16:43:01 -07:00
Brian Behlendorf 963518b20f Merge branch 'fix-metaslab' into refs/top-bases/fix-branch 2010-06-14 16:40:45 -07:00
Brian Behlendorf f3a61f709d Add fix-metaslab topic branch
If your only going to allow one allocator to be used and it is defined
at compile time there is no point including the others in the build.
This patch could/should be refined for Linux to make the metaslab
configurable at run time.  That might be a bit tricky however since
you would need to quiese all IO.  Short of that making it configurable
as a module load option would be a reasonable compromise.
2010-06-14 16:40:26 -07:00
Brian Behlendorf f3f44cbd31 Merge branch 'fix-current' into refs/top-bases/fix-branch 2010-06-14 16:39:27 -07:00
Brian Behlendorf 6cf7f7c9df Add fix-current topic branch
In the linux kernel 'current' is defined to mean the current process
and can never be used as a local variable in a function.  Simply
replace all usage of 'current' with 'curr' in this function.
2010-06-14 16:38:56 -07:00
Brian Behlendorf bce1904fbb Merge branch 'fix-taskq' into refs/top-bases/fix-branch 2010-06-14 16:21:59 -07:00
Brian Behlendorf 49ad53c46f Update fix-taskq to never sleep at interrupt time
Updated fix to detect if we are in an interrupt and only sleep if it
is safe to do some.  I guess it must be safe to sleep under Solaris
this must be handled in a sort interrupt handler there
2010-06-14 16:14:23 -07:00
Brian Behlendorf 89089d1e4b Merge commit 'refs/top-bases/fix-stack' into fix-stack
Conflicts:
	module/zfs/dmu_objset.c
	module/zfs/spa_history.c
2010-05-28 13:54:08 -07:00
Brian Behlendorf 31630287ca Merge branch 'fix-dbuf_dirty_record_t' into refs/top-bases/fix-branch
Conflicts:
	lib/libzfs/libzfs_sendrecv.c
	module/zfs/dmu_objset.c
	module/zfs/dnode.c
	module/zfs/dsl_dataset.c
	module/zfs/spa_history.c
2010-05-28 13:51:29 -07:00
Brian Behlendorf ab1a68b225 Merge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t
Conflicts:
	module/zfs/dnode_sync.c
2010-05-28 13:46:45 -07:00
Brian Behlendorf 428870ff73 Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
Brian Behlendorf 157df8338c Merge branch 'fix-dsl_pool_t' into refs/top-bases/fix-branch 2010-05-28 10:14:42 -07:00
Brian Behlendorf 9eec97e163 Revert fix-dsl_pool_t fixed upstream 2010-05-28 10:08:02 -07:00
Brian Behlendorf 396fb1e235 Merge branch 'fix-taskq' into refs/top-bases/fix-branch 2010-05-28 10:00:43 -07:00
Brian Behlendorf 11a9bfc7f8 Revert fix-taskq changes reevaluate after update. 2010-05-28 09:54:03 -07:00
Brian Behlendorf 146ded4db2 Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch 2010-05-27 17:02:13 -07:00
Brian Behlendorf db069704ed Revert fix-clock-wrap fixed upstream
This was more or less fixed upstream.  Instead of directly accessing
lbolt they now use ddi_get_lbolt() which we can have do the right
thing is the SPL so we don't need to carry this patch.
2010-05-27 16:54:23 -07:00
Brian Behlendorf 655b4b2b1c Merge commit 'refs/top-bases/fix-taskq' into fix-taskq 2010-04-29 10:41:39 -07:00
Brian Behlendorf 3e6811f827 Merge commit 'refs/top-bases/fix-stack' into fix-stack 2010-04-29 10:41:38 -07:00
Brian Behlendorf dbda9cb8fc Merge commit 'refs/top-bases/fix-dsl_pool_t' into fix-dsl_pool_t 2010-04-29 10:41:28 -07:00
Brian Behlendorf 86049947d8 Merge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t 2010-04-29 10:41:24 -07:00
Brian Behlendorf 13668b7879 Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch 2010-04-29 10:41:23 -07:00
Brian Behlendorf f2ca1d7334 Merge commit 'refs/top-bases/fix-clock-wrap' into fix-clock-wrap 2010-04-29 10:41:22 -07:00
Brian Behlendorf fa42225a3d Add Solaris FMA style support 2010-04-29 10:37:15 -07:00
Brian Behlendorf b58747a2e2 Merge branch 'fix-stack' into refs/top-bases/fix-branch 2009-12-18 14:31:21 -08:00
Brian Behlendorf 70ddc1393f No inline to keep dmu_recv_stream() stack frame less than 1024 bytes.
Recent builds against 2.6.31 flagged dmu_recv_stream() as stack heavy.
As a quick simple way to resolve this I'm preventing the inlining of
certain functions which gcc will inline here because this is the only
place they are called.  Futher analysis of this function should be
performed to futher reduce its stack usage.
2009-12-18 14:22:02 -08:00
Brian Behlendorf e530326e8f Merge commit 'refs/top-bases/fix-taskq' into fix-taskq 2009-11-15 16:26:48 -08:00
Brian Behlendorf b57e406dd6 Merge commit 'refs/top-bases/fix-stack' into fix-stack 2009-11-15 16:26:47 -08:00
Brian Behlendorf 8d0c0b0782 Merge commit 'refs/top-bases/fix-dsl_pool_t' into fix-dsl_pool_t 2009-11-15 16:26:39 -08:00
Brian Behlendorf dcd4d95764 Merge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t 2009-11-15 16:26:37 -08:00
Brian Behlendorf 00f3dfb5e9 Merge commit 'refs/top-bases/fix-clock-wrap' into fix-clock-wrap 2009-11-15 16:26:36 -08:00
Brian Behlendorf e57bf40c98 Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch 2009-11-15 16:26:36 -08:00
Brian Behlendorf 0aa61e8427 Remove zvol.c when updating in update-zfs.sh Linux version available. 2009-11-15 16:20:01 -08:00
Brian Behlendorf e20ba40c91 Merge commit 'refs/top-bases/fix-taskq' into fix-taskq 2009-08-18 12:10:02 -07:00
Brian Behlendorf f8cca2b295 Merge commit 'refs/top-bases/fix-stack' into fix-stack 2009-08-18 12:09:57 -07:00
Brian Behlendorf e7c05295ca Merge commit 'refs/top-bases/fix-dsl_pool_t' into fix-dsl_pool_t 2009-08-18 12:09:26 -07:00
Brian Behlendorf b330ab77df Merge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t 2009-08-18 12:09:14 -07:00
Brian Behlendorf d205b25a74 Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch 2009-08-18 12:09:10 -07:00
Brian Behlendorf 25ddaec292 Merge commit 'refs/top-bases/fix-clock-wrap' into fix-clock-wrap 2009-08-18 12:09:07 -07:00
Brian Behlendorf 45d1cae3b8 Rebase master to b121 2009-08-18 11:43:27 -07:00
Brian Behlendorf 653cd5153a Merge branch 'fix-stack' into refs/top-bases/fix-branch 2009-07-29 21:27:10 -07:00
Brian Behlendorf ee435f260c Excessively large stack frames detected.
The 2.6.30 kernel build systems sets -Wframe-larger-than=2048 which causes
a warning to be generated when an individual stack frame exceeds 2048.
This caught the spa_history_log() and dmu_objset_snapshot() functions
which declared a data structure on the stack which contained a char
array of MAXPATHLEN.  This in defined to be 4096 in the linux kernel
and I imagine it is quite large under Solaris as well.  Regardless, the
offending data structures were moved to the heap to correctly keep the
stack depth to a minimum.  We might consider setting this value even
lower to catch additional offenders because we are expecting deep stacks.
2009-07-29 21:18:48 -07:00
Brian Behlendorf 4539acb1cd Merge commit 'refs/top-bases/fix-taskq' into fix-taskq 2009-07-06 13:13:25 -07:00
Brian Behlendorf 326bb586bd Merge commit 'refs/top-bases/fix-stack' into fix-stack 2009-07-06 13:13:20 -07:00
Brian Behlendorf eaba5df9af Merge commit 'refs/top-bases/fix-dsl_pool_t' into fix-dsl_pool_t 2009-07-06 13:12:44 -07:00
Brian Behlendorf 5b629493e0 Merge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t 2009-07-06 13:12:34 -07:00
Brian Behlendorf 01c3cfc58f Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch
Conflicts:

	module/zfs/zil.c
2009-07-06 13:12:23 -07:00
Brian Behlendorf 3ada0935a3 Merge commit 'refs/top-bases/fix-clock-wrap' into fix-clock-wrap 2009-07-06 13:11:56 -07:00
Brian Behlendorf 9babb37438 Rebase master to b117 2009-07-02 15:44:48 -07:00
Brian Behlendorf c8c4948d00 Merge branch 'fix-dnode-cons' into refs/top-bases/fix-branch 2009-03-19 15:29:33 -07:00
Brian Behlendorf 60d25f4b93 The patch resolves the extra call to dnode_cons() in dnode_create().
The extra call to the constructor was there to reinitialize the non-
trivial primatives in the dnode (lists, mutexs, condvars, avl tree, etc).
This was safe, although not exactly clean, on Solaris because none of
the primitives allocate memory.  In the Linux port this is not true.
To keep stack usage to a minimum several of the primatives dynamically
allocate memory thus initializing them twice results in a memory leak.

This patch resolves this problem for Solaris and Linux by ensuring all
*_inits are called in the constructor, and all *_destroys are called
in the destructor.  Additionally we ensure that all dnode objects are
properly deconstructed before being freed to the slab, and when the
objects are allocated from the slab all required data members are
explicity initialized to correct values.
2009-03-19 15:22:48 -07:00
Brian Behlendorf cc032b6337 Merge branch 'fix-list' into refs/top-bases/fix-branch 2009-03-19 15:07:16 -07:00
Brian Behlendorf 9bbf8f1761 Resolve conflict with fix-dnode-cons 2009-03-19 15:02:05 -07:00
Brian Behlendorf dbc3a5ec55 Merge commit 'refs/top-bases/fix-list' into fix-list
Conflicts:

	module/zfs/arc.c
2009-02-18 14:29:48 -08:00
Brian Behlendorf 3ef12f42a2 Merge commit 'refs/top-bases/fix-taskq' into fix-taskq 2009-02-18 14:29:23 -08:00
Brian Behlendorf 7fe1b71533 Merge commit 'refs/top-bases/fix-stack' into fix-stack 2009-02-18 14:29:19 -08:00
Brian Behlendorf d6e8154947 Merge commit 'refs/top-bases/fix-dsl_pool_t' into fix-dsl_pool_t 2009-02-18 14:28:30 -08:00
Brian Behlendorf 404fd8578f Merge commit 'refs/top-bases/fix-dnode-cons' into fix-dnode-cons 2009-02-18 14:28:27 -08:00
Brian Behlendorf d190a5b9bd Merge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t 2009-02-18 14:28:23 -08:00
Brian Behlendorf 6fe19bd252 Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch
Conflicts:

	lib/libzpool/kernel.c
	module/zfs/arc.c
2009-02-18 14:28:15 -08:00
Brian Behlendorf 3ac1fca8dc Merge commit 'refs/top-bases/fix-clock-wrap' into fix-clock-wrap 2009-02-18 14:27:31 -08:00
Brian Behlendorf d164b20935 Rebase master to b108 2009-02-18 12:51:31 -08:00
Brian Behlendorf 31cddc8a0b Merge branch 'fix-locks' into refs/top-bases/fix-branch 2009-01-15 16:30:25 -08:00
Brian Behlendorf 50186c2b57 All init and destroy initialized pulled in 2009-01-15 16:25:25 -08:00
Brian Behlendorf 7d4fe54632 txg_init/txg_fini cv_* initialized pulled in upstream in a slightly different way, drop these now redundant versions 2009-01-15 16:22:23 -08:00
Brian Behlendorf 625451acfc Merge commit 'refs/top-bases/fix-list' into fix-list 2009-01-15 14:16:14 -08:00
Brian Behlendorf b5409ba1e2 Merge commit 'refs/top-bases/fix-taskq' into fix-taskq 2009-01-15 14:16:12 -08:00
Brian Behlendorf 1d3ce40c2e Merge commit 'refs/top-bases/fix-stack' into fix-stack 2009-01-15 14:16:09 -08:00
Brian Behlendorf 089836c3e4 Resolve conflict with removed cleaner type 2009-01-15 14:14:57 -08:00
Brian Behlendorf a378243d07 Merge commit 'refs/top-bases/fix-dsl_pool_t' into fix-dsl_pool_t 2009-01-15 14:13:49 -08:00
Brian Behlendorf 216ce72418 Merge commit 'refs/top-bases/fix-dnode-cons' into fix-dnode-cons 2009-01-15 14:13:46 -08:00
Brian Behlendorf 2e35cc0802 Merge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t 2009-01-15 14:13:43 -08:00
Brian Behlendorf 551838a6c8 Resolve conflict with removed cleaner type 2009-01-15 14:13:39 -08:00
Brian Behlendorf b633e4f669 Merge commit 'refs/top-bases/fix-clock-wrap' into fix-clock-wrap 2009-01-15 14:11:26 -08:00
Brian Behlendorf fb5f0bc833 Rebase master to b105 2009-01-15 13:59:39 -08:00
Brian Behlendorf e1632568f1 Merge branch 'fix-list' into refs/top-bases/fix-branch 2009-01-13 16:06:23 -08:00
Brian Behlendorf be0b4029db Initialize list links 2009-01-13 16:02:19 -08:00
Brian Behlendorf 43cd437415 Merge branch 'fix-list' into refs/top-bases/fix-branch 2009-01-13 15:33:59 -08:00
Brian Behlendorf 94944fab96 Fix proper list node initialization 2009-01-13 15:31:58 -08:00
Brian Behlendorf 2e9cd667d0 Merge branch 'fix-rwlocks' into refs/top-bases/fix-branch 2009-01-13 15:07:06 -08:00
Brian Behlendorf fcd2296399 Additional rw_lock not being initialized cleaned in updated code 2009-01-13 15:05:02 -08:00
Brian Behlendorf 6c96fc31e9 Merge branch 'fix-list' into refs/top-bases/fix-branch 2009-01-13 15:02:10 -08:00
Brian Behlendorf bec036636e List cleanup and use of list_node_init initializer 2009-01-13 15:00:12 -08:00
Brian Behlendorf c6f1eca44b Merge branch 'fix-list' into refs/top-bases/fix-branch 2009-01-13 14:18:09 -08:00
Brian Behlendorf 2ea04834bf Remove assertion for now 2009-01-13 14:16:11 -08:00
Brian Behlendorf c383dbedfd Merge commit 'refs/top-bases/fix-taskq' into fix-taskq 2008-12-11 11:27:00 -08:00
Brian Behlendorf d50467b370 Merge commit 'refs/top-bases/fix-stack' into fix-stack 2008-12-11 11:26:54 -08:00
Brian Behlendorf 206ceddde8 Merge commit 'refs/top-bases/fix-rwlocks' into fix-rwlocks 2008-12-11 11:26:49 -08:00
Brian Behlendorf f421307e1b Merge commit 'refs/top-bases/fix-locks' into fix-locks 2008-12-11 11:26:25 -08:00
Brian Behlendorf ad55539f56 Merge commit 'refs/top-bases/fix-dsl_pool_t' into fix-dsl_pool_t 2008-12-11 11:26:08 -08:00
Brian Behlendorf fc3c415441 Merge commit 'refs/top-bases/fix-dnode-cons' into fix-dnode-cons 2008-12-11 11:26:02 -08:00
Brian Behlendorf 3f2453fea7 Merge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t 2008-12-11 11:25:56 -08:00
Brian Behlendorf 84e65c5c1e Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch 2008-12-11 11:25:50 -08:00
Brian Behlendorf d00b912ed9 Merge commit 'refs/top-bases/fix-clock-wrap' into fix-clock-wrap 2008-12-11 11:25:48 -08:00
Brian Behlendorf 172bb4bd5e Move the world out of /zfs/ and seperate out module build tree 2008-12-11 11:08:09 -08:00