[RTEMS Project] #2554: New watchdog handler implementation
RTEMS trac
trac at rtems.org
Wed Jan 27 09:39:52 UTC 2016
#2554: New watchdog handler implementation
-----------------------------+------------------------------
Reporter: sebastian.huber | Owner: sebastian.huber
Type: enhancement | Status: new
Priority: normal | Milestone: 4.12
Component: cpukit | Version: 4.12
Severity: normal | Resolution:
Keywords: |
-----------------------------+------------------------------
Comment (by sebastian.huber):
Profiling data (reduced to show only relevant information) obtained on the
24-processor T4240 system using the `smptests/smpwakeafter01` test.
{{{
#!xml
<ProfilingReport name="SMPWAKEAFTER 1">
<PerCPUProfilingReport processorIndex="0">
<MaxThreadDispatchDisabledTime
unit="ns">3128351</MaxThreadDispatchDisabledTime>
<MeanThreadDispatchDisabledTime
unit="ns">97821</MeanThreadDispatchDisabledTime>
<TotalThreadDispatchDisabledTime
unit="ns">1435132321</TotalThreadDispatchDisabledTime>
<ThreadDispatchDisabledCount>14671</ThreadDispatchDisabledCount>
<MaxInterruptDelay unit="ns">0</MaxInterruptDelay>
<MaxInterruptTime unit="ns">21766</MaxInterruptTime>
<MeanInterruptTime unit="ns">10040</MeanInterruptTime>
<TotalInterruptTime unit="ns">124466623</TotalInterruptTime>
<InterruptCount>12396</InterruptCount>
</PerCPUProfilingReport>
<PerCPUProfilingReport processorIndex="1">
<MaxThreadDispatchDisabledTime
unit="ns">1548547</MaxThreadDispatchDisabledTime>
<MeanThreadDispatchDisabledTime
unit="ns">79339</MeanThreadDispatchDisabledTime>
<TotalThreadDispatchDisabledTime
unit="ns">1621381982</TotalThreadDispatchDisabledTime>
<ThreadDispatchDisabledCount>20436</ThreadDispatchDisabledCount>
<MaxInterruptDelay unit="ns">0</MaxInterruptDelay>
<MaxInterruptTime unit="ns">37</MaxInterruptTime>
<MeanInterruptTime unit="ns">11</MeanInterruptTime>
<TotalInterruptTime unit="ns">32946</TotalInterruptTime>
<InterruptCount>2791</InterruptCount>
</PerCPUProfilingReport>
<SMPLockProfilingReport name="Watchdog">
<MaxAcquireTime unit="ns">14893</MaxAcquireTime>
<MaxSectionTime unit="ns">2978</MaxSectionTime>
<MeanAcquireTime unit="ns">32</MeanAcquireTime>
<MeanSectionTime unit="ns">55</MeanSectionTime>
<TotalAcquireTime unit="ns">1158320573</TotalAcquireTime>
<TotalSectionTime unit="ns">2009011082</TotalSectionTime>
<UsageCount>35986044</UsageCount>
<ContentionCount initialQueueLength="0">6874</ContentionCount>
<ContentionCount initialQueueLength="1">6187</ContentionCount>
<ContentionCount initialQueueLength="2">8266</ContentionCount>
<ContentionCount initialQueueLength="3">35964717</ContentionCount>
</SMPLockProfilingReport>
<SMPLockProfilingReport name="Giant">
<MaxAcquireTime unit="ns">1803</MaxAcquireTime>
<MaxSectionTime unit="ns">29041</MaxSectionTime>
<MeanAcquireTime unit="ns">105</MeanAcquireTime>
<MeanSectionTime unit="ns">5514</MeanSectionTime>
<TotalAcquireTime unit="ns">87844</TotalAcquireTime>
<TotalSectionTime unit="ns">4582492</TotalSectionTime>
<UsageCount>831</UsageCount>
<ContentionCount initialQueueLength="0">831</ContentionCount>
<ContentionCount initialQueueLength="1">0</ContentionCount>
<ContentionCount initialQueueLength="2">0</ContentionCount>
<ContentionCount initialQueueLength="3">0</ContentionCount>
</SMPLockProfilingReport>
</ProfilingReport>
}}}
The clock tick interval is 1ms (1000 ticks per second). We observe a
maximum thread dispatch disabled time of 3.1ms on the first processor
which serves the clock interrupt and 1.5ms on the other processors. There
is no contention on the Giant lock. However, the watchdog lock is highly
contended. The maximum acquire and section times are small compared to the
maximum thread dispatch disabled time. The maximum interrupt time on the
first processor is 0.012ms, so serving the clock interrupt is no a big
deal This clearly indicates that the loop based updates of the delta
chains are the main issue.
--
Ticket URL: <http://devel.rtems.org/ticket/2554#comment:1>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list