@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

Reply via email to