This is the mail archive of the systemtap@sources.redhat.com mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]