[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