This is the mail archive of the systemtap@sourceware.org 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]

Re: Measure the Accept Queueing Time


The mothod I had pointed to in Adrian's paper does not require that you match up the entry and exit probes to get accurate response time measurements.

You only need to make the queue entry and queue exit parts atomic, so there will be some issues with synchronization in a multi-CPU system. But you only compare the entry and exit times with the time the queue state was last changed, and add or subtract the time product of the curve. You are essentially precalculating the area under the curve in a running fashion to allow for reasonably accurate results when you looks at the overall queue stats every few seconds or minutes.

regards,
Peter


 -------------- Original message ----------------------
From: "Frank Ch. Eigler" <fche@redhat.com>
> Hi -
> 
> ak wrote:
> 
> > The probes itself are not nested. Just the to be measured function is.
> 
> Aha.  So, rewording (just for my own clarity), this is the sequence:
> 
> entry probe A
> entry probe A'
> return probe A'
> return probe A
> 
> And you want to measure time between A-A and A'-A'.
> 
> It seems you could do this if you invent a unique-ID for each A or A'
> entry, like using a per-CPU counter, then using that as an index:
> 
> global nesting # [cpu]
> global entrytime # [cpu,nesting#]
> 
> probe A {
>   c = cpu(); n = nesting[c]++; entrytime[c,n] = gettimeofday_us()
> }
> probe A.return {
>   c = cpu(); n = --nesting[c]; then = entrytime[c,n]; now = gettimeofday_us()
> }
> 
> 
> - FChE



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