Re: Jiffy is not able to measure the fraction of time a process runs a processor

From: linux-os (Dick Johnson)
Date: Wed Mar 15 2006 - 10:53:03 EST



On Wed, 15 Mar 2006, Mauricio Lin wrote:

> Hi all,
>
> I have managed to measure the cpu time in nanoseconds. On i386 I have used
> the monotonic_clock() to measure the cpu time accurately.
>
> The cpu time measurements were based on t->sched_info.cpu_time, but
> instead of accumulate
> the all cpu time, I needed just the diff=jiffies
> -t->sched_info.last_arrival in the sched_info_depart().
>
> The problem was most of time the diff was zero. So to solve this
> problem I used the monotonic_clock() function that provides more accurate
> way to measure cpu time.
>
> Any comments?
>
> On 14 Mar 2006 15:54:17 -0500, Frank Ch. Eigler <fche@xxxxxxxxxx> wrote:
>> "Mauricio Lin" <mauriciolin@xxxxxxxxx> writes:
>>
>>> I am trying to measure the fraction of time a process runs on a
>>> processor, but the jiffies is not able to provide an accurate value.
>>
>> See sched_clock().
>
> I have checked it. It helped me to reach the monotonic_clock()
> function after hacking the code.
>
>>
>>> The example below [...]
>>> PID : NAME : LAST ARRIVAL : CPU TIME : CALLER
>>> 4544 : kmix : 6170433 : 0 : work_resched+0x6c
>>> 4078 : lpd : 6170433 : 0 : __down_interruptible+0x5
>>> 4544 : kmix : 6170433 : 0 : schedule_timeout+0xb8
>>
>> What tool/patchset are you using to generate this trace?
>
> I am using the relayfs to report the information I need among the
> processors. I just put some klog in some key points in the code.
>
> BR,
>
> Mauricio Lin.

Jiffies changes only 1000 times per second if it's set to 1000.
On a fast CPU this kind of coarse resolution will not give you
any useful information when trying to determine execution time.

You need to use the number of CPU clocks that it has taken.
This is obtained using rdtsc on ix86 machines.

Cheers,
Dick Johnson
Penguin : Linux version 2.6.15.4 on an i686 machine (5589.54 BogoMips).
Warning : 98.36% of all statistics are fiction, book release in April.
_


****************************************************************
The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@xxxxxxxxxxxx - and destroy all copies of this information, including any attachments, without reading or disclosing them.

Thank you.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/