[LITMUS^RT] Question about the overhead measurement in LITMUS and potential memory leak?

Namhoon Kim namhoonk at cs.unc.edu
Fri Oct 2 19:40:45 CEST 2015


Hi Meng,

On the IMX6 platform, we use a performance counter to measure cpu cycles.
In litmus/litmus.c from source code, you can find
litmus_enable_perfcounters_v7(). This function resets the performance
counter and starts to count cpu cycles. Can you check if this function is
executed during the boot process?

-Namhoon

On Fri, Oct 2, 2015 at 1:22 PM, Meng Xu <xumengpanda at gmail.com> wrote:

> Hi Bjorn,
>
> Thank you so much for your quick and helpful reply!
>
> Hi Namhoon,
> Since you are also using the same ARM board and didn't have any problem in
> tracing the scheduling overhead, such as SCHED and CXS, could you help me
> have a look if I configured anything incorrectly? I really appreciate it!
>
>
>>
>> Do you have any suggestion/advice on how I can get the complete events?
>>
>> I have tried to set the ftcat to highest priority under FIFO scheduler,
>> it didn't solve the problem.
>> I was suspecting it is because the buffer is not consumed by ftcat fast
>> enough so that the old events are overwritten by new events. However, I
>> only run on rtspin task which leave at least 3 full cores idle to consume
>> the buffer.
>>
>>
>> If ftcat is starved, then you get some incomplete records, but typically
>> not 100% incomplete records. This must be something else.
>>
>> Have you looked at the trace with ftdump? What does it look like?
>>
>>
> ​I checked the ftdump and it shows that the events are actually recorded
> but the timestamp of each event is always 0.
>
> (Below is the result that I filter out the ftdump for RT tasks
> ​ and I only show some of them since the rest of them are similar​
> .)
>
> CXS_START            seq:634  pid:964  timestamp:0  cpu:3  type:RT
> irq:1 irqc:01
>
> CXS_END              seq:635  pid:964  timestamp:0  cpu:3  type:RT
> irq:0 irqc:00
>
> CXS_START            seq:644  pid:964  timestamp:0  cpu:3  type:RT
> irq:1 irqc:01
>
> CXS_END              seq:645  pid:964  timestamp:0  cpu:3  type:RT
> irq:0 irqc:00
>
> CXS_START            seq:650  pid:964  timestamp:0  cpu:3  type:RT
> irq:1 irqc:01
>
> CXS_END              seq:651  pid:964  timestamp:0  cpu:3  type:RT
> irq:0 irqc:00
>
> CXS_START            seq:658  pid:964  timestamp:0  cpu:3  type:RT
> irq:1 irqc:01
>
> CXS_END              seq:659  pid:964  timestamp:0  cpu:3  type:RT
> irq:0 irqc:00
>
> CXS_START            seq:666  pid:964  timestamp:0  cpu:3  type:RT
> irq:1 irqc:01
>
> CXS_END              seq:667  pid:964  timestamp:0  cpu:3  type:RT
> irq:0 irqc:00
>
> CXS_START            seq:676  pid:964  timestamp:0  cpu:3  type:RT
> irq:1 irqc:02
>
> CXS_END              seq:677  pid:964  timestamp:0  cpu:3  type:RT
> irq:0 irqc:00
>
> CXS_START            seq:684  pid:964  timestamp:0  cpu:3  type:RT
> irq:1 irqc:01
>
> CXS_END              seq:685  pid:964  timestamp:0  cpu:3  type:RT
> irq:0 irqc:00
>
> CXS_START            seq:694  pid:964  timestamp:0  cpu:3  type:RT
> irq:1 irqc:02
>
> CXS_END              seq:695  pid:964  timestamp:0  cpu:3  type:RT
> irq:0 irqc:00
>
> CXS_START            seq:702  pid:964  timestamp:0  cpu:3  type:RT
> irq:1 irqc:01
>
> CXS_END              seq:703  pid:964  timestamp:0  cpu:3  type:RT
> irq:0 irqc:00
>
>
>
> Is there anything else I need to configure to make it work? It seems that
>  in
> litmus/trace.c
> ​, the ft_timestamp() always return 0?​
>
>  if (record_timestamp)
>
>             timestamp = ft_timestamp();
>
>  if (record_timestamp == RECORD_OFFSET_TIMESTAMP)
>
>             timestamp += cycle_offset[smp_processor_id()][cpu];
>
> Thanks,
>
> Meng
>
> --
>
> -----------
> Meng Xu
> PhD Student in Computer and Information Science
> University of Pennsylvania
> http://www.cis.upenn.edu/~mengxu/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.litmus-rt.org/pipermail/litmus-dev/attachments/20151002/4ea07129/attachment.html>


More information about the litmus-dev mailing list