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