Jarek Poplawski wrote:Actually most of that is handled in the fact that netif_tx_wake_queue will call __netif_schedule when it decides to wake up a queue that has been stopped. Putting it in skb_dequeue is unnecessary, and the way you did it would cause issues because you should be scheduling the root qdisc, not the one currently doing the dequeue. My bigger concern is the fact one queue is back to stopping all queues. By using one global XOFF state, you create head-of-line blocking. I can see the merit in this approach but the problem is for multiqueue the queues really should be independent. What your change does is reduce the benefit of having multiqueue by throwing in a new state which pretty much matches what netif_stop/wake_queue used to do in the 2.6.26 version of tx multiqueue. Also changing dequeue_skb will likely cause additional issues for several qdiscs as it doesn't report anything up to parent queues, as a result you will end up with qdiscs like prio acting more like multiq because they won't know if a queue is empty, stopped, or throttled. Also I believe this will cause a panic on pfifo_fast and several other qdiscs because some check to see if there are packets in the queue and if so dequeue with the assumption that they will get a packet out. You will need to add checks for this to resolve this issue. The one thing I liked about my approach was that after I was done you could have prio as a parent of multiq leaves or multiq as the parent of prio leaves and all the hardware queues would receive the packets in the same order as the result. Thanks, Alex -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Linus Torvalds | Linux 2.6.27-rc8 |
| Christoph Lameter | Re: Major regression on hackbench with SLUB (more numbers) |
| Mike Travis | Re: [RFC 00/15] x86_64: Optimize percpu accesses |
git: | |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| Hugh Dickins | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
