<html><head></head><body><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:x-small;"><div>Hi Jonathan,</div><div><br></div><div>I have some questions regarding the algorithm to choose a tin to dequeue from in sch_cake.c:</div><div>-----------8<------------</div><div>        int oi, best_tin=0;<br>        s64 best_time = 0xFFFFFFFFFFFFUL;<br><br>        for(oi=0; oi < q->tin_cnt; oi++) {<br>            int tin = q->tin_order[oi];<br>            b = q->tins + tin;<br>            if((b->sparse_flow_count + b->bulk_flow_count) > 0) {<br>                s64 tdiff = b->tin_time_next_packet - now;<br>                if(tdiff <= 0 || tdiff <= best_time) {<br>                    best_time = tdiff;<br>                    best_tin = tin;<br>                }<br>            }<br><div>        }</div><div>-----------8<------------</div><div><br></div><div>1) best_time is defined as a positive signed integer, this equals to 78 hours if I did the calculations right. Why did you choose this? Did you mean to define it as "-1"?</div><div>2) If you meant to define it as "-1", the condition "<g class="gr_ gr_539 gr-alert gr_spell gr_run_anim ContextualSpelling ins-del multiReplace" id="539" data-gr-id="539">tdiff</g> <= best_time" would not matter. I can see no case where "<g class="gr_ gr_1866 gr-alert gr_spell gr_run_anim ContextualSpelling ins-del multiReplace" id="1866" data-gr-id="1866">tdiff</g> > 0" and "<g class="gr_ gr_1987 gr-alert gr_spell gr_run_anim ContextualSpelling ins-del multiReplace" id="1987" data-gr-id="1987">tdiff</g> <= best_time".</div><div><br></div><div>Could you shed some light into this?</div><div><br></div><div>Thank you,</div><div>George<br></div><div><br></div><div><br></div><div><br></div><div><br> </div></div><br></div></body></html>