Commit Graph

19505 Commits

Author SHA1 Message Date
Brian Behlendorf 983bc7237f New TopGit dependency: fix-stack-traverse_visitbp 2010-06-29 11:04:48 -07:00
Brian Behlendorf 34229a2f2a Reduce stack usage for recursive traverse_visitbp()
Due to  limited stack space recursive functions are frowned upon in
the Linux kernel.  However, they often are the most elegant solution
to a problem.  The following code preserves the recursive function
traverse_visitbp() but moves the local variables AND function
arguments to the heap to minimize the stack frame size.  Enough
space is initially allocated on the stack for 20 levels of recursion.
This change does ugly-up-the-code but it reduces the worst case
usage from roughly 4160 bytes to 960 bytes on x86_64 archs.
2010-06-29 11:04:26 -07:00
Brian Behlendorf cfa80a0ccf Merge branch 'linux-spa-thread' into refs/top-bases/linux-zfs-branch 2010-06-29 11:02:20 -07:00
Brian Behlendorf 61dfb6c274 Merge commit 'refs/top-bases/linux-spa-thread' into linux-spa-thread 2010-06-29 11:02:18 -07:00
Brian Behlendorf 3252e635d1 Merge branch 'linux-topology' into refs/top-bases/linux-zfs-branch 2010-06-29 11:02:12 -07:00
Brian Behlendorf b1a6216b64 Merge commit 'refs/top-bases/linux-topology' into linux-topology 2010-06-29 11:02:10 -07:00
Brian Behlendorf c22810344e Merge branch 'linux-sha2' into refs/top-bases/linux-zfs-branch 2010-06-29 11:02:04 -07:00
Brian Behlendorf 0599c5460c Merge commit 'refs/top-bases/linux-sha2' into linux-sha2 2010-06-29 11:02:02 -07:00
Brian Behlendorf 044346a4e7 Merge branch 'linux-user-util' into refs/top-bases/linux-zfs-branch 2010-06-29 11:01:56 -07:00
Brian Behlendorf 08de33b9d4 Merge commit 'refs/top-bases/linux-user-util' into linux-user-util 2010-06-29 11:01:54 -07:00
Brian Behlendorf 81e9c8367d Merge branch 'linux-events' into refs/top-bases/linux-zfs-branch 2010-06-29 11:01:48 -07:00
Brian Behlendorf f13bc68113 Merge commit 'refs/top-bases/linux-events' into linux-events 2010-06-29 11:01:46 -07:00
Brian Behlendorf 35ceec1c0d Merge branch 'linux-kernel-module' into refs/top-bases/linux-zfs-branch 2010-06-29 11:01:39 -07:00
Brian Behlendorf f281cb3d2d Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module 2010-06-29 11:01:37 -07:00
Brian Behlendorf bbb031c26e Merge branch 'linux-kernel-device' into refs/top-bases/linux-zfs-branch 2010-06-29 11:01:31 -07:00
Brian Behlendorf 0576c0ce91 Merge commit 'refs/top-bases/linux-kernel-device' into linux-kernel-device 2010-06-29 11:01:29 -07:00
Brian Behlendorf 4f253e01e6 Merge branch 'linux-have-idmap' into refs/top-bases/linux-zfs-branch 2010-06-29 11:01:23 -07:00
Brian Behlendorf 3791414099 Merge commit 'refs/top-bases/linux-have-idmap' into linux-have-idmap 2010-06-29 11:01:20 -07:00
Brian Behlendorf a5cdc5d6f0 Merge branch 'linux-ztest' into refs/top-bases/linux-zfs-branch 2010-06-29 11:01:14 -07:00
Brian Behlendorf e6bcb5c246 Merge commit 'refs/top-bases/linux-ztest' into linux-ztest 2010-06-29 11:01:11 -07:00
Brian Behlendorf 62e6a163a3 Merge branch 'linux-unused' into refs/top-bases/linux-zfs-branch 2010-06-29 11:01:05 -07:00
Brian Behlendorf cca74f6a00 Merge commit 'refs/top-bases/linux-unused' into linux-unused 2010-06-29 11:01:03 -07:00
Brian Behlendorf 09931b3714 Merge branch 'linux-libspl' into refs/top-bases/linux-zfs-branch 2010-06-29 11:00:57 -07:00
Brian Behlendorf bf3c33b6c0 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2010-06-29 11:00:56 -07:00
Brian Behlendorf 65db2948eb Merge branch 'linux-zpios' into refs/top-bases/linux-zfs-branch 2010-06-29 11:00:49 -07:00
Brian Behlendorf b91da0086f Merge commit 'refs/top-bases/linux-zpios' into linux-zpios 2010-06-29 11:00:47 -07:00
Brian Behlendorf a7dc958ebf Merge branch 'linux-user-disk' into refs/top-bases/linux-zfs-branch 2010-06-29 11:00:41 -07:00
Brian Behlendorf bc9ce64c43 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-06-29 11:00:38 -07:00
Brian Behlendorf dbfcad7734 Merge branch 'linux-symbol-collisions' into refs/top-bases/linux-zfs-branch 2010-06-29 11:00:32 -07:00
Brian Behlendorf d3b5ed0980 Merge commit 'refs/top-bases/linux-symbol-collisions' into linux-symbol-collisions 2010-06-29 11:00:29 -07:00
Brian Behlendorf b7c771a8be Merge branch 'linux-kernel-mem' into refs/top-bases/linux-zfs-branch 2010-06-29 11:00:23 -07:00
Brian Behlendorf c2e6290a45 Merge commit 'refs/top-bases/linux-kernel-mem' into linux-kernel-mem 2010-06-29 11:00:21 -07:00
Brian Behlendorf 0388569a58 Merge branch 'linux-kernel-disk' into refs/top-bases/linux-zfs-branch 2010-06-29 11:00:15 -07:00
Brian Behlendorf 67850fa14f Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk 2010-06-29 11:00:12 -07:00
Brian Behlendorf 2619d4ba4c Merge branch 'linux-have-spl-debug' into refs/top-bases/linux-zfs-branch 2010-06-29 11:00:06 -07:00
Brian Behlendorf 120e89d397 Merge commit 'refs/top-bases/linux-have-spl-debug' into linux-have-spl-debug 2010-06-29 11:00:04 -07:00
Brian Behlendorf b8229898ab Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch 2010-06-29 10:59:58 -07:00
Brian Behlendorf deed228127 Merge commit 'refs/top-bases/linux-have-mntent' into linux-have-mntent 2010-06-29 10:59:55 -07:00
Brian Behlendorf 0a2b049259 Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2010-06-29 10:59:54 -07:00
Brian Behlendorf ffeafc898e Merge branch 'fix-branch' into refs/top-bases/zfs-branch
Conflicts:

	cmd/ztest/ztest.c
2010-06-29 10:55:38 -07:00
Brian Behlendorf b873e71b0f Merge branch 'gcc-branch' into refs/top-bases/zfs-branch 2010-06-29 10:29:42 -07:00
Brian Behlendorf 9fd3ea941b Merge commit 'refs/top-bases/gcc-branch' into gcc-branch 2010-06-29 10:25:31 -07:00
Brian Behlendorf 192b36dcfd Merge branch 'gcc-uninit' into refs/top-bases/gcc-branch 2010-06-29 10:25:31 -07:00
Brian Behlendorf 9cdd80e387 Revert traverse_impl() changes
These changes are now taken care of by the fix-stack-traverse_impl
topic branch which not only solves the uninit problem but also
moves these locals off the stack and on to the heap.
2010-06-29 10:24:14 -07:00
Brian Behlendorf 96bd9f434d Merge branch 'fix-stack-traverse_impl' into refs/top-bases/fix-branch 2010-06-29 10:21:53 -07:00
Brian Behlendorf c3681c9f29 Merge commit 'refs/top-bases/fix-branch' into fix-branch 2010-06-29 10:21:53 -07:00
Brian Behlendorf 607b455090 New TopGit dependency: fix-stack-traverse_impl 2010-06-29 10:21:50 -07:00
Brian Behlendorf 8e2de85a6d Reduce stack usage of traverse_impl()
Stack use reduced from 560 bytes to 128 bytes.
2010-06-29 10:21:21 -07:00
Brian Behlendorf d2585f5921 Merge branch 'fix-stack-vn_open' into refs/top-bases/fix-branch 2010-06-29 10:15:05 -07:00
Brian Behlendorf 0a03ec3bf5 Merge commit 'refs/top-bases/fix-branch' into fix-branch 2010-06-29 10:15:05 -07:00