[PATCH] SCHED: Fix unnecesary driver entries when queue is stopped

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <davem@...>
Cc: <netdev@...>
Date: Tuesday, November 13, 2007 - 1:44 pm

Dave,

This patch addresses an issue with multiqueue devices and non-multiqueue
qdiscs which is causing performance issues.  This patch should be 
considered for both 2.6.23-stable and 2.6.24 upstream.  Basically, if
a driver is using the netif_*_subqueue() calls, then qdisc_restart() will
happily call hard_start_xmit() even if subqueue 0 is stopped, which is bad.
This re-adds the check for the subqueue state.

Note that this check was removed when qdisc_restart() was rewritten.  At that
time though, we didn't understand the full effect of multiqueue with respect
to the qdiscs and queue management from a driver to kernel perspective.  Since
the driver doesn't know what qdisc capabilities live above it, it needs to
decide to use the queue or subqueue functions ahead of time.  This patch is
just cleaning up a miss from that rewrite.

Patch 1 is for 2.6.24, patch 2 is for 2.6.23 stable.

Thanks,
-- 
PJ Waskiewicz <peter.p.waskiewicz.jr@intel.com>
-
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
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] SCHED: Fix unnecesary driver entries when queue is s..., PJ Waskiewicz, (Tue Nov 13, 1:44 pm)