<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" id="owaParaStyle" style="display: none;"><!--P {margin-top:0;margin-bottom:0;}--></style>
</head>
<body dir="ltr" fpstyle="1" aria-label="Message body" tabindex="0" id="">
<div name="divtagdefaultwrapper" id="divtagdefaultwrapper" style="font-family: Calibri,Arial,Helvetica,sans-serif; font-size: 12pt; color: #000000; margin: 0">
<hr tabindex="-1" style="color: rgb(40, 40, 40); display: inline-block; width: 98%;">
<div id="divRplyFwdMsg" dir="ltr" style="color: rgb(40, 40, 40);"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> litmus-dev-bounces@lists.litmus-rt.org <litmus-dev-bounces@lists.litmus-rt.org> on behalf of Björn Brandenburg
 <bbb@mpi-sws.org><br>
<b>Sent:</b> Wednesday, January 29, 2014 12:27 AM<br>
<b>To:</b> litmus-dev@lists.litmus-rt.org<br>
<b>Subject:</b> Re: [LITMUS^RT] Questions about the time measurement in ft_trace</font>
<div> </div>
</div>
<div>
<div style="color: rgb(40, 40, 40);">
<div>On 28 Jan 2014, at 22:33, Luo, Zheng <<a href="mailto:luozheng@wustl.edu" title="mailto:luozheng@wustl.edu
Cmd+click or tap to follow link">luozheng@wustl.edu</a>> wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div dir="ltr" tabindex="0" id="" style="font-family:Helvetica; font-size:12px; font-style:normal; font-variant:normal; font-weight:normal; letter-spacing:normal; line-height:normal; orphans:auto; text-align:start; text-indent:0px; text-transform:none; white-space:normal; widows:auto; word-spacing:0px">
<div name="divtagdefaultwrapper" id="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; margin:0px">
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<span style="font-size:12pt">I have a question about the time measure measurement in ft_trace in Litmus.</span></div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<br>
</div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
I was wondering how does the ft_trace get the timestamp information, then I found that it used this function:</div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<br>
</div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
#include <asm/feather_trace.h></div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
#include <asm/timex.h> /* for get_cycles() */</div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<span style="font-size:12pt">static inline unsigned long long ft_timestamp(void)</span></div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
{</div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
    return get_cycles();</div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
}</div>
<p style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
</p>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<br>
</div>
<div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
This function will return the cycle of the CPU, I checked all the program in the ft_tool and the sched-trace-tool-master, I thought when you get_cycles of the CPU, should not you divide the current frequency of the CPU to get the time. I did not find the division,
 or the current get cycle did give you the time information?</div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<br>
</div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
When I run a small program, I get the output here, and I also send a picture as an attachment.</div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<br>
</div>
<div style="margin-top:0px; margin-bottom:0px">luozheng@luozheng-Ubuntu:~/Documents/Litmus/sched-trace-tools-master$ ./st_show st--6.bin </div>
<div style="margin-top:0px; margin-bottom:0px">[         0] NAME            4420/0     on CPU  6 base_task</div>
<div style="margin-top:0px; margin-bottom:0px">[         0] PARAM           4420/0     on CPU  6 T=(cost:100.00ms, period:500.00ms, phase:  0.00ms), part=0</div>
<div style="margin-top:0px; margin-bottom:0px">[   2914923] SWITCH_FROM     4420/1     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px">[   2914923] SWITCH_TO       4420/1     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px">[   2914923] SWITCH_FROM     4420/1     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px">[   2914923] COMPLETION      4420/1     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px">[   2915423] RELEASE         4420/2     on CPU  6 2915923.27ms</div>
<div style="margin-top:0px; margin-bottom:0px">[   2915423] SWITCH_TO       4420/2     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px">[   2915774] SWITCH_FROM     4420/2     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px">[   2915774] COMPLETION      4420/2     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px">[   2915923] RELEASE         4420/3     on CPU  6 2916423.27ms</div>
<div style="margin-top:0px; margin-bottom:0px">[   2915923] SWITCH_TO       4420/3     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px">[   2916274] SWITCH_FROM     4420/3     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px">[   2916274] COMPLETION      4420/3     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px">[   2916423] RELEASE         4420/4     on CPU  6 2916923.27ms</div>
<div style="margin-top:0px; margin-bottom:0px">[   2916423] SWITCH_TO       4420/4     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px">[   2916774] COMPLETION      4420/4     on CPU  6 </div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<br>
</div>
<div style="margin-top:0px; margin-bottom:0px; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
I get a little confused here. Is number in the [] should be the cycles of the CPU? The number like <span style="font-size:12pt">2915923.27ms is the actual time? Or how do we interpret this? I think I need some help here. Thank you very much.</span></div>
</div>
</div>
</div>
</blockquote>
<br>
</div>
<div style="color: rgb(40, 40, 40);">Hi Zheng,</div>
<div style="color: rgb(40, 40, 40);"><br>
</div>
<div style="color: rgb(40, 40, 40);">the overhead tracing uses raw processor cycles. You are looking at sched-trace-tools, which uses the same tracing infrastructure but a different time source.</div>
<div style="color: rgb(40, 40, 40);"><br>
</div>
<div style="color: rgb(40, 40, 40);"><span class="Apple-tab-span" style="white-space:pre"></span><a href="https://github.com/LITMUS-RT/litmus-rt/blob/master/litmus/sched_task_trace.c#L20" title="https://github.com/LITMUS-RT/litmus-rt/blob/master/litmus/sched_task_trace.c#L20
Cmd+click or tap to follow link">https://github.com/LITMUS-RT/litmus-rt/blob/master/litmus/sched_task_trace.c#L20</a></div>
<div style="color: rgb(40, 40, 40);"><br>
</div>
<div style="color: rgb(40, 40, 40);">The time units in sched_trace traces are nanoseconds. The tool st_show does some rounding to display millisecond values (which for a human are easier to read).</div>
<div style="color: rgb(40, 40, 40);"><br>
</div>
<div style="color: rgb(40, 40, 40);">Best regards,</div>
<div style="color: rgb(40, 40, 40);">Björn</div>
<div style="color: rgb(40, 40, 40);"><br>
</div>
<div style="color: rgb(40, 40, 40);"><br>
</div>
<div style="color: rgb(40, 40, 40);"><br>
</div>
<div style="color: rgb(40, 40, 40);">Hi <span style="font-size: 12pt;">Björn,</span></div>
<div style="color: rgb(40, 40, 40);"><span style="font-size: 12pt;"><br>
</span></div>
<div style="color: rgb(40, 40, 40);"><span style="font-size: 12pt;">Thank you very much for the reply. I still some questions.</span></div>
<div style="color: rgb(40, 40, 40);"><span style="font-size: 12pt;"><br>
</span></div>
<div style="color: rgb(40, 40, 40);"><span style="font-size: 12pt;">For the line like this:</span></div>
<div><font color="#282828">[ 2915923] RELEASE 4420/3 on CPU 6 2916423.27ms</font></div>
<div><font color="#282828">Why the </font><span style="color: rgb(40, 40, 40); font-size: 12pt;">2915923 and the </span><span style="color: rgb(40, 40, 40); font-size: 12pt;">2916423.27ms is different, and what is the meaning of them?</span></div>
<div><font color="#282828"><br>
</font></div>
<div><font color="#282828"><br>
</font></div>
<div><font color="#282828">All the time stamps are using:</font></div>
<div><font color="#282828">
<div>static inline lt_t litmus_clock(void)</div>
<div>{</div>
<div>    return ktime_to_ns(ktime_get());</div>
<div>}</div>
<div>I have two questions:</div>
<div>1. Should we use the <span style="font-size: 12pt;">ktime_get() to get the time? Because it is a kernel function call, it takes longer time than just read the RDTSC value. Why use a kernel space function call instead of a user space function all? I am
 not sure about that, so I have this question.</span></div>
<div><span style="font-size: 12pt;">2. Also, is there any reference to show that how you measure the overhead of the scheduling?</span></div>
<div><span style="font-size: 12pt;"><br>
</span></div>
<div><span style="font-size: 12pt;">Thank you very much. Look forward to your reply.</span></div>
<div><span style="font-size: 12pt;"><br>
</span></div>
<div>Zheng Luo</div>
</font></div>
<div style="color: rgb(40, 40, 40);"><br>
</div>
</div>
</div>
</body>
</html>