[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