jamal wrote: > On Mon, 2007-11-06 at 17:12 +0200, Patrick McHardy wrote: > >>Worst cast is (n - 2) * (m - 1) + 1 full sized packet transmission >>times. >> >>You can do the math yourself, but we're talking about potentially >>a lot of packets. > > > I agree if you use the strategy of "a ring shutdown down" implies > "dont wake up until the ring that caused the shutdown opens up" > What i am saying below is to make a change to that strategy.
Glad we agree on something. Now all I have to do is convince you that a change to this strategy is not a good idea :) >>>If you throw the burden to the driver (as i am recommending in all my >>>arguements so far), it should open up sooner based on priorities. >>>I didnt wanna bring this earlier because it may take the discussion in >>>the wrong direction. >>>So in your example if n-1 shuts down the driver, then it is upto to the >>>driver to open it up if any higher prio packet makes it out. >> >> >>How could it do that? n-1 is still completely full and you don't >>know what the next packet is going to be. Are you proposing to >>simply throw the packet away in the driver even though its within >>the configured limits of the qdisc? > > > No no Patrick - i am just saying the following: > - let the driver shutdown whenever a ring is full. Remember which ring X > shut it down. > - when you get a tx interupt or prun tx descriptors, if a ring <= X has > transmitted a packet (or threshold of packets), then wake up the driver > (i.e open up). At this point the qdisc might send new packets. What do you do when a packet for a full ring arrives? I see three choices: - drop it, even though its still within the qdiscs configured limits - requeue it, which does not work because the qdisc is still active and might just hand you the same packet over and over again in a busy loop, until the ring has more room (which has the same worst case, just that we're sitting in a busy loop now). - requeue and stop the queue: we're back to where we started since now higher priority packets will not get passed to the driver. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html