Commit Graph

71 Commits

Author SHA1 Message Date
Brian Behlendorf c1d363770f Merge branch 'fix-clock-wrap' into refs/top-bases/fix-branch 2010-01-08 11:39:16 -08:00
Brian Behlendorf 8513efcadd Merge commit 'refs/top-bases/fix-clock-wrap' into fix-clock-wrap 2010-01-08 11:39:16 -08:00
Brian Behlendorf 4cd8e49a69 Add .gitignore files to exclude build products 2010-01-08 11:35:17 -08: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 b57e406dd6 Merge commit 'refs/top-bases/fix-stack' into fix-stack 2009-11-15 16:26:47 -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 f8cca2b295 Merge commit 'refs/top-bases/fix-stack' into fix-stack 2009-08-18 12:09:57 -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 326bb586bd Merge commit 'refs/top-bases/fix-stack' into fix-stack 2009-07-06 13:13:20 -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 7fe1b71533 Merge commit 'refs/top-bases/fix-stack' into fix-stack 2009-02-18 14:29:19 -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 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 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 216ce72418 Merge commit 'refs/top-bases/fix-dnode-cons' into fix-dnode-cons 2009-01-15 14:13:46 -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 9e12900ee7 Merge commit 'refs/top-bases/fix-stack' into fix-stack 2009-01-05 12:08:50 -08:00