Hello All, I am trying to redo the patch done here http://www.cs.ndsu.nodak.edu/~rousskov/research/cache/squid/profiling/patch.html for squid 2.6-S3. Basically, it adds timestamps at each relevant step in the request processing. Since there are a lot of changes from the version (1.1) for which original patch was written to 2.6, I had to pretty much redo the patch. So, I was hoping that one of the developers would review the patch and verify if the locations where the timestamps are added are correct. I have included some description of where the timestamps are added. Currently, I am just printing out the values after the activity finishes to cache.log (using debug(99,9)). I am unable to send mails with attachments, so let me know how I can send the patch. Thanks you for your time. -- Pranav Description ---------------- === clientIn === Time taken to accept entire request from client. * '''Start:''' start of httpAccept() [client_side.c: 4580] * '''First delay:''' start of clientReadRequest() [client_side.c: 3841] * '''End:''' end of parseHttpRequest() [client_side.c: 3782] === clientOut === Time taken to send entire response (header + data) to the client. * '''Start:''' start of clientSendMoreHeaderData() [client_side.c: 2641] * '''First delay:''' start of clientWriteComplete() [client_side.c: 3136] * '''End:''' start of httpRequestFree() [client_side.c: 1365] '''NOTE:''' Stop clientOut profiling after storeUnlockObject(), so diskOut profiling can complete and log before clientOut. === serverOut === Time taken to send a complete request to the server in case of MISS. * '''Start:''' start of httpStart() [http.c: 1378] * '''First delay:''' start of httpSendRequest() [http.c: 1354] * '''End:''' end of httpSendComplete() [http.c: 933] === serverIn === Time taken to receive the entire response (header + data) from server. * '''Start:''' end of httpSendComplete(). Immediately after serverOut finishes. [http.c] * '''First delay:''' start of httpProcessReplyHeader() [http.c] * '''End:''' httpReadReply() [http.c] '''NOTE:''' Stop serverIn profiling before all calls for fwdComplete(). fwdComplete() calls storeComplete() resulting in diskOut to end before serverIn ends. Hence, we add profiling before fwdComplete(). === diskOut === Time taken to write data from the memory to disk (Swap out). * '''Start:''' start of storeSwapOutStart() [store_swapout.c] * '''First delay:''' start of storeAufsWriteDone() [fs/aufs/store_io.c] * '''End:''' storeSwapOutFileClosed() [store_swapout.c] === diskIn === Time taken to read data from the disk into memory (Swap in). * '''Start:''' start of storeSwapInStart() [store_swapin.c] * '''First delay:''' start of storeAufsReadDone() [fs/aufs/store_io.c] * '''End:''' storeSwapInFileClosed() [store_swapin.c]