All,
we had a phone meeting about utrace and plans for utrace.
Here are my notes, from the meeting. They are a bit scattered, but I
think they can serve as a thread for Roland to prepare a more
comprehensive email with all the details. This wa just a "let's regroup"
type of discussion, real technical details will be in email in the next
couple of weeks.

Jim will send out his notes as well.

Feel free to correct, I am sure I missed a few things, with
the static noises and all.

elena


-----------------



Notes: utrace meeting 20081204

development code, bleeding edge, still has some bugs, not in any
fedora builds, maybe its in rawhide.

instability, race conditions, we don't know if those are still around
now

there is only one place where the fatc code path is affected by the
issue of data struct being a separate pointer or not only issue id the
size of the structure, but not a big deal. it's a change that somebody
could make, there is a private data structure that should move to
header files. Could be done by anybody. Not a priority for Roland
himself to do.

git tree status

2.6.28-rc7 patches. Updated December 2. See the git tree. git tree ==
linus' latest tree + utrace patches.

2.6.27 there are 2 patches for
ia64-> do not use, not tested
i386-> ok to use

makefile patch, one word change (?)


upstream:

architecture support is upstream now, maintenance is with the
architecture maintainers.

new api: not upstream yet, kernel folks want a user to be integrated
as well.

We need something on top of utrace.
maybe something with ftrace, or froggy.


Roland: write up technical details about utrace.
technical roadmap
goal: posted by the end of next week.
regular commitment for a discussion from a utrace component POV,
instead of stap.


systemtap
task finding
get all threads
get al children and keep trac of those
what you exec

modular vision, bottom up

trace processes that exec foo()
trace all the children of this process
and the like

should be in components that can be reused by stap, gdb and any
userlevel or kernel interfaces

collection of utrace engines: general framework built around the async
model of utrace extend idea of event notification to have rule sets
for identifying, filtering and reacting to even sources and also
treating groups of threads alike, having a set of rules that is
associated with a group. How a group treats all of the threads.

canonical rules set, that trace all the childresn, that traces all the
threads, that filters by exec name, etc.

Something as a framework that just has idea of threads gorups and rule
sets. It should be extensible with the kind of filetering rules and
actions triggered that you can have.

All the basic group management stuff and the basic utrace calls and
then everything else could be built up from the basic stuff.

Idea of synthetic kinds of events: new tracing sources can generate
new types of events.

hw bp, watchpoint, branch tracing stuff, perfmon, etc

have this framework be dynamically extensible via kernel modules
registering new kinds of rules and events and maybe there will be
specific hardware events built into the kernel

then on that i would build the bp mechanism, for different kind of
uses, not all the pieces want to be in the kernel as opposed to user
space

ubp is more in the manner that roland has in mind but he would like it
to be sliced differently

do you have always some kind of kernel storage for bp or
not. userlevel debugging: you need people to insert a lot of bps while
not consuming any special kernel resources. So piece to be sliced out
and get an interface is a purely instruction analysys and step(?)
piece, architecture specific.  could be reused by kprobes, and
breakpoints and reused outside of the kernel

hardware single step,
instruction copying + trap
....

all the different way different hardware does stepping/breakpoints/whatnot

gdb, perfmon2/3, kvm, ftrace, djprobes -> all have analysis of instructions

let's have just one instance of this code, so that not every tool
has to reinvent the wheel, and maintain all the complexity. -> main idea

How the code will be sliced, and where it will physically be, is
different matter.







--
Elena Zannoni, Oracle
Senior Engineering Manager, Tools/Languages - Linux Engineering
Blog: http://blogs.oracle.com/ezannoni
Email: [EMAIL PROTECTED]

Reply via email to