Questions and comments about the Architecture paper
William Cohen
wcohen@redhat.com
Wed May 4 21:35:00 GMT 2005
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
More information about the Systemtap
mailing list