On Wed, 8 Nov 2006, Ingo Molnar wrote:
>
> * Jason Baron <[email protected]> wrote:
>
> > > this would certainly be the simplest thing to do - we could extend
> > > /proc/lockdep with the list of 'immediately after' locks separated by
> > > commas. (that list already exists: it's the lock_class.locks_after list)
> >
> > So below is patch that does what you suggest, although i had to add
> > the concept of 'distance' to the patch since the locks_after list
> > loses this dependency info afaict. i also wrote a user space program
> > to sort the locks into cluster of interelated locks and then sorted
> > within these clusters...the results show one large clump of
> > locks...perhaps there are a few locks that time them all together like
> > scheduler locks...but i couldn't figure out which ones to exclude to
> > make the list look really pretty (also, there could be a bug in my
> > program :). Anyways i'm including my test program and its output
> > too...
>
> nice!
>
> small detail: i'm wondering why 'distance' is needed explicitly? The
> dependency graph as it is represented by locks_after should be a full
> representation of all locking dependencies. What is the intended
> definition of 'distance' - the distance from the root of the dependency
> tree? (Maybe i'm misunderstanding what you are trying to achieve.)
>
'distance' is associated with a link, and is meant to represent the number
of intervening locks. So a distance of 1 b/w say lock a and b is to say
there is no intervening lock, whereas 2 would mean there is 1
intervening lock etc.
The reason i added this was that in my algorithm to order locks, say i
come to lock a, which has lock b and lock c in its 'after' list. I don't
know at that point if lock b needs to come before c, or maybe that c has
to come before b.
You are right though, i think that the data in the locks after lists is
sufficient to re-create the entire graph, since its acyclic, but by simply
printing out nodes of distance '1', the algorithm is greatly simplified.
Otherwise, i'd have to first reconstruct the graph...
Also, i was only looking for a link to be label as distance 1, or not...so
we only need to associate 1 bit of information with each link, if you are
concerned about struture bloat.
thanks,
-jason
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]