mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Dawson Engler <engler@csl.Stanford.EDU>
To: viro@math.psu.edu (Alexander Viro)
Cc: ak@muc.de (Andi Kleen), linux-kernel@vger.kernel.org
Subject: Re: [CHECKER] 37 stack variables >= 1K in 2.4.17
Date: Thu, 13 Jun 2002 14:50:28 -0700 (PDT)	[thread overview]
Message-ID: <200206132150.OAA14200@csl.Stanford.EDU> (raw)
In-Reply-To: <Pine.GSO.4.21.0206131420010.20315-100000@weyl.math.psu.edu> from "Alexander Viro" at Jun 13, 2002 02:26:54 PM

> 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.

  parent reply	other threads:[~2002-06-13 21:50 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-10  3:56 Dawson Engler
2002-06-12  8:43 ` Pavel Machek
2002-06-12 19:11   ` Nikita Danilov
2002-06-12 21:51 ` Benjamin LaHaise
2002-06-12 22:26   ` Alexander Viro
2002-06-12 22:38     ` Benjamin LaHaise
2002-06-12 22:44       ` Robert Love
2002-06-12 22:55         ` procfs documentation Tom Bradley
2002-06-13 11:17           ` John Levon
2002-06-13  0:20       ` [CHECKER] 37 stack variables >= 1K in 2.4.17 Alexander Viro
2002-06-13  8:30         ` Helge Hafting
2002-06-13 13:24           ` Roger Larsson
2002-06-14 10:06             ` Helge Hafting
2002-06-13  6:38     ` Dawson Engler
2002-06-13  6:59       ` Alexander Viro
2002-06-13 17:41         ` Daniel Phillips
2002-06-13 17:53           ` Alexander Viro
2002-06-13 18:45             ` Daniel Phillips
2002-06-13 17:56         ` Andi Kleen
2002-06-13 18:26           ` Alexander Viro
2002-06-13 19:01             ` Andi Kleen
2002-06-14  0:05               ` William Lee Irwin III
2002-06-13 21:50             ` Dawson Engler [this message]
2002-06-13 22:43               ` Oliver Xymoron
2002-06-14  0:25               ` Alexander Viro
2002-06-13  6:36   ` Dawson Engler
2002-06-16  0:48 Andries.Brouwer
2002-06-16  1:08 ` Alexander Viro
2002-06-16  7:47 Andries.Brouwer
2002-06-16  8:36 ` Alexander Viro
2002-06-16  9:59 Andries.Brouwer
2002-06-16 10:33 ` Alexander Viro
2002-06-16 10:56 Andries.Brouwer
2002-06-16 11:38 ` Alexander Viro
2002-06-16 13:13 Andries.Brouwer
2002-06-16 18:51 ` Alexander Viro
2002-06-16 20:41 Andries.Brouwer
2002-06-16 21:33 ` Andreas Dilger
2002-06-16 21:34 ` Alexander Viro
2002-06-17 10:09 ` David Woodhouse
2002-06-16 22:05 Andries.Brouwer
2002-06-16 23:57 ` Alexander Viro
2002-06-17 11:07 Andries.Brouwer
2002-06-17 12:00 ` David Woodhouse

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200206132150.OAA14200@csl.Stanford.EDU \
    --to=engler@csl.stanford.edu \
    --cc=ak@muc.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=viro@math.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®