Hi Folks !
  We're trying to get a breakdown of where time goes when TCP processes
packets. For this purpose, we use two machines, one ultrasparc and the
other, a PC running linux which send and receive packets to/from each
other. To measure various activities (number of cycles, number of
instructions executed, number of branch mis-predicts, I-cache misses etc)
we are using hardware counters on the Ultrasparc. We just do a write()
socket call and read the counter values before and after the call. To get
an idea of how much TCP code is executed in the case of a timer expiry, we
also corrupt a fraction of the stream of packets sent in the linux kernel.
This corruption of packets however has not resulted in any change in the
reading we have got.
   We'd like to know the following things:

- when does a write() system call return to the user ? 
- is any extra code executed in TCP when a timer expires ?
- what (if anything at all) can be done to get an idea of how various
events like timer expiry affect the code ?
- are there any drivers written in linux to read hardware counters on a
PC ? 

The major drawback of our experiment is that we are trying to get an idea
of what is happening in the kernel with hardware counters measuring stuff
in the user code. Could any of you gurus suggest how we can improve our
experiment ?

Thanks a million !
 -Apoorva

-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to