|To:||Thomas Graf <tgraf@xxxxxxx>|
|Subject:||Re: [PATCH] loop unrolling in net/sched/sch_generic.c|
|From:||Eric Dumazet <dada1@xxxxxxxxxxxxx>|
|Date:||Wed, 06 Jul 2005 03:04:36 +0200|
|Cc:||"David S. Miller" <davem@xxxxxxxxxxxxx>, netdev@xxxxxxxxxxx|
|References:||<20050705173411.GK16076@xxxxxxxxxxxxxx> <20050705.142210.14973612.davem@xxxxxxxxxxxxx> <20050705213355.GM16076@xxxxxxxxxxxxxx> <20050705.143548.28788459.davem@xxxxxxxxxxxxx> <42CB14B2.5090601@xxxxxxxxxxxxx> <20050705234104.GR16076@xxxxxxxxxxxxxx> <42CB2698.2080904@xxxxxxxxxxxxx> <20050706005140.GT16076@xxxxxxxxxxxxxx>|
|User-agent:||Mozilla Thunderbird 1.0 (Windows/20041206)|
Thomas Graf a écrit :
Maybe we can rewrite the whole thing without branches, examining prio from PFIFO_FAST_BANDS-1 down to 0, at least for modern cpu with conditional mov (cmov)This would break the whole thing, the qdisc is supposed to try and dequeue from the highest priority queue (prio=0) first.
I still dequeue a packet from the highest priority queue. But nothing prevents us to look the three queues in the reverse order, if you can avoid the conditional branches. No memory penalty, since most of time we were looking at the three queues anyway, and the 3 sk_buff_head are in the same cache line.
|<Prev in Thread]||Current Thread||[Next in Thread>|
|Previous by Date:||Re: [PATCH] loop unrolling in net/sched/sch_generic.c, Thomas Graf|
|Next by Date:||Re: [PATCH] loop unrolling in net/sched/sch_generic.c, Thomas Graf|
|Previous by Thread:||Re: [PATCH] loop unrolling in net/sched/sch_generic.c, Thomas Graf|
|Next by Thread:||Re: [PATCH] loop unrolling in net/sched/sch_generic.c, Thomas Graf|
|Indexes:||[Date] [Thread] [Top] [All Lists]|