@gwr The `::stacks` dcmd is already incapable of walking stacks that jump from one region of memory to another. I know some of the other stack-walking implementations in the OS are more sophisticated, but this has a single buffer (one thread's stack) in which it looks, and it bails as soon as it comes across an address which doesn't fall within that buffer: ``` if (fp < kbase || fp >= (ktop - sizeof (struct rwindow))) break; ``` I guess the question is: can a stack hop around, rather than growing in a uniform direction, within the single fixed window that `crawl()` is examining? I couldn't think of any scenarios where it could, which is why I didn't bother using a more sophisticated cycle detection algorithm. If I overlooked something, though, please let me know.
-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/670#issuecomment-422243540 ------------------------------------------ openzfs: openzfs-developer Permalink: https://openzfs.topicbox.com/groups/developer/T0a20d78ceac3a60d-M4c55aa412b71a9c34c6c2fb6 Delivery options: https://openzfs.topicbox.com/groups/developer/subscription