<div><font size="2" face="Arial"><span class="371554521-11082010">Hello All,</span></font></div>
<div><font size="2" face="Arial"><span class="371554521-11082010"></span></font> </div>
<div><font size="2" face="Arial"><span class="371554521-11082010">    I created a very simple program which has higher priority than normal tasks and runs a tight loop. Under same test environment I ran this program on both non-rt and rt 2.6.33.5 kernel. </span></font><font size="2" face="Arial"><span class="371554521-11082010"> To my suprise I see that performance of non-RT kernel is better than RT. non-RT kernel took 3 sec and 366156 usec while RT kernel took about 3 sec and 418011 usec.Can someone please explain why the performance of non-rt kernel is better than rt kernel? From the face of the test result, I feel RT has more overhead,Is there any configuration that I could do to bring down the overhead?</span></font></div>

<div><font size="2" face="Arial"><span class="371554521-11082010"></span></font> </div>
<div>Processor:</div>
<div>----------------</div>
<div>processor       : 0<br>cpu             : 7448<br>clock           : 996.000000MHz<br>revision        : 2.2 (pvr 8004 0202)<br>bogomips        : 83.10</div>
<div>processor       : 1<br>cpu             : 7448<br>clock           : 996.000000MHz<br>revision        : 2.2 (pvr 8004 0202)<br>bogomips        : 83.10</div>
<div> </div>
<div><font size="2" face="Arial"><span class="371554521-11082010">CFS optimization:</span></font></div>
<div><font size="2" face="Arial"><span class="371554521-11082010">--------------------------</span></font></div>
<div><font size="2" face="Arial"><span class="371554521-11082010"># cat /proc/sys/kernel/sched_rt_runtime_us <br>1000000<br># cat /proc/sys/kernel/sched_rt_period_us  <br>1000000<br># cat /proc/sys/kernel/sched_compat_yield <br>
1</span></font></div>
<div><font size="2" face="Arial"><span class="371554521-11082010"></span></font> </div>
<div><font size="2" face="Arial"><span class="371554521-11082010">Test Program:</span></font></div>
<div><font size="2" face="Arial"><span class="371554521-11082010">---------------------</span></font></div>
<div><font size="2" face="Arial"><span class="371554521-11082010"></span></font> </div>
<div><font size="2" face="Arial"><span class="371554521-11082010">main()<br>{</span></font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial"><span class="371554521-11082010">    int sched_rr_min,sched_rr_max;<br>    struct sched_param scheduling_parameters;<br>    struct timeval tv,late_tv;<br>    suseconds_t usec_diff,avg_usec = 0;<br>
    time_t sec_diff, avg_sec = 0;<br>    int i;<br>    long count = 1;</span></font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial"><span class="371554521-11082010">    sched_rr_min = sched_get_priority_min(SCHED_RR);<br>    sched_rr_max = sched_get_priority_max(SCHED_RR);<br>    scheduling_parameters.sched_priority = sched_rr_min+4;<br>
    sched_setscheduler(0, SCHED_RR, &scheduling_parameters);// Run the process with the given priority</span></font></div>
<div><font size="2" face="Arial"></font> </div><font size="2" face="Arial"><span class="371554521-11082010">
<div><br>    for(i = 0 ; i < 150 ; i++) {<br>       gettimeofday(&tv, NULL);<br>       while(count > 0){<br>        //printf(".");<br>        count++;<br>       }<br>       gettimeofday(&late_tv, NULL);<br>
       count = 1;<br>       sec_diff = (late_tv.tv_sec - tv.tv_sec);<br>       avg_sec += sec_diff;<br>       usec_diff = ( (late_tv.tv_usec > tv.tv_usec) ? (late_tv.tv_usec - tv.tv_usec) : ( tv.tv_usec - late_tv.tv_usec));<br>
       avg_usec += usec_diff;<br>       printf("Iteration #%d sec %x usec %x\n",i,(sec_diff),(usec_diff));<br>    }<br>       printf("Average of #%d sec %x usec %x\n",i,(avg_sec/i),(avg_usec)/i);<br>}</div>

<div></div></span></font><font size="3" face="Times New Roman"> </font>
<div><font size="2" face="Arial"><span class="371554521-11082010">Partial Result of non-rt kernel:</span></font></div>
<div><font size="2" face="Arial"><span class="371554521-11082010">-------------------------------------------</span></font></div>
<div><font size="2" face="Arial"><span class="371554521-11082010"></span></font> </div>
<div><font size="2" face="Arial"><span class="371554521-11082010">Iteration #140 sec 3 usec 3aef8<br>Iteration #141 sec 3 usec 3aefe<br>Iteration #142 sec 3 usec 3aee4<br><strong>Iteration #143 sec 4 usec b935b  [Why there is this periodic bump ??] [Scheduler at work??]</strong><br>
Iteration #144 sec 3 usec 3aef2<br>Iteration #145 sec 3 usec 3aef0<br>Iteration #146 sec 3 usec 3aef4<br><strong>Iteration #147 sec 4 usec b934b</strong><br>Iteration #148 sec 3 usec 3aeed<br>Iteration #149 sec 3 usec 3aef9</span></font></div>

<div><font size="2" face="Arial"><span class="371554521-11082010"></span></font> </div>
<div><font size="2" face="Arial"><span class="371554521-11082010">
<div><font size="2" face="Arial"><span class="371554521-11082010">Partial Result of rt kernel:</span></font></div>
<div><font size="2" face="Arial"><span class="371554521-11082010">-------------------------------------------</span></font></div></span></font></div>
<div><font size="2" face="Arial"><span class="371554521-11082010">Iteration #135 sec 3 usec 47328<br><strong>Iteration #136 sec 4 usec ac4fd<br></strong>Iteration #137 sec 3 usec 48b0b<br>Iteration #138 sec 3 usec 4738c<br>
Iteration #139 sec 4 usec ac4d5<br>Iteration #140 sec 3 usec 483cb<br>Iteration #141 sec 3 usec 48500<br><strong>Iteration #142 sec 4 usec acc49<br></strong>Iteration #143 sec 3 usec 47c1f<br>Iteration #144 sec 3 usec 478c2<br>
Iteration #145 sec 3 usec 47e48<br>Iteration #146 sec 4 usec ac9b5<br>Iteration #147 sec 3 usec 48de4<br>Iteration #148 sec 3 usec 46fbe<br>Iteration #149 sec 4 usec ac52e<br>Average of #150 sec 3 usec 660db</span></font></div>

<div><font size="2" face="Arial"><span class="371554521-11082010"></span></font> </div>
<div><font size="2" face="Arial"><span class="371554521-11082010">Thanks,</span></font></div>
<div><font size="2" face="Arial"><span class="371554521-11082010">Mani</span></font></div><br clear="all"><br>-- <br>Thanks,<br>Manik<br><br>Think twice about a tree before you take a printout<br>