I just committed a bunch of updates to froggy, the big delta of which is the multiple-task-per-pid change, but it also handles syscall entries in both the module and the testcases. From the updated README:

Developer's Log, Froggydate 2008-07-28:

Did a whole lot of rewriting to allow multiple attached tasks per fd, which involved a whole lot of rewriting of the data queuing and read() mechanisms from the froggy module back to the app. Also added syscall
       entry lister to the sample app froggy-test and a stimulus source for
       that. E.g., you can:

               Open any number of bash shells (I used three) and start
               "./reader -i <n>" in each of them, where <n> an interval in
               microseconds.  (I used 50000, 40000, and 25000).  This will
               pound fairly hard on various syscalls from three different
               tasks.

               From a fourth bash, start
                       "./frogg-test -p <t1> -p <t2> -p <t3>"
               where <t?> are the pids reported by the three ./reader
instances. You should get a lot of output along the lines of:
                       [ 22623] got syscall entry 4, write
                       [ 22623] got syscall entry 162, nanosleep
                       [ 22614] got syscall entry 140, _llseek
                       [ 22614] got syscall entry 4, write
                       [ 22614] got syscall entry 162, nanosleep
                       [ 22623] got syscall entry 140, _llseek
                       [ 22623] got syscall entry 4, write
                       [ 22623] got syscall entry 162, nanosleep
                       [ 22605] got syscall entry 140, _llseek
                       [ 22605] got syscall entry 4, write
                       [ 22605] got syscall entry 162, nanosleep
                       [ 22623] got syscall entry 140, _llseek
where [ nnnn] are the pids you provided the testcase. (At the moment, neither the module nor the testcase pays any attention
               to the syscall filter--that's next.)

All of the foregoing mostly tests the ability of the module to attach tasks, get utrace reports of the associated utrace engines, queue and
       merge multiple asynchronous data streams to the app, respond to app
       read reqs while keeping synchronised with the queue buffer, and
       gracefully respond to the deaths of child processes by detaching and
freeing resources, and asynchronously reporting the death back to the
       app.

Feedback, as usual, welcome.

--
Chris Moller

 I know that you believe you understand what you think I said, but
 I'm not sure you realize that what you heard is not what I meant.
     -- Robert McCloskey


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to