Re: [RFC PATCH] explicitly mark recursion count

Davide Libenzi
2004-06-02T14:35:46Z

On Wed, 2 Jun 2004, Linus Torvalds wrote:

> On Wed, 2 Jun 2004, Jörn Engel wrote:
> >
> > For a->b->c->a type recursions, I also need to identify all involved
> > functions in the correct order, that's where my ugly format comes
> > from.
>
> Why?
>
> You really only need to know that _one_ of the entries break the
> recursion, and you need to know what the break depth is for that one
> entry.
>
> So for example, if "c" is annotated with "max recursion: 5", then you know
> that the above loop will recurse at most 5 times.
>
> I don't see why you need any other information.

Hmmm, I see more data to maintain to support a method that will never be
even close to be perfect. How the thing works with callback triggered
loops for example, where a function is not directly called, but instead is
passed to another function (that maybe pass it to another function) that
triggers the call. Or maybe it's another set of functions that might
trigger the call (think about all *_operations for example). Eg, there's
an evident loop possibility in epoll (triggered by callback'd wakeups)
that is not in the list, and it's pretty hard to detect. Doing stack usage
analisys from the source code is not easy, once you abbandon the trivial
direct call scenario.

- Davide