This is the mail archive of the
systemtap@sources.redhat.com
mailing list for the systemtap project.
Questions and comments about the Architecture paper
- From: William Cohen <wcohen at redhat dot com>
- To: SystemTAP <systemtap at sources dot redhat dot com>
- Date: Wed, 04 May 2005 17:35:16 -0400
- Subject: Questions and comments about the Architecture paper
Hi all,
I read through the current version of the Architecture of systemtap
paper. I have some questions. I am betting that by the time I mail this
out this afternoon I will be commenting about a superceded paper. :)
In section "2.3 Translation" "Each roup of local variables is placed
into a synthetic call frame structure" Where is this located and/or
created? Allocation of kernel memory when the module is loaded. Is this
going to allow thread local storage/reentrant code? What happens when
two different processors execute the same probe at the same time?
In section "2.4 Execution" the main issue with things like
copy_from_user is context switches and locks cannot be held when there
is a possibility of a context switch.
In section "2.4 Execution" interrupts can't be sent to a driver in the
same manner as a user process can get a signal. rmmod is the way to get
rid of module.
At the beginning of section "3 Programming" there is an allowance of
foward references. What happens in the case of a global variable
declared later? Or is the declaration of global required before its use
to make sure it isn't confused for a local variable?
Third paragraph of page 4.
So there is just one name space for global variable across all modules?
The possible name collision between instrumentation would be a problem.
"3.2" Language element "$" is a legal character is identifiers. Is it
allowed anywhere in the identifier or just at the leading character?
For the types that are less than 64 bits in size are they zero extended
for unsigned and sign extended for signed?
"3.3 Statements" bottom of page 6 does the iterator lock the associative
array when it iterates through all the elements? Similarly for
Expressions are things like "++", "--", "+=", and "-=" atomic?
On Page 8 why the exponentiation operation? Is there some place that
would be useful?
Would sizeof still be useful in some cases? For example computing the
number of elements of a particular type a block of memory can hold.
I like the probe aliases.
Section "4.2 C tapsets" is this lower level stuff for writing tapsets in C?
On table 1 shouldn't there be an "X" at the intersection of "separate
policy from mechanism" and "memory portal"?
-Will