lkml.org 
[lkml]   [2002]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [CHECKER] 37 stack variables >= 1K in 2.4.17
    Date
    > On 13 Jun 2002, Andi Kleen wrote:
    >
    > > Alexander Viro <viro@math.psu.edu> writes:
    > > >
    > > > I mean that due to the loop (link_path_walk->do_follow_link->foofs_follow_link
    > > > ->vfs_follow_link->link_path_walk) you will get infinite maximal depth
    > > > for everything that can be called by any of these functions. And that's
    > > > a _lot_ of stuff.
    > >
    > > Surely an analysis pass can detect recursive function chains and flag them
    > > (e.g. the global IPA alias analysis pass in open64 does this)
    >
    > Ugh... OK, let me try again:
    >
    > One bit of apriory information needed to get anything interesting from
    > this analysis: there is a set of mutually recursive functions (see above)
    > and there is a limit (5) on the depth of recursion in that loop.
    >
    > It has to be known to checker. Explicitly, since
    > a) automatically deducing it is not realistic
    > b) cutting off the stuff behind that loop will cut off a _lot_ of
    > things - both in filesystems and in VFS (and in block layer, while we are
    > at it).

    We're all about jamming system specific information into the checking
    extensions. It's usually just a few if statements. So to be clear: we
    can simply assume that the loop
    link_path_walk
    ->do_follow_link
    ->foofs_follow_link
    ->vfs_follow_link
    ->link_path_walk
    can happen exactly 5 times?

    In general such restrictions are interesting, since they concretely
    show how having a way to include system-specific knowlege into checking
    is useful. Are there any other such relationships? The other example
    I know of is the do_page_fault (sp?) routine that can potentially be
    invoked at very copy_*_user site that page faults. You need to know
    this to detect certain classes of deadlock, but there's no way to
    discern this path from the code without a priori knowlege.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:26    [W:0.026 / U:0.540 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site