diff options
author | Brian Behlendorf <[email protected]> | 2011-04-22 10:12:49 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2011-04-26 13:37:35 -0700 |
commit | 7a060636b05655cccd87ce74d70e5957bb234e5e (patch) | |
tree | d2ddc53f9ae1c9b3763de90f9933bc6645971053 /module/avl | |
parent | 44e9e3479388ee16f39253e8c3f8f6625324dfc6 (diff) |
Conserve stack in dsl_scan_visitbp()
The recursive call chain dsl_scan_visitbp() -> dsl_scan_recurse() ->
dsl_scan_visitdnode() -> dsl_scan_visitbp has been observed to consume
considerable stack resulting in a stack overflow (>8k). The cleanest
way I see to fix this with minimal impact to the existing flow of
code, and with the fewest performance concerns, is to always inline
dsl_scan_recurse() and dsl_scan_visitdnode(). While this will increase
the function size of dsl_scan_visitbp(), by 4660 bytes, it also reduces
the stack requirements by removing the function call overhead.
Issue #174
Diffstat (limited to 'module/avl')
0 files changed, 0 insertions, 0 deletions